Convolutional Nueral Network

CNN适合做图像处理的原因

1.一个神经元不需要看整张图来判断某个模式的存在。
2.同一个模式可能出现在图片的不同地方,不需要训练不同的模型,神经元可以用同一种参数。
3.可以对图像做下采样*(subsampling:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图。)*,能减少模型要用的参数。

CNN架构

机器学习(李宏毅)lecture05 CNN
卷积层可以来处理上述原因1和2,最大池化层处理原因3.

CNN-卷积

机器学习(李宏毅)lecture05 CNN
1.Filter的参数是通过学习得到的。
2.这里每一个Filter用来识别某一个模式。

Filter内积图像的像素矩阵=>Feature Map。
机器学习(李宏毅)lecture05 CNN

彩色图片处理

RGB,矩阵变成立方体
机器学习(李宏毅)lecture05 CNN

CNN与Fully Connected

每个神经元连接的input比全连接减少很多,因此参数会少很多。
同时不同神经元共用权值参数。
机器学习(李宏毅)lecture05 CNN

Max Pooling

在得到Feature Map后,选择每个Feature Map中最大的值,比较暴力。
机器学习(李宏毅)lecture05 CNN

CNN学习到了什么

当进行卷积+Max Pooling后,并不能直接知道Filter到底用来发现哪种模式,可以用下面的方法:
固定模型的参数,通过梯度下降最小化Filter的**函数的值,得到的input图像就是学习到的Filter用来发现的模式。
ak=i=1ni=1naijka^k=\sum_{i=1}^n\sum_{i=1}^{n}a^k_{ij}
n:n:Filter矩阵维度。
x=argmaxxakx^*=argmax_xa^k
x:x:input。

Application

1.Deep Dream:模型要夸大自己看到的东西。
2.Deep Style:
给出一张图片,得到Fearture Map output,另一张图片得到style,再通过CNN找到一张图片尽可能的相似Feature Map output和style。
机器学习(李宏毅)lecture05 CNN

相关文章: