在上一次总结中,总结了NN的基本结构。
接下来的几次课,对一些具体细节进行讲解。
比如激活函数、参数初始化、参数更新等等。
=========================================================================================
首先,课程做 一个小插曲:
经常使用已经训练好的模型》》Finetune network
具体例子:
使用现成模型,修改部分层,使用现成的参数做初始参数。
以caffe为例,其提供了很多现成的模型:
https://github.com/BVLC/caffe/wiki/Model-Zoo
使用Finetune 主要是计算资源有限。
其次是上节课主要内容的简单回顾:
概括了NN的主要流程: 得到数据 ---》前向传播 ---》反向传播 ---》更新参数
另外便是链式法则:
实例:
NN的结构特点:
加入非线性:
与神经系统比较:
多层NN结构:
注意: 有些资料把输入层也算在NN的层数里。
=========================================================================================
本章的内容如下:
一些历史回顾
简单的字母识别系统:
当时就使用了伪梯度下降。其实不是严格可导。
之后形成了网络结构,并使用电路实现:
进一步形成了多层网络:
反向传播算法开始流行起来。
Deep Learning :
使用了非监督学习进行预处理,然后将得到的结果放到back propagation中。如今不需要这样做了。
技术革新:
2012年的图像分类结果最优。从此DL火起来了。
技术内容总览:
=========================================================================================
1、激活函数
激活函数的作用:
常用激活函数:
Sigmoid:特点以及缺陷
比较左侧s输入值与经过f后的输出值,会导致梯度消失、数值溢出。
当输入为正时,偏导均为正或均为负。
tanh:
仍然会有梯度消失的后果。
ReLU (Rectified Linear Unit):
其不会有溢出,计算更快。当x<0时,梯度为0.
缺点:出现死亡状态。
为负值输入时,不能更新参数。一般是学习率过高导致。另外使用合适的初始化,比如加入小的bias。
Leaky ReLU :解决负值不能更新参数。
ELU: