AI机动队
首发于AI机动队
机器学习问题定义与线性回归——深度学习花书第五章(一)

机器学习问题定义与线性回归——深度学习花书第五章(一)

之前已经总结了第二到四章数学基础部分,第五章讲的是机器学习基础,内容较多,包括机器学习问题的定义,机器学习算法过拟合和验证集的概念,贝叶斯推断,经典的监督学习和非监督学习的算法等,而且Ian很多方面一笔带过,其实每个经典的算法都可以单独出来写一篇文章详述,所以准备将第五章分几部分总结,而且争取把书中比较模糊的涉及到的概念也补充清楚。

这篇先总结一下对于机器学习问题如何定义并以线性回归来举例说明。

机器学习三要素

什么是机器学习问题,书中的定义是给计算机程序一些定义好的任务T(Task)和性能指标P(Performance measure),以及一些已有经验或数据集E(Experience),如果提供给机器更多的经验E,它能够对于任务T提升其性能指标P。下面我们分别总结一下任务,性能指标和经验通常都有哪些类型。

任务

在机器学习系统中,任务常常是通过已有的一些例子(example)来总结出一些统计规律。而每个例子又常常由很多通过测量得到的特征(feature)构成,我们常常将各个特征用特征向量来表示 x\in R^n ,其中每个 x_i 代表一个特征,例如在图像中,每个像素可以看做是一个特征。机器学习任务可以大致分为以下的几类问题:

  • 分类问题(classification): 指的是假如我们研究对象有k种不同的类别,我们希望程序能够知道每个数据属于哪一类,即学习 f:R^n \rightarrow \left\{ {1, ..., k} \right\} 的映射。比如图像识别里,我们希望推断一个图片是小汽车还是飞机,还有人脸识别中我们希望知道这些脸部图像属于谁。
  • 回归问题(regression):我们有的时候想用机器预测某一具体数值,即学习 f:R^n \rightarrow R 的映射。这个定义和分类问题有些类似,但是输出格式不同。例子有我们想预测将来股票的价格的等。
  • 结构化输出(structured output): 这是一个比较广的类别,主要指输出格式可能具有多个元素,并且各元素之间有较强关联。比如字符识别问题(Optical Character Recognition,简称OCR),即通过程序将图片中包含文字的部分识别出来并转换成字符串;语音识别问题(speech recognition)输入音频通过程序转化成相应的文字表示;机器翻译(machine translation)将某种语言翻译成另一种语言;图像描述(image captioning)即输入图像输出描述图像的文字等。
  • 机器合成(synthesis):指机器通过已有的训练数据集可以生成一些与数据集类似的数据,比如图像合成语音合成等。

这些分类并不是很严格的定义,对于同一个问题我们常常可以把它当做不同种类的问题而采取不同方法解决,比如推荐系统预测用户是否会购买某种商品,我们既可以把它当做回归问题,也可以当做二元分类问题。

性能指标

为了研究机器学习模型的有效性,我们需要可以定量的测量它的性能。比方说对于分类问题,我们可以定义准确率(accuracy)即在所有数据中模型做出正确分类的百分比,我们也可以测量错误率(error rate)即模型做出错误判断的百分比,而模型的目的就是提高正确率或减小错误率。这里我们要引出测试集(test set)的概念,通常我们希望我们的模型不仅仅能描述已有的数据,而是对于新数据也能做出很好的预测,所以我们通常要利用一个独立于训练集的测试数据集来实测模型的性能指标。

当然,对于某一研究对象找到合适的性能指标不一定是显而易见的。比方说对于翻译问题,我们的目标是整个句子都需正确,还是对于翻译正确句子的某一部分也给部分奖励?对于回归问题,我们是更多惩罚很少出错,但每次错误都是重大错误的系统,还是更多惩罚经常出错但是都是中等程度错误的系统?这些都需要视应用而定。

经验

依赖于我们提供给机器的数据集格式,我们可以大致将机器学习问题分为监督学习(supervised learning)和无监督学习(unsupervised learning)问题。

  • 监督学习:数据集不仅仅有特征,每个数据还有标签(label)。比方说图像识别数据里我们不仅提供原始图像每个像素值,我们还标注每个图像的类型,比如图像是飞机还是汽车。
  • 无监督学习:相应地,在无监督学习里,数据只有特征,没有标注的标签,我们需要机器学习这个研究对象的概率分布,比如说聚类(clustering)问题,我们希望机器可以通过这些特征而把数据集分成不同的类似的群,比如通过用户之前的购买记录分析用户的年龄段等。
  • 强化学习(reinforcement learning): 还有一类问题不一定有固定的静态的数据集,而是通过与环境的不断交互,形成机器学习系统与环境的反馈,从而不断的改进模型,经典例子如DeepMind的AlphaGo。

线性回归

如果以上概念还比较抽象,我们可以用比较经典的线性回归(linear regression)来加深理解。

线性回归顾名思义是一类回归问题,研究的是如何利用输入向量 x\in R^n 预测输出标量 y\in R 的问题,假设输出可以用输入线性表示出来

其中 w\in R^n 表示了每一个特征在模型中的权重。

我们的任务就是通过这个线性关系来预测y的值。

而我们的性能指标是什么呢?通常我们可以用在测试集上的预测值与实际值的均方差(mean squared error)表示:

也可以简写为预测值与实际值的欧几里得距离形式:

我们的学习模型目标是通过对训练集的学习可以选取合适的w减小 MSE_{test} ,一种直观的做法是假设训练集与测试集分布大致相同,那么我们希望选取合适的w尽量减小训练集上的MSE。我们可以令 MSE_{train} 相对于w的梯度为零,可得到

通过这个公式我们可以选取合适的w,从而使 MSE_{train} 尽量小。对于如下的简单的一维的数据集, MSE_{train} 随w的变化如右下所示:

虽然线性回归比较简单,而且适用范围有限,但是可以很好的帮助我们理解机器学习算法的工作模式。之后我们可以在这基础的原理上逐渐的建立更复杂的模型。

到这里,我们总结了深度学习花书第五章机器学习基础的第一部分,了解了机器学习问题的定义并用经典的线性回归问题阐释了这些概念。下一篇总结过拟合和欠拟合,验证集,正则化方法以及一些评估拟合效果的统计概念。

发布于 2018-07-02

文章被以下专栏收录