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

神经网络

回答

神经网络是机器学习文献中的一类模型,受到生物神经网络的启发,是一种特定的算法,能应用于从输入到输出空间复杂映射的各类机器学习问题。

神经网络的发展历程如下:

  • 早期,康奈尔航天实验室的 Mark I 感知机是第一台感知机的硬件,罗森布拉特用定制硬件的方法实现了感知机的想法,展示出它可对简单形状进行正确分类,自此机器学习问世。
  • 神经网络本质上是多层感知机,在早期只有一层输出层。例如分辨手写数字时,输入是图像像素,有 10 个输出神经元,分别对应 10 个可能的数字,权值最高的和被视为正确输出。

神经网络的架构主要分为三类:

  • 前馈神经网络:这是实际应用中最常见的类型。第一层是输入,最后一层是输出。若有多个隐藏层,则称为“深度”神经网络。各层神经元的活动是前一层活动的非线性函数。
  • 循环网络:在连接图中有定向循环,可按箭头回到起始点。其动态复杂,训练难度大,但更具生物真实性。

Geoffrey Hinton 对神经网络的发展做出了重要贡献。早在 80 年代初期,他和同事开展研究时,因电脑性能限制成果有限,且当时 AI 主流研究方向不同,处境艰难。但他们坚持下来,到 2004 年创立了 Neural Computation and Adaptive Perception 项目。随着时间推移和计算机能力发展,神经网络更加快速、灵活、高效和可扩展。

神经网络可用于解决分类和回归等问题,在多个输出值的函数或具有多个类别的分类任务中,多输出函数能用位于同一层的多个感知机来学习。

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

参考资料

深度|神经网络和深度学习简史(第一部分):从感知机到BP算法

[title]深度|神经网络和深度学习简史(第一部分):从感知机到BP算法[heading1]虚假承诺的荒唐这个过程很简单,产生了一个简单的结果:一个输入线性函数(加权和),正如线性回归被非线性激活函数「压扁」了一样(对带权重求和设定阈值的行为)。当函数的输出值是一个有限集时(例如逻辑函数,它只有两个输出值True/1和False/0),给带权重的和设置阈值是没问题的,所以问题实际上不在于要对任何输入数据集生成一个数值上连续的输出(即回归类问题),而在于对输入数据做好合适的标签(分类问题)。康奈尔航天实验室的Mark I感知机,第一台感知机的硬件罗森布拉特用定制硬件的方法实现了感知机的想法(在花哨的编程语言被广泛使用之前),展示出它可以用来学习对20×20像素输入中的简单形状进行正确分类。自此,机器学习问世了——建造了一台可以从已知的输入输出对中得出近似函数的计算机。在这个例子中,它只学习了一个小玩具般的函数,但是从中不难想象出有用的应用,例如将人类乱糟糟的手写字转换为机器可读的文本。很重要的是,这种方法还可以用在多个输出值的函数中,或具有多个类别的分类任务。这对一台感知机来说是不可能完成的,因为它只有一个输出,但是,多输出函数能用位于同一层的多个感知机来学习,每个感知机接收到同一个输入,但分别负责函数的不同输出。实际上,神经网络(准确的说应该是「人工神经网络(ANN,Artificial Neural Networks)」)就是多层感知机(今天感知机通常被称为神经元)而已,只不过在这个阶段,只有一层——输出层。所以,神经网络的典型应用例子就是分辨手写数字。输入是图像的像素,有10个输出神经元,每一个分别对应着10个可能的数字。在这个案例中,10个神经元中,只有1个输出1,权值最高的和被看做是正确的输出,而其他的则输出0。

入门 | 机器学习研究者必知的八个神经网络架构

[title]入门|机器学习研究者必知的八个神经网络架构神经网络是机器学习文献中的一类模型。例如,如果你参加了Coursera的机器学习课程,很可能会学到神经网络。神经网络是一套特定的算法,它彻底改变了机器学习领域。他们受到生物神经网络的启发,目前深度神经网络已经被证实效果很好。神经网络本身是一般的函数逼近,这就是为什么它们几乎可以应用于任何从输入到输出空间复杂映射的机器学习问题。以下是说服你学习神经计算的三个理由:了解大脑是如何工作的:它非常大且很复杂,一旦破坏就会脑死亡,所以我们需要使用计算机模拟。了解受神经元及其适应性连接启发的并行计算风格:这种风格与序列计算截然不同。使用受大脑启发的新颖学习算法来解决实际问题:即使不是大脑的实际工作方式,学习算法也非常有用。在完成吴恩达的Coursera机器学习课程后,我开始对神经网络和深度学习产生兴趣,因此寻找最好的网上资源来了解这个主题,并找到了Geoffrey Hinton的机器学习神经网络课程。如果你正在做深度学习的工程或想要踏入深度学习/机器学习的领域,你应该参加这个课程。Geoffrey Hinton毫无疑问是深度学习领域的教父,在课程中给出了非凡的见解。在这篇博客文章中,我想分享我认为任何机器学习研究人员都应该熟悉的八个神经网络架构,以促进他们的工作。一般来说,这些架构可分为三类:1.前馈神经网络这是实际应用中最常见的神经网络类型。第一层是输入,最后一层是输出。如果有多个隐藏层,我们称之为「深度」神经网络。他们计算出一系列改变样本相似性的变换。各层神经元的活动是前一层活动的非线性函数。2.循环网络循环网络在他们的连接图中定向了循环,这意味着你可以按照箭头回到你开始的地方。他们可以有复杂的动态,使其很难训练。他们更具有生物真实性。

Geoffrey Hinton 是这个人,一步步把“深度学习”从边缘课题变成Google等网络巨头仰赖的核心技术

[title]Geoffrey Hinton是这个人,一步步把“深度学习”从边缘课题变成Google等网络巨头仰赖的核心技术他不知道所有的答案,但在他的努力之下已经取得了进展。“我非常兴奋,我们改进了神经网络,而这是一个比较接近大脑真实工作的方式。”他很高兴的说到。在Hinton的世界里,神经网络本质上就像一个运行在多层面上的软件。他和他的伙伴建立了一层层互相连接的人工神经元模型,模仿大脑的行为,处理视觉和语言等复杂问题。这些人工神经网络可以收集信息,也可以对其做出反应。它们能对事物的外形和声音做出解释。它们对语言的理解也在进步。它们可以自行学习与工作,而不需要人为提示或者参与控制。这些正是它们与传统的学习机器的区别。随着时间的推移,计算机能力的发展,神经网络也更加快速,灵活,高效,得到了很好的扩展。因为这一切已经酝酿了30年了。从非主流到核心技术早在80年代初期,当Hinton和他的同事们刚开始这项研究时,那时的电脑还不够快,不足以处理有关神经网络的这些庞大的数据,他们取得的成就是有限的。而当时AI普遍的研究方向也与他们相反,都在试图寻找捷径,直接模拟出行为,而不是试图通过模仿大脑的运作来实现。在这样艰难的环境下,Hinton和LeCun仍旧坚持了下来。就算到了2004,学术界对他们的研究仍未提起兴趣。而这时距离他们首次提出“反向传播”算法已经过了20年。这个算法是他们神经网络研究的垫脚石。但也就在这一年,靠着少量的来自Canadian Institute for Advanced Research(CIFAR)以及LeCun和Bengio的资金支持,Hinton创立了Neural Computation and Adaptive Perception(NCAP,神经计算和自适应感知)项目。该项目邀请了来自计算机科学,生物,电子工程,神经科学,物理学和心理学等领域的专家参与。

其他人在问
卷积神经网络模型原理
卷积神经网络(CNN)通常由卷积层、池化层和全连接层叠加构成。在卷积过程中,卷积层中的卷积核依次与输入图像的像素做卷积运算来自动提取图像中的特征。卷积核尺寸一般小于图像,并以一定的步长在图像上移动得到特征图。步长设置越大,特征图尺寸越小,但过大步长会损失部分图像特征。此外,池化层作用于产生的特征图上,能保证 CNN 模型在不同形式的图像中识别出相同物体,同时减少模型对图像的内存需求,其最大特点是为 CNN 模型引入了空间不变性。
2024-12-19
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
卷积神经网络
卷积神经网络,也称为卷积网络,使用卷积层来过滤输入以获取有用信息。卷积层具有可学习的参数,能自动调整滤波器以提取对应任务的最有用特征。例如在一般目标识别中侧重对象形状信息,鸟类识别中更倾向于鸟的颜色信息,它会自动适配以找到最佳特征。 通常,多个卷积层依次作用,在每一层后对图像进行过滤,获取越来越多的抽象信息,形成层次特征。 卷积网络还常使用池层,以实现有限的平移和旋转不变性,即便对象出现在异常位置也能检测到,同时能减少内存消耗,从而支持使用更多卷积层。 近期的卷积网络采用初始模块,利用 1×1 卷积核进一步降低内存消耗并加快计算速度,提高训练效率。 例如在自动驾驶汽车场景中,可将驾驶员当前视野的图像输入到卷积神经网络,训练其预测下一个可能行动的奖励。相似状态的图像相似,行动也相似,网络能针对不同情况进行微调。 相关附加材料: 。 图 5 展示了一个交通标志的图像被 4 个 5×5 的卷积核过滤,生成 4 个特征图,再通过最大池化进行二次采样。下一层将 10 个 5×5 的卷积核应用于这些子采样图像,并再次将特征映射集中在一起。最后一层是完全连接的层,用于组合所有生成的特征并用于分类器(本质上是逻辑回归)。图像由提供。
2024-07-20
帮我写一个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