CNN基础知识
来源:互联网 发布:网络红歌2016流行歌曲 编辑:程序博客网 时间:2024/06/15 04:18
关于权值初始化方法
文件 caffe/include/filler.hpp提供了7种权值初始化的方法,分别为:常量初始化(constant)、高斯分布初始化(gaussian)、positive_unitball初始化、均匀分布初始化(uniform)、xavier初始化、msra初始化、双线性初始化(bilinear)。
权值初始化讲解:http://www.cnblogs.com/yinheyi/p/6165716.html
filler层代码解析:http://blog.csdn.net/xizero00/article/details/50921692
常用的激活函数
Sigmoid:取值范围是(0,1)
主要缺点:
1。函数饱和使梯度消失
sigmoid神经元在值0或1的时候接近饱和,这些区域梯度几乎为0。因此在反向传播时,这个局部梯度会使整个代价函数关于该单元输出的梯度相乘,结果也会接近为0。
除此之外,为了防止过饱和,必须对于权值矩阵的初始化特别留意。比如,如果初始化权重过大,那么大多数神经元将会饱和,导致网络几乎不学习。
2。sigmoid函数不是关于原点中心对称
这个特性会导致后面网络层的输入也不是零中心的,进而影响梯度下降的运作。
因为如果输入都是正数的话(如
当然,如果是按 batch 去训练,那么每个 batch 可能得到不同的信号,整个批量的梯度加起来后可以缓解这个问题。因此,该问题相对于上面的神经元饱和问题来说只是个小麻烦,没有那么严重。
Tanh函数:取值范围【-1,1】
tanh 函数也称为双曲正切函数。同样存在饱和问题,但它的输出是零中心的,因此实际中 tanh 比 sigmoid 更受欢迎。
tanh 函数实际上是一个放大的 sigmoid 函数,数学关系为:
ReLU:
ReLU 近些年来非常流行。它的数学公式为:
优点:
相较于 sigmoid 和 tanh 函数,ReLU 对于 SGD 的收敛有巨大的加速作用(Alex Krizhevsky 指出有 6 倍之多)。有人认为这是由它的线性、非饱和的公式导致的。
缺点:
举例来说:一个非常大的梯度经过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了。如果这种情况发生,那么从此所有流过这个神经元的梯度将都变成 0。
也就是说,这个 ReLU 单元在训练中将不可逆转的死亡,导致了数据多样化的丢失。实际中,如果学习率设置得太高,可能会发现网络中 40% 的神经元都会死掉(在整个训练集中这些神经元都不会被激活)。
合理设置学习率,会降低这种情况的发生概率。
参考:
http://www.jianshu.com/p/6df4ab7c235c
http://www.jianshu.com/p/22d9720dbf1a
- CNN基础知识
- 神经网络和CNN的一些基础概念,基础知识的梳理
- CNN
- CNN
- cnn
- CNN
- CNN
- CNN
- CNN
- CNN
- CNN
- CNN
- CNN
- cnn
- CNN
- CNN
- CNN
- CNN
- OSG 学习第三天:渲染状态
- GPS精度因子
- 最小生成树
- 从A表中选取数据列表到B表中然后统计选取的数据字段总行值的sql语句
- 【Java编程】使用List和Map存放多个图书信息
- CNN基础知识
- java-工具-tomcat-加载机制
- 【LeetCode】136 Single Number
- 1.8 C# 继承和继承关系中的构造函数
- python day05 编写一个给定多项式的简易计算机 re模块及正则匹配应用
- JavaScript数据类型
- Leetcode 650. 2 Keys Keyboard 2指键盘 解题报告
- 【LeetCode】238. Product of Array Except Self
- Python3笔记-廖雪峰