探究“网红科学家”眼中的”智能“:Keras作者François Chollet谈AI,以及David的一些想法

如果你的思考足够抽象,并赋予抽象非凡的意义,AI很难赶上你 — David 9

最近看的Keras作者François Chollet访谈,David我也是他的粉丝,

如果说特朗普是twitter治国的,也许他就是twitter治AI的了,下面这推就表示了他对目前AI学界的深深担忧😁😁😁:

是的,大多数深度学习论文本质上借助的是人类先验人类智能对数据集的理解

这无疑引出了本质问题,这位“网红”科学家对智能的看法究竟如何?我在这里总结了6个重点供大家讨论,

1. 所谓“智能大爆发”可能存在吗?NO!François认为首先,我们不能孤立地看待“智能”这个东西,它绝不是孤立在天空中的城堡

所有我们已知的智能(包括人类智能)都是和这个世界的环境密切交互的“智能”这个东西更像是集市中的信息交换,他的进展有很多不确定性,一个小市场,外围也许还有多个大市场,周围的环境也复杂多变:

我们人类智能之所以到现在这个阶段,除了为了适应生存生产活动,还要与其它物种竞争,以及一些运气的成分,才让我们变成现在看到的这种“智能”。所以,上下文很重要。

如果说有“超人类的智能大爆发”,那么这个“智能”是如何以这么快的速度适应周围环境和人类以及其他物种竞争的?如果一下子变成超人智能,它又是如何像爱因斯坦那样寻找一个宏大的问题的答案?至少从David的直觉,我赞同François。我认为这种突破是缓慢的信息交互的产物,不是可以“爆发”产生的,但可以缓慢到达某个阶段。

2. 智能是线性增长的。这也许是François最著名的论断,David之前就听过。 他的解释也很有意思,他不否认当一个产业兴起时,资源的分配是爆炸增长的,这就是我们在日常生活中的感觉(几十年前的互联网泡沫,工业革命,信息化革命,AI浪潮等等)。但是,科学本身的发展是线性的,下图是历年来物理学发展突破的评分图:

Data from Patrick Collison and Michael Nielsen

图中每10年的物理学发展程度,大都是平缓持平的,没有巨大波动。因此如果把人类总体的智慧做一个大智能体继续阅读探究“网红科学家”眼中的”智能“:Keras作者François Chollet谈AI,以及David的一些想法

在自己专业领域,如何快速成(jia)为(zhuang)一名数据科学家? David 9的一些方法,#入门数据科学,#数据分析

David的粉丝中不少是跨学科学习机器学习(深度学习)的。如何在自己的专业领域里上手数据科学和分析是我经常被问到的问题。

这里我总结一些简单的方法,帮大家快速自学。

1,多数跨学科朋友都不是CS计算机专业的,所以不要折磨自己在编程上,专注一个容易上手的流行语言如R,python,julia可以为你减轻编程负担,如果能力有限建议只精通其中一种语言。

2,立即上手。不要害怕有些编程思想和理论还没有掌握,这里的上手是让你快速了解你这个专业的数据科学家在做什么,用了哪些流行工具?渠道大概有下面3种:

1) 找到你们行业领域的热门竞赛(如推荐领域有亚马逊,Netflix办的竞赛),如果你实在找不到,可以看官方的数据科学竞赛如kaggle, 阿里天池,以生物学DNA测序为例:

直接在kaggle中搜索:“DNA sequencing”就可以得到许多相关信息:

进入到第一个果蝇基因组的数据你就可以看到已经有一些kernel代码可以直接跑了学习: 继续阅读在自己专业领域,如何快速成(jia)为(zhuang)一名数据科学家? David 9的一些方法,#入门数据科学,#数据分析

TensorFlow 2.0入坑必备之No.1: 积极模式(Eager Execution), David 9的挖坑实战#1

标题虽然是“入坑”,但David认为这个坑并不深,不变的规律是:人类的工具总是向简单易用发展(并且不妨碍强大的功能)。

TensorFlow 2.0最大更新(我认为没有之一)的积极模式(Eager Execution)同样如此。

也许你曾经喜欢PyTorch即拿即用即求导的简单快捷:

# Create tensors.
x = torch.tensor(1., requires_grad=True)
w = torch.tensor(2., requires_grad=True)
b = torch.tensor(3., requires_grad=True)

# Build a computational graph.
y = w * x + b    # y = 2 * x + 3

# Compute gradients.
y.backward()

# Print out the gradients.
print(x.grad)    # x.grad = 2 
print(w.grad)    # w.grad = 1 
print(b.grad)    # b.grad = 1 
# 来自:https://github.com/yunjey/pytorch-tutorial

不过你现在不需要羡慕了,如果你用TensorFlow 2.0,默认的积极模式(Eager Execution)和PyTorch如出一辙(你只需使用tensorflow.contrib.eager模块):

import tensorflow.contrib.eager as tfe
def f_cubed(x):
    return x**3
grad = tfe.gradients_function(f_cubed)
grad(3.)[0].numpy()

值得强调的是,从TensorFlow 2.0开始,这种Eager Execution模式是默认的!也就是说,曾经我们在TensorFlow 1.0中的第一步构建流图graph,第二步让流图真正“流”起来的模式现在默认不适用了。对于TensorFlow 1.0, 要随时打印一个变量值几乎不可能(因为一个Tensor只是一个内部变量):

但是TensorFlow 2.0中,debug变得非常简单, 继续阅读TensorFlow 2.0入坑必备之No.1: 积极模式(Eager Execution), David 9的挖坑实战#1