人工神经网络的第一次寒冬
图像在计算机中是以矩阵形式存储的
矩阵的数是像素值,在这张图像素值是0~255,0是纯黑色,255纯白色
可以把这些像素值从左到右,从上到下存下来,这样可以形成一个列向量X,假设原图长为M,宽为N,列向量X的维度为MN,而y=+1:x是连通图;y=-1:x不是连通图
识别连通图问题是非线性可分的
但是从1969年到1980年人工神经网络方面的研究陷入停滞,历史上称为人工神经网络研究的第一次寒冬。
直到上个实际80年代初才得到复苏,基于多个神经元的多层神经网络诞生
多层神经网络的结构
最简单的多层神经网络结构
输入与输出关系:
待求参数是第一层网络中的(w11,w12,w21,w22,b1,b2)
第二层网络中的(w1,w2,b3)
注:非线性函数φ是必须的
如果不加φ,公式会变成
输出仍是输入的线性加权求和再加偏置的形式,仍是一个神经元的感知器模型
我们要加的非线性函数是阶跃函数
定理:如果非线性函数采用阶跃函数,那么三层神经网络可以模拟任意的非线性函数。
注:先判断是否在其中一个三角形,再判断是否在两个三角形的内部
然而实际应用中我们不知道决策函数是什么,只知道一些训练样本和这些训练样本的标签,所以我们只能采取另一种思路:
首先假定神经网络是某一种结构,再将一堆训练数据输入到这个网络中,去估计这个网络的待求参数。
算法模型的复杂度,要与训练样本的复杂度相匹配。
一般通过经验去设置
假定 神经网络设置已经确定的前提下,如何优化网络中待求的参数
比如
因此我们要:
E(X,Y)指遍历训练样本及标签的数学期望,对所有训练样本取平均值
由于y是w,b的非凸函数,因此我们取不到全局极值,但是我们可以利用梯度下降法求解局部最小值
梯度下降法:
(1)随机选取w和b的初始值(w(0),b(0))
(2)应用迭代算法求目标函数的局部极值:
假设目标函数f(x)是一个一维函数
我们可以看到它有许多极小值,我们的梯度下降法是求它的一个局部极小值的函数
小心的设置a的值
当我们的a很大,下山时步子会很大,就有可能错过局部极值点
当a很小,会出现很久都收敛不到局部极值点
上面的情况是一维的,同样我们可以推广到多维。
如我们要最小化二维函数E(W,B)
代入上面式子并简化后可以得到