导航

深度学习

Posted on 2023-04-08 07:12  蝈蝈俊  阅读(99)  评论(0编辑  收藏  举报

受人类大脑内部复杂的神经元网络的启发,深度学习模拟生物神经网络,构建出包括输入层和输出层在内的人工神经网络。

下图,左边是视觉系统大致的通路,信息从视网膜到LGN的大细胞层到脑皮层;中间是听觉皮层,信息从耳蜗一直传到听觉皮层;右边是典型的人工神经网络。以上三种均属于层次化的结构。

当将数据输入该网络的输入层后,在输出层就会显现出相应的处理结果。在输入层和输出层之间,可能存在很多中间层(又称隐藏层),从而能够更深入地刻画所处理对象的特征,并具备更强大的函数模拟能力。几十年前,计算机算力有限,只能支撑一两层中间层。近年来,随着算力增强,可以训练出有成千上万层中间层的网络,“深度学习”即由此得名。


深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。

深度学习与人脑的区别

与人脑相比,深度学习(AI“脑”)有下面特征:

对比项 人脑 深度学习
学习需要的数据 很少 海量
量化优化
例如从一百万张脸中找到一张
不擅长 擅长
千人千面的个性化定制
例如推荐任何人最有可能购买的产品
不擅长 擅长
抽象概念、分析推理、洞见 擅长 不擅长
创造力 擅长 不擅长

表:人脑和AI“脑”的差别和擅长

深度学习的发展史

神经网络的层数直接决定了它对现实的刻画能力,最初由于算力等原因,隐含层只有一层,对稍微复杂一些的函数都无能为力,随着技术和算力的进步,为此,多加了一些隐含层,深度学习由此诞生。

早期的深度学习又有两个常用的方法,即卷积神经网络 - CNN循环神经网络 - RNN,前者专门解决图像问题,最大利用图像的局部信息,将局部特征拼接起来,从而得到整幅图的特征,类似于通过拼图来还原图像;后者则专门解决时间序列问题,用来提取时间序列信息,其最重要的特征是具有时间“记忆”的能力,就像人只有记住前面的对话内容,才能决定之后该说什么一样。

此外,生成模型也是深度学习领域内较为重要的一类模型。生成对抗网络 - GAN是一种让两个神经网络相互博弈从而完成学习的生成模型,其由一个生成器和一个判别器组成。比如说,生成器生成了一只虚拟狗,判别器需要将其与真实世界中的狗作对比,并判断虚拟狗是否“过关”,生成器和判别器相互对抗、不断学习,最终目的是使虚拟狗无限接近于真实的狗,让它通过判别器的检验。

自此,三大模型流派形成 —— CNN,RNN和GAN,语言模型属于RNN模型之流。但RNN模型依旧有其缺陷,对于相隔越久的信息,它的记忆力就越差,那么对于过去很久但有用的信息,它就很容易遗漏。为了提高RNN的记忆力,人们又开发了Self-attention自注意力模型,运用抓大放小的思想,不管重要的东西在哪,都更注重对它的加权,强化对它的注意力,让模型牢牢将其印入“脑海”。

在上述各类模型的基础上,ChatGPT的核心结构 —— Transformer模型横空出世。
由若干个编码器(Encoder)和解码器(Decoder)组成,同时盒子里还具备并行(Multi-headed)和自注意力(Self-attention)机制,自注意力机制负责挑选出重要的有用的信息,并行机制则负责对这些信息进行并发处理,有了这两大特性。

随后的发展就是大家所熟知的,GPT3、ChatGPT、GPT4的登场。

深度学习与传统的机器学习的区别

与传统的机器学习相比,深度学习更擅长处理大规模、高维度和非线性的数据,因此在计算机视觉、自然语言处理和语音识别等领域取得了巨大成功。

以下是深度学习和传统机器学习的主要区别:

特征 传统机器学习 深度学习
数据量 通常需要更少的数据 需要更大的数据
特征提取 需要手工设计特征 自动学习特征
模型复杂度 通常较简单 可以处理更复杂的模型
过拟合问题 容易受到过拟合的影响 通过正则化和数据增强等方法可以有效地避免过拟合的问题
训练速度 相对较快 相对较慢
调参 需要手动调整模型参数和超参数 自动调整模型参数和超参数,例如使用基于梯度的优化算法进行训练
应用领域 处理传统的结构化数据,例如表格数据 处理非结构化数据,例如图像、语音、文本等
算法 传统的机器学习算法,例如决策树、朴素贝叶斯、支持向量机等 深度学习算法,例如卷积神经网络、循环神经网络、自编码器等
库和框架 scikit-learn、TensorFlow、PyTorch等 TensorFlow、PyTorch等
计算资源 可以在常规的计算机上运行 需要更高端的计算资源,例如GPU和TPU等

总之,深度学习是一种适用于大规模、高维度和非线性数据的机器学习方法,可以自动学习特征和调整模型参数,从而实现更准确的预测和分类任务。

深度学习为何最近才火起来?

第一篇阐述深度学习的学术论文发表于1967年,但这项技术却花了近50年的时间才得以蓬勃发展,之所以经历了这么长的时间,是因为深度学习需要海量的数据强大的算力,才能训练多达几千层的神经网络。如果把算力比作AI的引擎,那么数据就是AI的燃料,直到最近10年,算力才变得足够高效,数据才变得足够丰富。

早期时都是浅层神经网络,直到2006年才首次实现5层隐层网络的训练。2006年Hinton首次把ANN提升到了5层,解决了深度神经网络的训练问题;2012年Hinton在ImageNet挑战赛中引进深度学习算法,在随后几年内,深度学习成功地大幅降低了图片识别错误率,随后行业迎来爆发式发展,深度学习的商用进程得以加速。

图:不断增加层数的深度学习使得图像识别错误率快速下降。

人脑神经元之间是网状连接,为啥深度学习采用了更简单的分层架构?

神经网络通常采用分层架构,即将神经元按照不同的功能分为输入层、输出层和若干个隐藏层。神经网络采用分层架构的原因是为了实现对输入数据的多层次的抽象和变换,从而提高网络的表达能力和泛化能力。

  • 对于图像分类任务,神经网络可以通过多个隐藏层来逐渐提取图像中的边缘、纹理、形状、物体等高级特征,然后根据这些特征来判断图像的类别。就类似最前面人脑视觉,听觉的处理流程一样过滤掉一些不重要的,关注重要的,继而可以提炼和抽象对象的特征。 参看卷积神经网络 - CNN

  • 对于自然语言处理任务,神经网络可以通过多个隐藏层来逐渐捕捉词语、句子、段落等不同层次的语义信息,然后根据这些信息来实现机器翻译、文本摘要等功能。 参看循环神经网络 - RNN

总之,神经网络采用分层架构是为了利用多个隐藏层来实现对输入数据的多层次的抽象和变换,从而提高网络的表达能力和泛化能力。

神经网络为什么难以解释?

神经网络是一种非线性映射,它的内部结构和计算过程很复杂,难以用简单的语言或逻辑来描述。

  • 神经网络的权值和激活值通常没有明确的语义,它们只是一些数值,不容易和人类的知识或直觉相联系。

  • 神经网络的训练过程涉及到大量的数据和随机性,它的行为和结果可能受到数据分布,初始化,优化算法等多种因素的影响,难以预测和控制。

因此,要解释神经网络,就需要采用一些特殊的方法或技术,比如提取规则,可视化隐藏语义,计算属性值,举例说明等等。这些方法各有优缺点,也有不同的适用范围和难度,而且模型越大,涉及领域越多,越难提炼出解释。

总结

深度学习是机器学习的一个分支,它使用多层的人工神经网络来学习数据的表征和特征,从而实现复杂的非线性映射。

深度学习可以处理各种类型的数据,如图像,语音,文本等,也可以用来解决各种类型的问题,如分类,回归,生成等。

随着GPT大模型的惊艳亮相影响,受人类神经系统和大脑信息处理的启发的深度学习也展现了更多的可能性和创新性。