台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network

本博客主要整理自:
http://blog.csdn.net/xzy_thu/article/details/69808817
本节课主要讲述了CNN的原理结构、操作过程和应用。

Why CNN for Image

CNN的参数比全连接神经网络少得多,为什么CNN只用较少的参数就可以用于处理图像呢?这是因为图像具有以下三点特征:
1、一些模式比整张图片小得多,例如“鸟喙”就比整张图片小得多;
2、同样的模式可能出现在图像的不同区域,例如“鸟喙”可能出现在图片的左上方也可能出现在图像的中间;
3、对图像的降采样不会改变图像中的物体。
CNN的卷积层的设计对应着前两点,池化层的设计对应着第三点。



CNN-Convolution

理解卷积操作的动图
每一个卷积核都产生一个feature map,不同的卷积核可以提取出不同的特征。关于卷积和feature map另一篇博客也有比较详细的介绍:
http://blog.csdn.net/Allenlzcoder/article/details/78739346
卷积是一种神经网络的连接方式: 也能用全链接的方式表示出卷积操作,如下两图所示。


Shared weights: 同色的weight相等。
通过上面两图看出,卷积的通过共享权重大大减少了参数的数量。
CNN中在卷积层后一般跟着池化层(Pooling),池化的方法很多,比如均值池化、最大池化等。
Flatten操作是将feature map拉直成列向量,如下图所示。

CNN in Keras

就跟搭积木一样简单。


What does CNN learn?

上例中第二个卷积层有50个11x11的filter,它们的参数是学出来的,定义第k个filter的活跃度为ak
,固定参数,用梯度上升法求使ak
最大的input image。
得到的结果是,使各个filter活跃度最大的image是各种条纹。这层filter看的还是局部信息。
而使Flatten后的全连接层的filter活跃度最大的image,就显示出了各种轮廓,说明这些filter看的是整体信息。



固定参数,求input image,让output layer的各neuron的output最大,并没有得到期望中的数字图片,而是很杂乱的图像。(白色表示有墨水。)
对目标output加一个L1正则项,所得结果稍显数字轮廓。

Deep Dream 与 Deep Style

Deep Dream: 将一张image作为CNN的输入,将CNN某个hidden layer的output(vector)拿出来,让其中正的更正、负的更负,把它作为新的image的target.

左边CNN filter output代表内容,后边的CNN的filter output之间的correlation代表风格。
要找一张image,其content (filter output)像左,style (output correlation)像右。

More Applications

阿尔法狗:棋盘作为image,有开篇所讲的前两个特点,但没有第三个特点,所以阿尔法狗没有pooling layer。
语音识别应用,CNN的filter只会在频谱的频率方向扫描,不会在时间方向扫描。
文本分类应用,CNN的filter只会在sentence matrix的时间方向扫描,不会在embedding dimension方向扫描。
所以,在具体场景应用CNN时,如何设计CNN的结构,需要考虑场景本身的性质特点。

台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network相关推荐

  1. 台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding

    台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding

  2. 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction

    台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...

  3. 台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning

    台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning 本博客参考整理自: http://blog.csdn.net/xzy_t ...

  4. 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?

    台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep? 本博客整理自: http://blog.csdn.net/xzy_thu/article/detail ...

  5. 台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning

    台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning 注:本博客主要参照 http://blog.csdn.net/xzy_thu ...

  6. 台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras

    台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras 本节课主要讲述了如何利用Keras搭建深度学习模型.Keras是基于TensorFlow封装的上层API,看上去 ...

  7. 台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation

    台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation 当网络结构很复杂时,会有大量的参数.∇L(θ)\nabla L(\theta)是百万维的向量 ...

  8. 台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning

    台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning 最近几年,deep learning发展的越来越快,其应用也越来 ...

  9. 台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression

    台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression 做Logistic Regression回归,需要3步. Step 1: Funct ...

最新文章

  1. c语言中的常用函数的使用,C语言的常用库函数使用方法分析及用途
  2. Weblogic部署项目过程中的一些问题
  3. Cocostudio 1.6 下载地址
  4. oracle数据库应用与开发习题,《Oracle数据库应用》练习题及答案.docx
  5. $.each()、$.map()区别浅谈
  6. 暑假集训-个人赛第六场
  7. Contours 等高线图
  8. mysql丢失一条事务_SpringBoot之MySQL数据的丢失的元凶--事务(转)
  9. 我免费发布的东西,你拿去卖钱,我不平衡
  10. 高数基础 第七章 无穷级数
  11. 使用jrtplib(RTP)传输H.264视频文件
  12. 2021电工杯B题股票预测思路分析程序示例及参考文献
  13. E4A直播盒子APP源码搭建教程之——后台源码篇
  14. Centos7 Firewalld 自定义规则
  15. 瑞幸退市,董事长被罢免,但是我并不同情他!
  16. Mezzanine汉化
  17. python3刷新监控网页_python - 如何不刷新网页而监控网页变化?
  18. 制作android动态壁纸,使用视差滚动制作Android动态壁纸
  19. 非线性规划(凸规划,无约束最优化方法,约束最优化方法)
  20. 使用 SciPy探索标准正态分布

热门文章

  1. 数据结构上机实践第四周项目2 - 建设“单链表”算法库
  2. 树莓派4B安装Ubuntu20.04
  3. ABB RobotStudio6.08安装
  4. yolov3从头实现(六)损失计算
  5. ORBSLAM的ORB特征到底从哪儿来?
  6. java中提示peerbytes_Java中synchronized详解
  7. 打包外星人_《疯狂外星人》中外星人带上金箍就是大圣,放下金箍就是至尊宝!...
  8. ubuntu安装python3.6_Ubuntu16.04下安装python3.6.4详细步骤
  9. react网页适配不同分辨率_PC端页面适应不同的分辨率的方法 (转载)
  10. Keras深度学习实战(3)——神经网络性能优化技术详解