文章目录
一、深度学习的三个步骤
Step1:神经网络(Neural network)
- 神经网络里的结点类似神经元
- 神经网络有很多不同的连接方式,可以产生不同的结构,需要手动设计
- 完全前馈神经网络:输入信号进入网络后,信号流动是单向的,一直到输出层
- 全链接:每一层之间两两都有连接
- 前馈:从后往前传
- 深度的理解:可以有很多很多层:引入矩阵计算
- 本质:通过隐藏层进行特征转换,把隐藏层通过特征提取来替代原来的特征工程,这样在最后一个隐藏层输出的就是一组新的特征。
Step2:模型评估(Goodness of function)
- 一般采用损失函数来反应模型的好坏,对于神经网络来说,我们采用交叉熵(cross entropy)函数来对损失进行计算,调整参数,让交叉熵越小越好。
- 总体损失:要计算整体所有训练数据的损失,然后把所有的训练数据的损失都加起来,得到一个总体损失L。然后在function set里面找到一组能最小化这个总体损失的函数,或者是找一组神经网络的参数,来最小化总体损失。
Step3:选择最优函数(Pick best function)
- 梯度下降:之前提过
- 反向传播
二、反向传播
损失对参数梯度的反向传播可以被这样直观解释:由A到传播B,即由
∂
L
/
∂
A
\partial L/\partial A
∂L/∂A 得到
∂
L
/
∂
B
\partial L/\partial B
∂L/∂B ,由导数链式法则
∂
L
/
∂
B
=
∂
L
/
∂
A
∗
∂
A
/
∂
B
\partial L/\partial B=\partial L/\partial A * \partial A/\partial B
∂L/∂B=∂L/∂A∗∂A/∂B实现。所以神经网络的BP就是通过链式法则求出损失对所有参数梯度的过程。