直达「 通往AGI之路 」飞书知识库 →
首页/问答列表/问答详情

卷积神经网络

回答

卷积神经网络,也称为卷积网络,使用卷积层来过滤输入以获取有用信息。卷积层具有可学习的参数,能自动调整滤波器以提取对应任务的最有用特征。例如在一般目标识别中侧重对象形状信息,鸟类识别中更倾向于鸟的颜色信息,它会自动适配以找到最佳特征。

通常,多个卷积层依次作用,在每一层后对图像进行过滤,获取越来越多的抽象信息,形成层次特征。

卷积网络还常使用池层,以实现有限的平移和旋转不变性,即便对象出现在异常位置也能检测到,同时能减少内存消耗,从而支持使用更多卷积层。

近期的卷积网络采用初始模块,利用 1×1 卷积核进一步降低内存消耗并加快计算速度,提高训练效率。

例如在自动驾驶汽车场景中,可将驾驶员当前视野的图像输入到卷积神经网络,训练其预测下一个可能行动的奖励。相似状态的图像相似,行动也相似,网络能针对不同情况进行微调。

相关附加材料:课程:机器学习的神经网络:用神经网络识别物体

图 5 展示了一个交通标志的图像被 4 个 5×5 的卷积核过滤,生成 4 个特征图,再通过最大池化进行二次采样。下一层将 10 个 5×5 的卷积核应用于这些子采样图像,并再次将特征映射集中在一起。最后一层是完全连接的层,用于组合所有生成的特征并用于分类器(本质上是逻辑回归)。图像由莫里斯·皮曼提供。

内容由 AI 大模型生成,请仔细甄别(powered by aily)

参考资料

深度学习(1)核心概念

卷积神经网络,或优选卷积网络或卷积网络(术语“神经”具有误导性;另请参见[人工神经元](https://developer.nvidia.com/zh-cn/blog/deep-learning-nutshell-core-concepts/#artificial-neuron))使用卷积[层](https://developer.nvidia.com/zh-cn/blog/deep-learning-nutshell-core-concepts/#layer)(参见[卷积](https://developer.nvidia.com/zh-cn/blog/deep-learning-nutshell-core-concepts/#%E5%8D%B7%E7%A7%AF)),它过滤输入以获取有用信息。这些卷积层具有学习的参数,以便自动调整这些滤波器以提取手头任务的最有用信息(参见特征学习)。例如,在一般的目标识别任务中,过滤有关对象形状的信息(对象通常具有非常不同的形状),而对于鸟类识别任务,它更适合于提取有关鸟的颜色的信息(大多数鸟的形状相似,但颜色不同);这里的颜色更能区分鸟类)。卷积网络会自动调整以找到这些任务的最佳特征。通常,多个卷积层用于在每一层之后过滤图像以获得越来越多的抽象信息(参见层次特征)。

深度学习(1)核心概念

卷积网络通常也使用池层(见[联营](https://developer.nvidia.com/zh-cn/blog/deep-learning-nutshell-core-concepts/#%E8%81%94%E8%90%A5)),以获得有限的平移和旋转不变性(即使对象出现在不寻常的地方也能检测到)。池化还可以减少内存消耗,从而允许使用更多的卷积层。最近的卷积网络使用初始模块(见[开端](https://developer.nvidia.com/zh-cn/blog/deep-learning-nutshell-core-concepts/#%E5%BC%80%E7%AB%AF)),它使用1 × 1卷积核来进一步减少内存消耗,同时加快计算速度(从而提高训练速度)。图5:一个交通标志的图像被4个5 × 5的卷积核过滤,生成4个特征图,这些特征图通过最大池化进行二次采样。下一层将10个5 × 5的卷积核应用于这些子采样图像,并再次将特征映射集中在一起。最后一层是一个完全连接的层,在这里所有生成的特征被组合并用于分类器(本质上是logistic回归)。图像由[莫里斯·皮曼](http://parse.ele.tue.nl/mpeemen)提供。附加材料:[课程:机器学习的神经网络:用神经网络识别物体](https://www.youtube.com/playlist?list=PLnnr1O8OWc6YLZzLoHzX2q5c2wWMOIUZy)。

深度学习(4)强化学习

一辆自动驾驶汽车可能需要考虑许多状态:速度和位置的每种不同组合都是不同的状态。但大多数状态都是相似的。是否有可能将相似的状态组合起来,使它们具有相似的Q值?这就是深度学习发挥作用的地方。我们可以将驾驶员当前的视野——一张图像——输入到[卷积神经网络](https://developer.nvidia.com/blog/parallelforall/deep-learning-nutshell-core-concepts/#convolutional-neural-network)(CNN),训练它以预测下一个可能行动的奖励。因为相似状态的图像是相似的(许多左转弯看起来相似),所以它们也会有相似的行动。例如,神经网络会生成许多左转弯,甚至对以前没有遇到过的左转弯采取适当的行动。正如在一个许多不同对象的图像上训练的CNN可以准确识别这些对象一样,一个通过很多相似左转弯变体训练的网络也能针对每个不同的左转弯进行速度和位置的微调。

其他人在问
可分离卷积
可分离卷积是卷积的一种特殊形式。在深度学习中,卷积具有多种解释和应用。 卷积可以描述信息的扩散,例如在不搅拌时牛奶在咖啡中的扩散,在量子力学中描述测量粒子位置时量子粒子在某个位置的概率,在概率论中描述互相关即重叠的两个序列的相似程度,在统计学中描述标准化输入序列上的加权移动平均值。 卷积滤波器可以被解释为特征检测器,输入针对某个特征进行过滤。图像的互相关可以通过反转核转换为卷积,内核可被解释为特征检测器,检测到特征会导致大输出,没有特征则小输出。 对于深度学习中卷积的哪种解释正确尚不明确,但目前最有用的解释是卷积滤波器作为特征检测器对输入进行过滤以解释图像的互相关。 相关参考资料包括: 图 3:通过在整个图像上滑动图像块来计算卷积。将原始图像(绿色)的一个图像块(黄色)乘以核(黄色斑块中的红色数字),并将其和写入一个特征映射像素(卷积特征中的红细胞)。图片来源:。 图 4:图像的互相关。卷积可以通过反转核(倒置图像)转换为互相关。然后,内核可以被解释为一个特征检测器,其中检测到的特征导致大输出(白色)和小输出(如果没有特征存在)(黑色)。图片取自。 附加材料:
2024-08-09
神经网络
神经网络是机器学习文献中的一类模型,受到生物神经网络的启发,是一种特定的算法,能应用于从输入到输出空间复杂映射的各类机器学习问题。 神经网络的发展历程如下: 早期,康奈尔航天实验室的 Mark I 感知机是第一台感知机的硬件,罗森布拉特用定制硬件的方法实现了感知机的想法,展示出它可对简单形状进行正确分类,自此机器学习问世。 神经网络本质上是多层感知机,在早期只有一层输出层。例如分辨手写数字时,输入是图像像素,有 10 个输出神经元,分别对应 10 个可能的数字,权值最高的和被视为正确输出。 神经网络的架构主要分为三类: 前馈神经网络:这是实际应用中最常见的类型。第一层是输入,最后一层是输出。若有多个隐藏层,则称为“深度”神经网络。各层神经元的活动是前一层活动的非线性函数。 循环网络:在连接图中有定向循环,可按箭头回到起始点。其动态复杂,训练难度大,但更具生物真实性。 Geoffrey Hinton 对神经网络的发展做出了重要贡献。早在 80 年代初期,他和同事开展研究时,因电脑性能限制成果有限,且当时 AI 主流研究方向不同,处境艰难。但他们坚持下来,到 2004 年创立了 Neural Computation and Adaptive Perception 项目。随着时间推移和计算机能力发展,神经网络更加快速、灵活、高效和可扩展。 神经网络可用于解决分类和回归等问题,在多个输出值的函数或具有多个类别的分类任务中,多输出函数能用位于同一层的多个感知机来学习。
2024-11-01
AIGC的底层科学原理是神经网络吗?
AIGC 的底层科学原理包含神经网络。 神经网络是一种模仿生物神经网络的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。它由大量的人工神经元联结进行计算,是一种自适应系统,具备学习功能。 在 AI 领域,神经网络是一种重要的技术。深度学习就是一种参照人脑结构,包含神经网络和神经元的方法(因层数较多而称为深度)。神经网络可以用于监督学习、无监督学习、强化学习等多种学习方式。 同时,Transformer 模型的出现也对 AIGC 产生了重要影响,它完全基于自注意力机制处理序列数据,比循环神经网络更适合处理文本的长距离依赖性。
2024-10-30
神经网络和深度学习简史
神经网络和深度学习有着丰富的发展历史: 1. 1958 年感知机神经网络诞生。 2. 70 年代经历了人工智能寒冬。 3. 1986 年 BP 算法让神经网络再度流行。 4. 尽管取得了一些成功,但在人工智能寒冬期间,用于神经网络研究的资金很少,人工智能一词近乎成为伪科学的代名词。 5. 1997 年,Hochreiter 和 Schmidhuber 为递归神经网络开发了长短期记忆(LSTM),但在当时被忽视。 6. 随着计算机变得更快和图形处理单元(GPU)的引入,神经网络逐渐与支持向量机相竞争。 7. 训练大型、深层网络存在梯度消失问题,解决方法包括逐层预训练,如 Schmidhuber 于 1992 年为递归神经网络开发的预训练方法,以及 Hinton 和 Salakhutdinov 于 2006 年为前馈网络开发的预训练方法。1997 年提出的长短期记忆(LSTM)也是解决递归神经网络中梯度消失问题的方案之一。
2024-10-23
神经网络的简单理解
神经网络是一种模仿生物神经网络结构和功能的数学模型或计算模型,用于分析图像、视频、音频和文本等复杂数据类型。 对于不同类型的数据有专门优化的神经网络,如分析图像时常用卷积神经网络,其模仿人脑处理视觉信息的方式。 在 2017 年推出 Transformer 之前,理解文本常用循环神经网络。而 Transformer 完全基于自注意力机制处理序列数据,比 RNN 更适合处理文本的长距离依赖性,在处理每个词时会注意输入序列里所有其他的词,并给予不同的注意力权重以捕获依赖关系和相关性,且具有自注意力机制和位置编码(因语言顺序很重要)。 神经网络由大量人工神经元联结进行计算,大多数情况下能在外界信息基础上改变内部结构,是一种自适应系统,具备学习功能。它是一种非线性统计性数据建模工具,通常通过基于数学统计学类型的学习方法得以优化,也是数学统计学方法的实际应用,能通过统计学方法让人 工神经网络具有类似人的简单决定和判断能力,这种方法比正式的逻辑学推理演算更具优势。 神经网络可用于监督学习、无监督学习、强化学习。
2024-09-06
帮我写一个R语言的神经网络分类问题代码
好的,下面是一个使用R语言进行神经网络分类问题的示例代码。我们将使用著名的鸢尾花数据集(Iris dataset)进行演示。这个数据集包含了150条记录,每条记录有4个特征和一个目标变量(花的种类)。 安装并加载所需的包 首先,我们需要安装并加载所需的包,如`neuralnet`和`nnet`。 ```r install.packages install.packages library library ``` 加载和准备数据 接下来,我们将加载Iris数据集,并将数据标准化,以便神经网络能够更好地处理。 ```r 加载内置的Iris数据集 data 查看数据集的结构 str 标准化函数 normalize < function { return } 对特征进行标准化 iris_norm < as.data.frame iris_norm$Species < iris$Species 将目标变量转换为因子类型 iris_norm$Species < as.factor 将数据集分为训练集和测试集 set.seed index < sample train_data < iris_norm test_data < iris_norm ``` 创建和训练神经网络模型 我们将使用`neuralnet`包创建一个简单的神经网络模型,并进行训练。 ```r 创建公式 formula < as.formula 训练神经网络模型 nn_model < neuralnet 查看模型结果 print ``` 可视化神经网络 我们可以使用内置的绘图功能来可视化神经网络。 ```r 绘制神经网络 plot ``` 进行预测并评估模型 使用测试数据进行预测,并评估模型的性能。 ```r 进行预测 nn_predictions < compute 将预测结果转换为因子类型 nn_predicted < as.factor(ifelse(nn_predictions$net.result > 0.5, "versicolor", ifelse 查看混淆矩阵 confusion_matrix < table print 计算准确率 accuracy < sum print ``` 完整代码 下面是完整的代码段,整合了上述各个步骤: ```r install.packages install.packages library library 加载内置的Iris数据集 data 查看数据集的结构 str 标准化函数 normalize < function { return } 对特征进行标准化 iris_norm < as.data.frame iris_norm$Species < iris$Species 将目标变量转换为因子类型 iris_norm$Species < as.factor 将数据集分为训练集和测试集 set.seed index < sample train_data < iris_norm test_data < iris_norm 创建公式 formula < as.formula 训练神经网络模型 nn_model < neuralnet 查看模型结果 print 绘制神经网络 plot 进行预测 nn_predictions < compute 将预测结果转换为因子类型 nn_predicted < as.factor(ifelse(nn_predictions$net.result > 0.5, "versicolor", ifelse 查看混淆矩阵 confusion_matrix < table print 计算准确率 accuracy < sum print ``` 以上代码演示了如何使用R语言中的`neuralnet`包创建和训练一个简单的神经网络模型,并使用该模型对鸢尾花数据集进行分类预测。通过标准化数据、分割数据集、训练模型、进行预测和评估模型,你可以全面了解如何在R中使用神经网络进行分类任务。
2024-06-03
深度神经网络是什么
深度神经网络(DNN)是一种机器学习模型,属于神经网络的一种。它是一种由多层神经元组成的模型,每一层神经元都可以接收和处理输入数据,并将处理后的数据传递给下一层神经元。DNN 在图像识别、语音识别、自然语言处理等领域取得了显著的成就。 DNN 通过反向传播算法进行训练。在训练过程中,输入数据通过网络的各个层进行传递和处理,最终产生输出结果。然后,通过比较输出结果与期望输出之间的差异,计算出误差信号。误差信号会反向传播到网络的每一层,用于调整神经元之间的连接权重,从而使网络的输出结果更加接近期望输出。这个过程会重复多次,直到网络的输出结果达到满意的精度为止。 DNN 具有很强的学习能力和泛化能力。它可以自动提取输入数据中的特征和模式,并将其表示为高层的抽象特征。这些抽象特征可以用于各种任务,如分类、回归、聚类等。此外,DNN 还具有很强的泛化能力,可以处理各种类型的数据,如图像、语音、文本等。 虽然 DNN 在许多领域都取得了显著的成就,但它也存在一些局限性,如需要大量的计算资源和数据、容易出现过拟合等。此外,DNN 的模型结构和参数需要经过精心设计和调整,以确保其在不同任务和数据集上的有效性和泛化能力。
2024-05-23