机器学习基础之算法学习

苟有恒,何必三更眠五更起

最无益,莫过一日曝十日寒

总体来说,深度学习是机器学习的一个特定分支,要想充分理解深度学习,首先必须对机器学习的基本原理有深刻的理解。同时,机器学习的一些先天不足又促进了可以解决这些问题的深度学习算法的发展。那么,机器学习中的“学习”到底是什么含义呢?简单来讲,当我们试图用某一个算法去解决某一个任务时,算法经过我们事先准备好的先验数据的改造,在某一个性能度量标准下的表现越来越好。这时候,我们的算法就完成了从先验数据中的学习。其中,有三个非常重要的概念:任务、性能度量和经验。下面,我们分别展开来说。

一、任务

机器学习可以让我们解决一些确定性程序难以解决的问题,这也是机器学习受到关注的重要原因之一。学习本身不能算是任务,学习是获得完成任务的能力。一个成熟的机器学习系统在被使用时会把一个已经量化的特征集合作为输入,我们称这个量化的特征集合为样本。例如,一张图片的特征通常是指这张图片像素值的集合。机器学习任务通常被定义为机器学习系统应该如何处理样本。

常见的任务有:

  1. 分类:计算机程序需要预测某些输入属于哪一类别。例如:Willow Grarage PR2机器人能像服务员一样识别不同饮料,并送给点餐顾客。目前最好的对象识别正是基于深度学实习的。
  2. 输入缺失分类:当一些输入可能丢失时,为了得到正确的分类,必须让算法学习具有不同输入缺失的子集。这种情况在医疗诊断中经常出现,因为很多类型的医疗测试是昂贵的,对身体有害的。
  3. 回归:算法需要对给定的输入给出一个预测数值。例如:预测投保人的索赔金额,或者预测证券未来的价格。
  4. 转录:算法输入一些非结构化的数据,转录为离散的文本形式。例如:光学字符识别,算法根据文本图片返回文字序列。
  5. 异常检测:算法在一组事件或者对象中筛选,并标记不正常或非典型的个体。例如:信用卡欺诈检测。
  6. 密度估计或概率质量函数估计:算法需要显示的捕获样本的概率分布,必须知道什么情况下样本聚集出现,什么情况下不太可能出现。

这里所列举的任务类型只是用来介绍机器学习可以用来做哪些任务,并非严格定义机器学习任务分类。

二、性能评估

为了评估机器学习算法的能力,我们必须设计其性能的定量度量。依据任务的不同,性能度量的方法也会有所不同。对于分类、缺失输入分类和转录任务,我们通常度量模型的准确率。对于密度估计这类任务度量准确率是没有意义的,最常用的方法是输出模型在一些样本上概率对数的平均值。

通常情况下我们会在训练集之外制作一个测试集用来评估机器学习系统的性能,这样可以更好的反映算法在未观测数据集上的性能如何。

实际上,选择一个合适的算法系统性能度量方法是很难的,因为有些情况下很难确定应该度量什么。例如,在转录任务中我们应该度量系统整个序列的准确率还是应该选取一个更加细粒度的指标?在回归任务中我们应该关注那些频繁犯错但是错误不大的系统,还是那些很少犯错但是错误很大的系统?这些设计的选择都取决于应用。

三、经验

根据机器学习过程中的不同经验,算法大致可以分为无监督学习和有监督学习。我们可以理解成大部分算法在整个数据集上获取经验。

无监督学习

学习出训练数据集中有用的结构性质,比如概率分布。可以理解为,在学习中没有老师,算法必须学会在没有指导的情况下理解数据。

有监督学习

算法必须观察出随机变量x及其相关联的值y之间的关系,然后可以根据x预测出y。可以理解为,有老师提供目标y给机器学习系统,并指导其应该做什么。

通常情况下,监督学习和无监督学习之间并没有清晰的界限,很多机器学习算法可以用于这两个任务。但是,这确实可以粗略的分类我们研究机器学习算法时遇到的问题。人们将回归、分类或者结构化输出的问题称为监督学习,将支持其他任务的密度估计称为无监督学习。同时,还有其他变种出现,比如半监督学习,一些样本有监督目标,但是其它样本没有。

评论 1

  • 微视搬运工 10月14日 18:32

    转发了

今日热门