卷积神经网络简介

假设读者知道神经网络的概念。 说到机器学习, 人工神经网络 表现非常好。人工神经网络用于各种分类任务,如图像、音频、单词。不同类型的神经网络用于不同的目的,例如,为了预测单词序列,我们使用递归神经网络更精确地表示LSTM,类似地,对于图像分类,我们使用卷积神经网络。在这个博客中,我们将为CNN构建一个基本的构建块。 在深入研究卷积神经网络之前,让我们先回顾一下神经网络的一些概念。在常规神经网络中,有三种类型的层:

null
  1. 输入层: 这是我们为模型提供输入的层。这一层中的神经元数量等于我们数据中的特征总数(图像中的像素数)。
  2. 隐藏层: 然后,输入层的输入被送入隐藏层。根据我们的模型和数据大小,可能有许多隐藏层。每个隐藏层可以有不同数量的神经元,这些神经元通常大于特征的数量。每一层的输出由前一层的输出与该层的可学习权重的矩阵相乘,然后由可学习的偏差加上激活函数来计算,激活函数使网络非线性。
  3. 输出层: 然后将隐藏层的输出输入逻辑函数,如sigmoid或softmax,该函数将每个类的输出转换为每个类的概率分数。

然后将数据输入模型,并从每一层获得输出。这一步称为前馈,然后我们使用误差函数计算误差,一些常见的误差函数是交叉熵、平方损失误差等。然后,我们通过计算导数反向传播到模型中。这一步被称为反向传播,基本上用于最小化损失。 下面是一个包含随机输入和两个隐藏层的神经网络的基本python代码。

python

activation = lambda x: 1.0 / ( 1.0 + np.exp( - x)) # sigmoid function
input = np.random.randn( 3 , 1 )
hidden_1 = activation(np.dot(W1, input ) + b1)
hidden_2 = activation(np.dot(W2, hidden_1) + b2)
output = np.dot(W3, hidden_2) + b3


W1,W2,W3,b1,b2,b3 是模型的可学习参数。

图片[1]-卷积神经网络简介-yiteyi-C++库

图片来源:cs231n。斯坦福。埃杜

卷积神经网络

卷积神经网络或CoVnet是共享其参数的神经网络。想象你有一张照片。它可以表示为一个长方体,有其长度、宽度(图像的尺寸)和高度(图像通常有红色、绿色和蓝色通道)。

图片[2]-卷积神经网络简介-yiteyi-C++库

现在想象一下,在这张图像上取一小块,在上面运行一个小的神经网络,比如说,k个输出,并垂直表示它们。现在将神经网络滑动到整个图像上,我们将得到另一幅不同宽度、高度和深度的图像。现在我们有了更多的通道,但宽度和高度都变小了。这种运算叫做卷积。如果面片大小与图像大小相同,它将是一个规则的神经网络。因为这个小补丁,我们的重量更少。

图片[3]-卷积神经网络简介-yiteyi-C++库

图片来源:深度学习Udacity

现在让我们来谈谈整个卷积过程中涉及的一些数学知识。

  • 卷积层由一组可学习的过滤器(上图中的一个补丁)组成。每个过滤器的宽度和高度都很小,深度与输入体积相同(如果输入层是图像输入,则为3)。
  • 例如,如果我们必须对尺寸为34x34x3的图像进行卷积。过滤器的可能大小可以是AX3,其中“a”可以是3、5、7等,但与图像尺寸相比较小。
  • 在前向传递过程中,我们逐步将每个过滤器滑动到整个输入体积上,其中每个步骤称为跨步(对于高维图像,可以有2、3甚至4个值),并计算过滤器权重和输入体积的面片之间的点积。
  • 当我们滑动过滤器时,我们会得到每个过滤器的二维输出,我们会将它们堆叠在一起,结果,我们会得到深度等于过滤器数量的输出体积。网络将了解所有过滤器。

用于构建网络的层

covnets是一系列层,每一层通过一个可微函数将一个体积转换为另一个体积。 图层类型: 让我们举一个例子,在尺寸为32 x 32 x 3的图像上运行covnets。

  1. 输入层: 该层保存图像的原始输入,宽度为32,高度为32,深度为3。
  2. 卷积层: 该层通过计算所有过滤器和图像块之间的点积来计算输出体积。假设我们对这一层总共使用12个过滤器,我们将得到尺寸为32 x 32 x 12的输出体积。
  3. 激活功能层: 该层将对卷积层的输出应用元素激活函数。一些常见的激活函数有RELU:max(0,x)、Sigmoid:1/(1+e^-x)、Tanh、Leaky RELU等。体积保持不变,因此输出体积的尺寸为32 x 32 x 12。
  4. 池层: 该层周期性地插入COVnet中,其主要功能是减少体积大小,这使得计算速度更快,减少内存,还防止过度拟合。以下是两种常见的池层类型: 最大池 平均池 .如果我们使用带有2 x 2过滤器和步长2的max pool,则生成的卷的尺寸将为16x16x12。
图片[4]-卷积神经网络简介-yiteyi-C++库

图片来源:cs231n。斯坦福。埃杜

  1. 全连接层: 这一层是一个常规的神经网络层,它从前一层获取输入,计算类分数,并输出大小等于类数的一维数组。
图片[5]-卷积神经网络简介-yiteyi-C++库

图片来源:cs231n。斯坦福。埃杜

参考资料: 斯坦福卷积神经网络课程(CS231n) 本文由 阿克汉德普拉塔普米什拉 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享