深度学习知识点整理(二)——神经网络理解 / 反向传播 / **函数 / 神经网络优化
3. Neural Network Basics& Back Propagation
16.从线性分类到两层神经网络
linear f=Wx
2-layer NN f=W2max(0,W1x)
3-layer NN f=W3max(0,W2max(0,W1x))
17.常见的**函数
注:更多隐藏单元的数目代表着更大的容量
18. 神经网络的一般步骤?
- 模型初始化
- 前向传播
- 计算loss
- 计算梯度
- 反向传播
- 权重更新
- 迭代直到收敛
4. Improve DNN -1
-
为什么需要**函数?
-
**函数对模型学习、理解非常复杂和非线性的函数具有重要作用。
-
**函数可以引入非线性因素。如果不使用**函数,则输出信号仅是一个简单的线性函数。线性函
-
**函数可以把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。
20.为什么**函数需要非线性函数?
- 假若网络中全部是线性部件,那么线性的组合还是线性,与单独一个线性分类器无异。这样就做不到用非线性来逼近任意函数。
- 使用非线性**函数 ,以便使网络更加强大,增加它的能力,使它可以学习复杂的事物。使用非线性**函数,能够从输入输出之间生成非线性映射。
19. 各种**函数的优缺点?
-
sigmoid:
1)饱和神经元kill了梯度,所谓饱和就是指左下和右上的平缓区域,会造成梯度消失(梯度几乎为0)以及输出y的区分度不高 ----------------改进方式 BN
- 输入不是以0为中心
3)幂函数计算费时
-
tanh:
神经元会饱和,但是以0为中心
tanh VS sigmoid
相同点
- 优点:平滑
- 优点:易于求导
- 缺点:幂运算相对耗时
- 缺点:导数值小于 1,反向传播易导致梯度消失(Gradient Vanishing)
- 对于 Sigmoid 函数来说,它的值域是 (0,1),因此又有如下特点
- 优点:可以作为概率,辅助模型解释
- 缺点:输出值不以零为中心,可能导致模型收敛速度慢
-
Relu
1)不饱和
2)计算效率高
3)收敛速度快
4)比sigmoid更符合生物特性?
缺点:不是以0为中心的,
20. 什么是Zero-Centered
如图,模型参数走绿色箭头能够最快收敛,但由于输入值的符号总是为正,所以模型参数可能走类似红色折线的箭头。如此一来,使用 Sigmoid 函数作为**函数的神经网络,收敛速度就会慢上不少了。
21. 数据预处理?
白化,PCA,数据中心化
22. 权重初始化
注:不能全0初始化,因为这样无法打破对称性。
- 小的随机数初始化 x0.01
- 除以输入 sqrt