视频链接:李宏毅机器学习(2016)_演讲•公开课_科技_bilibili_哔哩哔哩
课程资源:Hung-yi Lee
课程相关PPT已经打包命名好了:链接:https://pan.baidu.com/s/1c3Jyh6S 密码:77u5
我的第八讲笔记:李宏毅机器学习2016 第八讲 深度学习网络优化小诀窍
Convolutional Neural Network
本章节主要讲解了CNN的原理、实现以及应用。
1.为什么用CNN处理图片?
这是基于图片的三大特性:
① 一些模式比起整张图片来说更小,即寻找模式不用看完整的图像。
例如上图鸭嘴这个模式就仅仅存在于特定的区域,因此我们可以不用全部连接,而可以使用较少的参数检测小区域。
②同一个模式可能会出现在不同的区域。
检测鸭嘴这个模式,不同图片可能会出现在上面或者是中间,因此可以使用参数共享。
③子采样不会改变物体。
子采样使得图片变小了,但不会影响图片原本的特征。因此可以使用更少的参数。
2. CNN
基于上述的三个特性,我们就可以了解CNN。CNN主要是有卷积操作和池化操作(可重复多次)。
卷积操作对应于特性1和2,池化操作对应特性3.
3. 卷积
卷积操作主要是学习过滤器的值。让过滤器和图像做卷积运算,得到新的特征图谱。
这里涉及过滤器的大小,数量以及步长和是否填充。
这里就不详细介绍相关知识了,有兴趣的可以观看CS231n课程,里面有很详细的关于这方面的知识。
对比卷积和全连接,其实全连接拿掉一些weight就是卷积操作。
这里只连接9个输入,更少的参数,并且权值共享,参数又进一步减少了。
4.池化
池化操作是比较好理解的,主要作用是降维,由特性3可知可知子采样不会影响图片原有特性。举例Maxpooling。
5. 用keras实现CNN
这里值得注意的是每一层参数的数量。
6.CNN应用
①Deep Dream
给机器一张图,然后对权重进行修改,可以得到不同的结果。
这里是使正的权值更正,值更大,负的权值更负,值更小。
结果得到的图片出现了一些奇异的动物,可以看出很多原来是石头的现在变成了动物。
②Deep Style
一张原图的内容(Content)加上一张名画的风格(Style)就可以生成一张别有趣味的图。
③下围棋(Alpha Go就使用了CNN,但是没有使用池化操作)
为什么CNN能用于下围棋呢?对于下围棋而言,第一部分所讲的特性1,2同样具有。
特性3如果进行了池化会缩小图片尺寸(减少某些行和列),显然对下围棋来说是不可接受的。
④Speech
⑤text
⑥Machine Draw an image
⑦more
7.总结
本章较为粗略的讲解了CNN卷积神经网络的原理以及实现方法,最后讲述了其广泛的应用。