传统的机器学习模型过于依赖数据的特征,可解释性强,我们可以通过模型训练结果的权重直观地看到哪个事物特征发挥了多少程度的作用。可是
- 并不是所有样本都有显示的可描述特征。比如一张图片、一段语音或者一些特殊事物。
- 有些事物通过显式特征的方式不容易分辨。采集两个人A,B的录音信息,A说“狗狗”和“豆豆”,B说“宠物犬”。因为每个人都有自己的口音特征,所以对于传统的机器学习模型来说,A的“狗狗”和“豆豆”表现得更相似;但在语义层面,A的“狗狗”和B的“宠物犬”才更相似。
我们小时候认识狗的时候并没有人告诉我们狗有什么特征,认识狗就好像是自然习得一样。其实,每一次看见自家的狗还是路上的小狗都在一次次刷新,巩固我们的知识。这给了我们启发:与其努力去解剖事物特征,是不是可以通过喂给模型海量的样本,让模型自动学会分析事物,挖掘出隐含的特征呢?
这就是深度学习灵感的源头:不去人工设计特征,而是通过模拟生物的学习方式,以“大数据+深度学习”的模式让模型自动剖析出样本的隐含特征。深度学习的核心原理可以有很多种方式解释,数学推到,“感知机”,都可以去理解,这里用生物学来解释——神经网络。
从生物学角度理解神经网络
大脑中的神经网络
大脑的核心功能是大脑皮层,分为左右两半,基本构成单元是神经元细胞。如图,它有一个特殊的细胞体,和一个能把神经信息从一个神经元传递到下一个神经元的独特结构:突触。
对神经元进行刺激发现,神经元有两种状态,静默状态和激活状态。当从其他的神经元传递的信号满足特定条件(阈值(threshold))时,神经元会进入激活状态,改变对外输出的生物电压,释放频率信号(spike),并将这一信号传递给下游的神经元。
好了,介绍完神经元的大致结构,下面来看一下几个关于神经元的实验结论:
- 脑皮层是由神经元连接组成的,并且神经元携带着某些参数信息,具有“激活函数”的性质
- 在脑皮层中,相同的神经元细胞按区域组成了不同功能模块
- 对输入的生物刺激,大脑不同皮层模块的神经元细胞有着不同的响应处理函数
- 不同神经元细胞的响应处理函数的差异,是通过不同的数据训练(生物刺激信号)演变而成的,进而变成不同功能的皮层组织。也就是说脑皮层是由神经元组成的学习模型,各个皮层功能区域只是经过不同的数据训练形成的不同功能的同一种模型
注:具体的四个实验请去看原书《机器学习之路》 (阿布 胥嘉幸编著),写的很精彩,也用代码演示了
机器学习中的神经网络
先来看一下神经网络(neural work)的定义:神经网络是由具具有适应性的简单单元组成的广泛并经行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
神经网络中最基本的成分是神经元(neuron)模型,即上述定义中的“简单单元“。上文提到如果神经元中的电位超过了一个“阈值”,那么它就会被激活,并向其他神经元传送信息。
我们将生物中神经元运作的机制简化为一个模型——“M-P神经元模型”。在这个模型中,神经元接收到来自n个其他神经元传传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元将接受到的总输入值与神经元的阈值进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出。
理想中的激活函数是图(a)中的阶跃函数,它将输入值映射为输出值“0”或“1”,“1”对应着神经元兴奋,“0”对应于神经元抑制。然而,阶跃函数不连续,不光滑,因此实际常用Sigmoid函数作为激活函数。典型的Sigmoid函数如图(b),它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此有时也称为“挤压函数”(squashing function)。
把许多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。
神经网络初探,因为现在是主攻学习机器学习,而神经网络大多是在深度学习中应用的,就先这样了解一下皮毛╰( ̄ω ̄o)
参考:
阿布 胥嘉幸《机器学习之路》
周志华《机器学习》