机器学习基础(一)

机器学习基础

学习算法

  机器学习算法是一种能够从数据中学习的算法。那所谓的学习是什么意思呢?Mitchell(1997)提供了一个简洁的定义:对于某类任务和性能度量P, 一个计算机程序被认为可以从经验E中学习是指,通过经验E改进后,它在任务T上由性能度量P衡量的性能有所提升。原文如下:

A computer program is said to learn from experience E with respect to someclass of tasks T and performance measure P, if its performance at tasks in T, asmeasured by P, improves with experience E.

任务T

  机器学习可以让我们解决一些人为设计和使用确定性程序很难解决的问题。从科学和哲学的角度来看,机器学习之所以备受关注,是因为提高我们对机器学习的认识需要提高我们自身对智能背后原理的认知。

  从“tasks”的比较正式的定义来看,学习过程本身不能算是任务。学习是我们所谓的获取完成任务的能力。举个例子,我们的目标是让机器人能够行走,那么行走便是任务。我们可以通过编程让机器人学会如何行走,或者可以人工编写特定的指令直接告诉机器人该怎么行走。

  通常机器学习任务定义为机器学习系统应该如何处理样本(example)。样本是指我们从某些希望机器学习系统处理的对象或事件中收集到的已经量化的特征(feature)的集合。我们通常会将样本表示成一个向量 x ∈ R n \mathcal{x}\in\mathbb{R}^n xRn ,其中向量的每一个元素 x i x_{i} xi 是一个特征。例如图片的特征通常指这样图片的像素值。

  机器学习可以解决很多类型的任务,常见的机器学习任务如下:

  • Classification :这种任务中,计算机程序需要指定某些输入属于 k k k 类中的哪一类。为了完成这个任务,机器学习算法通常会根据训练样本返回一个函数 f : R n → { 1 , . . . , k } f:\mathbb{R}^n\to\{1,...,k\} f:Rn{1,...,k} 。当 y = f ( x ) y=f(x) y=f(x) 时,训练出的模型将向量 x x x 所代表的输入分类到数字码y所代表的类别。当然还有一些其他的分类问题,例如, f f f 输出的是不同类别的概率分布。分类任务中有一个任务是对象识别,其中输入是图片(通常由一组像素值亮度值表示),输出是表示图片所示物体的数字码(就是把图片分类,这张图是猫,那张是狗,1代表猫,2代表狗,输出就是1,2这种数字码)。例如, Willow Garage PR2 机器人能像服务员一样识别不同饮料,并送给相应顾客。目前,性能最好的对象识别工作是基于深度学习理论的。对象识别的另一个应用场景就是人脸识别,可用于标记相片合辑中的人脸,有助于计算机更自然地与用户交互。
  • Classification with missing inputs :当输入向量的每个特征不被保证存在时(样本数据的一些特征可能缺失,可能样本A缺失特征1,样本B缺失特征2),分类问题将会变得更加富有挑战性。前面提道,为了解决分类问题,学习算法通常会学习得到一个从输入向量映射到输出类别的函数。而在一些输入可能丢失的情况下,学习算法必须学习一组函数,而不简单是单个分类函数。将样本数据 x x x 根据不同的输入缺失分成若干子集,每个函数对应分类一个子集(这句话的翻译的意思可能还不到位,原文见下)。这种输入数据部分特征缺失的情况在医疗诊断中经常出现,因为很多医学测试是昂贵的或者有害的。有效地定义这样一个函数集合的方法是学习所有相关变量的概率分布,然后通过边缘化缺失变量来解决分类任务。对于一个n维的输入向量,其可能的输入缺失情况有 2 n 2^n 2n 种,通过学习算法我们可以获得所有 2 n 2^n 2n 个不同的分类函数,但是计算机程序仅需学习一个描述其联合概率分布的函数。除了分类任务,许多其他任务也能推广到输入缺失的情况。输入缺失的分类只是机器学习能够解决问题的一个示例。

Each function corresponds to classifying x with a different subset of its inputs missing.

  • Regression :在回归任务中,计算机程序需要对给定输入预测输出数值。为了解决这个任务,学习算法需要得到一个函数 f : R n → R f:\mathbb{R}^n\to\mathbb{R} f:RnR 。除了返回结果的形式不一样,这类任务与分类任务几乎一样。一个常见的示例是预测投保人的索赔金额(用于设置保险费),或者预测证券未来的价格。这类预测常用于算法交易中。
  • Transcription :在这类任务中,机器学习系统观测的是一些相对非结构化表示的数据,它会将其转化成离散的文本形式信息。例如,光学字符识别要求计算机程序根据文本图片返回文字序列(ASCII码或者其他码)。谷歌街景以这种方式使用深度学习处理街道编号。另一个例子就是语音识别,计算机程序输入一段音频,输出音频中记录的字符或单词ID编码的序列。深度学习的方法在现代语音识别系统应用广泛,包括微软、IBM、谷歌都在研究。
  • Machine translation :在机器翻译任务中,输入是一种语言的符号序列,计算机程序必须将其转化成另一种语言的符号序列。这通常适用于自然语言,如将英文翻译成中文。深度学习在这领域已经产生重要影响。
  • Structured output :结构化输出任务的输出是向量或者其他包含多个值的数据结构,并且构成输出的这些不同元素间具有重要联系。这是个很大的范畴,包括上述Transcription任务和翻译任务。例如语法分析----映射自然语言句子到语法结构树,并标记树的节点为动词、名词、副词等词性。另一个例子是图像的像素级分割,将每一个像素分配到特定类别。例如深度学习可用于标注航拍照片中的道路位置。在这些标注型任务中,输出的机构形式不需要和输入尽可能的相似。例如,在为图片添加描述的任务中,计算机程序观察到一副图片,输出描述这副图的自然语言句子。这类任务被称为 结构化输出任务 ,因为输出值之间内部紧密相关。例如,为图片添加标题的程序输出的单词必须组成一个通顺的句子。
  • Anomaly detection :在异常检测任务中,计算机程序在一组事件或对象中筛选,并标记不正常或非典型的个体。异常检测任务的一个示例是信用卡欺诈检测。通过对你的购买习惯建模,信用卡公司可以检测到你的卡是否被滥用。如果小偷窃取你的信用卡或信用卡信息,小偷购买物品的分布通常与你不同。当这张卡发生了不正常的购买行为时,信用卡公司可以尽快冻结这张卡以防止欺诈。具体的一些欺诈检测方法可以参考Chandola et al.(2009)。
  • Synthesis and sampling :在合成与采样任务中,机器学习程序生成一些和训练数据相似的新样本。通过机器学习,合成与采样可能在媒体应用中非常有用,可以避免艺术家大量昂贵或者乏味费时的手动工作。例如动画制作中AI上色,视频游戏可以自动生成大型物体或者风景的纹理,而不是让艺术家手动标记每个像素。在某些情况下,我们希望采样与合成过程可以根据给定输入生成一些特定类型的输出。例如,在语音合成任务中,我们提供书写的句子,要求程序输出这些句子语音的音频。这也是一类 结构化输出任务 ,但是多了每个输入并非只有一个正确输出的条件(毕竟人的声音可以千变万化),并且我们明确希望输出有很多变化,这可以使结果看上去更加自然真实。
  • Imputation of missing values :在缺失值填补的任务中,机器学习算法给定一个新样本 x ∈ R n x\in\mathbb{R}^n xRn x x x 中某些元素 x i x_{i} xi 缺失,算法必须填补这些缺失值。
  • Denoising :在去噪任务中,机器学习算法的输入是,纯净样本 x ∈ R n \mathcal{x}\in\mathbb{R}^n xRn 经过未知的损坏过程后得到的损坏样本 x ~ ∈ R n \tilde{x}\in\mathbb{R}^n x~Rn 。算法根据损坏后的样本 x ~ \tilde{x} x~ 预测干净样本 x x x ,或者更一般地预测条件概率分布 p ( x ∣ x ~ ) p(x|\tilde{x}) p(xx~)
  • Density estimation or probability mass function estimation :在密度估计任务中,机器学习算法学习函数 p m o d e l : R n ∈ R p_{model}:\mathbb{R}^n\in\mathbb{R} pmodel:RnR ,其中 p m o d e l ( x ) p_{model}(x) pmodel(x) 可以理解为样本采样空间的概率密度函数(x连续)或概率质量函数(x离散)。要做好这样的任务(在讨论性能度量P时,会明确定义任务是什么),算法需要学习观测到的数据的结构。算法必须知道什么情况下样本聚集出现,什么情况下不太可能出现。以上描述的大多数任务都要求学习算法至少能够隐式地捕获概率分布的结构。密度估计可以让我们显式地捕获该分布。原则上,我们可以在该分布上计算以便解决其他任务。例如,通过密度估计得到了概率分布 p ( x ) p(x) p(x) ,我们可以用该分布解决缺失值填补任务。如果 x i x_{i} xi 的值式缺失的,但是其他的变量值 x − i x_{-i} xi 已知,那么我们可以得到条件概率分布 p ( x i ∣ x − i ) p(x_{i}|x_{-i}) p(xixi) 。实际情况中,密度估计并不能解决所有这类问题,因为大多情况的 p ( x ) p(x) p(x) 难以计算。

这里列举的任务类型只是用来介绍机器学习可以做哪些任务,并非严格定义机器学习任务分类,故还有很多其他同类型或其他类型任务没有列举。

学习资源 DeepLearning 5 Machine Learning Basics

未完待续

下一篇
作为一个机器学习的入门者,希望通过细读经典书籍,整理学习过程,最后得到能力的提升。

你可能感兴趣的:(DeepLearning)