翻到刚开始接触机器学习时的笔记,闲着无事将其整理成博客。主要参照中国MOOC中浙江大学计算机学院吴飞老师的《人工智能课程》。
机器学习-监督学习
一. 机器学习(Machine Learning,ML)基本概念
1.定义:
机器学习是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
“机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。”
2.基本手段
(1)从原始数据中提取特征
(2)学习映射函数𝑓
(3)通过映射函数𝑓将原始数据映射到语义空间,即寻找数据和任务目标之间的关系。
3.按学习形式分类
(1)监督学习(supervised learning)
数据有标签、一般为回归 或 分类 等任务
利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程
*半监督学习 即介于监督学习和无监督学习之间,数据并不是全都有标签。
(2)无监督学习(un-supervised learning)
数据无标签、一般为聚类或若干降维任务。
又称归纳性学习(clustering)利用K方式(Kmeans),建立中心,通过循环和递减运算(iteration&descent)来减小误差,达到分类的目的。
(3)强化学习(reinforcement learning)
序列数据决策学习,一般从环境交互中学习
二、监督学习
1. 概述
监督学习是从标记的训练数据来推断一个功能的机器学习任务。
训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。
一个最佳的方案将允许该算法来正确地决定那些看不见的实例的类标签。这就要求学习算法是在一种“合理”的方式从训练数据到看不见的情况下形成。
可用于分类、识别、推荐等。
2.重要元素
(1)标注数据 标识了类别信息的数据。
(2)学习模型 如何学习得到映射模型
(3)损失函数 如何对学习结果进行度量
3.损失函数
训练映射函数f:使得f(xi)预测结果尽量等于yi
- 训练集中一共有𝑛个标注数据,第𝑖个标注数据记为(𝑥𝑖,𝑦𝑖) ,其中第𝑖个样本数据为𝑥𝑖,𝑦𝑖是𝑥𝑖的标注信息。
- 从训练数据中学习得到的映射函数记为𝑓,𝑓对𝑥𝑖的预测结果记为𝑓(𝑥𝑖)。损失函数就是用来计算𝑥𝑖真实值𝑦𝑖与预测值𝑓(𝑥𝑖)之间差值的函数。
- 很显然,在训练过程中希望映射函数在训练数据集上得到“损失”之和最小,
即min∑𝐿𝑜𝑠𝑠(𝑓(𝑥𝑖),𝑦𝑖)。
表:典型的损失函数
损失函数名称 | 损失函数定义 |
---|---|
0-1损失函数 | 𝐿𝑜𝑠𝑠(𝑦𝑖,𝑓(𝑥𝑖))= 1,𝑓(𝑥𝑖)≠𝑦𝑖 ; 𝐿𝑜𝑠𝑠(𝑦𝑖,𝑓(𝑥𝑖))= 0,𝑓(𝑥𝑖)=𝑦𝑖 |
平方损失函数 | 𝐿𝑜𝑠𝑠(𝑦𝑖,𝑓(𝑥𝑖))=(𝑦𝑖−𝑓(𝑥𝑖))2 |
绝对损失函数 | 𝐿𝑜𝑠𝑠(𝑦𝑖,𝑓(𝑥𝑖))=|𝑦𝑖−𝑓(𝑥𝑖)| |
对数损失函数/对数似然损失函数 | 𝐿𝑜𝑠𝑠(𝑦𝑖,𝑃𝑦𝑖𝑥𝑖)=−𝑙𝑜𝑔𝑃(𝑦𝑖|𝑥𝑖 ) |
4.训练数据与测试数据
经验风险(empirical risk):
训练集中数据产生的损失。经验风险越小说明学习模型对训练数据拟合程度越好。
经验风险最小化:
期望风险(expected risk):
当测试集中存在无穷多数据时产生的损失。期望风险越小,学习所得模型越好。模型具有更大的泛化能力。
(泛化能力:机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出。)
期望风险最小化:
5.”过学习(over-fitting)” 和 “欠学习(under-fitting)”
如果训练集不是很大,也就是用来给学习机器学习的样本数量比较有限的情况下,如果过于追求让经验风险小,学习复杂性太高,会导致过学习现象,也就是学习出来的模型的推广能力变差,这可以用泛化误差变大来表征。
经验风险 | 期望风险 | 效果 |
---|---|---|
小(训练集上表现好) | 小(测试集上表现好) | 泛化能力强 |
小(训练集上表现好) | 大(测试集上表现不好) | 过学习(模型过于复杂) |
大(训练集上表现不好) | 大(测试集上表现不好) | 欠学习 |
大(训练集上表现不好) | 小(测试集上表现好) | “神仙算法”或“黄粱美梦” |
结构风险最小化(structural minimization):为了防止过拟合,在经验风险上加上表示模型复杂度的正则化项(regulatizer)或惩罚项(penalty term ) :
6.监督学习的两种方法:判别模型和生成模型
判别模型:
- 直接学习判别函数𝑓(𝑋) 或者条件概率分布𝑃(𝑌|𝑋) 作为预测的模型,即判别模型。
- 判别模型关心在给定输入数据下,预测该数据的输出是什么。
- 典型判别模型包括回归模型、神经网络、支持向量机(SVM)和Ada boosting等。
生成模型:
- 生成模型从数据中学习联合概率分布𝑃(𝑋,𝑌)(通过似然概率𝑃(𝑋|𝑌) 和类概率𝑃(𝑌) 的乘积来求取) P(Y|X)=(P(X,Y))/(P(X)) 或者 P(Y|X)=(P(X|Y)×P(Y))/(P(X))
- 典型方法为贝叶斯方法、隐马尔可夫链
- 授之于鱼、不如授之于“渔”
- 联合分布概率𝑃(𝑋,𝑌)或似然概率𝑃(𝑌|𝑋)求取很困难