【李宏毅机器学习2017】CNN

设计CNN的三个理由

  1. 很多时候目标只是图像的一小部分,如果能只connect一部分的话,可以减少参数;(卷积)
  2. 要识别的目标在不同样本中的位置不同,但特征的是相似的,因此只需要一组参数就可以找到,减少参数;(卷积)
  3. 降采样不会改变图像的样子,因此用cnn可以通过降采样让图片变得更小,减少参数。(池化)

网络

卷积操作

(暂不赘述)
在这里插入图片描述
在这里插入图片描述

卷积网络vs全连接网络

卷积网络可以看作是全连接网络的简化版本。
1、如下图,左边的卷积操作相当于全连接里面只连接了1,2,3,7,8,9,13,14,15这几个神经元——参数减少
在这里插入图片描述
2、继续做卷积操作,相当于全连接层连接了2,3,4,8,9,10,14,15,16这几个神经元,同时这里连接的权重和上面那一组神经元的权重是对应的(颜色相同部分),shared weights,进一步减少参数。
在这里插入图片描述

Maxpooling

把feature map分成几个块,取块中最大的值替代整个块。这操作会使得feature map不断变小。

Fallten+全卷积

在这里插入图片描述

如何分析机器学到了什么

  1. 看network中第一个layer的filter形状
    在这里插入图片描述
    除了第一个layer以外,看后面layer的卷积核没有太大意义,因为后面的layer针对的输入是抽象的feature map。

  2. 画出higher layer中响应比较高的feature map对应原图的感受野
    在这里插入图片描述

  3. GD优化,找x*。
    首先定义a^k,为第k个filter activate的程度。也就是把从这个filter得到的featuremap的值求和。
    然后构建一个优化问题:解一个x使得a^k最大。
    要解该问题其实就是反过来用GD。
    在这里插入图片描述
    实际实验中得到的结果如下:
    在这里插入图片描述
    每张图代表了对应的filter响应最大的输入。
    全连接层的每个神经元最大响应对应的pattern同理可求。
    注:Deep Neural Networks are Easily Fooled
    按照上述方法得到一个train好的网络最后一层神经元的最大响应pattern不一定是我们理想中的情况,一些无关pattern也有可能令神经元的响应很高。
    不过这也说明,深度神经网络是有举一反三的能力的。在这里插入图片描述
    进一步地,想要解出来的响应不那么奇怪,可以在前面的优化目标式里面加一个正则项。
    在这里插入图片描述

  4. 微分法
    某张图片被判定为第k类,选一个pixel,求其对类别k的微分,如果微分值很大,说明这个pixel对y_k的影响很大。
    在这里插入图片描述

  5. 拿一个框去除image的一部分,看machine判断的准确度。比如遮住狗脸以后,发现网络在狗脸部分的准确率最小,说明网络是对的。
    在这里插入图片描述

应用案例:Alpha Go

alpha go的系统要求输入是能代表当下棋盘情况的19*19的矩阵,输出是下一步要走的位置。
分析到很重要的一点是,在这个应用场景下,如果加上max pooling降采样操作的话,是不满足网络输出要求的。老师求证了alpha go的论文附录,发现果然是没有加max pooling的。
这也告诉我们网络的设计绝对不是一成不变的。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值