无论是之前在机器人研究室,研究被动行走(Passive Dynamic Walking),还是现在,在新研究室研究深度自然语言处理。
每次被问起,“你搞什么研究啊?”
回答之后,对方都是一副好像很感兴趣的样子,难得逮上一个要听我研究的人,非得给你好好传传教,抓住猛讲。
结果,往往对方都是这样反应,“哈哈哈,好厉害的样子。”然后就没有然后了。
此后,每当再被问起,简单解释一番之后,就直说:“人工智能”
“哦哦哦!原来是搞这个的啊。不早说。” 于是个个一副了然于胸,恍然大悟的样子。
其实也可能是自己的口才并不是很好,也很懒,不知道就不知道吧。自己知道就好了。但是,总觉得还是让大家知道我在干些什么比较好,免得还被我爸怀疑天天不学习,跑去吸毒。
再来,现在深度网络和深度学习什么,也是个趋势潮流,了解下也是好的。你要是张口闭口,神经网络,激活函数什么的。看到这样的图。
而是个头发都掉光,天天穿着冲锋衣,还懂神经网络的理工男啊。
- 这货是怎么来的
首先,既然叫神经网络(全称人工神经网络),那肯定是和人脑脱不开关系了。神经病就是脑子出了问题嘛。
所以首先要来复习复习生物,说说神经元,这个人类神经网络的基本组成单元。
正如上图,神经元中间的叫胞体,然后短的突出叫树突,而长的,则是轴突。
树突可以从上一个神经元,或者是其他刺激输入源,比如说触觉,味觉接收器,接受刺激,并将冲动传向胞体;
如果胞体接受得到的冲动足够强,电位超过一定阈值,它就会“兴奋”,一兴奋,就要冲动,跟人一样;
轴突就从胞体接受冲动,然后将它传播出去,到最终目的地,或者是下一个神经元。(高中班主任生物老师😅)
在此,我们就可以把树突当做输入端,而轴突当做输出端。注意的是, 树突和轴突都有很多突触,所以是可以有多个输入以及多个输出的。
再来看一看,人工神经元,人工神经网络的基本单位。
我们会发现,两者还是很像的。x是输入,而y则是输出。中间那个圆圆的东西,可以看做是胞体了。
但实际上,相似度也就到此为止了。中间很多处理,其实并不一定和真正的神经元是一样的。
现在的研究也还还没有真正弄清,到底这中间的过程是什么。我们也可以就把人工神经元看做包含了一些参数的数学模型。
那么,我们为什么要模仿人类神经元呢。这东西又有什么用呢。
答案是,我们想要模仿的并不是神经元,而是由很多神经元组成的产物--我们的大脑。更一步来说,也就是人类的智能。就像之前Google要造出AlphaGo一样。
正是因为,人类大脑中的神经元是相互连接,然后由此组成无比复杂的神经网络。于是,我们也会想到,那么何不,用这些人工神经元来组成人工神经网络呢。之后从中产生智能。
于是就有了最开始那副图,神经网络。关于神经网络的定义,可以采用一个使用最广泛的定义。
神经网络是由具有适应性的简单单位组成的广泛并向互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
by [Kohen,1998] 摘自西瓜书
- 这样,如此,那般
上面这个,每个字都能看懂,但在放在一起就一脸懵逼的定义中。一个比较重要的概念是,具有适应性的简单单元,即之前提到的神经元了。
而自适应性则是指有一定的学习能力。而作为所有动物中智能最高的动物,人类。它最大的特点又是什么呢,那就是它强大的学习能力。
神经网络想要模仿的也正是这个。
其中值得一提的一点是,人脑中这些基本组成部件,神经元,各个都是一样。
但是通过组成不同的神经网络,最后却能够得到具有各种功能的人类脑部结构。比如说视觉,味觉,听觉系统。
最奇特的是,人类神经网络,或者说大脑的适应性。即使脑中代表特定机能的部分被破坏掉了。但是,在一定情况下,其他部分的脑是可以学会处理这部分机能的。
还有,比如之前看到的MIT和哈佛的一项研究, 先天性失明的人,他们本来用于处理视觉信号的大脑部分,因为失明而用不上。结果,这部分竟然会插入到语言处理回路中去,学会了处理语言。所以,导致先天性失明的人在语言处理方面,会比一般人强。
上面例子就说明了,人类神经网络的可学习性。
于是人工神经网络在某种程度上也是具有这个功能的,通过自我适应可以模拟各种各样的函数(理论上,单层神经网络可以模拟任何连续函数)。这样子,就给我们带来了很大的好处。
过去的科学家,是观察现象,得到很多数据。然后自己设计函数,怎么把得到的输入转化成观察到的输出。比如说,开普勒,仗着老师第谷给他留下的几十年的观测数据,观察总结出了三定律。
这样子的话,在简单情况下还好,但是当问题复杂之后,设计一个这样的函数,是很困难的。
而神经网络的好处是,只要你有很多数据,把输入和输出之间放入一个神经网络。让它自己学去吧,你就可以一边凉快去了。
之后,回来得到一个训练好的模型(Model),以后碰到数据,直接放进去,就跟我们现在做物理题目,套物理公式一样。我们有个这样的公式,给这样的输入,好,就得到输出了。
但是神经网络的最大问题是,我们不知道这个公式是什么啊。这也是为什么神经网络被各种诟病,被叫做黑盒子的原因,因为你根本不知道它到底干了什么。
今天和学校一位研究狂人教授Tad聊天时,他一上来又提在他的信息论课上拿最高分的事,然后开始忽悠我,去把他的信息论再上一遍。当然,我内心是拒绝的。
之后,提起我现在的研究,Tad直接就说“I dont like Neural Network, cuz we don't know what happened inside it.”然后就blahblah,又开始给我传播他的信息论。
正如这位严谨的教授所说的,现在的情况是,我们对这个东西其实并不是很清楚,但是就是拿来用。作为一门好的学问的话,理当是如力学,还有信息论这些一样,有很严谨的数学推导系统。
所以现在神经网络的情况就像这样。
Yo, Yo
我有一些输入,输入,
我有一个训练好的model,model* *
Bang! 我就有了想要的输出。
扯远了,大概这就是一些简单的说明了。之后再简单说说历史。
- 历史好才是真的好
最早是1943年,McCulloch 还有 Pitts 提出了最初的神经元模型,即沿用至今的"M-P 神经元模型"概念。
神经元接受来自n个其他神经元传来的信号,信号分配好一定权重,得到一个总输入值,之后和阈值比较,再通过‘激活函数’得到输出。
但当时他们提出的具体模型,主要特点是,只能输入二元值,也就是0和1. 再加一个阈值函数,输出0和1. 功能并不强大。
数年后,一位心理学家(上世纪那些心理学家各个都要逆天)Frank Rosenblatt发现这个模型,根本就不带学习机能的,这让计算机怎么好好学习。
于是,愤怒的学霸总是很可怕的,就自己动手捣鼓了一个新模型。提出了感知机(Perceptron),简单说单隐层前馈神经网络(Single Hidden Layer Forward Neural Network).
根本就不是人话。
这家伙虽然能够学习了,但是智商有限。它只由两层神经元组成,虽然还会根据输出调整权重,来进行学习,像这样。
(霍金说,每增加一个公式,读者就会少一半,反正就我一个读者,待会就还剩半个)
但是到底能力有限,学不会什么东西。给他一个奥赛罗的开局,来,给我分分,哪边是黑子,哪边是白子。指不定,它就给你分出三个黑子,或三个白子。
1969年,Minsky(明斯基大神)和Papert的《Perceptrons》书中就直接证明了这个问题。于是,既然大神都这样说了,那我们这些吃瓜群众当然是猛点头就可以了,很多实验室就不干了。大家对感知机的非常失望,这也带来了人工神经网络领域的冰河期。史称(AI Winter)。
直到之后,多层感知机,以及反向传播算法的提出,才使得人工神经领域走出低谷,重新发展起来。
所以这个故事告诉了我们,不要轻信大神的话。比如说我,就是被吴教授忽悠上了迁移学习(Transfer Learning)这个大坑。
正当大家以为,现在我左有多层网络,右有反向传播,其实已经有了现在所谓深度学习的大部分理论基础了。这样子,那怎么说,我们也应当是要搞出个大新闻了是吧。
然而,问题又来了。给了一身神装,但是等级不够,根本没有用。虽然有理论基础了,但是当时计算机太破,根本跑不动太大的神经网络。
就像我现在用六年前买的笔记本,训练大一点神经网络,保准给你先死个24小时机。然后当你满眼期盼,望着屏幕时,马上再给你跳出个错误信息。
于是乎,大家又不搞神经网络了(一个个都是墙头草),都跑去玩支持向量机这类的算法去了。只留下几位,现在赫赫有名的几大天王们,在一直撑着。
之后,在这个世纪,因为硬件的跟上,这个领域得到了爆发。也就是现在看到的状况,当然这是后话了。