锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

通俗讲解深度学习和神经网络!

时间:2023-12-19 07:37:07 系列微调电位器

↑↑↑关注后"星标"Datawhale

每日干货&每个月组队学习,不要错过

Datawhale干货

作者:知乎King James,伦敦国王大学

知乎 |https://www.zhihu.com/people/xu-xiu-jian-33

前言:本文主要针对任何非技术人员,如产品、业务、运营商网络,以及产品、业务、运营商和其他非技术人员之间的联系和区别。没有技术背景,你也可以有一个更全面和清晰的理解。同时,我也会向你解释TensorFlow、Caffe、Pytorch等深度学习框架和广泛应用于工业深度学习的领域。

01 人工智能、机器学习、深度学习

1.1 什么是人工智能?

在介绍深度学习之前,先介绍一下AI和Machine Learning,才能理清AI、Machine Learning、Deep Learning三者关系。

1956年8月,在汉诺斯镇达特茅斯学院,几位科学家在会议上正式提出了人工智能的概念,今年也被称为人工智能的第一年。在此之前,人类制造了汽车、飞机等各种机器,但这些机器需要人们操作,不能有自己的操作能力。科学家们讨论他们是否能创造出一台能像人脑一样思考的机器,拥有人类智慧,即人工智能。

科学家们也是对的AI未来发展想象了三个阶段:

4c43b60e02076f6d234846af75c5f20b.png

你在电影中看到的各种各样的东西AI都是强人工智能,但我们还处于弱人工智能阶段,不知道什么时候进入强人工智能阶段。在强人工智能阶段,机器可以与人脑完美媲美,像人类一样情绪化、批判性地思考。同时可以快速学习,自学能力强。

那么如何实现人工智能和人工智能呢?

1.2 什么是机器学习?

实现人工智能的方法统称为机器学习。在1956年的达特茅斯会议上,IBM的工程师Arthur Samuel正式提出“Machine Learning这个概念,1956年真的是特殊的一年。

机器学习是一种实现AI的方法,又是一门研究如何实现AI你可以理解为与数学和物理相同的学科。机器学习只是从历史数据中学习规则,然后将规则应用于未来。南京大学周志华教授的机器学习教科书西瓜书一致推荐机器学习。

机器学习是机器从历史数据中学习规律,以提高系统的一定性能测量。事实上,人类的行为也是通过学习和模仿获得的,所以我们希望计算机能像人类的学习行为一样从历史数据和行为中学习和模仿,从而实现AI。

简单点讲,大多数人从小就学过数学,刷过很多题库。老师和我们强调什么?从之前做过的题目中,要学会总结经验和方法。总结的经验和方法可以理解为机器学习输出的模型,然后我们可以利用之前总结的经验和方法来获得更高的分数。有些人总结后可以得到很高的分数,这表明他总结的经验和方法是正确的,他生产的模型是一个很好的模型。

由于机器学习的方法论,科学家们逐渐开始提出各种算法来解决各种智能问题。就像在物理学领域一样,物理学家提出了各种定理和公式,不断促进物理学的进步。牛顿的三条定律为经典力学奠定了基础。传统机器学习的决策树、贝叶斯和聚类算法为传统机器学习奠定了基础。

1.3 什么是深度学习?

然而,随着研究的不断深入,传统的机器学习算法在许多智能问题上不佳,无法实现真正的智能。就像牛顿三大定律一样,有些天文现象无法解释。1905年,爱因斯坦提出了相对论,解释了牛顿三大定律无法解释的天文现象。加拿大多伦多大学教授也是2006年。Geoffrey Hinton在此基础上,优化了传统的神经网络算法Deep Neural Network概念,他们在《Science》上面发表了一篇文章Paper,引起Deep Learning学术研究的热潮。(paper原文:http://www.cs.toronto.edu/~hinton/science.pdf)

2012年Geoffrey Hinton老人的课题组正在参加业内知名ImageNet在图像识别竞赛中,构建了CNN网络AlexNet一举夺得冠军,且碾压第二名(SVM方法)。正是因为这场比赛,Deep Learning很快就会引起工业界的关注Deep Learning引入工业应用。深度学习技术解决了许多传统机器学习算法效果差的智能问题,特别是图像识别、语音识别和语义理解。在某种程度上,深度学习是机器学习领域的相对论。

将人工智能和机器学习带到一个新的高度的技术是:Deep Learning。深度学习是机器学习的一种技术。

同时,我们应该听到很多学习术语:机器学习、深度学习、强化学习等。机器学习是父亲和父亲节点;其他的是它的儿子和子节点。AI、Machine Learning和Deep Learning下图可以描述关系。

让机器实现人工智能是人类的美好愿景,机器学习是实现的AI深度学习是该方法的下一项新技术,在图像识别、语义理解和语音识别方面具有优异的效果。(对加强学习感兴趣的读者可参考:https://zhuanlan.zhihu.com/p/150451604)

那么深度学习是什么技术呢?深度到底代表什么?

02深度学习和神经网络

2.1 生物神经网络

介绍深度学习必须介绍神经网络,因为深度学习是基于神经网络算法的,事实上,一开始只有神经网络算法,上面也提到了2006年Geoffrey Hinton老爷子提出Deep Learning,核心是人工神经网络算法,改变了新的名称,最基本的算法没有改变。学过生物学的人都知道什么是神经网络?下图是生物神经网络和神经元的基本组成部分。

人脑完全依靠900亿神经元组成的神经网络,可以实现如此复杂的计算和记忆。那么生物神经网络是如何工作的呢?请参考下图:

通过神经元接收外部信号,达到一定阈值,触发动作电位,通过突触释放神经递质,可以刺激或抑制,影响突触后神经元。通过这种方式,大脑的计算、记忆、逻辑处理等,做出一系列的行为。同时,不断在不同神经元之间建立新的突触连接,改造现有突触进行调整。有时我不得不感叹大自然的鬼斧神工。由900亿神经元组成的神经网络可以使大脑实现如此复杂的计算和逻辑处理。

2.2 人工神经网络

受生物神经网络运行机制的启发,科学家们建立了人工神经网络。事实上,许多人类发明都是从自然界中模仿的,如飞机和潜艇。下图是最经典的MP1943年由科学家组成的神经元模型McCulloch和Pitts他们将神经元的整个工作过程抽象成以下模型。

  • x_1,x_2,x_3,x_n:其他神经元的输入模拟生物神经网络;

  • ω_1,ω_2,ω_3,ω_n:模拟生物神经网络中每个神经元对外接收的突触强度不同,因此外接收的输入乘以一定的权重;

  • Σ-Sum:累积汇总模拟生物神经网络中神经元接收的信号;

  • Bias:模拟生物神经网络中神经元的一般敏感性。每个神经元的敏感性不同,因此需要一定的偏差来调整汇总值;

  • Activation Function:在一定程度上模拟生物神经网络中信号产生的动作电位,在一定程度上激活动作电位。我们通常使用它Sigmoid函数;

  • Output:模拟神经元在生物神经网络中释放的新信号;

现在我们知道了最简单的神经元模型,如何从历史数据中学习和推导相关模型?我们使用上述模型MP模型学习最简单的二分类模型。

如上图所示,为了简单训练,我们的训练集只有两个数据。同时激活函数我们也是最简单的激活函数,当φ(∗) > 0时输出为1,当φ(∗) ≤ 0时输出为0。然后对于参数的更新规则Updated Rule,我们使用的Sequential Delta learning rule和Back Propagation算法,该规则和算法不详细介绍了,可以理解为就像物理、数学领域一些科学家发现的普适性定理和公式,已经得到证明,用就完事了。因为Input只有1个值x_1,所以初始设定参数ω_1,同时还需要一个Bias,我们将Bias设定为ω_0。上述两个参数,我们需要从历史数据中学习出来,但是最开始我们需要一个初始值,假设初始值为ω_1 = 2, ω_0 = 1.5 ;然后我们通过不断地更新迭代最终ω_1和 ω_0 将稳定在两个固定的值,这就是我们最终通过一个简单MP模型学习出来的参数。下图是整个更新迭代学习的过程:

大家可以看到上图最后一次循环ω已经不再发生变化,说明[0.5,-1]就是最终我们学习出来的固定参数。那么上述整个过程就是一个通过神经网络MP模型学习的全过程。下图是最终学习出来的Classifier分类器,我们带入一个新的数据,就可以进行Class预测了。

2.3 何为”深度“

上文我们已经介绍了人工神经网络经典的MP模型,那么在深度学习里面我们使用的是什么样的神经网络,这个”深度“到底指的是什么?其实就是如下图所示的,输入层和输出层之间加更多的”Hidden Layer“隐藏层,加的越多越”深“。

最早的MP神经网络实际应用的时候因为训练速度慢、容易过拟合、经常出现梯度消失以及在网络层次比较少的情况下效果并不比其他算法更优等原因,实际应用的很少。中间很长一段时间神经网络算法的研究一直处于停滞状态。人们也尝试模拟人脑结构,中间加入更多的层”Hidden Layer“隐藏层,和人脑一样,输入到输出中间要经历很多层的突触才会产生最终的Output。加入更多层的网络可以实现更加复杂的运算和逻辑处理,效果也会更好。

但是传统的训练方式也就是我Part 2.2里面介绍的:随机设定参数的初始值,计算当前网络的输出,再根据当前输出和实际Label的差异去更新之前设定的参数,直到收敛。这种训练方式也叫做Back Propagation方式。Back Propagation方式在层数较多的神经网络训练上不适用,经常会收敛到局部最优上,而不是整体最优。同时Back Propagation对训练数据必须要有Label,但实际应用时很多数据都是不存在标签的,比如人脸。

当人们加入更多的”Hidden Layer“时,如果对所有层同时训练,计算量太大,根本无法训练;如果每次训练一层,偏差就会逐层传递,最终训练出来的结果会严重欠拟合(因为深度网络的神经元和参数太多了)。

所以一直到2006年,Geoffrey Hinton老爷子提出了一种新的解决方案:无监督预训练对权值进行初始化+有监督训练微调。

归纳一下Deep Learning与传统的神经网络算法最大的三点不同就是:

  • 训练数据:传统的神经网络算法必须使用有Label的数据,但是Deep Learning下不需要;

  • 训练方式不同:传统使用的是Back Propagation算法,但是Deep Learning使用自下上升非监督学习,再结合自顶向下的监督学习的方式。对于监督学习和非监督学习概念不清楚的读者可以阅读我上文引用的强化学习文章,里面有详细介绍。

  • 层数不同:传统的神经网络算法只有2-3层,再多层训练效果可能就不会再有比较大的提升,甚至会衰减。同时训练时间更长,甚至无法完成训练。但是Deep Learning可以有非常多层的“Hidden Layer”,并且效果很好。

(想了解更多细节的可以阅读:https://blog.csdn.net/zouxy09/article/details/8775518)

不管怎么样Deep Learning也还是在传统神经网络算法基础上演变而来的,它还是一种基于神经网络的算法。今天已经是2021年了,深度学习在很多领域得到了广泛的应用,而且和很多其他学习也结合起来一起使用,比如深度强化学习,有种物理化学专业的赶脚。

MIT讲解了Deep Learning最新的一些研究和应用,详情可以关注这个B站视频:https://www.bilibili.com/video/BV1vg4y1B7Nz?from=search&seid=6689440565680809808。知乎上也有作者解读过这个视频@套牌神仙。

3. 深度学习框架

大家了解深度学习和神经网络以后,相信大家也经常听到如下的英文单词:Tensorflow、Caffe、Pytorch等,这些都是做什么的了。Tensorflow是Google旗下的开源软件库,里面含有深度学习的各类标准算法API和数据集等,Pytorch是Facebook旗下的开源机器学习库,也包含了大量的深度学习标准算法API和数据集等。Caffe是贾扬清大神在UC Berkeley读博士时开发的深度学习框架,2018年时并入到了Pytorch中。

因为深度学习发展至今,很多算法都已经是通用的,而且得到过验证的。那么有些公司就希望将一些标准算法一次性开发好,封装起来,后面再使用时直接调用引入即可,不需要再写一遍。就像大家小时候学习英文一样,英文字典有牛津版本的,也有朗文版本的。对于收录的英文单词,英文单词如何使用,如何造句等,已经有了标准的用法。我们只需要查阅这些字典即可,而Tensorflow、Caffe、Pytorch做的其实也就是计算机届的牛津、朗文英文大词典。国内百度目前也有自己的深度学习框架Paddle-Paddle。

目前一般是学术界用Pytorch较多,Pytorch更适合新手入门,上手快。工业界用Tensorflow较多,更适合工业界的落地和部署等。

4. 深度学习在工业界主要应用领域

目前深度学习应用最广泛的就是传统机器学习算法解决不了的领域或者是效果不佳的领域:视觉、自然语言和语音识别领域。当样本数量少的时候,传统机器学习算法还可以通过一些结构化特征组合在一起然后区分出来。比如区分汽车和摩托车,可以通过轮子数量。但对于人脸,千万张人脸相似的太多,已经完全无法通过鼻子、头发、眼睛这些简单的特征组合进行区分。需要探索更多更复杂的特征,组合在一起才能将千万张人脸区分开来。

所以这时候就需要Deep Learning构建多层神经网络,探索组合更多的特征,才能识别区分千万级别甚至亿万级别的人脸。这在传统神经网络算法和机器学习算法是完全实现不了的。当然实现上述功能,也是因为现阶段有了更多的数据可以进行训练,同时有了更好的算力可以快速完成训练。传统的CPU进行训练,可能训练几个月都训练不出来结果。GPU的出现和改进加速了上述训练过程。

目前应用最广的一些领域:

  • CV:计算机视觉领域。随处可见的人脸识别、物体识别和文字识别OCR。广泛应用于安防领域,同时零售行业也在通过CV技术实现线下门店的数字化。目前国内头部公司就是CV四小龙:商汤、旷视、云从、依图;

  • NLP:自然语言处理领域。目前整体的NLP技术还是不够成熟,无法实现人们设想的机器人可以完全智能对话,机器人目前只能做一些简单的信息提取和检索整合的事情。NLP目前也是最难做的,同样一句话可能会有不同种意思。人有时都很难理解,更何况机器。目前国内头部公司主要是百度和达观;

  • ASR:语音识别领域。目前国内独一档就是科大讯飞,尤其是能够做到很多地方方言的精准识别。语音识别目前主要主要用在语音客服上,有时候大家接到的推销电话其实背后都是电话机器人打的。电话机器人能够完全和用户进行对话,一定程度上也需要NLP的技术,因为它需要理解用户的意思。

  • Autopilot:自动驾驶其实也是CV的衍生领域,目前世界上做自动驾驶最好的其实还是汽车公司比如特斯拉。因为没有车,自动驾驶想获得训练数据都很困难。没有车,自动驾驶技术想实验都跑不通。目前国内百度差不多算第一档。

  • 推荐:传统的推荐都是用GBDT+LR模型来做的,目前深度学习在推荐领域也得到了广泛的应用,下面是深度学习在美团点评里搜索推荐的应用可以阅读一下。

以上就是站在一个PM角度来和大家通俗易懂的介绍深度学习和神经网络,欢迎大家沟通交流指正。

整理不易,三连

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章