《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

http://blog.****.net/u011239443/article/details/78088602

3.1 调试处理

  • 参数:

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架
- 不要使用格子点调参,而应该使用随机点调参。因为格子点对于单一粒度
《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

  • 调参时,我们可以先调参选到几个结果较优的点(如图被蓝色圈住的)
    《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.2 为超参数选择合适的范围

对于 alpha 的取值:

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

我们不应该如上述的方法取值,而应先划分(如下),再取值:

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.3 超参数训练的实践:Pandas VS Caviar

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.4 正则化网络的**函数

输入的0均值标准化:

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

隐藏层的0均值标准化:

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.5 将 Batch Norm 拟合进神经网络

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

  • 使用微批:

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

  • 梯度下降:

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.6 Batch Norm 为什么奏效?

当训练集中X发布改变的时候,需要重新训练模型:
《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

我们吧某隐藏层之后的神经网络看成一个模型,可知就算是同分布的数据X从整个网络正向传播,由于W、b的变化,到了该隐藏层,输出分布也都会不同。所以Batch Norm 奏效就是由于避免的这种分布的不同而造成的问题:
《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.7 测试时的 Batch Norm

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.8 Softmax 回归

最终预测的各个类别的概率之和不一定等于1:
《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.9 训练一个 Softmax 分类器

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

  • 损失函数:
    《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架
  • 梯度下降:

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.10 深度学习框架

《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架

3.11 TensorFlow

参阅:TensorFlow实战——入门
《深度学习Ng》课程学习笔记02week3——超参数调试、Batch正则化和程序框架