吴恩达《深度学习》第四门课(1)卷积神经网络

简介: 1.1计算机视觉(1)计算机视觉的应用包括图像分类、目标检测、图像分割、风格迁移等,下图展示了风格迁移案例:(2)图像的特征量非常之大,比如一个3通道的1000*1000的照片,其特征为3*1000*1000达到300万,如果第一个隐藏层有1000个单元那么W[1]有20亿个参数,计算量不仅大,而且由于图像样本相对于特征实在是太少,导致很容易过拟合,所以需要其他的方式来连接,即卷积。

1.1计算机视觉

(1)计算机视觉的应用包括图像分类、目标检测、图像分割、风格迁移等,下图展示了风格迁移案例:

(2)图像的特征量非常之大,比如一个3通道的1000*1000的照片,其特征为3*1000*1000达到300万,如果第一个隐藏层有1000个单元那么W[1]有20亿个参数,计算量不仅大,而且由于图像样本相对于特征实在是太少,导致很容易过拟合,所以需要其他的方式来连接,即卷积。

1.2边缘检测示例

(1)卷积运算是输入图像与过滤器(也叫核)进行的运算,得到输出图像。卷积核与图像对应的位置相乘求和得到一个新值,如下图所示:

输出中第一个绿色框的值为:

(2)每个不同的核可以检测到不同的边缘特性,如下面的核就可以检测到图像的垂直特性,即输入图像中的边缘会在输出图像中用白色显示出来,非边缘部分显示为黑色或灰色。同理还有其他水平边缘检测等各种核(过滤器)。

1.3更多边缘检测的内容

(1)除了上面提到的卷积核,还有其他许多卷积核,把上面3*3的卷积核看成9个参数,然后不是通过人工的确定,而是通过神经网络来学习这些参数,这就是卷积神经网络。

1.4Padding

(1)边缘不填充会有两个缺点:第一是随着不断卷积,图像会变得越来越小,有时你可不想让它变小;第二是最角落的点只被使用了一次,这意味着在下传的过程中丢掉了图像边缘位置的信息。如下图所示(角落的绿色点只被计算了一次,中间红色点可以被计算多次):

(2)Padding经常可以设置成为两个参数:第一个是Valid,即不做填充;第二个是Same,即输出尺寸与输入尺寸相等。

(3)在步长为1是有公式:n+2p-f+1为输出的尺寸。其中n是输入的尺寸(比如说宽),f是卷积核的大小(比如3),p是每一边额外添加的列数(如添加一列就为1)。所以根据这个式子很容易计算出用Same参数时,p=(f-1)/2,注意此处前提都是步长为1。

1.5卷积步长

(1)输入与输出的尺寸关系如下,注意当结果不是整数时是向下取整。

(2)在深度学习的卷积没有必要像数学或者信号处理教材中,先将卷积核顺时针旋转90°,然后在水平翻转,最后再进行与上面相同的卷积运算。深度学习直接忽略了那些旋转翻转的步骤。影响不大。

1.6三维卷积

(1)三维的卷积方法如下图所示,卷积核的通道数与输入图像的通道数相同,输出图像的通道数为所使用的卷积核的个数,至于高和宽还是按照上面提到的公式计算:

1.7单层卷积网络

(1)每一个卷积核的输出对应一个实数b(偏差),然后在进行激活函数的非线性转换得到输出,如下图所示:

(2)参数个数的计算:比如10个卷积核3*3*3,b的个数跟卷积核个数相同,所以总的参数为(3*3*3+1)*10=280,不管输入尺寸多大,参数个数始终保持不变,而在全连接网络中参数个数是会随着输入不同而不同的。

(3)一些符号如下所示,习惯上w用m*nH[l]*nW[l]*nC[l]表示,b用1*1*1*nC[l]

1.8简答的卷积网络示例

(1)案例图如下:最核心的就是要会计算输出尺寸(公式((n+2p-f)/s)+1,向下取整)。

1.9池化层

(1)池化层中没有需要学习的参数,所以通常不把池化层当做独立的一层来看。

(2)池化层是一般不会设置padding,即一般padding为0。

(3)fitter为2,stride为2是最常见的参数设置,尺寸图像缩小为原来的一半。

(4)卷积时用的尺寸计算公式同样适用于池化层,如下图所示:

(5)最大池化层比平均池化层更为常用。

1.10卷积神经网络示例

(1)下面是一个0-9数组分类的网络,包括了卷积层、池化层、全连接层:

(2)一般而言,不断卷积之后,图像的高度和宽度会变小,通道数(深度)会增加。

(3)在神经网络中,另一个常见的模式就是一个或多个卷积层之后跟随一个池化层,然后一个或多个卷积层之后跟随一个池化层,然后跟几个全连接层,最后是一个softmax.

(4)下面是针对上面网络的一些输出和参数的个数,其中参数一栏最后三行的值应该是48000+120、10080+84、840+10

1.11为什么使用卷积

(1)卷积网络的参数远少于全连接的原因主要有两点:第一是参数共享,如左上角用一个垂直的卷积核检测,那么这个卷积核也同样适用于图像的其他区域;第二是稀疏连接,如某个输出值只与特定的几个值相连接(如九个值)。

(2)卷积神经网络善于捕捉偏移不变形,例如把图像往右平移几个像素,对于网络而言没什么影响。

相关文章
|
10天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
139 55
|
20天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
109 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
7天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
53 31
|
13天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
16天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
17天前
|
机器学习/深度学习 传感器 数据采集
深度学习在故障检测中的应用:从理论到实践
深度学习在故障检测中的应用:从理论到实践
72 5
|
9天前
|
机器学习/深度学习 网络架构 计算机视觉
深度学习在图像识别中的应用与挑战
【10月更文挑战第21天】 本文探讨了深度学习技术在图像识别领域的应用,并分析了当前面临的主要挑战。通过研究卷积神经网络(CNN)的结构和原理,本文展示了深度学习如何提高图像识别的准确性和效率。同时,本文也讨论了数据不平衡、过拟合、计算资源限制等问题,并提出了相应的解决策略。
51 19
|
9天前
|
机器学习/深度学习 传感器 人工智能
探索深度学习在图像识别中的应用与挑战
【10月更文挑战第21天】 本文深入探讨了深度学习技术在图像识别领域的应用,并分析了当前面临的主要挑战。通过介绍卷积神经网络(CNN)的基本原理和架构设计,阐述了深度学习如何有效地从图像数据中提取特征,并在多个领域实现突破性进展。同时,文章也指出了训练深度模型时常见的过拟合问题、数据不平衡以及计算资源需求高等挑战,并提出了相应的解决策略。
52 7
|
19天前
|
机器学习/深度学习 自动驾驶 算法
深度学习在图像识别中的应用
本文将探讨深度学习技术在图像识别领域的应用。我们将介绍深度学习的基本原理,以及如何利用这些原理进行图像识别。我们将通过一个简单的代码示例来演示如何使用深度学习模型进行图像分类。最后,我们将讨论深度学习在图像识别领域的未来发展趋势和挑战。