深度学习(Deep Learning) 5.CNN

深度学习(Deep Learning) 5.CNN


1 Convolutional Neural Network

  • 常用于图像处理,为什么卷积神经网络处理图像效果好?

    假设输入30000维,第一层1000维,那么这里的参数就有30000*1000个!CNN中可以去除一些参数,从而改变神经网络的架构。对于某一个神经元,它不需要看到整张图片,它只需要看到一部分特征模式,例如图片中有没有鸟嘴的存在只需要看一小块区域。

  • image Convolution Max Pooling Convolution Max Pooling 反复 Flatten 神经网络

    • Convolution:一些特征只出现在图像中的一小部分,相同的特征会出现在图像的不同区域。
    • Max Pooling:subsampling不改变图像对象

2 Convolution & Max Pooling

  • 利用Filter和stride进行特征的映射 Feature map,相当于只连接了一部分输入,并不是全连接,即这样的结构参数较少。并且某些权重参数是共用(sharing)的。
  • Max Pooling:进行分割之后,每个区块取最大值,例如4x4 2x2
  • 经过以上两步:6x6 image 2x2 image,重复以上步骤可以不断“减小”图像大小。
  • Flatten:拉直所有映射得到的特征放到Neural Network中训练

3 CNN in Keras

model2.add(Convolution2D(25, 3, 3, input_shape(1, 28, 28))) #28*28的image通过25个3*3的filter得到25*26*26的新图像_每个filter9个参数
model2.add(MaxPooling2D((2, 2))) #得到25*13*13的新图像
model2.add(Convolution2D(50, 3, 3)) #得到50*11*11_每个filter25*9=225个参数
model2.add(MaxPooling2D((2, 2))) #得到50*5*5的新图像
model2.add(Flatten())
model2.add(Dense(output_dim = 100))
model2.add(Activation('relu'))
model2.add(Dense(output_dim = 10))
model2.add(Activation('softmax'))

4 CNN学到了什么?

  • 第二层的Convolution中每个filter的输出是一个11*11的矩阵
  • Degree of the activation of the k-th filter: ak=i=111i=111akij ,找到 x=argmaxxak (gradient ascent)
  • x=argmaxxyi ,加入约束 x=argmaxx(yii,j|xij|) L1 正则化

5 有趣的应用

  • Deep Dream:让CNN看到的东西更像,正数变大,负数变小。
  • Deep Style:改造成世界名画的风格,CNN分别训练出第一张图的content,第二张图的style,组合。
  • Playing Go:Alpha Go 在第一层layer使用5x5的filter,并没有使用max pooling
  • Speech recognition
  • Text
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值