神经网络的计算过程
Hello,大家好,我是Tony
欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!
神经网络的计算过程对应课程中9.1-9.8
神经网络的计算过程
对于二元分类问题(逻辑回归),系统输出的结果是1或0
对于多元分类问题,神经网络输出的结果是多维向量:
因此可以类比逻辑回归的代价函数来写出神经网络的代价函数:
一、一些要点
1.逻辑回归的代价函数(加正则化):
对于逻辑回归、代价函数、代价函数正则化可以查看这篇博客:逻辑回归模型及代价函数正则化
对于机器学习中为什么要正则化可以查看这篇博客:机器学习中对过拟合的正则化策略
2、神经网络的代价函数
从上式可以看出 ,这相当于多个逻辑回归代价函数相加
3、反向传播算法(Back Propagation Algorithm)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mBKP8VqU-1581329680833)(E:\Typora\WorkSpace\image-20200206175124153.png)]
利用反向传播算法计算DVec
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CtG0drLb-1581329680834)(E:\Typora\WorkSpace\image-20200206175616537.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cukj9eog-1581329680835)(E:\Typora\WorkSpace\image-20200206193526054.png)]
4、梯度检测(Gradient Checking)
在进行梯度下降之后,要进行梯度检测,以保证梯度下降的正确性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WMGgWHTU-1581329680836)(E:\Typora\WorkSpace\image-20200210165318872.png)]
for i=1:n
thetaPlus=theta;
thetaPlus(i)=thetaPlus(i)+EPSILON;
thetaMinus=theta;
thetaMinus(i)=thetaMinus(i)-EPSILON;
gradApprox(i)=(J(thetaPlus)-J(thetaMinus))/(2*EPSILON);
end
Check gradApprox≈DVex?(from backpop),就是看这样求出的导数是否接近反向传播算法的值
5 神经网络的计算过程theta值初始化
把theta值控制在[-E,E]之间
Theta1=rand(10,11)*(2*INIT_EPSILON-INIT_EPSILON;
Theta2=rand(1,11)*(2*INIT_EPSILON-INIT_EPSILON;
二、神经网络实现过程
-
随机初始化权重接近0的值
-
前向传播算法计算
-
计算代价函数J(θ)
-
反向传播算法计算局部偏导数
-
梯度检测
-
梯度下降或其他高级算法来最小化代价函 数
重点:
确保 在迭代代码中不含梯度检测的代码,因为梯度检测速度比反向传播算法相比很慢,
上一篇: 离散Hopfield神经网络的联想记忆
下一篇: WebServer的简单实现