卷积神经网络

一个还不错的入门教程:https://www.cnblogs.com/skyfsm/p/6790245.html

计算机视觉上应用的多点,但这种思想绝不仅仅在图像上起作用。为什么不能使用全连接网络来做呢?因为。。庞大的参数呐,所以必须采用一种别的方法:卷积~

一个简单的垂直边缘检测器,以及为什么能够实现垂直边缘检测。白色代表亮的像素点,至于为何边缘那么宽,是因为图片太小?


实际上filter上的九个数字也可以通过反向传播来求


padding:以上的卷积操作有以下的弊端:1。每次卷积后图片尺寸都会shrink,可能经过几轮卷积后就会变成1X1,这是我们不想看到的;2.很多边缘信息都被省略了,而中间的像素点则被很多次扫描。


那么如何选择padding的层数呢?公式如下,并且一般使用奇数的呢


步长也是一个很重要的点,这样输出的矩阵的公式变成如下了:but 使用取下整数那个符号意味着只能够选择filter里面全是数字的 也就是说当filter溢出了就不行了的哦


立体怎么卷积 如下图·


多个filter时 如何做呢?filter的层数要和输入矩阵一样,然后依次做卷积就可以了惹


将卷积神经网络类比于普通的神经网络时,filter就像是特征一样。计算有十个filter的卷积神经网络时,无论输入的图片有多大,他的参数始终是(3*3*3+1 bias)*10=280.这也是CNN能够“避免过拟合的原因”



CNN一层的工作原理以及一些notation


一个简单卷积神经网络(conv),为了更好的效果,后面还会添加池化层和全连接层


Max pooling:underlying reason 未知但它的确效果很好。当是个立体的输入时,也用立体的filter在每个通道作pooling即可。


Average pooling:顾名思义,用每一区域的平均值做计算。


Attention :Pooling层没有需要学习的参数,一旦f和s超参定下来了,结果也就定下来了,只不过是计算一下就可以了。


一个完整的卷积神经网络。对于某些超参数的选择,Andrew 建议最好是看别人的选择选最佳的,而不是自己尝试


那么,为什么要使用卷积呢,如下图,当使用传统神经网络时,光两层之间就存在14M 的参数,而用卷积可以大大减小参数数目


卷积优点:参数共享(比如硕一个垂直filter能够检测图片中所有的垂直线条,)2.稀疏连接,红色的块仅由红色区域连接。3.可以解决translation invariance ,这是因为即使图片中像素全部平移一两个像素,图片大致看起来还是没变的。

这是卷积神经网络历史上的几种经典模型




通过残差块可以训练更深层的网络,也叫跳远连接,注意跳过去的那部分没有经过激活函数计算哦!


他可以使效果更好 现实中当层数越多时,效果会像那个曲线一样


为什么残差网络有效

ResNet


1*1 卷积,也叫做Network in Network


通过pooling层可以shrink 长与宽,通过这个可以shrinkNc层,也就是channel层。

Google提出的一种不需要人为设计filter的东西,

使用了inception 参数从1.2亿减少了2400w


这就是inception模型图,并且他的名字取自《盗梦空间》的原名《Inception》哈哈小李子

Transfer Learning:迁移学习。可以先将别人再很大数据集上学到的参数和权重。前提是当你带标签的数据集越多时,你在前面冻结的层就会越少。而且可以将之前训练好的部分存在硬盘上,就不用每次都重新学习,


数据扩增的方法(我记得之前有一节已经讲过,当时也是拿图像举的例子。)可以将图片进行旋转,对称,局部剪切

颜色改变的方法:也可以用PCA(主成分分析)颜色增强等方法。



第三周:目标检测

localization:不仅分类,还要定位目标


通过输出是否有对象,然后输出那些边框


特征点检测:landmark detection。就是输出眼角等坐标点


开始用卷积来做目标检测啦。1.首先切割照片,来训练卷积神经网络,2.滑动窗口检测目标(计算成本高)



怎么用卷积来代替全连接层呢?


使用卷积来处理,在最后的小格子里某一个格子是汽车所在的格子了,就不需要滑动窗口了,因为这样有很多重复计算

YOLO algorithm:有点像之前的卷积


衡量指标:IOU 交并比


非极大值抑制:1.找出所有框中pc最大的高亮 ,将其他的框变暗或者直接舍弃。如果有多个对象,最好是独立进行三次非极大值抑制


anchor boxes:(用一个格子检测多个对象):用多个anchor来定义多个对象。这里有两种情况不好处理:(1)两个anchor但是有三个对象,无法检测。(2)一个anchor里面有两个对象。——不好处理。人工选择anchor的长宽,或者使用k-means方法聚类选择均值

YOLO:


先用图像分割算法:Region-CNN

首先得到候选区域,然后在进行分类检测。


第四周:人脸识别


one-shot:只通过一张照片时,就识别出一个人。计算相似度函数。越小越相似~


Siamese network。上下两个网络的参数是一样的,我们要训练这样的一种网络,



Triplet损失:就是anchor和正例图片很近,和负例图片很远,which means you need to  watch three pictures at once ,so it is called triplet loss.



面部验证与二分类:将之前的三个照片一组转化成 一对一对的,然后用来二分类问题


神经风格迁移:


深度卷积网络在学什么


风格迁移的cost function:


content cost function


style cost function:在不同通道的相同位置数对,数值间有很高相关性,也就意味着在有线条的地方,很大概率这块是橙色的,


1D和3D。3D的可以看做电影~


你可能感兴趣的:(卷积神经网络)