目录

一、神经网络的定义

二、神经网络的发展

2.1 初创期

2.2 低潮期

2.3 复兴期

2.4 深度学习期

三、LSTM(Long Short-Term Memory)

四、2个经典模型的案例

4.1 多层感知器(MLP)

4.2 卷积神经网络(CNN)


欢迎参考我之前的文章:

【AI】人工智能复兴的推进器之自然语言处理-CSDN博客

【AI】人工智能复兴的推进器之机器学习-CSDN博客(腾讯云社区收录)

一、神经网络的定义

神经网络是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量节点(或神经元)相互关联构成,每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这可以看作人工神经元的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

此外,根据网络的结构和运行方式,神经网络可以分为前馈神经网络和反馈神经网络。前馈神经网络中,当前层的输入只依赖于前一层的节点输出,与更早的网络输出状态无关。而在反馈神经网络中,输出会被一步时移再接入到输入层,输入不仅仅取决于上一层节点的输出。

二、神经网络的发展

神经网络的发展路径可以大致分为以下几个阶段:

2.1 初创期

  1. 1943年,心理学家Warren McCulloch和数学家Walter Pitts提出了MP模型,这是第一个用数理语言描述脑功能的神经元网络模型,标志着神经网络研究的开始。
  2. 1949年,心理学家Donald Hebb提出了Hebb学习规则,为神经网络的学习算法奠定了基础。

2.2 低潮期

在1969年,人工智能的创始人Marvin Minsky和Seymour Papert出版了《Perceptrons》一书,指出简单的线性感知机无法解决异或等线性不可分问题,这一论断使神经网络的研究陷入了近20年的低潮期。

当然,尽管Minsky和Papert的论断对神经网络的研究造成了负面影响,但他们的批评也促使了神经网络研究的深入思考和改进。在随后的年代里,一些研究人员开始探索多层感知器(MLP)和其他更复杂的神经网络结构,以克服简单感知器的局限性。这些努力为神经网络的复兴奠定了基础。

在低潮期间,仍然有一些重要的工作在进行。例如,1972年,芬兰的Kohonen T.教授提出了自组织神经网络SOM(Self-Organizing feature map),这是一种无导师学习网络,主要用于模式识别、语音识别及分类问题。这种学习训练方式可以在不知道有哪些分类类型存在时,用作提取分类信息的一种训练。SOM网络为后来的神经网络发展提供了重要的思路和方法。

2.3 复兴期

  1. 1982年,美国物理学家John Hopfield提出了Hopfield网络模型,引入了“计算能量”的概念,给出了网络稳定性判据,为神经网络的复兴奠定了基础。
  2. 1986年,David Rumelhart和James McClelland等人提出了BP(Back Propagation)算法,即反向传播算法,解决了多层神经网络的学习问题,使得神经网络的训练变得更加有效。

2.4 深度学习期

  1. 2006年,Hinton等人提出了深度学习的概念,通过逐层预训练的方式解决了深度神经网络难以训练的问题,开启了深度学习的时代。
  2. 随着计算机硬件的发展,尤其是GPU的出现,使得大规模神经网络的训练成为可能,深度学习开始广泛应用于各个领域。

神经网络已经在图像识别、语音识别、自然语言处理等领域取得了显著的成果。未来,随着硬件设备的进一步发展以及算法的不断优化,神经网络将会在更多的领域发挥更大的作用。同时,对于神经网络的解释性、可解释性以及安全性等方面的研究也将成为未来的重要方向。

此外,LSTM也是不得不提及的信息点。

LSTM是一种特殊的RNN(循环神经网络),由Hochreiter和Schmidhuber在1997年提出,并在后续工作中得到了许多人的改进和推广。它是为了解决一般RNN存在的长期依赖问题而专门设计的。传统的RNN在处理长序列数据时可能会遇到梯度消失或梯度爆炸的问题,使得模型无法有效地学习长期依赖关系。相比之下,LSTM通过引入记忆单元和门控机制,能够有选择地保留重要信息并遗忘不重要的信息,从而有效地学习并处理长序列数据中的长期依赖关系。

LSTM在许多应用中都表现出色,尤其是那些需要处理时间序列数据或具有长期依赖关系的任务,如语音识别、文本生成、机器翻译等。它的成功也推动了其他类似变体的发展,如GRU(门控循环单元)等。

三、LSTM(Long Short-Term Memory)

还是要把LSTM单独阐述一下。LSTM,在神经网络知识体系中具有重要的地位,它是一种特殊类型的RNN(循环神经网络),被设计用来解决长期依赖问题。以下是LSTM在神经网络知识体系中的几个重要方面:

  1. 解决长期依赖问题:传统的RNN在处理长序列数据时可能会遇到梯度消失或梯度爆炸的问题,使得模型无法有效地学习长期依赖关系。LSTM通过引入记忆单元和门控机制,能够有选择地保留重要信息并遗忘不重要的信息,从而有效地学习并处理长序列数据中的长期依赖关系。
  2. 推动循环神经网络的发展:LSTM的成功推动了循环神经网络领域的发展,并启发了其他类似变体的发展,如GRU(门控循环单元)等。这些变体在保持LSTM的核心思想的同时,对结构和计算进行了优化,进一步提高了模型的性能。
  3. 广泛的应用领域:LSTM在许多应用中都表现出色,尤其是那些需要处理时间序列数据或具有长期依赖关系的任务,如语音识别、文本生成、机器翻译等。它的成功应用证明了其在处理复杂序列数据方面的有效性。
  4. 为深度学习奠定基础:随着深度学习的发展,LSTM等循环神经网络结构成为了深度学习模型的重要组成部分。它们与其他深度学习技术(如卷积神经网络、自编码器等)相结合,构建出更加强大和复杂的深度学习模型,进一步推动了人工智能领域的发展。

具体包括什么内容呢,LSTM通过引入“单元状态”和三个门控机制:输入门、遗忘门和输出门,LSTM能够选择性地保留或遗忘信息,从而有效地学习并处理长序列数据中的长期依赖关系。

  1. 单元状态(Cell State)。单元状态是LSTM中的核心部分,它负责信息的传递。与RNN中的隐藏状态不同,单元状态在LSTM中是相对稳定的,它可以在序列中长时间传递信息而不受到太大的干扰。单元状态就像一个传送带,它贯穿于整个链条,使得信息可以在序列的起始位置一直传递到序列的结束位置。这种机制使得LSTM能够有效地处理长期依赖关系。
  2. 输入门(Input Gate)。输入门负责决定哪些新信息会被加入到单元状态中。它接收当前的输入和前一个隐藏状态作为输入,通过sigmoid函数计算出一个0到1之间的值,这个值表示新信息的保留程度。同时,输入门还通过一个tanh函数计算出一个新的候选值,这个候选值表示新信息的具体内容。然后,输入门将sigmoid函数的输出与tanh函数的输出相乘,得到的结果就是实际加入到单元状态中的新信息。
  3. 遗忘门(Forget Gate)。遗忘门负责决定哪些旧信息会被从单元状态中遗忘。它同样接收当前的输入和前一个隐藏状态作为输入,通过sigmoid函数计算出一个0到1之间的值,这个值表示旧信息的保留程度。然后,遗忘门将这个值与上一个时刻的单元状态相乘,得到的结果就是实际保留的旧信息。通过遗忘门,LSTM能够选择性地遗忘不重要的信息,从而避免信息的冗余和干扰。
  4. 输出门(Output Gate)。输出门负责决定哪些信息会被输出到隐藏状态中。它首先通过sigmoid函数计算出一个0到1之间的值,这个值表示信息的输出程度。然后,输出门将这个值与经过tanh函数处理的单元状态相乘,得到的结果就是实际输出的隐藏状态。通过输出门,LSTM能够选择性地输出重要的信息,从而提供给下一层的网络使用。

LSTM通过引入单元状态和三个门控机制,有效地解决了RNN在处理长序列数据时遇到的长期依赖问题。这种设计使得LSTM能够在许多任务中表现出色,尤其是那些需要处理时间序列数据或具有长期依赖关系的任务。

四、2个经典模型的案例

下面我将介绍两种非常流行的神经网络模型,并提供用Python实现的简单代码片段,以帮助您快速理解神经网络。

4.1 多层感知器(MLP)

多层感知器是一种前馈神经网络,由多个全连接层组成。它是最简单的神经网络形式之一,适用于各种分类和回归任务。

下面是一个使用Python和Keras库实现多层感知器的示例代码:

from keras.models import Sequential  
from keras.layers import Dense  
  
# 定义模型结构  
model = Sequential()  
model.add(Dense(16, input_dim=10, activation='relu'))  # 输入层,10个输入神经元,16个隐藏神经元  
model.add(Dense(8, activation='relu'))  # 隐藏层,8个神经元  
model.add(Dense(1, activation='sigmoid'))  # 输出层,1个输出神经元  
  
# 编译模型  
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])  
  
# 训练模型(这里仅作示例,实际训练需要使用真实数据)  
# X_train, y_train = ...  # 训练数据和标签  
# model.fit(X_train, y_train, epochs=10, batch_size=32)

4.2 卷积神经网络(CNN)

卷积神经网络是一种专门用于处理图像数据的神经网络。它通过卷积层和池化层来提取图像的特征,并使用全连接层进行分类或回归。

下面是一个使用Python和Keras库实现卷积神经网络的示例代码:

from keras.models import Sequential  
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense  
  
# 定义模型结构  
model = Sequential()  
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))  # 卷积层,32个卷积核,大小为3x3  
model.add(MaxPooling2D((2, 2)))  # 池化层,2x2的池化窗口  
model.add(Flatten())  # 扁平化层,将二维特征图转换为一维向量  
model.add(Dense(128, activation='relu'))  # 全连接层,128个神经元  
model.add(Dense(10, activation='softmax'))  # 输出层,10个输出神经元(假设有10个类别)  
  
# 编译模型  
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])  
  
# 训练模型(这里仅作示例,实际训练需要使用真实数据)  
# X_train, y_train = ...  # 训练数据和标签(注意输入数据的维度要与模型的输入匹配)  
# model.fit(X_train, y_train, epochs=10, batch_size=32)

这些代码片段只是神经网络的简单示例,实际的神经网络可能会更加复杂,包括更多的层和更复杂的结构。但是通过这些示例,您可以了解神经网络的基本构建块和训练过程。

相关文章

从虚拟到现实:数字孪生驱动智慧城市可持续发展

同时,我们也需要不断探索和创新数字孪生技术的应用场景和发展方向,为智慧城市的可持续发展提供更加全面和深入的支持。“方案365”2023年全新整理智慧城市、数字孪生、乡村振兴、智慧乡村、元宇宙、数据中台、智慧园区、智慧社区、智慧矿山、城市生命线、智慧水利、智慧应急、智慧校园、智慧工地、智慧农业、智慧文旅、智慧交通等300+行业全套解决方案。通过智能电表和能源管理系统,数字孪生技术可以实现对家庭、企业等各个层面的能源使用情况进行监测和优化,提高能源利用效率,推动城市的绿色发展。

如何使用人工智能优化 DevOps?

DevOps 和人工智能密不可分,影响着各种业务。DevOps 可以加快产品开发速度并简化现有部署的维护,而 AI 则可以改变整个系统的功能。DevOps团队可以依靠人工智能和机器学习来进行数据集成、测试、评估和发布系统。更重要的是,人工智能和机器学习可以以高效、快速、安全的方式改进 DevOps 驱动的流程。从开发人员实用性和业务支持的角度来看, 评估AI和ML在 DevOps 中的重要性对于企业来说是有益的。

人工智能有哪些领域?

像京东自主研发的无人仓采用大量智能物流机器人进行协同与配合,通过人工智能、深度学习、图像智能识别、大数据应用等技术,让工业机器人可以进行自主的判断和行为,完成各种复杂的任务,在商品分拣、运输、出库等环节实现自动化。人工智能在金融领域的应用主要有:智能获客、身份识别、大数据风控、智能投顾、智能客服、金融云等,该行业也是人工智能渗透最早、最全面的行业。目前,我国在ITS方面的应用主要是通过对交通中的车辆流量、行车速度进行采集和分析,可以对交通进行实施监控和调度,有效提高通行能力、简化交通管理、降低环境污染等。

为什么ChatGPT选择了SSE,而不是WebSocket?

WebSocket是一种网络通信协议,它最早被提出来是为了解决HTTP连接的一大限制:HTTP协议中,一个客户端发送给服务端的请求必须由服务端返回一个响应,这使得服务端无法主动向客户端推送数据。客户端通过发送一个特殊的HTTP请求向服务器请求建立WebSocket连接。这个请求类似于:GET /chat HTTP/1.1 Upgrade: websocket Connection: Upgrade服务器响应这个请求,确认建立WebSocket连接。

使用LOTR合并检索提高RAG性能

为了解决LIM问题并提高检索性能,对RAG系统进行增强是非常重要的。通过设置不同的VectorStores并将它们与Merge retriver结合,以及使用LongContextReorder重新排列结果,可以减少LIM问题并使检索过程更高效。此外,在合并检索器中合并特定领域的嵌入也有着关键作用。这些步骤对于确保我们不会在检索文件的过程中遗漏重要细节至关重要。Lost in the Middle: How Language Models Use Long Contexts 论文。

目标检测与测距算法在极端天气下的应用

在现代社会中,极端天气条件对人们的生活和工作带来了很大的挑战。对于一些特定领域,如交通运输、安全监控等,准确的目标检测与测距算法在极端天气下尤为重要。本文将分点概述极端天气下目标检测与测距算法的关键问题及解决办法。

AI时代架构设计新模式

本书是一本旨在帮助架构师在人工智能时代展翅高飞的实用指南。全书以ChatGPT为核心工具,揭示了人工智能技术对架构师的角色和职责进行颠覆和重塑的关键点。本书通过共计 13 章的系统内容,深入探讨AI技术在架构设计中的应用,以及AI对传统架构师工作方式的影响。通过学习,读者将了解如何利用ChatGPT这一强大的智能辅助工具,提升架构师的工作效率和创造力。本书的读者主要是架构师及相关从业人员。

深度解析 PyTorch Autograd:从原理到实践

本文深入探讨了 PyTorch 中 Autograd 的核心原理和功能。从基本概念、Tensor 与 Autograd 的交互,到计算图的构建和管理,再到反向传播和梯度计算的细节,最后涵盖了 Autograd 的高级特性。

AIGC实战——WGAN(Wasserstein GAN)

在本节中,我们学习了如何使用 Wasserstein 损失函数以解决经典 GAN 训练过程中的模式坍塌和梯度消失等问题,使得 GAN 的训练更加可预测和可靠。WGAN-GP 通过在损失函数中添加一个令梯度范数指向 1 的项,为训练过程施加 1-Lipschitz 约束。

ChatGPT的常识

ChatGPT不仅可以提供高效的服务,还可以通过模拟人类对话和表情,提高人机交互的趣味性和友好性。其次,ChatGPT可以实现个性化服务,根据用户的个性化需求和反馈不断优化和改进。用户在与ChatGPT进行交互的过程中,ChatGPT可以对用户的个性化需求进行识别和记录,从而实现个性化的服务。ChatGPT的设计理念是建立一个可以持续学习和更新的聊天机器人,可以不断地根据用户的反馈和互动进行优化和改进。同时,ChatGPT还具有很强的适应性和灵活性,可以应对不同场景和话题的要求。

人工智能时代:AIGC的横空出世

AIGC是一种新的人工智能技术,即人工智能生成内容。它是一种基于机器学习和自然语言处理的技术,能够自动产生文本、图像、音频等多种类型的内容。

【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)

脑肿瘤是一种致命的疾病,没有MRI技术,无法可靠地检测到。为了为MRI图像的形态学操作铺平道路,我们首先使用各向异性扩散滤波器对图像进行滤波,以降低像素之间的对比度。然后,我们调整图像大小,并手动将其转换为黑白图像,通过阈值处理来初步筛选出肿瘤可能存在的区域。这个项目的更大目标是建立一个包含从不同角度拍摄的特定人类MRI图像中的肿瘤2D图像数据的数据库,并通过对这些图像进行分析来确定肿瘤的精确3D位置。尽管这个模拟程序在大多数情况下可以给出准确的结果,但对于过小的肿瘤或具有中空结构的肿瘤,它可能无法执行。

NLP机器翻译全景:从基本原理到技术实战全解析

机器翻译是使计算机能够将一种语言转化为另一种语言的技术领域。本文从简介、基于规则、统计和神经网络的方法入手,深入解析了各种机器翻译策略。同时,详细探讨了评估机器翻译性能的多种标准和工具,包括BLEU、METEOR等,以确保翻译的准确性和质量。

深入解析NLP情感分析技术:从篇章到属性

情感分析是自然语言处理的核心领域,专注于挖掘文本的主观情感。本文深入探讨了从篇章到属性级的情感分析技术,强调了上下文的重要性,并展示了Python和PyTorch的实践应用。通过深入了解这些技术背后的原理,我们揭示了深度学习在情感分析中的强大潜力和实际价值。

深入探索智能问答:从检索到生成的技术之旅

在本文中,我们深入探讨了自然语言处理中的智能问答系统,从其发展历程、主要类型到不同的技术实现。文章详细解析了从基于检索、对话到基于生成的问答系统,展示了其工作原理和具体实现。通过对技术和应用的深度剖析,旨在帮助读者对这一令人兴奋的领域有更全面的认识。

深度解析NLP文本摘要技术:定义、应用与PyTorch实战

在本文中,我们深入探讨了自然语言处理中的文本摘要技术,从其定义、发展历程,到其主要任务和各种类型的技术方法。文章详细解析了抽取式、生成式摘要,并为每种方法提供了PyTorch实现代码。最后,文章总结了摘要技术的意义和未来的挑战,强调了其在信息过载时代的重要性。

解码知识图谱:从核心概念到技术实战

本文深入探索了知识图谱的核心概念、发展历程、研究内容以及其在表示、存储、获取、构建和推理方面的技术细节。结合Python和PyTorch示例代码,文章旨在为读者提供一个全面、深入且实用的知识图谱概览,帮助广大技术爱好者和研究者深化对此领域的认识。

NLP技术如何为搜索引擎赋能

在全球化时代,搜索引擎不仅需要为用户提供准确的信息,还需理解多种语言和方言。本文详细探讨了搜索引擎如何通过NLP技术处理多语言和方言,确保为不同地区和文化的用户提供高质量的搜索结果,同时提供了基于PyTorch的实现示例,帮助您更深入地理解背后的技术细节。

NLP文本生成全解析:从传统方法到预训练完整介绍

本文深入探讨了文本生成的多种方法,从传统的基于统计和模板的技术到现代的神经网络模型,尤其是LSTM和Transformer架构。文章还详细介绍了大型预训练模型如GPT在文本生成中的应用,并提供了Python和PyTorch的实现代码。
返回
顶部