台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network
台大李宏毅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相关推荐
- 台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding
台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding
- 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction
台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning 本博客参考整理自: http://blog.csdn.net/xzy_t ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?
台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep? 本博客整理自: http://blog.csdn.net/xzy_thu/article/detail ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning 注:本博客主要参照 http://blog.csdn.net/xzy_thu ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras
台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras 本节课主要讲述了如何利用Keras搭建深度学习模型.Keras是基于TensorFlow封装的上层API,看上去 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation
台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation 当网络结构很复杂时,会有大量的参数.∇L(θ)\nabla L(\theta)是百万维的向量 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning 最近几年,deep learning发展的越来越快,其应用也越来 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression
台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression 做Logistic Regression回归,需要3步. Step 1: Funct ...
最新文章
- c语言中的常用函数的使用,C语言的常用库函数使用方法分析及用途
- Weblogic部署项目过程中的一些问题
- Cocostudio 1.6 下载地址
- oracle数据库应用与开发习题,《Oracle数据库应用》练习题及答案.docx
- $.each()、$.map()区别浅谈
- 暑假集训-个人赛第六场
- Contours 等高线图
- mysql丢失一条事务_SpringBoot之MySQL数据的丢失的元凶--事务(转)
- 我免费发布的东西,你拿去卖钱,我不平衡
- 高数基础 第七章 无穷级数
- 使用jrtplib(RTP)传输H.264视频文件
- 2021电工杯B题股票预测思路分析程序示例及参考文献
- E4A直播盒子APP源码搭建教程之——后台源码篇
- Centos7 Firewalld 自定义规则
- 瑞幸退市,董事长被罢免,但是我并不同情他!
- Mezzanine汉化
- python3刷新监控网页_python - 如何不刷新网页而监控网页变化?
- 制作android动态壁纸,使用视差滚动制作Android动态壁纸
- 非线性规划(凸规划,无约束最优化方法,约束最优化方法)
- 使用 SciPy探索标准正态分布
热门文章
- 数据结构上机实践第四周项目2 - 建设“单链表”算法库
- 树莓派4B安装Ubuntu20.04
- ABB RobotStudio6.08安装
- yolov3从头实现(六)损失计算
- ORBSLAM的ORB特征到底从哪儿来?
- java中提示peerbytes_Java中synchronized详解
- 打包外星人_《疯狂外星人》中外星人带上金箍就是大圣,放下金箍就是至尊宝!...
- ubuntu安装python3.6_Ubuntu16.04下安装python3.6.4详细步骤
- react网页适配不同分辨率_PC端页面适应不同的分辨率的方法 (转载)
- Keras深度学习实战(3)——神经网络性能优化技术详解