Lesson 7(1&2)神经网络的诞生与发展&机器学习基本概念

欢迎来到《2021 PyTorch深度学习实战》课程的第二周!在今天的课程之前我们已经介绍了GPU件、进行了深度学习框架PyTorch的部署与安装,并且学习了深度学习基本数据结构Tensor(张量)与关键库autograd的用法本周我们将正式进入神经网络以及其他深度学习关键概念的学习  

作为0基础课程我们假设你对机器学习深度学习人工智能等概念并没有深入的了解即便你已经学习过一些相关概念,我依然建议你学习本课程的第一部作知识参考与补充用在本周学习开始之前请确保你已经安装可以正常运行的PyTorch,并对Tensor概念有了一定的认识全部课程将会在Jupyter上运行,请尽量与老师使用的工具保持一致

目录

一、深度学习、机器学习、人工智能与神经网络

二、深度学习前沿研究成果及酷炫应用展示 

三、机器学习中的基本概念 

1 样本、特征、标签

2 分类与回归 

3 有监督算法与无监督算法

4 如何判断我的模型是一个好模型

一、深度学习、机器学习、人工智能与神经网络

这是一个人人都熟悉人工智能一词的时代学习这门课程的你应该早就听说过深度学习机器学人工智能这些专业名词许多人是在研究过这些概念并且深思熟虑之后才确定了方向开始进行学习但也有许多人可能是因学业或事业要求需要完成一些深度学习相关的任务在明确了解深度学习等概念之前就开始了学习如果你是前者那你非常具有前瞻性如果你是后者那你非常幸运你将学习的技能可能是本世纪最重要最有商业价值的技能之一无论你是出于什么目的进行学习你都需要对相关的专业名词有深入的理解在这一节我就带你了解一下神经网络是怎么诞生以及机器学习、深度学习、人工智能这些概念,究竟彼此之间有什么关系

你可以在许多地方找到这些概念的定义但是这些定义恐怕很难让你产生对这些概念的进一步认技术的领域里这些概念之间是有着复杂的历史关系的所有的一切都是围绕着人类最初的预测未来 的渴望展开

人们总是希望能够提前得知未来会发生的事如果我能知道明天会下雨我就会带伞如果我们知道哪支股票明天会涨,我就会在今天买入——提前预测短时间内的未来会给我们的生活带来巨大的便利  如果这种短时间预测能够规模化就会产生巨大的商业价值——1930年代的数学家乔治盖洛普就曾经做到过他在没有计算机没有数据库的情况下靠人力手算正确预测了《乱世佳人》电影的票房准确率达到94%,直接就让好莱坞制片人都跪下来叫爸爸求着他做电影数据运营

实际上这种短时预测很多时候都可以被实现比如常常在海上航行的船员看到云的流动感受风的方向就知道会不会下雨有经验的股票经纪人银行经纪人在深入研究某个公司的状况之后能够判断这个公司的股票会不会涨……你可能已经发现了这种预测和判断需要的是在某个领域深入的 知识和经验。但是,经验和知识是无法在一夜之间获得的,在商业价值极高的领域(例如电影融)就更是如此即便学习相同的知识每个人能够达到的水平也是不一致的如果从培养精尖人才 开始考虑预测的规模化问题那成本就高得离谱了

所以预测的规模化非常难以实现为了解决这个问题许多学科的尖端人才都在预测未来这个领域努力过。以乔治盖洛普为代表的数学家统计学家们一马当先先提出了用数学模型代替人类进行学的概念。依靠概率计算、模式拟合(pattern fit)等方法、数学家们创造了许多数学模型(最典型的就是线性回归、贝叶斯模型等),这些模型能够根据历史数据学习出某种规律,并依赖这些规律实现预比如最典型的线性回归就是假设输入与输出数据之间是直线关系通过历史数据拟合出直线后再给出新的输入数据线性回归模型就可以根据已经得出的直线推断出输出这些模型的学习方式与人类并不相似但是他们确实拥有从过去学习并用学到的东西去进行预测的能力后来数学家们将能够根据历史数据实现预测或得出某种结果的计算步骤或计算方法称之为算

当算法出现之后计算机科学家们也发现了机会算法是数学方法即便实现了学习和预测的过程是需要人为进行计算没有规模化的可能而计算机天生拥有规模化的能力只要编好特定的程算机可以在很短的时间内给出大量的预测结果时效性很强因此计算机与数学的结合可谓是历史必然用计算机实现数学家们提出的算法可以瞬间提升学习预测的效率从这一瞬间开始预测的规模化真正成为了可能现在唯一的问题就是数学家们提出的算法如何才能进行更准确的预

当计算机科学家与数学家都一门心思在搞数学各种研究算法时从全新角度提出全新思想并且从此让人工智能走上历史舞台的人们是——哲学家与心理学家们

哲学家相信人类的思考是一种自然现象与地球自转春秋更替一样大脑的思考也是具有规律和机制的只要有机制就可以模仿只要有规律就可以复现模仿其结构复现其规就很有可能模拟出它的功能实现像人类一样的学习和预测具脑神经科学家研究人脑中具有300亿个神经元些神经元通过叫做轴突的结构链接在一起在人类进行学习或思考时电信号会在神经元上传入出,并逐渐被大脑所理解

1943在哲学数学心理学以及脑神经科学的相互碰撞下模拟人脑结构复现人脑思考规律制造和人相似的智慧为目的的算法——人工神经网络(ANN诞生了它用一个简单的图形模拟了人脑的学习方式——我们使用圆来表示神经元使用线来模拟轴突数据就是电信号我们从神经元左侧输入数据让神经元处理数据并从右侧输出预测结果看起来就和人类学习的方式非常相似

一时之间模拟人类智力的研究领域人声鼎沸相关研究遍地开花好不热闹 

二战结束后计算机科学与算法发展迅速研究者们普遍接受了使用计算机来规模化算法学习和预测的过程1950图灵测试被定义如果一台计算机能够与人类展开对话而没有被辨别出其机器身份 那么这台机器就具有智能1956人工智能概念也被提出指代模拟人类智慧的各项相关研究同年机器学习概念被定义用以表示使用计算机实现算法使得计算机能够学习数据获得经验实现预测的过程,同时,许多经典的预测模型、包括神经网络也都被统称为"机器学习算法"也因此,神经网络算法的许多思想,都与传统机器学习算法是共通的

就在各个学科都迅猛发展、热闹非凡的时候,神经网——它扑街了

发生了什么呢?人们发现,神经网络的设计理念——模拟人类大脑——确实非常先进但是神经网络算法本身有几个致命的弱点

  • 预测效果差

人工神经网络算法本身存在着许多缺陷和局限,这让它的效果在许多实际数据上都很糟糕(最初的神经网络不能实现非线性预测、还存在严重的过拟合问题

  • 数据需求大

神经网络需要大量的数据去喂养在缺乏数据的情况下它的效果常常不如其他机器学习算法

  • 算时间长

大量的数据需要大量的时间进行计算而神经网络的计算机制本身也很复杂计算时间过长不仅占用资源不利于调优还大大削弱了预测的时效性

而最致命的弱点是

  • 根本无法达到人类智力水

无论如何训练神经网络都不能达到人类的智力水平短时间内也看不到其他商业应用场景投资者们的幻想破灭政府和金融机构都撤出投资

没有资本一切都停止了转动很快无论是学术界还是工业界都发现神经网络是一条走不通的道同时期逻辑回归KNN决策树等算法被逐渐发明出来机器学习中的其他算法开始繁荣发展, 神经网络却无人问津在此之后使用神经网络算法的学术论文有很大可能无法被发表,相关的学术项目也无法拉到经费这又进一步压榨了神经网络研究者们的生存空间十年之后其他机器学习算法的性能也逐渐遇到了瓶颈虽然不像神经网络一样处处都是致命的缺陷,但经典机器学习算法的预测效果也没有达到能够实现商业价值的程度,整体来说预测效果依然不佳整个人工智能及机器学习研究都进入到寒冬期,三十年间人工智能成了冷门的研究领域

寒冬一直持续到2000年。与1970年代不同,新世纪到来时,神经网络算法被大规模应用的各项条件已经成熟

  • 神经网络算法有了长足的进

在寒冬期坚信神经网络潜力的科学家们做出了许多的努力来改良神经网络他们一面提升神经网络的预测效果、一面减少神经网络的训练时间,发明了反向传播等至今都十分关键的技术在算法层面让神经网络上了一个台阶这些改良的技术,我们都会在后续的课程《优化神经网络》的部分学到

  • 全球数据量激增

互联网的诞生计算机的推广让全球数据量激增并且让巨量数据的储存和使用成为了可能训练神经网络所需的数据量不再成为问题

  • 芯片云技术迅猛发展人类获得了前所未有的巨大算力

比起1970年代,  2000年之后的计算资源价格大幅下跌,同样价格可以购买到的计算资源越来越强大。当计算资源变得越来越容易获取神经网络的计算速度得到提升能够使用的数据量也变得更

算法数据与算力的进步完全释放了神经网络的潜力当数据量够大神经网络够复杂神经网络的性能会远远超出其他机器学习算法甚至超越人类这为预测算法的商业化应用打下了基础

而最为关键的是,大家发现,我们之前弄错技能点了  在大部分的商业应用场景我们根本不需要人类级别的智力!我们只需要一个能够将大规模任务完成得很好的机器  比如如火车站飞机场的人脸识我们根本不需要使用神经网络创造出一个检票员我们只需要一块屏幕以及能够识别此人与其身份证照片数据的工具就可以了。

2006年时,神经网络的资深研究者Hinton提议为神经网络的相关研究取一个单独的名字这个名字听起来得比机器学习厉害比机器学习更有希望它必须代表了神经网络越大越深效果就会越好的特性这个名字将会成为人工智能实现的基础并且在21世纪剩下的几十年中成为非常关键的技这个名字就是今天我们都很熟悉的深度学习

说到这里相信你已经对神经网络的相关事实有了深刻的印象并且对深度学习相关概念有了清楚的认从历史发展的脉络来看人工智能是模拟人类智慧的各项相关研究它包括了模拟人类学习和预测能力的机器学习算法机器学习算法赋予计算机学习的能力而神经网络是机器学习中最强大果最优的算法深度学习是专门研究神经网络的学科因此它是机器学习的子集。现我们说到的人工智能技术一般泛指深度学习与机器学习技术人工智能也是深度学习与机器学习实际应用的表现 

还有一些说法认为机器学习与人工智能是交叉学科即部分机器学习算法是为人工智能技术服人工智能技术中也只有一部分是机器学习现在这种说法也被越来越多的人所接受但无论如何器学习和深度学习对于人工智能的实现是有巨大影响的

如今的商业环境中规模化应用的算法基本都是深度学习或机器学习与深度学习的结合我们如果想在算法领域深入下去就必须学习深度学习从今天的情况来看深度学习算法还有极大的潜随着算法数据与算力三个方向的不断发展神经网络具备完全替代部分技巧性工作的可能性即便神经网络的发展在今天就停止,它也已经极大地改变了我们的生活方式——现在许多自媒体平台都有使用以深度学习为基础的推荐系统如抖音快手同时美团对外卖骑手的统筹淘宝京东的猜你喜欢也都是深度学习应用的实际场景

二、深度学习前沿研究成果及酷炫应用展示 

在这里,我给大家总结了一些2021年酷炫的AI其中许多视频来自油管需要科学上网注意学上网后不能上B站,如果你需要看B站的视频可以先关闭科学上网工具如果你对英文不熟悉油管播放器的右下角可以自动调出字幕你可以选择中文字幕顺便一说作为深度学习技术集大成的Google的是视频平台,油管的字幕是语音捕捉后自动翻译的无论是捕捉还是翻译过程都由深度学习算法完成,你可以尽情地体验油管带来的感受。

三、机器学习中的基本概念 

我们现在已经了解了神经网络是如何诞生的了解了它与人工智能机器学习深度学习都有什么关接下来我们需要了解机器学习中的许多通用概念并将其推广到神经网络之中来帮助我们理解神经网络算法的方方面面注意虽然许多概念在深度学习和机器学习中有同样的含义但因应用场不同这些概念的相关知识也会有所区别在这里我们只会讲解与深度学习相关的部分

1 样本特征标签

在使用机器学习或深度学习算法之前,我们往往被赋予了需要完成的任务在传统机器学习中,我们的入门级任务一般是这样的我希望算法为我判断一朵花是什么类型的花于是我们收集了以下的数

机器学习中我们使用的数据一般都是mn列的二维数据表这些表格通常是规则储存的数字或者文通常表示为NumPy中的array或者Pandas中的DataFrame(熟悉Python的你应该能够看出来图是一个DataFrame)。

在这个数据表中横向的每一行就是样本samples),是我们收集到的一条条数据比如说现在展现的这个数据集每条样本就是一朵花。

每一行前的数字是样本的索引(Index),也就是每一朵花的编号这个编号对于每一个样本而言是独一无二的

数据表中的列则表示每个样本的一些属性在机器学习中我们称其为特征features),也叫做字段维度注意这里的维度与二维表的维度可不是相同的含义前者指的是n的大小后者指的.shape后返回的数字的个数

展示的最后的一列是标签label),也叫做目标变量(target或者target variable)。标签也是样本的一种属性不过通常来说它是我们希望算法进行预测判断的问题的正确答案比如现在的问题是一朵花是什么类型的花? 而这个数据表中的标签就是是哪一种花

在经典机器学习中因为数据表总是由一个个的特征组成所以我们一般把数据表(不包括标签的称之为特征矩阵往往使用大写且加粗X来表示同样的我们使用字母x表示每个特征.

在深度学习的世界中我们接到的任务往往是这样的辨别下面的图片中是猫还是狗

在这种预测要求下数据就不再是二维表了而是语音图像视频这些非结构化数据对于深度学习而言,我们使用的基本数据结构是张量Tensor单一的图像数据就需要三维Tensor来进行表示语音和视频数据维度则更高所以我们的入门数据集的结构往往看起来是这样的 

 或者是这样的

在第一个例子中我们的Tensor结构为[32,1,28,28]这里的32就是索引表图像上的32张图其中每张图都需要一个三维张量来表示而在第二个例子中因为只有一张图所以没有索引其结构也只有三维。1是颜色通道,28、28是像素点。

在高维张量的操作中我们一般不会再区分行列而是认为每个索引对应的对象就是一个样本比如结构[32,1,28,28]实际上就是32个三维Tensor所组成的四维Tensor32个三维Tensor就是32张图也就是32个样本而这些三维Tensor所包含的内容也就是32个样本分别对应的特征由于我们所使用的张量往往是高于两个维度的因此我们不能称其为矩阵因此对于深度学习我们一般称特征所在的张量叫做特征张量同样的我们还是用大写且加粗的X表示特征张量

由于数据是非结构化的所以标签也不会位于数据的最后一列之列的在深度学习中标签几乎100%是和数据集分开的不过这些标签看起来都很普通和机器学习中的标签差不多

2 分类与回归 

标签是机器学习中非常重要的一个概念不同的标签指向了不同的问题。机器学习可以解决现实中广泛存在的各种问题,但是应用最广泛的问题主要是两类分类与回归

当机器学习在判断有无是否A还是B还是C它预测出的答案会是某种类别这就是分类问比如刚才我们假设的判断一朵花是哪一种花当机器学习在预测是多少增长多少这些问题它给出的答案就是某个具体的数字这就是回归问题最典型的预测某支股票会不会涨是分类问题预测某支股票会涨/跌多大幅度是回归问题你可能注意到类与回归的区别就在于预测目标的不同在具体数据中也就表现为标签的不同

在分类问题中标签是类别,表现为离散型变量(Categorical),往往是整数,如0  1  2等。

而在回归问题中,标签是具体数字,表现为连续型变量(Continuous),往往是连续的浮点数 

在机器学习中,标签是会随算法的任务的变化而变化的——比如判断是哪一种花标签就是是哪种这一列假设我们想预测的是花瓣的长度那标签就是花瓣长这一列了所以在许多经典机器学习的应用案例中第一步是根据业务问题定义标签幸运的是在深度学习中这种情况非常非常少但在实际应用时我们也可能会遇见需要抉择标签的时候知道标签是可以变化的是人为规定的这一点非常重要

当然除了分类与回归之外算法还有许多应用场景但在最初学习深度学习的时候我们会接触到的几乎都是分类或回归任务我们会在未来的课程中慢慢给大家讲解更多的应用

3 有监督算法与无监督算法

既然标签是人为规定的那是否可以选择没有标签的算法呢?当然可以对于有标签的任务我们称其有监督学习包括众人耳熟能详的众多算法  KNN决策树支持向量机线性回归逻辑回归等等自然也包括大部分神经网络对于没有标签的任务被称为无监督学习包括了聚类分析协同过滤(推荐系统中的核心算法之一),以及变分自编码器等深度学习算法

有监督学习非常符合人工智能诞生之初人们对于算法的要求从我们已知的历史数据中进行学习,然后去预测我们渴望了解的东西无论是从过去的股价预测未来的股价还是从过去的天气预测未来的天历史数据都带有正确答案也就是有标签现代大部分应用广泛的算法都是有监督学习这些算法能够将可观察到可记录到并且已知答案的输入数据转变为需要逻辑分析才能够得出的有价值的输出。在之后的课程中,我们将广泛体会到有监督学习的力量

无监督学习相对的由于没有标签所以我们没有给算法提供任何的正确答案大多数时候我们只是告诉无监督算法说好了这些是数据你去学学看然后告诉我你得到了什么在深度学习中监督算法在许多时候都被我们用来作为辅助算法以增强有监督算法的学习效果

在实际使用中还存在着半监督学习算法强化学习等更加深入的领域在所有这些领域都有着大量的算法供我们学习和使用,在后续的课程中我们也会提到其中常用和经典的部分

4 如何判断我的模型是一个好模型

现代机器学习算法大约有几十个每年还有许多新的算法在被提出从中选出效果优秀符合需求的模型也是机器学习中的重要课题为此我们需要模型的评价机制如何判断模型是一个好模型呢?在这我们提出模型的评估三角

  • 型预测效果

在机器学习能够落地的场景模型进行判断/预测的效果一定是我们追求的核心目标在工业场景如人脸识别中,如果模型效果不能达到几乎100%准确,那我们就无法使用算法代替人工检查因为没有人可以承担算法判断失败之后的责任因为相似的理由深度学习在医疗领域的应用永远只能处于辅助医务人员进行判断的地位在一些其他场景如推荐系统虽然模型的效果可能不需要达到近乎100%的准但优秀的推荐系统所带来的效应是非常强大的而效果不够好的算法则是又昂贵又失败的代码罢

对于不同类型的算法我们有不同的模型评估指标我们依据这些评估指标来衡量模型的判断/预测效果。在之前的课程中,你应该已经接触了线性回归的评估指标之一SSE也就是真实值与预测值的差异的平方和在之后的学习中我们会展开来谈不同算法的评估指标当课程结束时你将会了解如何评估有监督无监督强化学习模型的效果

  • 运算速度

能够同时处理大量数据可以在超短时间内极速学习可以实时进行预测是机器学习的重要优势果机器学习的判断速度不能接近/超越人类那规模化预测就没有了根基如果算法的运算速度太慢不利于调优和实验同时运算缓慢的算法可能需要占用更多的计算和储存资源对企业来说成本会得更高事实上现代神经网络做出的许多改进以及算法工程师岗位对于数据结构方面的知识要求都是为了提升神经网络的运算速度而存在的的在模型效果不错的情况下保障运算速度较快是机器学习中重要的一环

  • 可解释性

机器学习是一门技术,是一门有门槛的技术曲高客寡大众注定不太可能在35分钟之内就理解机器学习甚至深度学习算法的计算原理但是技术人员肩负着要向老板客户同事甚至亲朋好友解释机器学习在做什么的职责否则算法的预测结果很可能不被利益相关人员所接受。尤其是在算法做出一些涉及到道德层面的判断时,可解释性就变得更加重要——例如前段时间闹得沸沸扬扬的UBER算法解雇UBER司机事件,UBER算法在司机们违规之前就预测他们会违约因而解雇了他们从算法的角度来看没什么问题但由于UBER无法向司机们解释算法具体的运行规则司机们自然也不会轻易接受自己被解雇的事实。幸运的是,随着人工智能相关知识的普及人们已经不太在意深度学习领域的可解释性了(因为神经网络在预测效果方面的优势已经全面压倒了它在其他方面的劣势)。但在机器学习的其他领域,可解释性依然是非常关键的问题

  • 务于业务

只有服务于业务,或服务于推动人类认知的研究,算法才会具有商业价值一个能100%预测你明天午饭内容的算法或许对个人而言非常有用(解决了人生三大难题之一午饭吃什么),但不会有公司为它投资也不会有人希望将它规模化机器学习算法的落地成本很高因此企业会希望看到算法落地后确定的商业价值只有资金流动技术才能持续发展算法才能继续发光发热

在传统机器学习领域评估三角的因素缺一不可但在深度学习领域没有什么比效果好速度快更加重要如果还能有一部分可解释性那就是锦上添花了当我们在训练深度学习模型时我们会最优先考虑模型效果的优化同时加快模型的运算速度每时每刻我们都是为了模型效果或预算速度而行动的。记住这一点,它会成为日后我们学习任何新知识时的动力

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>