1.神经网络模型1
图1
这是一个神经网络的模型,通常设置一个x0,作为偏执单元或者偏置(bias)神经元。
图2
这里最后一句话,说的是系数矩阵θ,神经网络模型中,如果当前在j层有s_j个单元,在j+1层有s_j+1个单元,那么第j层的系数矩阵theta_j,是s_j+1(s_j +1)维的。
//就像图中,三个公式,应该是每层其实都有一个偏置单元。s_j+1是因为输入层得到的结果要是隐含层的输入,隐含层有s_j+1个单元,(s_j +1)是+上本层的偏置单元。
2.神经网络中的分类问题
图3
对于二分类的问题,输出层只有一个输出单元,对于多分类问题(k≥3),那么输出层就有k个输出单元。
3.神经网络的代价函数
图4
首先第一项是对输出层的输出求和,每个都乘上yk;正则项,theta右上角的(l)表示的是层数,j表示的是第j行吧,也就是一共s_j+1行,i表示的是s_j列,那么一共是L-1层的相加。每一层都加上了一个偏置,但是在图中并没有画出。通常正则化项都不把偏置项加入到其中,但是加入了之后影响也不大。
4.反向传播算法
图5
首先就是需要计算每个单元的误差,怎么计算呢?如图,输出层也就是第4层,就等于当前的计算结果-实际结果;第三层的误差,第三层权重矩阵转置*第四层误差向量*激活函数的导数。
图中还给了一个公式就是——求偏导项的公式——代价函数的对每层权重矩阵单个,求导的公式=l层第j个节点的值*l+1层第i个节点的误差。 (证明过程十分复杂)
图7
z这里代表的是:每层的计算结果,代入激活函数之后就可以作为下一层神经元的输入。是三维的。
以下为伪代码:
图8
将所有误差(三角形的