深度学习原理6
2018-05-04 本文已影响9人
灵妍
6、神经网络如何训练
两种解决问题的方式.PNG世界上有两种结局问题的方式,一种是指令式的编程语言,一种是自我学习式的神经网络。
对于辨别猫和狗的问题,如果是指令式的编程语言就会识别出猫或狗的眼睛、鼻子、毛发、身材比例等特征,然后通过比较判断这是猫还是狗;如果是神经网络,我们会给它非常多的训练集,让它自己找出猫和狗之间的一些差异,然后利用训练好的识别猫和狗的神经网络,我们只需要将一张图片丢给它,它就会自动识别。
感知器.PNG
一种比较简单的神经网络的结构或者说是框架,我们把它叫做感知器。
感知器的第一次正向传播.PNG
我们将预测的值与真实的值作比较。
损失函数.PNG
损失函数在整个机器学习中都非常重要,它是预测值与真实值的误差。
最后我们优化神经网络的问题就变成最小化或者说是优化损失函数的问题。
第一次反向传播.PNG
反向传播就是把损失函数传播到我们需要优化的每一个参数上,我们会用一种梯度下降的方法,告诉每一个权重对于损失函数的贡献率有多少,然后基于这些贡献对参数进行更新。
简单化模型.PNG
基于第一个样本的一次正向和反向传播.PNG
第二轮更新.PNG
第三轮更新.PNG
损失函数的上升与下降与学习速率有关,当我们的学习速率取的比较小时,损失函数会下降,当我们的学习速率取的比较大时,损失函数有可能会上升,不过这不要紧,最终我们会把神经网络训练成准确预测因变量的一个模型。
第四轮更新.PNG
第五轮更新.PNG
最后一轮.PNG
多个观察值的情况.PNG
之前演示了只有一个观察值的神经网络如何训练,这里演示有多个观察值的神经网络如何训练。
总损失函数.PNG
虽然这里画了8附图,但是神经网络只有一个,这8副图的参数都是一样的。
更新参数.PNG
这里多个例子只是对损失函数的值贡献了,但是对于更新过程是没有贡献的,我们有之前对一个例子的损失函数到后来对多个例子的损失函数求和。
损失函数参考文献.PNG