0.生物神经元工作模式
1)神经元形成网络 // 网络结构
2)来自其他多个神经元的信号和成为神经元的输入,且每个信号对应的权重不一样 // wx+…
3)如果信号和超过某固定阈值,则神经元做出反应 // 偏置b
4)输出信号可以用数字信号0、1来表示。即使有多个输出值,其值也是同一个 // 符号函数
1. 感知机算法
以上就是从生物学界得到启发后抽象并发展提出的感知机(Perceptron)模型。
说明:
输入向量X的各维特征分量分别乘以各自的权值w,后在求和,添加偏置b,再喂入一个激活函数,得到分类的判定结果。这里的激活函数使用符号函数。
具体数学形式:
𝑧 = 𝑤1 𝑥1 + 𝑤2 𝑥2 + ⋯+ 𝑤𝑛 𝑥𝑛 + 𝑏
向量形式:
𝑧 = 𝒘𝑇𝒙+ 𝑏
添加线性函数:
𝑎 = 𝜎(𝑧) = 𝜎(𝒘𝑇𝒙+ 𝑏)
符号函数(Sign function):
感知机模型的缺点:
可以看到感知机这个简单的网络模型可以完成一些简单的二分类任务。
但是 Marvin Lee Minsky 和 Seymour Papert 于 1969 年在《Perceptrons》书中证明了以感知机为代表的线性模型不能解决异或 (XOR)等线性不可分问题,这直接导致了当时新兴地神经网络的研究进入了低谷期。尽管 感知机模型不能解决线性不可分问题,但书中也提到通过嵌套多层神经网络可以解决。
2.多层神经网络
如下,是一个多层神经网络的示意图。对比上面的感知机数学模型。我们可以看到二者之间的核心结构并没有多大区别。实际上,多层神经网络只是在感知机模型的基础上用可导的非线性函数替换感知机原不可导的激活函数以及堆叠多层网络层来增加网络的表达能力而已。输入向量X的层我们把它称之为输入层,由最后多个输出结点构成的层我们把它称为输出层,此外,中间结点我们把它们称为隐藏层。
以上图为例,我们简单列出网络结构的数学公式
该网络并行堆叠了 2 个神经元, 构成 3 输入节点,2 个输出节点的网络层。
第一个输出节点的输出:
𝑜1 = 𝜎(𝑤11 ∗ 𝑥1 + 𝑤21 ∗ 𝑥2 + 𝑤 1 ∗ 𝑥 + 𝑏1)
第二个输出节点的输出:
𝑜2 = 𝜎(𝑤12 ∗ 𝑥1 + 𝑤22 ∗ 𝑥2 + 𝑤 2 ∗ 𝑥 +𝑏1)
输出向量为𝒐 = [𝑜1,𝑜2]
可以看到,网络结构可以采用矩阵乘法的形式简洁表示。其他多层神经网络的表示形式无非就是多乘几个规定维度的矩阵罢了!
但问题到现在还没解决,像刚才我们说了,多层神经网络在两个方面区别于感知机。那么现在深入思考下,为什么多层神经网络在简单改变了两方面的内容之后就可以获得强大的表征的能力。接下来简单讲解:
2.1 为何使用可导的非线性函数作为激活函数?
2.1.1:
关于可导的问题:
感知机是应用于二类线性可分场景下的算法,其构建思想就是在样本空间中找到一个可以分离两类数据的决策面就行。且在数学推导上可以得到只要数据线性可分,感知机算法就一定能在有限步内停止迭代,得到一个分离超平面。而多层神经网络,它具有强大的表征能力与广阔的使用场景。但从数学角度上看,求解神经网络特定系数得问题可以把其简单归结为一个最优化问题。最优化的求解核心算法是梯度下降法,而现在如果激活函数不可导,那么就无法利用梯度下降法进行参数优化,所以激活函数规定是可导的
关于激活函数为何是非线性函数:
如上是一个简单的神经网络,网络结构可以写成如下形式
合并上述表达式得到最终的输出y:
假设现在两个激活函数是线性函数且假设二者表达式为y=x,则上式y可以规整如下:
可以看到如果激活函数是线性函数,那么最终的输出结果经过化简后还会是一个线性函数,等价于如下结构
所以如果激活函数是线性函数,那么最终再复杂的网络结构都可以化简等价于如上的简单的结构,那么模型对于复杂分类问题本质上还是按照线性决策面去划分,就做不到强大的表征能力了。
2.2 堆叠多层网络层
2.2.1 为何堆叠了多层神经网络就能提升网络的表征能力
下面通过图示的方式简单说明,不涉及严谨的数学证明
定理:三层神经网络可以模拟所有决策面
假设问题是下图的分类问题,C1、C2表示我们要划分的两类数据标签。直观上看图我们就知道使用感知机算法得不到相应的决策面。同时,直观上我们知道可以使用3个线性函数包围起相应的C1类数据,这样我们就可以得到最终的结果了。
现在针对该问题,我们构造如下神经网络结构:为了讲解方便,激活函数上我们使用符号函数。3条决策面我们假设但样本点落在C1范围内,三者的判定都为1
在这边我们先忽略具体的参数求解,假设我们训练得到了相应模型参数,现在给定一个新的样本点。要求它所对应的y的label,
网络结构中,Z1,Z2,Z3分别为经过符号函数后对应的值,再w1、w2、w3值为1时,b为-2.5时,我们知道,只有Z1,Z2,Z3三者取值都为1的时候,y(再经过一个符号激活函数)为1,因此我们就可进行准确的判定。
依次类推:
当决策面如下,我们可以构造右边的网络结构进行分类求解。
当分类决策面是⚪的时候,我们利用微积分的思想,将圆看作无限多线段的组合。而于此对应的网络结构,就是隐藏层使用无限多的神经元
如果分类决策面如下所示,我们就可以构造右边所示的网络结构,达到三层的网络结构。在最后输出判定时,w1为1、w2为1,b取0.5,就可以对输入样本点进行正确分类。
上面借助图示化的方式,简单展示了3层神经网络可以拟合任意决策面,进而侧面体现了多层神经网络的表征能力。
后续blog我们专注于神经网络参数求解算法