1. 卷积神经网络主要包括哪几层_Coursera|Convolutional Neural Networks卷积神经网络笔记...

5ba5f4124bd101f78beb5345d3e153c4.png

s 因为在英国隔离没啥事做,学完了deeplearning.ai课程中的Neural Networks 和 Sequence Models,但是飞快地过完了之后没有什么收获,想着可能是被动学习而没吸收什么东西,所以开始记笔记噜~有什么问题欢迎指正~

下面这个解题是我在网上找到最全的,谢谢作者大佬www

deeplearning.ai 深度学习专项课程 解题集合 ( 已更新完毕) 仅供参考​juejin.im

一 Foundations of Convolutional Neural Networks

神经网络识别人像步骤:

前几层检测边缘,中间几层检测人脸的一部分,最后几层检测整个对象。

49978f84e27b377bc69cd914f25bd2b5.png

同理与狗:

b7d97947a9e82def17affdce9865dbab.png

然后举了个例子,这个图像我们可以看到有很多垂直和水平的线段,第一步就是检测垂直和水平的边缘右侧两张黑色图片里的白色线段。

31dad6710e5a6bdb7ff428618aa52467.png
vertical and horizontal edges

1 Edge Detection

1) Vertical Edge Detection

2c6eb0f0a25a4d76d0dc0b900bda85e3.png

最开始我们有一个6*6的矩阵,然后我们用3*3的filter/kernal去做卷积得到一个4*4的矩阵。

卷积的具体步骤是在原矩阵找到一个3*3的矩阵,然后点乘我们的filter,得到一个数,比如上图的左上角点乘过滤器得到-5。接下来数字的得到跟上面步骤一样,红色框住的只需要把左上角3*3向右平移一个数字,然后继续点乘就好,其他同理,平移+点乘。

b20c7fab332f02553ed32c1d12ff1716.gif
卷积计算步骤

Filters:

73b55e04a53448d0e83357faeafc6f7d.png

2) 对于垂直边缘:

eb5f34c57064a00e873a534c1f2b3ae7.png

在这个6*6的矩阵中,左边亮,右边暗,可以看到是一个分割,经过卷积之后,我们得到中间的一列白色。

但如果是左暗右亮,我们可以得到:

dcee9b352d1399f2114ba6dca2cea3eb.png

对于水平边缘:

ad34a718b3bea2b615b3fd5a9c12c422.png

除了以上讲的两个,还有Sobel和Scharr过滤器,自己在做卷积的过程中,需要根据想要得到什么结果而选择不同的filter。

ee588861681f5f3a25c5b3a409ade0a0.png

2 Padding(填充)

卷积的两个缺点是

-每次做一次卷积,图像的矩阵就会缩小(比如上面的6*6缩成4*4),如果做很多层神经网络的话,图像的

-对于原矩阵边缘的数字,我们只算过一遍,会丢失边缘的信息

为了消除这两个问题,我们引入padding

其实就是在原图像外面加一层或者几层像素,然后再做卷积。

比如像下图,外面加上一层像素,从6*6变成8*8,然后卷积后就又变成6*6了。

55f47dbd43f98ba31ff8175460077b37.png

9c8e678af23d4eccc8f9509168e3d76a.png

为了得到和原图像一样尺寸的矩阵,我们可求到

equation?tex=p%3D%5Cfrac%7Bf-1%7D%7B2%7D

3 Stride convolution

这个就是左右上下横跳的步长,如下图

89bdfd9ffd9e6f53d0ddfa279679f042.png

4 在RGB图像上做卷积

这样我们就有了三层,相应的,过滤器也得有三层:

5210e5b3491c83586875cdf3c7915477.png

a6a2f242b4a5e196bbca138cceb0f6e0.png

多加了两层之后也是相似的,在每一层和过滤器做点乘,然后得到加和,然后平移,再得到加和。

-考虑多过滤器

如果有多个过滤器的话就单独做卷积然后叠起来,如下图:

dde805c723afb7fedddf274097660b62.png

dba992b4407f812dbfc16f52eaff5494.png

二 Case studies

1 Classic Networks

-LeNet-5

主要用于辨认手写字体:

4248a0cd267bd6c2d17c59396910b35b.png

其实就是卷积--池化--卷积--池化的过程。

-AlexNet

01bd4c75a25412f633485d2ad2a8ecb5.png

-VGG-16

简化神经网络,更关注过滤器

88f0c950fa4dd9795ee4371ef5b6128f.png

2 ResNets (Residual Networks参差网络)

skip connection可以解决神经网络太多层所带来的梯度下降和爆炸等问题。

普通和ResNet区别:

b2778afc2bad9f5d7090c3ce3240467f.png

传统过程:首先通过a[l]得到z[l+1]--然后用ReLu得到a[l+1]--然后再用得到的a[l+1]带入公式得到z[l+2]......

ff54d316879fd2976a6bb7235f6d30d0.png

shortcut/ skip connection:

运用残差块可以搭建更深的神经网络:

ff54d316879fd2976a6bb7235f6d30d0.png

直接把得到的a[l]拉入求a[l+2]中,加入残差块,改变最后一个公式。

3 1*1卷积

2e63421497dfd468d51c3cd302644e80.png

相当于加个权重来缩小我们的input的nc

4 Inception network

就是一个一个算,然后叠起来就好:

5b2a4f61b5dbda3ff3a6dcc500dc87d9.png

444f5066fd2a830c8d2cb189a4456f67.png

Inception network

4a03ebe9cb298589f1ab6c3f7d1a325f.png

计算成本:1*1过滤器形成的瓶颈层降低了计算数量

18f31b02666cb075b0a84b46bf7539cc.png
普通filter

4db701f1f448d726d06525060fcc9be9.png
1*1 filter 在变大之前变小

三 Object Localization

1 Object Localization

c8fb2536337f6fa7644c1f36b321629a.png

之前只是分类,现在要开始指出object的位置和边界框。(惯例左上角为(0,0) 右下角为(1,1))

那么我们就需要有

equation?tex=b_x%2Cb_y%2Cb_h%2Cb_w 和class label(1,-4)

858ee4708ec9ed685b3a66e61d533870.png

Target Label y:

对于空白背景的话,我们除了关心第一个pc外,其他都不关心。

fb81a7bbf9926bf3d5fd1cc8e72dc2bf.png

2 Landmark Detection

比如人脸识别脸上的所有坐标和识别人体动作。

当然要用提前打好坐标的图片去train。

142405cb165ecded6fff307ab1ea4b6b.png

3 Object Detection

sliding windows detection

第一步有一个window,然后一步一步遍历(每一步都用ConvNet)在图片里面进行识别。

然后window一步一步增大,然后遍历,用卷积网络得到

8de880dcf14e46ffbdfb0e9ac08e9fa9.png

4 Bounding Box Prediction

YOLO algorithm (You only loop once)

首先把图片划分出网格,然后看物体的中间点落在哪个网格。

19d9c46a3a7c2bad488d691152d615e7.png

举例说明:

一个分好grid的照片:

34edb2accb34d5c6a2b31bff23d32bbc.png

第一步,每个grid里找到两个box:

6f2beba522d921ae62c8713cc849b7a8.png

第二步,去掉低概率的box:

6cf51e6347127c970ac72f45b10594bf.png

第三步: 用non-max suppression得到结果:

8d1045fca29d0836aa476d9a54c266ac.png

5 Non-max suppression

对于同一个物体的多个框,首先确定IoU大于某个值(两个框交集/并集)会找到有最高Pc值的框保留这个,删除另外的。

6c05ceca991bbb4224971a98eadfabe3.png

6a387de89f44f3d28ad3cc15c0e19241.png
具体步骤

四 Face Recognition & Neural Style Transfer

(一) Face recognitoin

Face verification: 1对1,只需要确认是否是那个人

Face recognition:1对k,更加复杂

1 One-shot learning

5a66d311c8b7f178755a656862bdcce6.png

-Siamese network:

对不同图片进行相同卷积神经网络的计算得出值进行比较:

4bde98675fd773a3170b966bb117026e.png

f1d0fd0c8fb816a1acf056cdf0ccb9d8.png

-Triple Loss Function

三个同一个人的图片(A, P, N)进行比较:

equation?tex=L%28A%2C+P%2C+N%29%3Dmax%28%7C%7Cf%28A%29-f%28P%29%7C%7C%5E2-%7C%7Cf%28A%29-f%28N%29%7C%7C%5E2%2B%5Calpha%2C0%29

-Binary Classification

588473f28c6c224cac6e9d0c36c28033.png

(二) Neural Style Transfer

我们想要把图片C整成梵高模样:

769897b6f9ce20c299996fa6e66ea620.png

350dcedbf6087c6ffd0492770efc5b10.png

e887f89378cffa628391571ee8b9f17f.png

1 Style Cost Function

baac7841e16b96dfd90d2f1109e6a0d3.png

083c4d8c663df7ba468df547f85383a8.png

94aaf95ad3ec96f88be5b1234966b012.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值