卷积神经网络和常规神经网络有什么区别?
TLDR: 卷积神经网络是神经网络的一个子类,它至少有一个卷积层。它们非常适合捕获局部信息(例如图像中的相邻像素或文本中的周围单词)以及降低模型的复杂性(更快的训练,需要更少的样本,减少过度拟合的机会)。
请参阅下面的图表,该图表描述了几种神经网络架构,包括深度常规神经网络:
神经网络(NN),或更准确地说是人工神经网络(ANN),是一类机器学习算法,由于大数据和快速计算设施(大部分深度学习)的可用性,最近(再次!)受到了很多关注算法本质上是 ANN 的不同变体)。
ANN 类涵盖多种架构,包括卷积神经网络( CNN )、递归神经网络 ( RNN ),例如LSTM和GRU、自动编码器和深度信念网络。因此,CNN 只是 ANN 的一种。
一般来说,人工神经网络是连接和可调单元(也称为节点、神经元和人工神经元)的集合,它们可以将信号(通常是实数值)从一个单元传递到另一个单元。单元(层)的数量、它们的类型以及它们相互连接的方式称为网络架构。
具体而言,CNN 具有一层或多层卷积单元。一个卷积单元从前一层的多个单元接收其输入,这些单元共同创建一个接近度。因此,输入单元(形成一个小邻域)共享它们的权重。
卷积单元(以及池化单元)特别有益,因为:
- 它们减少了网络中的单元数量(因为它们是多对一映射)。这意味着,需要学习的参数更少,这减少了过度拟合的机会,因为模型比完全连接的网络更简单。
- 他们考虑小社区中的上下文/共享信息。这个未来在许多应用中非常重要,例如图像、视频、文本和语音处理/挖掘,因为相邻输入(例如像素、帧、单词等)通常携带相关信息。
阅读以下内容以获取有关(深度)CNN 的更多信息:
ps ANN 不是“松散地基于人脑的系统”,而是动物大脑中存在的受神经元连接启发的一类系统。
卷积神经网络 (CNN) 是具有架构约束的神经网络,可降低计算复杂性并确保平移不变性(无论平移如何,网络都以相同的方式解释输入模式——就图像识别而言:香蕉就是香蕉,无论它在图片)。卷积神经网络具有三个重要的架构特征。
局部连接:一层中的神经元只连接到下一层在空间上靠近它们的神经元。这种设计修剪了连续层之间的绝大多数连接,但保留了携带最有用信息的连接。这里所做的假设是输入数据具有空间重要性,或者在计算机视觉的示例中,两个远距离像素之间的关系可能不如两个近邻像素之间的关系重要。
共享权重:这是使 CNN “卷积”的概念。通过强制一层的神经元共享权重,前向传递(通过网络提供数据)相当于在图像上卷积一个滤波器以产生新图像。然后 CNN 的训练变成了学习过滤器的任务(决定你应该在数据中寻找哪些特征。)
池化和 ReLU: CNN 有两种非线性:池化层和 ReLU 函数。池化层考虑输入数据块并简单地传递最大值。这样做会减少输出的大小,并且不需要额外的参数来学习,因此池化层通常用于调节网络的大小并使系统保持在计算限制以下。ReLU 函数接受一个输入 x,并返回 {0, x} 的最大值。ReLU(x) = argmax(x, 0)
. 这引入了与 tanh(x) 或 sigmoid(x) 类似的非线性效应,以增加模型的表达能力。
延伸阅读
正如提到的另一个答案,斯坦福大学的 CS 231n 课程详细介绍了这一点。查看此书面指南和本讲座了解更多信息。像这个和这个这样的博客文章也很有帮助。
如果您仍然好奇为什么 CNN 具有它们所具有的结构,我建议阅读介绍它们的论文,尽管这很长,也许可以查看Yann Lecun 和 Christopher Manning 之间关于先天先验的讨论(我们在我们设计模型的架构)。
卷积神经网络是具有卷积层的网络。如果说一般的神经网络是受人脑启发的(不是很准确),那么卷积神经网络是受人类和其他动物的视觉皮层系统启发的(更接近事实) . 顾名思义,这一层使用可学习的滤波器(又名内核)进行卷积,因此网络学习图像中的模式:边缘、角落、弧线,然后是更复杂的图形。卷积神经网络也可能包含其他层,通常是池化层和密集层。
强烈推荐这方面的CS231n 教程:它非常详细,包含很多非常好的可视化。
卷积的日常定义来自拉丁语convolutus,意思是“一起滚动”。因此,意思是扭曲或复杂的。
数学定义来自同一个根源,即采用“滚动平均”的解释。
因此,在机器学习中,卷积是跨输入的滑动窗口,为窗口所采用的每个步幅创建一个平均输出。即,对窗口覆盖的值进行卷积以创建一个卷积输出。最好用图表来说明这一点:
卷积可以是输入的任何函数,但一些常见的是最大值或平均值。
卷积神经网络 (CNN) 是一种神经网络,其中一个或多个层采用卷积作为应用于前一层输出的函数。
如果窗口大于 1x1,则输出必然小于输入(除非输入被人为“填充”零),因此 CNN 通常具有独特的“漏斗”形状: