不必时时怀念我,也不要指望我回来,我离开以后,你们就是我,
Vive le peuple!
代价函数
神经网络的代价函数公式
看着挺复杂的
它求代价函数的方法和逻辑回归的方法类似,区别是它会将每个分类的代价函数进行相加
反向传播算法
为了实现神经网络的梯度下降,我们需要计算代价函数的偏导
这时候我们需要反向传播算法来实现这一目的
图为神经网络的前向传播
我想都应该看得懂。。。。
神经网络的后向传播
反向传播和前向传播的过程比较相似
每一项计算的是估计值和实际值之间的误差
每一项与对应的aj值相乘求得的即是代价函数对于theta的偏导
吴恩达这里没讲原理,只是讲了公式代表什么,如果想知道底层原理的话,建议找找其他教程
反向传播的伪代码
梯度检测
如果神经网络出现了什么bug,是不好检查的,而梯度检测就是应对这种情况的方法
我们的方法是通过用公式求偏/导数进行比较
用定义求导数都应该会吧
将此思想推广到多个特征上
将验证值和结果值比较就可以看有没有异常
如果不需要进行验证,请将此功能关掉,因为这个算法很吃算力
随机初始化
如果将参数初始化为0,或者说相同的值,就会导致求得的结果没有意义,神经网络在一次前向传播之后的传播都不会进行更新
解决方法就是将特征矩阵进行随机生成
吴对于设计神经网络建议
1.隐藏层默认使用一层,每个隐藏层的单元数相同
2.输入单元数和x(i)的维度一样,输出单元数和分类数一样