社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

理解DeepSeek的中国式创新,要先回顾深度学习的历史

观察者网 • 8 月前 • 93 次点击  

► 文 观察者网心智观察所 

深度学习,这个在科技圈的热门词汇,究竟为何让人如此着迷?它就像一个数据的探险家,借助深层神经网络(DNN)在信息的海洋中探寻奥秘。而这里的“深度”就意味着一个层层深入的学习过程,能从复杂的数据中自动提取有价值的特征,无需人类费劲心力去设计。

不论是图像识别还是自然语言处理,深度学习已经成为它们的幕后英雄。然而,当你听到GPT或Transformer的名字时,是不是总忍不住想知道它们背后的秘密?

近来在网上被热捧的中国AI界拼多多”DeepSeek,以模型架构的创新,在性能表现出众的同时节约了显存和计算资源,证明了中国人不是只能做从1-10的应用创新,也能做从0-1的技术创新。你也许听说过其创新的架构设计,叫多头潜在注意力(MLA)机制,想粗浅理解一下这是什么意思?

这正是本文的目的——用通俗易懂的语言,心智观察所带你回顾深度学习的发展史,从感知机的萌芽到GPT的辉煌,揭开那些重要的技术突破。


从感知机到深度神经网络

让我们回到1958年,那时候,Frank Rosenblatt提出了感知机,这可是神经网络的鼻祖。感知机就像一个简单的开关,接收信号,加权计算,然后通过一个神奇的激活函数决定是开还是关。这就像是在说:“嘿,这个图像是猫还是狗?”如果信号足够强,它就会说:“是猫!”否则就是:“不是猫!”通过学习,感知机能够调整自己的权重,变得越来越聪明。

感知机的基本结构类似于生物神经元,它接收多个输入信号,并通过加权计算生成一个输出信号。每个输入代表一个特定的特征,例如图像中的像素值。每个输入都有一个与之关联的权重,感知机会将所有输入乘以相应的权重,并将结果求和。

求和后的结果通过一个激活函数,决定输出是0还是1。例如,如果和超过某个阈值,感知机输出1,表示属于某个类别;否则输出0。通过一组已标注的训练数据,感知机可以调整输入的权重,以不断优化其判断的准确性。

感知机特别适合用于处理线性可分的问题,比如简单的分类任务,例如判断一封电子邮件是“垃圾邮件”还是“正常邮件”。然而,感知机也有其局限性,它只能处理线性可分的情况,也就是说,对于一些更加复杂的非线性问题(例如某些图像识别任务),单层感知机无法得到正确的分类。

尽管感知机有其局限性,但它的提出标志着神经网络技术的开端,随后更复杂的多层神经网络得到了发展。

多层神经网络(也称为深度神经网络)通常由多个层次构成,包括输入层、隐藏层和输出层。每一层由多个神经元组成,神经元之间通过权重连接,形成一个复杂的网络结构。当输入数据通过网络时,逐层进行处理和变换,从而实现最终的输出。

到了1986年,三位大师Rumelhart、Hinton和Williams推出了反向传播(Backpropagation)算法,为训练多层神经网络开辟了新天地。这套算法的核心理念是:当模型预测错了,就通过误差信息“反向追踪”,告诉每一层网络的权重该如何调整。

Geoffrey Hinton

想象一下,反向传播就像是老师在批改作业,指出学生的错误并给予具体的改进建议。它通过链式法则计算梯度,逐层调整权重,最终让模型的预测误差越来越小。

梯度计算的目的是为了找到损失函数的最小值。损失函数衡量了网络预测输出与实际输出之间的差异,优化的过程就是通过调整网络中的权重和偏差来使得损失函数的值不断降低,从而提高模型的预测性能。

反向传播算法的核心在于通过链式法则有效地计算每个参数(权重)的梯度,从而优化网络的性能。

整个过程中,在网络中输入数据,神经元通过激活函数计算输出,从输入层一路传播到输出层。预测输出与实际输出之间的误差(损失函数)被计算出来,这个误差将用于后续的权重更新。

反向传播从输出层开始,首先,计算输出层每个神经元的误差,通常使用均方误差(MSE)等损失函数来衡量。然后,通过链式法则将输出层的误差向后传播到每一个隐藏层。对每一层神经元的各个权重进行求导,计算出每个权重对应的梯度。最后,使用计算得到的梯度信息,通过优化算法(如梯度下降法),调整网络中的权重,以减小预测误差。这一过程会反复进行,直至网络收敛到一个较低的误差水平。

尽管这一算法解决了训练深层网络的技术难题,但受限于当时的计算资源和数据量,深度学习的发展仍然步履蹒跚。

梯度消失也是一个问题,随着网络层数的增加,反向传播过程中,误差的梯度可能会逐渐减小至接近零,导致权重更新变得非常缓慢,影响模型的学习效果。


卷积神经网络与循环神经网络

面对深度学习的瓶颈,科学家们开始研发针对不同任务的专用网络模型。其中,卷积神经网络(CNN)和循环神经网络(RNN)成为了两大明星。

卷积神经网络(CNN)是为了解决传统深度神经网络在处理图像数据时的效率和精度问题而提出的。CNN通过引入卷积操作,优化了网络结构,有效地解决了一系列图像处理中的挑战。

想象一下,你是一位侦探,正在分析一幅复杂的地图(例如城市的俯视图)。这幅地图包含许多细节:道路、建筑物、河流等。为了找到重要的信息,你不会一次性看完整张地图,而是使用一个“放大镜”逐步扫描地图的不同区域。

放大镜就是卷积核,放大镜是一个固定大小的工具(例如 3x3 的矩阵),你用它覆盖地图的一个小区域(感受野),捕捉局部特征(如建筑物形状或道路交叉口)。

逐步移动放大镜就是卷积操作,你会逐步移动放大镜(滑动窗口),扫描整张地图。每次移动时,你记录下当前区域的特征。每个小区域的分析结果都会形成一张“总结表”(特征图),告诉你哪些区域更重要。多层放大镜就是多层卷积,你可以用不同的放大镜(卷积核)关注不同的细节,例如一个看建筑形状,另一个看道路模式。经过多层分析后,你能更全面地理解整张地图。

与CNN不同,循环神经网络(RNN)是为了解决序列数据学习任务而提出的,它特别适合处理时间序列或序列数据(如文本、音频等)。

想象你正在阅读一本小说,而不是一口气看完整本书,你会逐句阅读,并不断记住之前的信息,以便理解当前的情节。

当前句子就是当前时间步的数据,每次你只看一小段内容(一个时间步的输入,例如一个单词或一句话)。你的记忆力就是隐藏状态(Hidden State),你会用“记忆力”记住之前的内容(例如上一章发生了什么),并结合当前句子的内容,理解当前的情节。每次阅读新的句子时,你的理解依赖于之前的记忆。

例如,读到“她突然哭了”时,你需要记得前面提到她失去了最好的朋友。这种前后依赖就是循环结构。如果你的记忆力有限(梯度消失问题),可能会忘记很久之前的细节。例如,刚读完的句子影响最大,而几章之前的内容逐渐淡忘。遗忘旧信息,对应于模型中的信息遗忘机制。

CNN就像一位用放大镜扫描图片的侦探,逐步提取局部信息并整合成全局理解,非常适合处理图像数据。RNN就像一个读者,逐步读取和理解时间序列数据(例如文本或语音),通过记忆力捕捉前后文的关联。

RNN在处理时间序列数据时,会遇到的梯度消失和梯度爆炸问题。梯度消失是指,在反向传播过程中,随着时间步的增加,梯度值可能不断减小,最终导致网络难以更新前面时刻的权重。这使得模型无法有效学习长程依赖的信息。相反,某些情况下,梯度可能会迅速增大,导致数值不稳和模型难以训练,这就是梯度爆炸。

另外,传统RNN在处理上下文关联时,较难捕捉到长时间间隔的依赖关系。例如,在分析一段文本时,可能需要理解更早时间位置的信息,而标准RNN的设计无法保证。

为了解决这些问题,Sepp Hochreiter和Jürgen Schmidhuber在1997年提出一种特殊类型的递归神经网络(RNN),也就是长短时记忆网络(LSTM,Long Short-Term Memory)。LSTM通过引入门控机制,有效解决了上述问题。

 
Jürgen Schmidhuber


想象你在听一场漫长的演讲。速记员需要快速记录演讲中的关键内容,同时避免被冗长的信息淹没。

速记员有一本笔记本,专门用来记录重要的内容(长期记忆),但他必须谨慎选择哪些信息应该保留。笔记本就是细胞状态(Cell State),可以理解为记忆单元,能够存储信息,并在序列处理过程中通过门控机制进行调整。记忆单元的状态可以在长时间内保持,不易受到梯度消失的影响。

速记员会根据当前听到的话,判断哪些信息值得记录。如果是重要内容(例如演讲的核心观点),就写入笔记本;如果是无关信息(例如冗长的细节),就忽略。速记员的耳朵就是输入门(Input Gate),输入门控制信息的流入,即决定哪些新信息需要加入到记忆单元。它通过激活函数的组合来实现,输出值在0到1之间,控制着输入的程度。

为了保持笔记简洁,速记员会定期用橡皮擦擦掉不再重要的信息。例如,早前提到的背景内容可能在后续的演讲中已经无用。速记员的橡皮擦就是遗忘门(Forget Gate),遗忘门用于控制记忆单元中信息的丢弃程度,决定哪些信息是多余的或不需要保持的。它也是通过激活函数来实现,输出值越接近1,表示越应该保留信息。

每当有人问速记员演讲的核心内容时,他会从笔记本中提取关键点,用清晰的语言表达出来。速记员的总结就是输出门(Output Gate),输出门决定从记忆单元中输出哪些信息,它根据当前输入和前一个隐状态来设置输出的权重。

LSTM就像一位精明的速记员,通过门控机制管理信息流动,在长时间的任务中高效记录关键内容,忽略无用的细节。LSTM的关键是能有效地记住长期重要的信息,同时舍弃无用的内容,因此比普通的RNN更聪明,因为它解决了普通RNN记忆力短、容易忘记长距离依赖问题的缺点。其独特的结构和功能使其在捕捉长程依赖和顺序信息上具有显著优势,广泛应用于语音识别、自然语言处理、时间序列分析等多个领域。

随着硬件(GPU)的进步和大规模数据集(如 ImageNet)的兴起,深度学习得到突破。ImageNet是一个由超过1400万标注图像构成的大型图像数据库,涵盖了多种类别的物体。它为深度学习研究提供了丰富的数据支持。2012年,AlexNet利用CNN在ImageNet比赛中取得革命性成果,标志着深度学习的全面复兴。

在AlexNet之前,计算机视觉领域主要依赖传统的特征提取技术,这些技术通常需要手动设计特征提取算法。尽管一些基本的机器学习算法(如支持向量机)被应用于图像分类,但在复杂性的处理上受到了限制。在2010年及之前,虽然已有的深度学习模型在一些任务上取得了成功,但大规模数据集的处理能力以及计算资源的短缺限制了深度学习方法的推广与发展。

在2012年的ILSVRC比赛中,AlexNet以超过15.3%的错误率取得了第一名,而第二名的错误率为25.7%。AlexNet的架构设计中包含了一些重要的创新点,如更深的神经网络、训练过程中的数据增强与图像预处理、充分利用了图形处理单元(GPU)进行并行计算,大幅提高了训练速度。这成功展示了卷积神经网络在图像分类中的强大能力,也为后续深度学习研究与应用创造了广阔的前景。


注意力机制与Transformer的诞生

如果说CNN和RNN各司其职,那么2017年的Transformer则是一场彻底的革命。由Vaswani等人提出的Transformer,用“自注意力机制”取代了传统的RNN结构,实现了序列数据的并行处理。

什么是注意力机制?2014年,Bahdanau等人提出了注意力机制(Attention Mechanism),用于机器翻译任务。

这一机制的提出针对的是传统序列到序列(seq2seq)模型的不足,特别是在长序列输入的情况下,模型在生成翻译时往往难以有效捕捉到输入序列的关键信息。前面所说的RNN及其变体LSTM都可以被归类为传统的seq2seq模型。

在传统的seq2seq模型中,通常使用编码器-解码器结构,其中编码器将整个输入序列压缩成一个固定长度的上下文向量,这个向量随后被解码器用于生成输出序列。然而,编码器将所有信息映射到一个固定长度的向量,导致对长序列的信息压缩不足,使得模型在处理长文本时丧失了重要的上下文信息。此外,固定长度的上下文向量限制了模型的表达能力,导致性能下降。

Dzmitry Bahdanau


Bahdanau等人的注意力机制允许模型在解码时,根据当前生成的词动态地关注输入序列中的不同部分,这样就可以有效地捕捉到与输出相关的输入信息,而不是依赖于一个固定的上下文向量,从而提升了性能。注意力机制使得模型更容易捕捉长距离依赖关系,因为模型在每个时间步都可以选择关注距离较远的输入部分。

注意力机制的核心思想是为输入序列的每个元素分配一个权重,这些权重表示在生成输出时各元素的重要性。通过这种方式,模型可以在许多输入中判断出哪些是最相关的。

注意力机制的设计理念直接影响了后来的Transformer架构,使得Transformer能够利用注意力机制进行高效的序列处理。

2017年,Ashish Vaswani等人提出了Transformer模型,这一模型在自然语言处理(NLP)领域取得了革命性的进展。Transformer的提出,标志着从循环神经网络(RNN)到基于注意力机制的新一代序列处理架构的转变。其论文《Attention is All You Need》不仅明确了Transformer的结构和功能,还展现了如何利用注意力机制来取代传统的RNN结构。

Ashish Vaswani


在Transformer出现之前,自然语言处理中广泛使用的架构是基于RNN(如LSTM和GRU)的方法。RNN使用序列方式处理信息,这意味着模型一次只处理一个单词或一个时间步。这种方式效率较低,并且难以捕捉长距离词汇之间的关系。这就像在看一本书时,每次只能看一页,而无法快速把上下文全部整合起来。

尽管RNN能够有效处理序列数据,具有递归性质的网络结构在长序列任务时却存在一些问题。由于RNN的时间步依赖性,训练时必须依次处理输入序列,造成并行化处理的困难。此外,在从一个固定长度的上下文向量中提取信息时,RNN会损失许多关键信息。最后,尽管LSTM部分解决了梯度消失问题,但对于长距离依赖的捕捉仍然有限,特别在处理非常长的文本时表现不佳。

 
LSTM通过递归的方式处理序列数据,使用隐藏状态和细胞状态来捕捉时间上的依赖关系。它的每个输出都依赖于前一个时间步的状态。

Transformer使用自注意力机制并行处理输入序列,允许所有位置的输入在同一时间步内相互联系。该机制支持模型对所有输入位置的动态关注。

Transformer模型通过完全依赖自注意力机制解决了上述问题。Attention机制是Transformer的核心。它允许模型在处理单词时,根据上下文的其他单词的相关性动态调整关注点。具体来说,Attention可以回答这样一个问题:“在生成这个单词时,哪些其他单词我需要特别关注?”

Transformer就像是一个高效的团队,每位专家在开会时可以直接和其他所有专家讨论,快速解决问题,而不需要逐层传递消息。

每位专家就是输入序列中的一个词,例如,你有一句话:“The cat sat on the mat”。每个词可以看作一个专家,每位专家都关心自己和其他词的关系。自注意力机制使得模型能够根据输入的每个位置动态地关注其他位置的信息。在生成每个输出时,模型会计算与所有输入位置的相关性,从而选择性地聚焦在相关信息上。

通过并行计算多个自注意力机制,Transformer能够在不同的子空间中学习信息。就像每位专家可以从多个角度分析问题。例如,一个头关注语法结构,另一个头关注语义关联,最终结合所有角度得出更完整的结论。这种多角度思考就是多头注意力(Multi-Head Attention)。

每位专家会根据问题的重要性计算一个“交流表”,这个表告诉他们应该重点关注哪些同事。例如,“on”可能需要重点听取“sat”和“mat”的信息,而不需要过多关注“the”。如果说交流表就是Attention,那么同时讨论就是并行处理,所有专家可以同时查看“交流表”,并综合其他人的意见,更新自己的理解。这种并行讨论比传统的逐个传递信息(如 RNN)更快。为了避免开会讨论变得混乱,每次更新专家意见时,都要保留原始信息,并对数据进行标准化处理。

理解了多头注意力(Multi-Head Attention),就能理解被称道的中国大模型创业公司DeepSeek,在模型架构上进行的深度创新是什么。DeepSeek推出了一种新的多头潜在注意力(MLA)机制,与传统的多头注意力(MHA)架构相比,其显存占用了过去最常用的MHA架构的5%-13%。

在MHA中,输入被映射为查询(Query)、键(Key)和值(Value),然后通过计算这些向量之间的相似性来生成注意力权重,最终通过加权求和获得输出。这种机制的优点在于能够捕捉输入数据中的局部和全局信息,但其缺点在于对显存和计算资源的需求较高。

而MLA架构引入了一个潜在化的概念,意味着它在处理输入信息时会利用一些更高效的计算方式以减少资源占用。在这个架构中,有效的对输入进行一定的预处理,从而在生成查询、键和值时减少了相关的数据量。MLA架构还在分配注意力时采用了一种更灵活的方式,使得在处理不同输入时,系统能够更加智能地选择关注的特征,而不是一味地产生多个头部的注意力。这种动态选择能力不仅可以优化计算资源的使用,同时也提升了模型的性能。

此外,通过对输入信息进行选择性地压缩和简化,MLA能够显著减少需要存储和计算的维度,也就是减少了参数的数量,使得模型能够在保留信息的前提下大幅降低对显存的需求。


没有终点的深度学习探险

以自注意力机制为核心思想的Transformer,在深度学习历史上有着革命性的地位。

Transformer模型相较于传统RNN具有显著的优势,因为Transformer模型不再依赖于时间序列的递归结构,而是使用矩阵运算实现自注意力,高效的并行计算可以在训练时大幅提高计算效率。通过自注意力机制,Transformer可以直接关注输入序列的任意部分,从而显著增强了模型对长距离依赖关系的建模能力。

从上述介绍中不难理解,Transformer架构天然适合处理语言任务。Transformer的提出迅速改变了NLP领域的格局,催生了一系列新型模型。GPT(Generative Pre-trained Transformer)就是一系列基于Transformer架构的生成式预训练模型,专门用于自然语言处理(NLP)任务。

GPT具体使用Transformer中的解码器部分。其主要由多层自注意力机制和前馈神经网络组成,强调的是生成能力,适用于文本生成、对话系统和其他自然语言生成任务。GPT的输入是上下文文本,输出则是生成的下一个Token(单词或字符),通过逐步生成文本来实现完整的文本。

GPT采用了预训练的方式,使用大量未标记文本进行训练,以捕捉语言的基本特性和结构。这一过程使得模型能够理解语言特征,对计算机生成语言能力的提升至关重要。在特定任务上,GPT通常会在预训练之后进行微调,使之在特定NLP任务(如文本分类、问答、对话生成等)中表现更好。微调依赖于特定任务的标记数据,确保模型能够适应新的应用场景。

从感知机到Transformer,深度学习的每一步都在不断突破技术极限。如今,得益于GPU的进步和大规模数据集(如ImageNet)的支持,深度学习已经从实验室走向现实世界。尽管我们已经看到了深度学习的巨大潜力,但它的未来依然充满挑战与可能。或许,下一个改变世界的创新,就在这条探险之路上等待着被发现。

来源|观察者网


推荐阅读

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/177617
 
93 次点击