吴恩达Deeplearning.ai 知识点梳理(course 2,week 3)

这周主要讲的是超参数的调试、Batch Norm以及多分类。

Hyperparameter Tuning

Tuning Process

  一般来说,最重要的就是那个Learning_rate,也就是α 。第二重要的一般是动量参数β 以及Hidden Units的数量,还有mini-batch的大小。第三是层数以及learning_rate decay,最后是adam的参数,但是一般都是默认值0.9,0.999以及10e-8。
Hyperparameter Tuning

  第二是调参时尽量不要用正交的Grid的方式进行参数搜索,因为一开始其实并不知道那个参数比较重要,所以尽可能的随机采集。多一些数据,了解一下每个参数在分布在哪儿对模型比较优。

  第三是先粗调再精调。可能随机搜索出来的几个比较好,那就在这个范围找。

Random Search & Coarse to Fine

Parameter scale

scale 有几种:

  1. 层数(2~4),单元个数(50~100),均匀采样
  2. α ,0.0001~1,对数采样
  3. β ,0.9~0.999,可以用1β ,然后对数采样。

  另外要注意的是,以β 举例,0.9000和0.9005可能差别不大,但是对于0.999和0.9995差别就很大了,因为第一个是111000 ,第二个是112000 ,所以相对变化很重要。

调参模式:熊猫和鱼子酱

  1. 数据是会时不时发生变化的,随着数据的变化,模型参数应该与时俱进,时不时重新更新一下数据。
  2. 调参模式,如果硬件条件有限,可以拿一个模型精细的慢慢调,这个就类似于熊猫每次只生1、2个孩子,然后仔细照看;还有一种是鱼子模式,鱼每次生上亿个卵,看哪个能成。这两种模式可以根据环境条件具体情况具体来做。

Batch Normalization

什么是Batch Norm?

  Batch Norm是给每一层都加上输入归一化,如下图所示:

Batch Norm

首先对输入计算均值和方差,然后做归一化,然后给分配上一个缩放和偏移,这个缩放和偏移是“学习”得来的。

Batch Norm

Batch Norm的位置在上图所示的位置,也就是Z和A之间。

Mini-Batch的Batch Norm以及test time的处理

Training-Test-Minibatch

当使用Mini-Batch的时候,使用指数衰减平均对当前的Mini-Batch的均值和方差。然后最后test的时候,就用最后一个均值和方差就行了。

为什么Batch Norm好用?

  1. Batch Norm最大的作用是降低Covariate Shift的影响。简要的说就是输入特征发生变化了:对每一层来说,在学习过程中,由于前一层的参数总是发生变化,那么对于后一层,Feature Vector总是发生变化,那么学习起来就会更困难。如果我们对每一层做一个均值方差归一化,那么至少每一层的Feature Vector的均值和方差是比较稳定的,这样就减小了Covariate Shift的影响。
  2. Regularization的作用。Batch Norm还有一些轻微的正则化的作用。这是由于加上了缩放和偏移,导致给Z加上了一些噪声,类似于drop out,所以有轻微的正则化作用。

多分类

SoftMax Activation Function

SoftMax
SoftMax就是对输出的Z中每一个元素做exp(),然后计算exp()后的每一个元素的权重。

Loss Function

如下图所示:
Loss Function

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章