Task3.1 Batch Normalization 批量归一化
Error surface 在比较崎岖的时候很难train,所以我们需要把它”铲平“。
----> 引入Batch normalization
Changing Landscape
当每一个 dimension 的 scale 值差距很大时,就会产生左图这样的 Error surface;
----> 给不同的 dimension 的 scale 值同样的数值范围,制造比较好的 Error surface,更好training。 like 右图。
Feature Normalization
做完 normalization ,means ---> 0, variances ---> 1;
----> 所有的不同的 dimension 的 scale 就都在 0 上下了。
其实在 z / a 做 feature normalization,效果差不多;如果选择 sigmoid,那么推荐在 z 做 feature normalization;
如何对 z 做 feature normalization 呢?
先算 mu / sigma;
做完 feature normalization,这个时候Example1 x1 中的 z1 变化,那么 z2,z3 也跟着变化,Example2 3也会变化。
----> 这样就变成了 一个巨大的 network 来处理一堆 examples;
----> Batch Normalization Cool!
引入 gamma / beta;初始情况下,gamma vector为 1 / beta vector为 0;
现实中的 batch normalization - Testing
Task 3.2 卷积神经网络(Convolutional Neural Networks,CNN)
专用于影像方面
第一种介绍方式
Image Classification
能辨识多少种类的东西,取决于最右侧的 y 长度有多少;
如果它的长度有2000,那么就说明它可以辨识出2000种事物。
y‘ 是 model 做判断后输出的值;与 y 作比较,得出的结果 如果是 1,则是 cat。
100(pixels) x 100 x 3channels 把 组成图片的这些数字列出来排成一排,就是一个巨大的向量。而这个向量可以作为 network的输入。每一个 pixel 有rgb 3个颜色组成,每一维的数值就代表了某一个位置的某一个颜色的强度。
Observation 1
Identifying some critical patterns ----> 抓住重要的特征(人也一样)
每一个neural都要去试图抓住它的pattern。
----> 神经网络结合这些patterns可以告诉你说,它看到了一只鸟。
Simplification 1 - 简化
neural 守备的区域可以重叠,可以有多个 neural 守备同一个 receptive field;
形成新的守备范围 所移动的距离 叫作 stride(设1 / 2就好)。超出了影像的范围叫做 padding。
Simplification 1 - Typical Setting
Observation 2
相同的特征可能出现在不同图片的不同位置----> 一定有一个 neural 能抓住这种特征。
难道每个守备区域都需要一个 “beak” detector。
Simplification 2
parameter sharing 共享参数
虽然参数(w1等)相同,但它们的守备位置不同(输入x不同),所以它们的输出不可能相同。让一部分neurons共享参数。
----> 这就意味着,守备相同区域的 neurons 不能共享参数(因为它们的输出相同)。
Simplification 2 - Typical Setting
每一个守备区域有 64个neurons;
每一个守备区域只有一组参数;第一个守备区域中第一个neuron和第二个守备区域中第一个neuron的 参数相同。(下图用颜色区分,且用 filter 标识)
Benefit of Convolutional Layer
可发现 CNN 的 model bias 比较大,虽然大,但它专为影像设计,所以不算问题。
第二种介绍方式
Convolutional Layer
Convolutional Layer中有很多 filter ;
filter就是一个一个的 tensor 组成,其中的数值就是model中的parameter(通过gradient descent来找到);下图假设这些parameter数值已找到。
当 像上图连成一条线时,值最大,为3。根据输出也可反推。
两种方式的比较