目录
神经网络概览
逻辑回归可以看成只有一个神经元的神经网络,浅层神经网络就是由多个神经元堆叠而成的。下图,浅层神经网络的神经元也是类似逻辑回归中的单元,计算z、a。
一些标记的约定:[1]右上角方括号里面的数字表示第几层(输入层是[0]),我们将下图的神经网络成为双层神经网络,由输入层、隐藏层、输出层组成,其中输入层不算做标准的神经网络层,故是双层。
前向传播的向量化
这边将m个样本堆叠,避免了显式的for♻️遍历样本。其中,表示第i层的神经元数目,输入层是0,表示输入层,m表示样本数。
激活函数
常见的传统激活函数
导数
反向传播向量化
假设,输出层的激活函数是sigmoid函数,则我们可以非常容易的推出每一步的导数,可以借助矩阵形状来推一下。
一般化:
假设,输出层的激活函数是sigmoid函数,则我们可以非常容易的推出每一步的导数,可以借助矩阵形状来推一下。
随机初始化
逻辑回归:可以将参数全部初始化为0,因为损失函数是凸函数,理论上无论初始化为什么值都能达到最优解。
但若神经网络中各参数数组全部初始化为0的话,再使用梯度下降算法,将会无效。
若全为0,则对于任何输入样本,和都是一样的,第一层隐藏层单元的值全是一样的(因为该层所有的单元都是同样的初始化),也即第一层隐藏层的所有单元均在做完全一样的计算。在此基础上,做反向传播的时候,出于对称性和也是相同的(这边需要假设后边的权重也是一样的例如),多次迭代之后,第一层隐层所有单元依旧计算的是相同的函数,他们对输出单元的影响也一样。此时同一层有多个单元是毫无意义的,因为都在做相同的事