上一篇,我完成了相关软件的安装和环境配置。
这一篇是阅读 https://zh.gluon.ai/chapter_crashcourse/introduction.html
预备知识的阅读以及听课笔记。
今天的课程是这一部分:
1.机器学习简介
1.1感性认识机器学习
首先通过语音识别的一个小应用来对什么是机器学习进行一个感性上的介绍:
人类很难一步一步地告诉计算机,什么样的一段语音里面是含有目标检测词,什么样的一段语音是不含有的。因为人类自己虽然能够识别,但是却无法详细叙述和精确定义这个过程。那么解决的方法是什么呢:把大量的数据呈现给计算机,让它自己却“摸索”识别目标检测词是否出现在一段语音中的方法也就是模型)。
这个过程,我觉得这里沐神的定义特别好-----用数据编程。
然后,他用一个简单有趣的例子,对比了什么是用代码编程和什么是用数据编程:
这种问题,使用机器学习方法显然是并不出彩。但是对那些,人类“说不清为什么,就能解决”的问题,比如三岁的孩子都能百分百区分猫狗,识别他自己的名字,这样的过程,我们让机器也学会这种“说不清,就做到”了的过程。就是机器学习。这种说不清的过程,有一种,就是申请网络。
1.2机器学习最简要素:数据,模型,损失函数,优化算法
他这里数据只较简单地分为了训练数据,和测试数据。
过拟合,一般是训练数据的误差比较明显地小于测试误差。
1.3监督学习
监督学习,我见过的一个最生动的解释是:小孩子做了一件事,父母告诉他这么做好还是不好,直接给出确定的答案(标注,label)。
1.3.1监督学习之一:回归分析 linear regression
它一般就是输出是连续值。
例如我们可以把本月公司财报数据抽取出若干特征,如营收总额、支出总额以及是否有负面报道,利用回归分析预测下个月该公司股票价格。
一个更详细的例子,一个房屋的销售的数据集。构建一张表:每一行对应一幢房子;每一列对应一个属性,譬如面积、卧室数量、卫生间数量、与市中心的距离;我们将这个数据集里这样的一行,称作一个特征向量(feature vector),它所代表的对象(比如一幢房子),称作样例(example)。
如果住在纽约或三藩这种大城市,你也不是某个知名科技公司CEO,那么这个特征向量(面积、卧室数量、卫生间数量、与市中心的距离)可能是这样的[100,0,.5,60][100,0,.5,60]。如果住在匹兹堡,则可能是这样的[3000,4,3,10][3000,4,3,10]。这些特征向量,是所有经典机器学习问题的关键。我们一般将一个特征向量标为 xi,将所有特征向量的集合标为 X。
一个问题是否应采用回归分析,取决于它的输出。比如你想预测一幢房子的合理的市场价格,并提供了类似的特征向量。它的目标市场价是一个实数。
如果我们把模型预测的输出值和真实的输出值之间的差别定义为残差,常见的回归分析的损失函数包括训练数据的残差的平方和或者绝对值的和。机器学习的任务是找到一组模型参数使得损失函数最小化。我们会在之后的章节里详细介绍回归分析。
1.3.2监督学习之2:分类
回归分析所关注的预测可以解答输出为连续数值 的问题。当预测的输出是离散的 类别时,这个监督学习任务就叫做分类。
多于两种可能类别的问题称为多分类。常见的例子有手写字符识别[0, 1, 2, 3 ... 9, a, b, c, ...]
。分类问题的损失函数称为交叉熵(cross-entropy) 损失函数。可以在MXNet Gluon
中找到。
数学上,最最基本的,我们需要算一下预期风险,即,把结果概率与相应的收益(或损失)相乘:
L(action∣x)=Ey∼p(y∣x)[loss(action,y)]
在动物分类的中,将贵宾犬误认为雪纳瑞并不是很严重的错误,但把贵宾犬和恐龙混淆就是另一回事了。但是,什么结构是合适的,取决于模型的使用。例如,响尾蛇和束带蛇在演化树上可能很近,但是把一条有毒的响尾蛇认成无毒的束带蛇可是致命的。