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

Classic Network

LeNet - 5

LeNet-5是1998年的,非常早期,总共有60k个parameter,有如下几个特点:
1. 结构已经是conv pool conv pool FC FC Output 这种架构,可以看出来当年使用的还是avg pool,现在经常用的是max pool;
2. 随着层次增加 nH,nW n H , n W 下降, nC n C 上升;
3. Activation function是sigmoid/tanh,而现在是ReLU。

AlexNet

AlexNet是2012年ImageNet的比赛中让DL大放光彩的一个网络,有如下几个特点:
1. 和LeNet非常像,但是深度会非常深;
2. 使用了ReLU Activation;
3. 使用多个GPU进行权重计算;
4. 使用了Local Response Normalization(LRN,现在已经很少使用了)

VGG-16

VGG-16是15年的,特点是:
1. 非常深,参数在135M
2. 结构比较uniform

ResNet

Residual Network

ResNet包含了Residual Block,如下图所示

在main path上边加入了short cut/skip 连接。

由于深层次网络会出现梯度消失/爆炸的问题,所以理论上虽然layers数量增加,training error会下降,但是实际上到达一定layers之后,training error又会上升。而ResNet则不会。

为什么ResNet Work?

假设我们在一个NN后边加上一个ResBlock,由于shortcut的存在,当ResBlock里边的层中W全是0的时候,能够得到 a[l+2]=g(z[l+1]+a[l])=g(W[l+1]a[l+1]+b[l+1]+a[l])=a[l],g=ReLU,W=0 a [ l + 2 ] = g ( z [ l + 1 ] + a [ l ] ) = g ( W [ l + 1 ] a [ l + 1 ] + b [ l + 1 ] + a [ l ] ) = a [ l ] , g = R e L U , W = 0 ,这种情况就是identity function了,对于残差网络来说非常容易学习(其实就是啥也没学到呗),这样就不会损失性能了(因为skip导致这两层相当于啥也没加)。但是中间这一层一般会比较幸运的又学习到一些东西,那么在这种情况下就会对性能有所增益。(Dr Ng这么解释的。。。)

Network in network (NIN)

Network in network就是一个one by one filter。例如一个输入是64x64x192,那么应用一个1x1x192,filter数量是6的filter,得到一个64x64x6的结果,然后做一个ReLU,这个好处就是可以将通道数降下来。这个单独用NIN,挺少的,但是这个NIN对之后的网络结构影响很多,尤其是后边提及的inception network。
[Lin etc, Network in network, 2016]

Inception Network

Motivation

  • 初衷就是,与其自己设置1x1, 3x3, 5x5,以及max pooling,干脆让network自己选。
  • 例如28x28x192的input,1x1的有64个,3x3的有128个,5x5的有32个,max-pool有32个。然后把结果stack起来,变成64+128+32+32=256个。
  • 但是问题是这种计算量非常大。例如5x5那个,计算量就是5x5x28x28x32x192=120M次乘法运算。这个对现代计算机而言也非常计算量大。所以用NIN做一个简化。
  • NIN简化:先把28x28x192和1x1x192x16进行运算,计算量是28x28x192x1x1x16=2.4M,加上后边的28x28x32x5x5x32=10M,这样一共是12.4M,这样就减少了10倍。

Inception module

如图所示,Inception module。

GoogleNet

CNN实践建议

  1. 多用开源实现
  2. Transfer Learning
    也就是说,用已有的框架,部分训练然后训练。这个是针对数据量比较小的情况。一般有三个级别:
    • 如果数据量很少,那么就训练output layer;
    • 数据量多一些,就训练后边的几个层,就相当于训练高层特征;
    • 数据量再多,那就全都训练。
      目前为止还没有一个框架能够部分训练,所以Dr Ng建议是可以把自己的数据,先用人家的固定好的参数数据都算出来,存好,然后训练这个数据就好了。
  3. Data Augmentation
    主要有两类:
    • 仿射变换类的:例如镜像,缩放,平移,random cropping
    • RGB shifting,也就是换颜色。

State of CV

就目前而言,从数据量而言speech的问题>>Image Recognization >> Object Detection
数据量越多,hand-engineering就越少,数据量越少,hand-engineering就越多。
多用用多参考opensource的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值