FROM: http://www.cnblogs.com/ronny/p/4062792.html

机器学习算法原理、实现与实践——机器学习的三要素

1 模型

在监督学习中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是这些线性函数构成的函数的集合。

假设空间用F表示。假设空间可以定义为决策函数的集合

F={f|Y=f(X)}

其中,X和Y是定义在输入空间X和输出空间Y上的变量。这时F通常是由一个参数向量决定的函数族

F={f|Y=fθ(X),θ∈Rn}

参数向量θ取值于n维欧氏空间Rn,称为参数空间(parameter space)。

假设空间也可以定义为条件概率的集合

F={P|P(Y|X)}

其中,X和Y是定义在输入空间X和输出空间Y上的变量。这时F通常是由一个参数向量决定的条件概率分布族

F={P|Pθ(Y|X),θ∈Rn}

称由决策函数表示的模型为非概率模型,由条件概率表示的模型为概率模型。

2 策略

有了模型的假设空间,机器学习接着要考虑的是按照什么样的准则学习或选择最优的模型。 
首先引入损失函数与风险函数的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。

2.1 损失函数与风险函数

对于给定的输入X和假设空间F中选择的决策函数模型f,由f(X)给出相应的输入Y,这个输出的预没值f(X)与真实值Y可能一致,也可能不一致,用一个损失函数或代价函数来度量预测的错误程度。损失函数是f(x)和Y的非负实值函数,记作L(Y,f(X))

几种常用的损失函数:

1) 0-1损失函数(0-1 loss function)

L(Y,f(X))={1,0,Y≠f(X)Y=f(X)

2) 平方损失函数(quadratic loss function)

L(Y,f(X))=(Y–f(X))2

3)绝对损失函数(absolute loss function)

L(Y,f(X))=|Y−f(X)|

4) 对数损失函数(logarithmic loss function)或对数似然损失函数

L(Y,P(Y|X))=–logP(Y|X)

损失函数值越小,模型就越好。由于模型的输入、输出(X,Y)是随机变量,遵循联合分布P(X,Y),所以损失函数的期望是

Rexp(f)=EP[L(Y,f(X))]=∫X×YL(y,f(x))P(x,y)dxdy

这是理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)。

学习的目标就是选择期望风险最小的模型。由于联合分布P(X,Y)是所有样本所遵循的统计规律,它是未知的,所以Rexp(f)不能直接计算。实际上如果知道了联合分布,那么可以直接计算出P(Y|X)=∫XP(x,y)dx,也就不需要学习了。 
所以用上面那种方式定义风险函数是不行的,那样的话监督学习变成了一个病态问题。

对于给定的训练数据集

T=(x1,y1),(x2,y2),…,(xN,yN)

模型f(X)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss),记作Remp:

Remp(f)=1N∑i=1NL(yi,f(xi))

期望风险Rexp(f)是模型关于联合分布的期望损失,经验风险Remp(f)是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险Remp(f)趋向于期望风险Rexp(f)

所以,一个很自然的想法是用经验风险估计期望风险。但是,由于现实中训练样本数目很有限,所以用经验风险估计期望风险常常不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。

2.2 经验风险最小化与结构风险最小化

在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数式就可以确定。经验风险最小化的策略认为,经验风险最小的模型就是最优的模型。根据这一策略,按照经验风险最小化求最佳模型就是求解最优化问题:

minf∈F1N∑i=1NL(yi,f(xi))

其中F是假设空间。

当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中广泛采用。比如极大似然估计就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。 
但是当样本容量很小时,经验风险最小化学习效果就未必很好,会产生“过拟合(over-fitting)”现象。

结构风险最小化(structural risk minimization SRM)是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化。结构风险在经验风险上加上表示模型复杂度的正则化项或罚项。在假设空间,损失函数以及训练样本集确定的情况下,结构风险的定义是

Rsrm(f)=1N∑i=1NL(yi,f(xi))+λJ(f)

其中J(f)为模型的复杂度,是定义在假设空间F上的泛函。模型f越复杂,复杂度J(f)就越大;反之,模型f越简单,复杂度J(f)就越小。也就是说复杂度表示了对复杂模型的惩罚。λ≥0是系数,用以权衡经验风险和模型的复杂度。结构风险小需要经验风险与模型复杂度同时小。结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。 
比如,贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation,MAP)就是结构风险最小化的例子。当模型是条件概率分布、损失函数就是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。

结构风险最小化的策略认为结构风险最小的模型是最优的模型。所以求最优化模型时,就是求解最优化问题:

minf∈F1NL(yi,f(xi))+λJ(f)

这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题。这时经验或结构风险函数是最优化的目标函数。

3 算法

从上面可以看出,在确定寻找最优模型的策略后

机器学习的问题归结为最优化的问题。机器学习讨论的算法问题就成为了求解最优化模型解的算法。而且往往最优化模型没有的解析解,需要用数值计算的方法求解,我们要确保找到全局最优解,以及使求解的过程非常高效。

ML 03、机器学习的三要素相关推荐

  1. 机器学习三要素之数据、模型、算法

    参考:https://gitbook.cn/gitchat/column/5ad70dea9a722231b25ddbf8/topic/5b1086eccad6fe44db4c1268 1. 机器学习 ...

  2. ML:MLOps系列讲解之《基于ML的软件的三个层次之03 Code: Deployment Pipelines》解读

    ML:MLOps系列讲解之<基于ML的软件的三个层次之03 Code: Deployment Pipelines>解读 目录 <基于ML的软件的三个层次之03 Code: Deplo ...

  3. 机器学习入门 —— 超级详细的KNN算法学习笔记、KNN算法的三要素、KNN算法的优缺点

    文章目录 KNN(K nearest neighbors) K值的选择和影响 k取值偏小 k取值偏大 样本点距离的计算方式 闵可夫斯基距离 曼哈顿距离 欧几里得距离 切比雪夫距离 余弦距离 决策函数的 ...

  4. 机器学习 · 总览篇 VI 三要素之策略-损失函数

    上一篇文章介绍了机器学习三要素中的第一个要素-模型,模型部分限制了预测模型函数的假设空间.本文将要介绍的第二个要素-策略,策略部分就是要定量判断不同参数下模型的优劣,为第三步求解最优模型做基础.由于策 ...

  5. 斯坦福大学机器学习第三课“多变量线性回归“

    斯坦福大学机器学习第三课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第四课"多变量线性回归 ...

  6. 周志华:“数据、算法、算力”,人工智能三要素在未来还要加上“知识”

    点击蓝字  关注我们 作者丨李雨晨 来源丨AI科评论 2020 年 8 月 7 日,全球人工智能和机器人峰会(CCF-GAIR 2020)正式开幕.CCF-GAIR 2020 峰会由中国计算机学会(C ...

  7. 周志华:“数据、算法、算力”人工智能三要素,在未来还要加上“知识”

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 来源:AI科技评论 作者:李雨晨 2020 年 8 月 7 日,全球人工智能和机器人峰会(CC ...

  8. 周志华:“数据、算法、算力”人工智能三要素,在未来要加上“知识”| CCF-GAIR 2020...

    来源:雷锋网 作者 | 李雨晨 如何将"机器学习"与"逻辑推理"相结合,是人工智能领域的"圣杯问题" " 编者按:2020 年 8 ...

  9. ML:MLOps系列讲解之《基于ML的软件的三个层次之02 Model: Machine Learning Pipelines——2.6 ML Model serialization forma》解读

    ML:MLOps系列讲解之<基于ML的软件的三个层次之02 Model: Machine Learning Pipelines--2.6 ML Model serialization forma ...

最新文章

  1. 梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017
  2. 如何使用命令行中的“message”和“description”进行更改? [重复]
  3. python画曲线图例-如何使用python画曲线图
  4. 解决fatal: 不是一个 git 仓库(或者任何父目录)的方法
  5. 用JPA在测试的时候无法创建EntityManager Factory无法创建的几个可能因素!
  6. Python3.6学习笔记(四)
  7. Sql字符串函数(1)
  8. C/C++:Windows编程—调用DLL程序的2种方法
  9. 【备用】SQL SERVER存储过程执行速度慢的问题
  10. vue源码分析系列之响应式数据(三)
  11. 手动杀毒,SOLA病毒(也称之为worm.script.bat.Agent、Trojan.Win32.Sola病毒)
  12. 组成原理之全加器实验
  13. 魔法师元素平衡(C++解法)
  14. 从零开始(温故而知新)
  15. 互联网电影上线,手机电影院移动端就可以看电影
  16. 第一集 斗罗世界 第八章
  17. 完全免费快速搭建个人www服务器
  18. 教你使用html+js手绘一个时钟
  19. win10无法访问xp计算机,XP系统访问Win10打印机被拒绝的解决方法
  20. SQL 视图(Views)

热门文章

  1. 使用Git制作和管理Patch
  2. mysql的acid_什么是数据库ACID?
  3. centos vscode安装到指定目录_win10 WSL构建vscode+centos开发环境
  4. leetcode算法题--Perfect Squares
  5. java 二分查找_计算机入门必备算法——二分查找法
  6. 控制系统设计_PLC自动化控制系统设计基本原则
  7. CAP原理和BASE思想
  8. SpringBoot ElasticSearch 全文搜索
  9. matlab_exercise(4)----第一题
  10. ES5规范之Object增强