CS231n -- Convolutional Networks

最开始接触CNN是接到任务要用深度学习做手写数字识别,当时只是把它当作了一个黑匣子没有深入理解它的工作机理,只是利用训练好的Lenet,数据丢进去再训练一番,得到的模型直接扔给Opencv。不过课程中对CNN的原理进行了详尽的讲述,结合找到的一些资料,记个小笔记。

1.卷积

2.池化(选)

3.Activate function

4.FC

1.卷积

Convolution Networks,一看重点就在卷积上。“卷积”相信信息相关专业的同学都不陌生,不过数字图像处理中的卷积操作与信号中的有些不同,它是直接相对于原矩阵,按照顺序将各区域元素与卷积核矩阵相乘(点乘),没有反向操作。然后在此基础上,出现了很多有趣而有用的卷积核,忍不住贴张图。

                                                

以下为借鉴知乎回答对卷积神经网络工作原理做一个直观的解释

那么卷积核与神经网络有什么关系,因为我们设想一个识别问题,要识别图像中的特定曲线,也就是说,这个滤波器要对这个曲线有很好的输出,对其他形状输出则很低。

我们设计的滤波器和想要识别的曲线如下:

假设上面的滤波器按照卷积顺序沿着下图移动:

那么当它移动到上面的位置时,按照矩阵操作,将这个区域的图像像素值与滤波器相乘,我们得到一个很大的值(6600):

而当这个滤波器移动到其他区域时,我们得到一个相对很小的值:

这样我们对原图进行了一次卷积后,在特定的形状值会很高,而在其他区域相对较低。这就是一张激活图,而对应的高值区域是我们要检测的曲线的位置,而在进行一次卷积操作后,每个卷积核便对应一个feature map。

既然知道了这一点,我们应该就能知道,其实训练CNN就是要训练每一次层的卷积核,修改权重让这些卷积核对特定的形状有较高的激活值,以此达到CNN的分类/检测效果。

但到现在肯定很多人还很虚,CNN真的可以实现这样的效果吗,眼见方为实!好吧,这里引出一片CVPR的文章Visualizing and Understanding Convolutional Networks,利用反卷积(De-convolution)对CNN的每一层进行可视化,看看每一层卷积神经网络到底干了什么。(又挖一个大坑,先写作业,有空再填)

第一层仅仅是图片的各种简单的边缘特征。

第二层稍微复杂了些,有了圆、曲线,还有一些边缘的组合。

一层一层下来,我们发现feature map越来越复杂,而且是把对于这一类最独特的部分凸显了出来,比如狗狗的头、车的轮子、人的脸等等,然后根据这些特征的表达输入FC得到最终分类。

2.池化(pooling)

有时候图像太大,我们需要较少训练参数的数量,这时候就可以使用池化层。池化层的唯一目的是减少图像的大小。池化在每个维度上独自完成,因此池化后图像的纵深保持不变。以最大池化举例:

                                             

可以认为是定义步长为2,取2*2尺寸中最大值为输出。

最大池化后,图像尺寸减半,参数大大减少,而主要的特征信息仍然保留。

3.FC layer

特征提取工作已经完成,要做的只是将特征输入全连接层,获得最后的分类结果。

4.总结

接下来看看CNN非常经典的网络,LeNet

不算池化层,一共三层:conv1 conv2 LC,输入图像经过第一个卷积层后,以feature map的形式输出,而这些特征会被传输下去,不断组合成更复杂的特征,最后输入全连接层进行分类。

1.每个卷积核会给出不同的feature,上一层卷积核的数量等于本层输入数据的深度;由此我们引入1*1卷积核,它也用来减少输入数据的参数量。

2.对于如LeNet这种比较浅的网络,zero padding没有什么作用,它只是在网络较深时用来保持图像一定的尺寸。

说了这么多,超参数还是不会调orz,有关调参还是有经验再继续说吧。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习-面向视觉识别的卷积神经网络,2016斯坦福大学公开课。课程介绍: 计算机视觉在社会中已经逐渐普及,并广泛运用于搜索检索、图像理解、手机应用、地图导航、医疗制药、无人机和无人驾驶汽车等领域。而这些应用的核心技术就是图像分类、图像定位和图像探测等视觉识别任务。近期神经网络(也就是“深度学习”)方法上的进展极大地提升了这些代表当前发展水平的视觉识别系统的性能。 本课程将深入讲解深度学习框架的细节问题,聚焦面向视觉识别任务(尤其是图像分类任务)的端到端学习模型。在10周的课程中,学生们将会学习如何实现、训练和调试他们自己的神经网络,并建立起对计算机视觉领域的前沿研究方向的细节理解。最终的作业将包括训练一个有几百万参数的卷积神经网络,并将其应用到最大的图像分类数据库(ImageNet)上。我们将会聚焦于教授如何确定图像识别问题,学习算法(比如反向传播算法),对网络的训练和精细调整(fine-tuning)中的工程实践技巧,指导学生动手完成课程作业和最终的课程项目。本课程的大部分背景知识和素材都来源于ImageNet Challenge竞赛。 主讲人: 李飞飞,斯坦福大学计算机科学系副教授。担任斯坦福大学人工智能实验室和视觉实验室主任,主要研究方向为机器学习、计算机视觉、认知计算神经学。她在TED上的演讲,如何教计算机理解图片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值