diff --git a/README.md b/README.md index 85fb722..38b7f8e 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ |[2 Linear Algebra](http://www.deeplearningbook.org/contents/linear_algebra.html) | | | |[3 Probability and Information Theory](http://www.deeplearningbook.org/contents/prob.html)|@gjoker|| |[4 Numerical Computation](http://www.deeplearningbook.org/contents/numerical.html)|@mathshen|| -|[5 Machine Learning Basics](http://www.deeplearningbook.org/contents/ml.html)||| +|[5 Machine Learning Basics](http://www.deeplearningbook.org/contents/ml.html)|@yinruiqing|| |[Part II: Modern Practical Deep Networks](http://www.deeplearningbook.org/contents/part_practical.html)|----|----| |[6 Deep Feedforward Networks](http://www.deeplearningbook.org/contents/mlp.html)|@francis7999|| |[7 Regularization](http://www.deeplearningbook.org/contents/regularization.html)||| diff --git a/SUMMARY.md b/SUMMARY.md index 84616cd..7c832ed 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,3 +1,5 @@ # Summary * [First Chapter](chapter1.md) +* [Chapter 5](/part_1_chapter_5.md) + diff --git a/part_1_chapter_5.md b/part_1_chapter_5.md new file mode 100644 index 0000000..2cd1c39 --- /dev/null +++ b/part_1_chapter_5.md @@ -0,0 +1,35 @@ +# 机器学习基础 + +深度学习其实也是机器学习的一种方法。为了更好的理解深度学习,我们必须也要了解一下机器学习的基础知识。这章给大家简要介绍了机器学习中一些重要的概念,这些内容在本书的后续章节会涉及到。如果你是初学者或者想对机器学习有更广更详细的了解,推荐你找一本机器学习的教科书。比如说Murphy\(2012\)或者Bishop\(2006\)。如果你已经对机器学习的基础比较熟悉了,你可以直接开始看5.11。那部分内容介绍的传统机器学习技巧对深度学习算法的发展有较大的影响。 + +我们首先会先定义一下什么是机器学习算法。随后我们会给一个例子 线性回归算法。接着我们介绍拟合训练数据和将我们学习到的模型运用到新的数据集的不同之处。大部分机器学习算法会让我们设置超参数。这些超参数是需要我们自己定义的,而不能通过训练过程自动更新。我们也会讨论如何设置超参数。机器学习本质上就是应用统计学。和应用统计学不同的是它强调了了利用计算机来对一些复杂的函数进行统计估计。但是减弱了对估计出来的函数计算置信区间。就是说它利用统计学方法的得出一个模型,但它不强调用传统的假设检验的方式来对该模型进行评估。接着我们会介绍两个核心的统计算法 频率估计 和 贝叶斯推断。频率学派和贝叶斯学派也是统计学的两大流派。大部分机器学习任务可以分为监督学习和无监督学习两类。我们会对这两类做一个介绍,同时会介绍一些它们用到的机器学习算法。大部分深度学习算法是基于一种叫随机梯度下降法的优化算法。我们会介绍如何构建一个完整的机器学习算法。这些算法包含多个部分。优化算法,损失函数,模型和数据集。最后,在5.11我们介绍了传统机器学习算法遇到的一些困难,这些困难促使我们发展深度学习来解决传统机器学习算法所不能解决或者很难解决的问题。 + +## 5.1 机器学习算法 + +所谓机器学习算法,就是能够从数据中学习的算法。但是学习到底是什么含义。Mitchell 提供了一个定义。一个计算机程序从关于不同类型的任务的经验中进行学习 + +我们可以想象,经验 任务 还有评估策略可以有很多,在这本书中不会给这些名词一个正式的定义。但是我们在接下来的章节中会对他们进行大致的描述,并给一些例子来帮助大家这些名词,已经如何用它们来组成一个机器学习算法。 + +### 5.1.1 任务 $$T$$ + +机器学习可以解决一些传统的算法很难解决的问题,之前我们总会用人为设计的固定的算法来解决一些问题。从一个科学或者哲学的观点来看,机器学习之所以有趣,是因为在发展理解机器学习算法的同时,我们也会思考发现人类智能的本质。人是如何思考的。 + +在这一段,我们会给任务 T 一个相对正式的定义。学习本身的过程不能称之为任务,学习的目的是为了获得完成任务的能力。举个例子: 如果我们制作出了一个机器人,想让它具有走路能力,那么走路就是任务T。我们可以写一个程序让机器人自己学习如何走路,也可以直接写一个程序直接控制机器人走路。 + +机器学习任务通常机器学习系统如何处理一个个实例 Example。实例是特征的集合。这些特征来自于我们设计的机器学习系统需要处理的事件或者物体,而且都已经被量化了。我们通常把实例表示成一个向量,向量的每个元素表示不同的特征。比如说图像的特征通常就是图像的像素值。 + +机器学习可以解决很多不同的任务。下面我列举了最常见的机器学习任务 + +* **分类 **在这类任务中,总共有k类,计算机算法需要判断每个输入属于哪个类别。为了完成这个任务,学习算法通常需要产生一个函数,或者叫对应关系。模型会将每个输入x对应到某个类别y。当然也有很多类似的分类任务,比如说f输出一个概率分布,每个类别对应一个概率。物体识别就是分类任务的一个例子。这个任务重输入时一幅图片 通常可以描述成像素值的集合。输出是图片中物体对应的编码。比如说机器人 就可以识别不同的饮料,并把他们送给点单的客人。深度学习在完成目标检测都有较好的效果。同时,目标检测的算法也可以用于人脸识别,这样我们就可以对照片里的每个人进行自动标注了,而且也可以帮助计算机更好的和人类进行交互。 +* **缺失特征情况下的分类 ** 如果一些数据缺失某些特征的化,分类问题会变得比较难。也就是说不能保证输入向量里每个对应的特征都可以提供。不同的x缺德特征也有可能不一样。传统的分类任务中,学习算法需要定义一个函数,能够将输入向量映射到一个输出类别。但如果一些输入特征缺失了,学习算法就需要定义一系列函数, +* **回归 **在这类任务重,计算机程序需要根据输入预测一下数值。为了解决这个问题,学习算法需要得到一个函数 这类人物和分类任务很像,唯一的不同就是输出的格式不一样,分类任务要求输出的是输入对应的类别,是离散的,而回归任务要求的输出是连续的数值。 +* **描述 **在这类任务中,机器学习系统需要观察一些非结构化数据,然后用文字或者离散化的符号描述它们。比如说文字识别,计算机程序需要识别出图片中所包含的文字,然后将识别出来的文字返回。谷歌的 就是利用深度学习来街道号码的。另一个例子是语音识别,计算机程序会根据输入的波形来判断我们说的话。然后将它们转成文字或者文字对应的编码。现在深度学习是语音识别系统一个非常重要的组成部分,已经被好多大公司使用,包括微软,IBM,谷歌。 +* **机器翻译** 在机器翻译任务中,我们需要将某种语言的序列翻译成另一种语言的对应的序列。这是自然语言处理的的一部分,比如说将音乐翻译成法语。深度学习在这些任务中,表现的越来越出色。 +* **结构化输出** 这类任务一般都要求输出是一个向量,或者其他能够存储多个值的数据结构。这样的任务太多了,包括我们上面提到的描述和机器翻译。当然还有一些其他的任务,比如说 将 +* 异常检测 在这类任务中,计算机程序会对输入的事件和目标进行筛选,找出那些异常的的事件或者事物。信用卡欺诈检测就是这类任务的一个例子。通过对你的消费习惯进行建模,当你的卡被盗刷的时候,信用卡公司可以检测出来这个异常事件。当小偷盗取了你的行用卡或者信用卡信息,他进行消费的时候,这些消费记录会和你的消费习惯的概率分布不一致。这样信用卡公司在检测到你的信用卡账号有异常购买记录的时候就会直接把你的信用卡给锁了。可以看一下,里面介绍了一些异常检测的方法。 + +* **模仿合成及采样 **在这类任务中,机器学习算法或生成一些和训练数据相似的数据。这类任务在艺术和多媒体领域很有用,艺术家进行创造的过程是很枯燥的,而且要花费大量的经历。比如说,在电脑游戏中,我们可以自动生成一些物品和风景。而不是依靠艺术家一点一点画出来。当然我们也可以接收一些比较特殊的输入。比如说语音合成,我们输入一个句子,然后程序就会合成这个句子对应的语音波形。这也是上文提到的结构化输出任务,但是在这个任务中每个输入并没有对应的唯一的正确的输出。我们期望输出会有多一点的变化,这样就会让人感觉更加自然和真实。 + +* 缺失值预测 在这类任务中,机器学习算法 + +