跳转至

智慧的疆界:从图灵机到人工智能-周志明

  •  智慧的疆界:从图灵机到人工智能|200
  • 书名: 智慧的疆界:从图灵机到人工智能
  • 作者: 周志明
  • 简介: 这是一部对人工智能充满敬畏之心的匠心之作,《深入理解Java虚拟机》作者耗时一年完成,它将带你从奠基人物、历史事件、学术理论、研究成果、技术应用等5个维度全面读懂人工智能。本书以时间为主线,用专业的知识、通俗的语言、巧妙的内容组织方式,详细讲解了人工智能这个学科的全貌、能解决什么问题、面临怎样的困难、尝试过哪些努力、取得过多少成绩、未来将向何方发展,尽可能消除人工智能的神秘感,把阳春白雪的人工智能从科学的殿堂推向公众面前。
  • 出版时间 2018-10-01 00:00:00
  • ISBN: 9787111610496
  • 分类: 计算机-人工智能
  • 出版社: 机械工业出版社

高亮划线

封面

版权信息

前言

致谢

第一部分 以智慧创造智慧

1.1 概述

1.2 引言:信息革命

1.3 图灵机,计算的基石

1.4 人工智能的萌芽

1.5 图灵测试:何谓智能?

  • 📌 验证码的英文单词“Captchac”其实就是“通过图灵测试来完全自动地分辨出计算机和人类”这句话的首字母缩写(Completely Automated Public Turing test to tell Computers and Humans Apart) ^10-4237-4367
    • ⏱ 2023-07-16 16:56:21

1.6 智能与人类的界限

1.7 机器能思考吗?

1.8 机器拟人心

1.9 机器拟人脑

1.10 机器拟人身

1.11 本章小结

第2章 迈向人工智能

2.1 概述

2.2 引言:不经意间改变世界

2.3 达特茅斯会议

2.4 有学术就有江湖

2.5 有江湖就有传奇

2.6 人工智能早期成果

2.7 本章小结

第二部分 学派争鸣

3.1 概述

3.2 引言:五分钟逻辑学

3.3 描述已知,推理未知

  • 📌 这时候符号表示相对于自然语言的严谨性就显得非常有必要了,我如果想说“存在一个集合是空的”,就必须先解释什么是“存在”,什么是“空”等,解释这些概念时又会不可避免地涉及其他新的未定义的概念。但如果用符号来表达这句话,就成了:“[插图]”[插图],在[插图]等这些符号已被统一地精确地定义[插图]过的前提下,这个式子的意思就再无含糊之处。这种可以从形式文法产生,所有含义都在符号和组成规则中确切表达出来,无任何隐含语义和歧义的语言,被称为“形式语言”(Formal Language),将自然语言描述的内容转变为形式语言描述的过程称为“形式化”。形式语言在科学中是非常常见的,无论是本章所讲到的谓词逻辑,还是大家经常接触的计算机中的程序设计语言,都属于形式语言的一种。 ^28-1489-2317
    • ⏱ 2024-02-13 22:09:09

3.4 知识!知识!知识!

  • 📌 。基于知识的系统一般软件架构上都可以划分为知识库和推理引擎两个部分,知识库用于在计算机系统里面反映出真实世界中的知识,而推理引擎则负责使用知识库中的内容推理求解,得到用户提出的问题的答案。 ^29-6716-6810

    • ⏱ 2024-02-15 07:09:04
  • 📌 典型的基于知识的系统包括决策支持系统、推荐系统、专家系统等,这些系统目前仍然应用非常广泛,其中又以专家系统的历史影响最为突出。 ^29-6810-6873

    • ⏱ 2024-02-15 07:09:58

3.5 从演绎到归纳

  • 📌 基于符号的机器学习是从样本中总结得出知识,而前文曾提到推理期时科学家希望从少量最基础最本质的知识推导其他知识,这两个思路正好就对应了人类认知世界的两种手段:演绎和归纳[插图]。在逻辑学中相对更重视演绎[插图],但在人类的现实生活中,归纳却是人类认知世界更常用的工具。笔者相信一个正常人知道苹果会从果树上掉下来,绝对不是根据万有引力定律演绎推理得出的结论,而是见过许许多多物品下落过程之后归纳而来的认知。以此类比,机器要获取智能,仅依靠演绎推理搞不出成果时,那改试一下归纳推理就是自然而然的选择。 ^30-1486-2084

    • ⏱ 2024-02-15 07:56:23
  • 📌 决策树学习算法的核心是从训练集中自动归纳出一组分类规则,使得这组规则不仅能适应已知的训练样本,对于与样本同分布的未知新数据也有一致的泛化性能。说白了,就是让计算机通过若干训练数据,自动构建出一棵分类规则最合理的决策树。 ^30-3454-3563

    • ⏱ 2024-02-15 07:59:19
  • 📌 香农在《信息论》中证明了只有不确定的数据才能携带信息,如果数据都是确定的,信息熵即为零,那么这些数据也就无法携带任何信息了。 ^30-4213-4275

    • ⏱ 2024-02-15 08:03:31

3.6 符号主义的现状和未来

3.7 本章小结

第4章 连接主义学派

4.1 概述

4.2 引言:命运

4.3 大脑模型

4.4 崛起的明星

4.5 陨落的流星

4.6 感知机

  • 📌 如果仅局限于神经网络方法范围内而言,机器学习的本质就是调节神经元之间的连接权重,即赫布法则中的神经元关联程度。 ^39-957-1012
    • ⏱ 2024-02-16 09:16:31

4.7 凛冬将至

4.8 人工智能的繁荣与寒冬

  • 📌 站在今天回望历史,人工智能的低潮发生过不止一次,而在进入寒冬之前几年,都有一些相似的征兆,譬如学术界奋力地发表论文,学术明星获得万众追捧;所有擦边专业的学生纷纷转行搞起人工智能,市场还给这类“人才”开出令人咋舌的高薪;企业、研究机构和学者们做出一个又一个预测和承诺,媒体连篇累牍报道人工智能的进展。而大众则睁着一双双无辜的大眼睛,好奇而惊恐地注视着他们不理解又不敢不关注的一切。已经过去的寒冬,让今天处于温暖如春环境之中,阅读此书的你我,都不得不去思考,这一次人工智能热潮,是真的引爆了奇点,抑或只是历史的另一个轮回? ^41-3995-4254
    • ⏱ 2024-02-16 22:55:30

4.9 本章小结

  • 📌 1986年辛顿提出的可以训练多层神经网络的“误差反向传播学习算法”(Back-Propagation)等都是连接主义中不可忽视的进步。 ^42-840-907
    • ⏱ 2024-02-16 22:57:15

第5章 行为主义学派

5.1 概述

5.2 引言:昔日神童

5.3 自动机对抗自动机

5.4 从“控制论”说起

5.5 机械因果观和行为主义

  • 📌 这里隐含了一个重要结论:控制论其实是一种统计理论,它关心的不是系统根据单独一次输入后产生的动作,而是对全部输入整体上能够做出合乎预期动作。在这个系统中,因果联系不再是完全确定的,它同时具有统计上的确定性和个体上的不确定性,因而是一种统计上的因果关系 ^48-2428-2552

    • ⏱ 2024-02-17 08:39:36
  • 📌 行文至此,人工智能学科中的三大学派的主要人物和主要观点我们都已经接触过,这里倒是可以对比总结一下了:连接主义学派使用的是生物仿生学的方法,通过模拟生物体的脑部组织结构去寻找智能,它关心的是承载智能的生理结构;符号主义学派使用的是逻辑推理和演算的方法,通过解析物理符号系统假说和启发式搜索原理去寻找智能,它关心的是承载智能的心理结构和逻辑结构;而行为主义学派使用“感知—动作”的研究方法,通过环境反馈和智能行为之间的因果联系去寻找智能,既不关心智能的载体和其内部的生理结构,也不关心智能的逻辑和心理结构,只关心智能的外部可观察到的行为表现。如果要用最简单的一句话进行总结,我们可以说连接主义学派在研究“大脑”(Brain),符号主义学派在研究“心智”(Mind),行为主义学派则在研究“行为”(Action)。 ^48-3325-3679

    • ⏱ 2024-02-17 08:47:39

5.6 自复制机和进化主义

5.7 机器人学

  • 📌 不过,虽然工业机器人诞生于美国,但是美国政府并未把工业机器人列入重点发展项目,甚至有刻意打压的倾向。原因就是当时社会对机器人将会代替人类,与人类竞争工作岗位的论调此起彼伏,导致政府不得不限制其发展。维纳曾在《控制论》中非常直接粗暴地描写了一段未来工作的景象 ^50-4866-4994

    • ⏱ 2024-02-17 09:07:05
  • 📌 目前人工智能、机器学习、深度学习和大数据等相关的工作职位大量涌现,这是第三次工业革命从自动化、信息化逐步发展到智能化阶段的表现,是技术深刻影响经济活动和社会生活的缩影。在这场数字革命中,我们取得了一些成绩,但这也仅仅是智能化阶段的开端,未来的道路还十分漫长 ^50-8062-8190

    • ⏱ 2024-02-17 09:13:01

5.8 本章小结

第三部分 第三波高潮

6.1 概述

6.2 什么是机器学习

6.3 机器学习的意义

6.4 机器学习解决的问题

  • 📌 [插图] ^56-625-629

    • ⏱ 2024-02-17 13:34:22
  • 📌 机器学习的两个主要发展方向与演绎、归纳相对应,演绎是根据一般规律推理出对个别事物的认知,而归纳则是根据具体事物的统计获得对于一般规律的认知,如果我们以“可推理”和“可统计”作为维度,可把人类全部需要解决的问题放置到如下图所示的四个象限上[插图],将得到四类不同知识和问题。 ^56-2414-2673

    • ⏱ 2024-02-17 13:40:41

6.5 进行机器学习:实战模型训练

  • 📌 其实这是一种错觉,机器学习解决问题的过程是充满灵活性的,从如何把问题设计出来,把现实世界中的问题,提炼成一个机器学习处理的问题开始,就需要处理者对问题本身有深刻的洞察才行。 ^57-3069-3155

    • ⏱ 2024-02-17 14:40:47
  • 📌 对于需要用到机器学习来解决的问题,样本描述的事实通常都是间接的、隐晦的,很多情况下甚至无法用明确的语言描述出这些属性与最终结论有什么联系,这种描述着某个隐含事实的信息,被称为样本的“属性”(Attribute)。每个样本应当会由有若干个属性所组成,样本的属性经常也被称作这些样本的“特征”(Feature),譬如一封电子邮件的特征可能会是下面这样的: ^57-3606-3781

    • ⏱ 2024-02-28 18:13:55
  • 📌 如果用数学语言来表述,这种指向空间某个点,带有方向和大小的量在线性代数中被称为“向量”(Vector),把由向量组成的空间称为“向量空间”(Vector Space,也叫“线性空间”) ^57-4817-4909

    • ⏱ 2024-02-28 18:19:01
  • 📌 。在机器学习这里,为了便于计算机处理,会使用一系列的向量来代表参与训练的每一个样本,在这个语境中,我们把这种有N个不同特征构成坐标轴的N维(有多少个特征就有多少个维度)空间称为“样本空间”(Instance Space)或者“特征空间”(Feature Space)。相对应地,每一个样本被称为一个在该空间上的“特征向量”(Feature Vector) ^57-4909-5086

    • ⏱ 2024-02-28 18:18:52
  • 📌 也经常会除了收集样本外,还要给样本更进一步附带上一项“标记”(Label)信息,标记描述了这个样本所代表的那个隐含事实或者对象,也就是“结论” ^57-6148-6219

    • ⏱ 2024-02-28 18:20:23
  • 📌 本次实战里,样本是邮件的全部数据,对应标记信息就是“此邮件是否垃圾邮件”这个事实的描述。当样本带有了标记信息之后,这两项信息的组合就称为是一个“样例”(Example)。 ^57-6220-6305

    • ⏱ 2024-02-28 18:20:39
  • 📌 数据收集的结果所获得的是“样本”还是“样例”,很大程度上决定了机器学习能够完成哪些工作任务。如果仅仅是以一组样本来构造训练集,那这种机器学习一般会去做“聚类”(Clustering)方面的任务。聚类是指机器通过训练集中获得的特征,自动把输入集合中的样本分为若干个分组(Cluster,簇,此处读者将其理解为“分组”即可),使得每个分组中存放具有相同或相近特征的样本。举个生活中的例子,现在像淘宝、京东、亚马逊这样的购物网站,会根据每个用户的年龄、地域、消费行为等特征,刻画出用户消费的用户画像模型,划分出不同的用户群体,以便采取对应的广告和商品推荐策略,这就是一种聚类分析。聚类通常是为了发现数据的内在规律,将它们同类的数据放到一起,为进一步深入分析和处理建立基础。我们将以样本数据作为训练集的机器学习过程称为“无监督学习”(Unsupervised Learning)。 ^57-7497-7883

    • ⏱ 2024-02-28 18:22:15
  • 📌 而如果像我们的邮件过滤系统的例子那样,以若干个样例来构成训练集,那机器学习的任务就通常会是“分类”(Classification)和“回归”(Regression)。一般来说,既然都有标记信息了,肯定就没有必要再专门去做聚类了,因为标记所带的信息就可以作为聚类的直接依据。“分类”和“回归”都是最典型的机器学习任务类型,总体而言,分类和回归都是根据样例训练集中得出的历史经验来推断新输入给模型的样本是否属于某一类,或者某种隐含特征的强度如何,使得机器可以代替人工,自动找出新输入数据的标签信息。而分类和回归之间的主要差别是,回归做的是定量分析,输出的是连续变量的预测,而分类做的是定性分析,输出的是离散变量的预测。以本次实战为例,如果我们判别垃圾邮件这个任务所期望的输出是一封邮件“是”或者“不是”垃圾邮件,那这个便是一个分类任务,而如果我们期望的输出是一封邮件“属于垃圾邮件的概率”有多大,那这就属于一个回归任务。分类的目的一般是用于寻找决策边界,用于做出决策支持,而回归的目标大多是希望找到与事实相符的最优化拟合,用于做事实模拟。这类以样例数据作为训练集的机器学习任务,被称为“监督学习”(Supervised Learning)。 ^57-7912-8488

    • ⏱ 2024-02-28 18:23:49
  • 📌 既然这里已经介绍过监督学习和非监督学习的概念了,就顺便也介绍一下机器学习中流行的另一大类任务类型“强化学习”(Reinforcement Learning),这是目前以行为主义学派思想来指导的机器学习的任务类型。无论训练集是由样本还是由样例构成,监督学习和非监督学习都是从历史经验之中学习,而强化学习并不主要依赖历史经验,而是一种基于环境对行为收益的评价来改进自身的模型。仍通过一个具体的例子来解释:强化学习的学习过程就好比是婴儿牙牙学语,婴儿出生时脑海中对人类语言是一无所知的,在语言学习过程中,婴儿最初是发出完全随机的声音,譬如,婴儿肚子饿时,他发出的声音又恰巧被大人们注意到,并且猜测到了他发声的意图是表达“我饿了”这个信息,然后给予喂食的话,下次婴儿再感到饥饿了也会继续发出类似的声音。这个学习过程需要的不是“历史数据”,而是一位“裁判”或者“老师”,用来给行为进行打分评价,并对正确的行为给予激励,对错误的行为给予惩罚。 ^57-8517-8932

    • ⏱ 2024-02-28 18:25:51
  • 📌 所谓的特征选择,是指我们应该放弃掉对结果影响轻微的特征,挑选出对结果有决定性影响的关键特征,提供给建模阶段作为模型输入使用。 ^57-11201-11263

    • ⏱ 2024-02-28 18:29:56
  • 📌 从更一般化的角度来看,模型的输入每增加一个特征,便给模型的决策函数引入了一个新的参数项,这会让决策函数所处的问题空间相应地提升一个维度,训练集数据量相同的情况下,在越高维空间中,数据就越稀疏,空间的维度提升太快,可用数据就变得过于稀疏,而过于稀疏的数据,会使其从大多数角度都看不出相似性,因而平常使用的数据组织策略就变得极其低效,这个现象在机器学习中称为“维度灾难”(Curse of Dimensionality)。 ^57-11641-11850

    • ⏱ 2024-02-28 18:31:49
  • 📌 单纯从算法角度来说,如果通过穷举的方式,增加特征带来的算法时间复杂度增长也是指数级的,因此,特征选择一方面涉及可行性问题—我们通常没有足够多的训练数据支持那么多的特征,另一方面还涉及执行效率的问题,即使我们有足够的数据,但是其中许多特征对结果影响微乎其微,甚至是根本没有意义的,不经筛选的话就平白浪费了许多训练时间,徒增模型计算的复杂度。 ^57-12304-12473

    • ⏱ 2024-02-28 18:33:00
  • 📌 特征选择是“数据降维”(Dimension Reduction)的一种主要方法,还有一个主要降维方法称为“特征提取”(Feature Extraction),它与特征选择的区别是:特征提取是在原有特征基础之上去创造凝练出一些新的特征出来,如果创建一个新的特征项,该特征的变化规律能够反映出原来几个特征项的共同变化,那使用这一个新特征项代替原来几个特征项就实现了降维的目的。而特征选择只是在原有特征中选取最有用的特征而已,一般并不会对特征值进行变换 ^57-12502-12725

    • ⏱ 2024-02-28 18:33:43
  • 📌 数据降维严格来说并不是机器学习中的问题,它本身属于数学的范畴,在数学上也已经有很多成熟的自动降维算法了,如“奇异值分解”(Singular Value Decomposition, SVD)、“主成分分析”(Principal Component Analysis, PCA)等,这类算法能够把数据中相似性高的、信息含量少的特征给自动剔除掉,采用这些算法也可以实现数据降维,不过实际中要解决问题,往往必须考虑到具体模型的目标和这个领域中的先验知识,这时候就要采用自动降维算法和人工筛选特征互相配合才是比较合适的方案。 ^57-14168-14426

    • ⏱ 2024-02-28 18:38:00
  • 📌 有句圈子内常说的话:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。”由此可见,数据预处理,尤其是特征选择在机器学习中是占有相当重要的地位的。 ^57-15079-15160

    • ⏱ 2024-02-28 18:41:57
  • 📌 我们把这个简单的邮件分类器的特例,向所有的监督学习解决问题的思路推广,会得到以下更具有普适性的结论:使用符号f代表模型的决策函数,这个模型接受真实世界的输入x,将f(x)的输出记作y'。由于模型毕竟只是对真实世界的模拟,所以输出值y’很可能与真实世界中的实际值y是存在有差异的,而机器学习中的所谓性能高低的度量,就是追求这个差异值在测试集或新的输入数据的最小化,模型输出与真实值差距越小,模型性能就越好。我们把衡量实际值y与模型输出值y’间差距大小的计算过程称作“损失函数”(Loss Function,有些资料中也称为“成本函数”或“代价函数”, CostFunction),计算y与y’差异大小的损失函数就记作“L(y, y')”或者直接用f(x)代替y',把损失函数记作“L((y, f(x))”。 ^57-17355-18295

    • ⏱ 2024-02-28 18:47:28
  • 📌 统计机器学习中各种主要模型和算法,从线性回归、逻辑回归到支持向量机、Boost算法,还有神经网络等,其本质上都是基于不同的损失函数建立起来,尽管这些算法都有各自的思想和依据,但从数学角度看,它们不但显得形似,而且内在也极为神似。 ^57-18521-18635

    • ⏱ 2024-02-28 18:48:45
  • 📌 与平方损失函数代表欧氏空间距离的含义类似,以上每一种损失函数,都有各自的数学(几何或者概率)中的具体含义。其实,所谓学习某一种机器学习算法,很大程度上就是去学习理解其损失函数的意义,然后学习如何去求解或者优化,得到满足损失函数最小值的模型结果。 ^57-22906-23028

    • ⏱ 2024-02-29 08:30:17
  • 📌 对于目的以讲解机器学习算法为主的书籍,比如周志华老师的《机器学习》和李航老师的《统计学习方法》,会详细介绍每一种算法的相关内容,不过本书的重点是从整体上了解整个人工智能的全貌,并不是讲解每一种机器学习算法的细节和步骤,所以对这些算法内容感兴趣的读者,可以参考上述两本书籍继续学习。下面就继续回到我们的邮件过滤器的实战中来。 ^57-23057-23218

    • ⏱ 2024-02-29 08:30:49
  • 📌 事实上,如何确定这条直线的位置,是由我们选择了怎样的决策算法来做线性分类器所决定的,基于不同方式构造的线性分类器,对这个问题可能会有不同角度的解决方案。譬如,我们可以考虑采用下面的办法来解决这个问题:不再使用“一条直线”来把平面分割为两个区域,因为直线是没有宽度的,在一块很小的空间里都能放置下无数条直线;而是改为使用一根有宽度的“棍子”去代替“直线”,当有了宽度之后就不可能在两类邮件样本之间再塞入无数根“棍子”了。然后,我们再前进一步把“棍子”的宽度慢慢增大,空间中能塞入的“棍子”的数量会变得越来越少,直至只有唯一的一根“棍子”能够塞进去为止,这根“棍子”的边缘已经触碰到两边最接近它的点了,它就无法再被挪动。最后,我们就重新拿出要分割空间的那条直线,安放在这条棍子的正中间位置,这个位置是唯一的,如下图所示。 ^57-25821-26179

    • ⏱ 2024-02-29 08:35:57
  • 📌 采用这种办法来解决最佳空间分割问题的线性分类器,其实是“支持向量机”(Support Vector Machine)中的一种最简化情况,称为“线性支持向量机”(LinearSVM, LSVM),刚才例子描述里“棍子的宽度”,在支持向量机中被称为“边距”(Margin),接触到“棍子”边缘的向量,就被称为“支持向量”(Support Vector)。 ^57-26456-26631

    • ⏱ 2024-02-29 08:35:47
  • 📌 我们将“泛化能力”(Generalization Ability),就是机器学习算法对新鲜样本的适应能力,作为衡量机器学习模型的最关键的性能指标,性能良好的模型,就意味着对满足相同分布规律的、训练集以外的数据也会具有良好的适应能力。 ^57-28563-28679

    • ⏱ 2024-02-29 18:43:30
  • 📌 误差(Error)=偏差(Bias)+方差(Variance)+噪声(Noise)这条公式,可以这么用通俗的语言来解读:误差的存在,就意味着模型输出值与实际值不相同,不相同有可能是因为模型无法表示实际数据的复杂度而造成了“偏差”(Bias)过大,或者因为模型对训练它所用的有限的数据过度敏感而造成的“方差”(Variance)过大,又或者是因为训练集中存在部分样例数据的标记值与真实结果有差别(即训练数据自身的错误),产生的“噪声”(Noise)过多,误差就是由这三个原因所导致的。要降低误差获得更好的性能,也就是要降低这三个误差的来源因素。 ^57-29079-29379

    • ⏱ 2024-02-29 18:45:50
  • 📌 一般而言,噪声不可避免,如何找出、消除噪声数据在实际应用中很重要,误差体现了该学习问题本身的实现难度,但是噪声是学习问题本身和样本数据来源的局限,无法人为控制。 ^57-29408

    • ⏱ 2024-02-29 18:46:36

6.6 评估验证

6.7 本章小结

第7章 深度学习时代

7.1 概述

7.2 引言:深度学习教父

7.3 逆反之心

7.4 复兴之路

  • 📌 对于单层神经网络而言,因为它只有一个输入层和一个输出层构成,输出层输出值与实际值之间的误差是显而易见的,我们要得到模型的权值参数,直接对损失函数求导然后应用梯度下降算法优化即可[插图]。可是应用在多层神经网络情况就复杂多了,由于有了中间隐层的存在,它作为下一层神经元的输入,是通过一层层传到输出层之后,才能间接影响模型的输出结果的,每一个隐层神经元的输出都不是神经网络的最终输出值,不能直接拿来和实际值比较误差,这样就没有办法直接通过对损失函数求导得到梯度来计算出各个隐层的各个神经元的权值参数了。此外还有计算可行性方面的困难,神经网络每增加一个隐层,都会导致神经元连接数量的快速增长。经过第4章的学习我们知道,神经网络最后的输出值是由所有流经它的连接路径汇集,然后把连接上权值的加权和放到激活函数中运算而来的,每一条路径上的神经元权值都会对结果产生难以估算大小的影响,各个神经元权值不能孤立分离开来训练。但是如果每一组训练数据都牵扯到全部可能的路径组合的话,这里面涉及的计算量就太大了,不要说当时,就算是今时今日的计算机硬件也难以直接通过暴力运算来处理。多层神经网络难以训练,除了上面列的两条从问题本身出发所遇见的困难外,还有另外一层原因:某种意义上说,困难也是由当时人工智能冰河期的寒冷的学术气氛所带来的。无论是明斯基撰写《感知机》抨击多层感知机无法训练的时候,还是罗森布拉特带着问题和遗憾去世的时候,抑或是辛顿最后重新发现了可行的多层神经网络训练方法的时候,都没有注意到,其实早已经有人提出过后来被辛顿命名为“误差反向传播算法”的训练方法,可以很好地解决多层神经网络的训练问题了。 ^64-2481-3319

    • ⏱ 2024-02-29 19:04:07
  • 📌 误差反向传播算法适用的神经网络范围要更大,它不仅可以用来训练多层感知机,也可以用来训练不是全连接的、不是前向的神经网络,例如循环神经网络就是具备反馈连接的,同样可以使用误差反向传播算法。 ^64-5213-5306

    • ⏱ 2024-02-29 19:15:05
  • 📌 激活函数”(Activation Function,也常被译为“激励函数”)的作用就是为了给神经网络加入非线性的表达能力,它改进了阈值函数只能单纯比较大小判断是否激发神经元信号的简单逻辑,允许根据实际需要,对输入的加权和进行不受限制的数学处理 ^64-5830-5951

    • ⏱ 2024-02-29 19:28:52
  • 📌 误差反向传播算法的理论基础是微积分里经典的“链式法则” ^64-6763-6790

    • ⏱ 2024-02-29 19:31:09
  • 📌 除了非线性和可微性之外,激活函数一般都还要具备单调性,这是因为如果激活函数是单调的,那使用这个激活函数的单层神经网络就能够保证是等价于某个凸函数,我们前面介绍机器学习训练过程时曾经提到,凸函数是相对易于优化的。当然,现在非凸优化已成了神经网络的一个前沿热点,但是在相同性能下,尽量避免非凸函数仍然是大家所追求的。 ^64-7228-7384

    • ⏱ 2024-02-29 19:34:08
  • 📌 假若我们换一种理解方式来看待神经网络,把网络的每一层都使用一个函数符号来表示的话,那不难发现,多层的神经网络就等价于多个函数的逐层嵌套。求嵌套函数导数的方法,在计算机领域是已经有了成熟解决方案的:数学和计算机代数中的自动微分(有时称作“演算式微分”)就是一种有着固定迭代步骤,可以借由计算机程序运行的嵌套函数导数的计算方法。误差反向传播算法,在思路上其实是自动微分技术在反向积累模式的特例。 ^64-8528-8723

    • ⏱ 2024-02-29 19:37:53
  • 📌 反向传播阶段,由于权值最初都是随机产生的,神经网络对输入值响应与训练集中标示的标签值势必会存有误差,该误差使用损失函数E来表示。由于这个误差值由随机权值所导致,我们的目标就是要求解出每一层、每一个神经元的权值(从神经元i到神经元j的连接权值以wij表示)对误差到底产生了多少的影响,“一个变量对结果产生的影响大小”这就是数学上导数的定义,求得导数之后,我们才能使用该导数逐步修正权值的大小,即梯度下降的优化方法。所以第二阶段的核心就是求导[插图],如何求导是此算法的重点。稍后会详细解释,由于整个求解过程如果使用传统正向模式求导的话,会面临很大的重复计算量,而这个算法的精髓是从输出层的误差开始,反过来逐层把误差传播至每一个隐层上,直到输入层为止,每一层都依赖后面已经计算好的信息去完成过求导,故称作“反向传播”。 ^64-13544-14177

    • ⏱ 2024-02-29 19:46:25
  • 📌 这个算法的操作步骤从整体来说并没有神来之笔,其实根本就是梯度下降算法嘛!最初人们认为神经网络是不可能训练的,并不是想不出这样的操作步骤,而是受限于操作步骤中第二阶段计算网络的每一个权值的导数[插图],这个过程需耗费巨量的计算资源。而误差反向传播的最精妙之处就在于给出了可快速完成[插图]求导的“反向模式”。这点才是误差反向传播算法改进的精髓所在,为了能解释好这个“反向模式”,笔者先使用计算图计算导数的过程来讲解一下传统“正向模式”是如何操作的,正常求导需要花费多少计算量。 ^64-14581-15086

    • ⏱ 2024-02-29 19:52:42
  • 📌 我们通过用计算图求算子a和b对算式“e=(a+b)×(b+1)”的偏导数为例来讲解,这个算式的复合关系使用计算图展开后如下图所示[插图]:[插图]e=(a+b)× (b+1)的计算图表示在图中引入了两个中间变量c和d参与运算,要求导[插图]和[插图],假设输入的样例数据为a=2、b=1,正向模式下的做法是根据偏导数的定义,先求出各个层级逐层节点的偏导关系,如下图所示。[插图]计算图各个节点的偏导关系再根据求导的链式法则,我们很容易知到a和b对最终结果e是如何影响的,即它们的偏导数计算过程如下:[插图]对比一下计算图的结构和这两个式子,不难发现规律:要计算式子[插图]的值,等价于计算图中从a到e的路径(a->c->e)上经过的偏导值的乘积,而[插图]的值就等价于图中从b到e的两条不同路径经过的偏导值乘积之和(“b->c->e”+“b->d->e”)。这点并非巧合,通过计算图做自动微分其实就是对计算图路径上的偏导值求和,这个就是计算机求导的算法原理。 ^64-15115-17869

    • ⏱ 2024-03-01 19:12:56
  • 📌 一般性地描述这个过程:对顶层节点p和底层节点q,要求得导数[插图],便需找到从q节点到p节点的所有路径,并且对每条路径求得该路径上的所有偏导数,再把它们全部相乘,然后将所有路径的乘积累加起来,这样就能得到[插图]的值 ^64-17898-18385

    • ⏱ 2024-03-01 19:12:55
  • 📌 误差反向传播算法就很聪明地规避了这种冗余,它对于每个路径只访问一次就能求得顶点对所有下层节点的偏导值。 ^64-18842-18893

    • ⏱ 2024-03-01 19:12:56

7.5 深度学习时代

  • 📌 同时,笔者也注意到一个现象,在谈及深度学习的多数人群里,大多都没有能够确切地理解这个名词所蕴含的真实意义,在相当一部分人的观念里面,深度学习大概就是简单等价于隐层数量比较多的神经网络而已,本节,我们就从“深度学习是什么”这个话题说起。 ^65-2124-2241

    • ⏱ 2024-03-01 19:23:47
  • 📌 深度学习还有另外一个不为人知但其实更为贴切的名字,叫作“无监督特征学习”(Unsupervised Feature Learning),这就更加可以顾名思义了:“无监督”的意思即不需要人工参与特征的选取过程,这点才是深度学习的最大特点,至于使用蕴含有多少隐层的神经网络,甚至是否通过深度神经网络去实现,都是可以商量的,这些都只是工具和操作过程罢了。 ^65-5667-5841

    • ⏱ 2024-03-01 19:35:25

7.6 深度神经网络

7.7 从实验室到企业

7.8 挑战与反思

7.9 本章小结

第四部分 人机共生

8.1 概述

8.2 引言:天才还是白痴

8.3 与机器竞技

8.4 与机器共舞

8.5 本章小结

附录 人工智能历史大事记

读书笔记

5.6 自复制机和进化主义

划线评论

  • 📌 冯·诺依曼虽然最终也没有成功说服维纳从神经系统转向研究病毒,但是他自己大约花费了两年时间,拿出了一门理论:《自复制自动机理论》(Theory of Self-Reproducing Automata)[插图],总体上概述了机器应该如何从基本的部件中构造出与自身相同的另一台机器。其目的并不是想模拟或者理解生物体的自我复制,也并不是简单想制造自我复制的计算机,他的最终目的是想回答一个理论问题:如何用一些不可靠的部件来构造出一个可靠的系统。自复制机恰好就是一个最好的用不可靠部件构造的可靠的系统。这里,“不可靠部件”可以理解为构成生命的大量分子,由于热力学干扰,这些分子很不可靠。但是生命系统之所以可靠的本质,恰是因为它可以完成精确的自我复制。维纳也在1961年出版的《控制论》第2版里面特别增加了两个新章节,其中就有一章专门讲述机器如何实现自学习和自复制能力。 [插图] ^367561166-7P2BPI2DV
    • 💭 这里的描述让我想到了人类的细胞和k8s,竟然是相通的
    • ⏱ 2024-02-17 08:55:45

本书评论