3.9 神经网络的梯度下降法
对于单隐层神经网络而言,主要参数就是,并且输入特征的维度可以记为,第一层有个隐藏单元,第二层有个输出单元,目前仅仅见过只有一个输出单元的情况;的维度是,的维度是,的维度是,的维度是,成本函数为:
训练神经网络时,随机初始化参数很重要,而不是全令其为0;
每个梯度下降循环都要计算的预测值,即,然后要计算导数,即,最后更新参数,即
正向传播过程为:
那么反向传播求导数的方程怎么写?
假设我们在做二元分类,则,方程如下:
版本:m个样本Back Prop
#注意指令用于对矩阵的一个维度进行求和,表示水平方向相加求和,而开关就是防止输出这些秩为1的数组,使和一样是维矩阵;
#注意符号是指逐个元素乘积,是一个维的矩阵,也是一个维的矩阵;
3.10 反向传播的直观学习
单样本Back Prop计算:
以上是针对单样本下的计算图,老吴的这个图很乱,只要看红色箭头即可,每个导数都能求出来,按反向传播一步步来:
(1)(2)式怎么证明?
显然,前面已经推导过了,这里不过是把前面的改成了而已;
(3)(4)式怎么证明?
是维,这里,所以都是维;
且都是实数,故由矩阵乘法可得:
(5)(6)式怎么证明?
都是维,故写为:
由前面可得:
这里我都有点看不懂了,原来是:
都是维,故写为:
所以要分析,首先分析:
(7)(8)式怎么证明?
m个样本的训练如何向量化?
笔者虽然证明了向量化的过程,但和前面证明大同小异,故给出总结公式:
版本:m个样本Back prop
3.11 随机初始化
对于 如果将其全部初始化为0,是可行的;
但不能将 全部初始化为0,甚至不可以将其中任何一个初始化为0;
这是因为,举个例子,一旦把初始化为0矩阵,那么第一层的所有隐藏单元都是完全对称的,它们将计算同样的函数,甚至不仅 会都一样,而且反向传播时会使 都一样,这会使神经网络无论训练多久都会保持这种完全对称性不变,相当不利,多个神经元会干同样的事情,我们想要的是不同的隐藏单元去计算不同的数值函数;
随机化命令如下:
#乘一个很小的数字将权重初始化为很小的随机数;当没有太多隐藏层时一般这个很小的数取0.01即可,但层数深时就应该试试别的数了;
类似地将 初始化;
当你使用函数或函数激活时,权重太大会导致计算的激活函数值变得很大,使等落到函数导数很小的部分,降低学习速度;
标签:初始化,吴恩达,函数,ai,3.11,样本,矩阵,神经网络,维度 From: https://blog.csdn.net/weixin_66188523/article/details/140862988