传统机器学习算法基础(一)

  • 一、机器学习三要素
    • (一)模型:
      • 1. 数学描述
      • 2. 假设空间
    • (二)策略:
      • 1. 量化误差
      • 2. 风险函数
      • 3.模型迭代要求
      • 4. 策略阶段要点
    • (三)优化算法:
      • 1. 普通参数
      • 2. 超参数
  • 二、深度学习改变了什么
    • 1、大规模数据性能提升可观
    • 2、隐式特征学习
    • -- AE

本文是对李航博士《机器学习方法》,邱锡鹏博士的《神经网络与深度学习》,吴恩达机器学习课程,小象学院邹博机器学习视频和网上一些资料的汇总笔记。机器学习博大精深难免有错漏,欢迎一起讨论学习。

一、机器学习三要素

一个机器学习方法由三要素组成:模型,策略和算法。通俗描述就是先圈定问题类型,再描述什么样的结果是好的,最后是如何通过计算机程序找到最好的结果。对每个模型的学习都要带着这三个问题。

(一)模型:

1. 数学描述

真实世界中的对象都可以从很多维度进行观测,比如房子可以从房价信息,面积,户型,位置,总价等等来描述。每个维度之间是有相关性的,数学上可以用一个未知的联合概率密度函数来描述,联合概率密度就是几件事同时发生的概率。而我们感兴趣的元素可能只是其中的一个,把感兴趣的元素用y表示,其他元素用x的向量来描述:
则联合概率密度函数为 f(x,y)
由概率的定义可得,所有可能事件加起来就是必然事件, ∑ f(x,y) = 1
根据x对y进行预测的过程,可以认为是求在x发生的情况下,y的条件概率,即为p(y|x) = p(x,y) /p(x) 【附1:贝叶斯系列之:贝叶斯概率,贝叶斯模型,贝叶斯学派】

2. 假设空间

由于条件概率的细节是完全未知的,模型的第一步是要界定出所有的备选可能,再通过样本数据在空间中选择最合适的那一个。所有可能组成的集合就被称为假设空间。
假设空间只有两种:

  • 线性模型
    y= w1x1+w2x2+…+wixi + b的形式.。
  • 非线性模型
    非线性的类型很多,以Θ表示某种非线性计算,比如求个指数,求个平方等等。

    • 最简单的形式:为y=wΘ(x)+b,(同线性模型一样,其中x可能是多个维度)。
    • 更复杂的形式:y = Θ(Θ(Θ(Θ(Θ(wΘ(x)+b)+b)+b)+b)+b)+b)。。。。。。这种结构看起来很复杂,但是用神经网络描述却非常合适。每一层括号的嵌套,都通过一层网络来实现,这样对每一层网络来说,要处理的信息变成了最简单的形式。

(二)策略:

策略阶段有两个问题,1是要如何将真实世界的样本描述在计算机中,也就是量化。2是如何把数据充分利用起来,在数据越多的情况下,让模型越准。

1. 量化误差

假设空间的备选方案太多了,一般先选一个作为开始模型(随机值或者参考先验知识)。策略阶段的任务是要量化每个模型的预测结果与真是值之间的差异,一般称每个样本的误差为损失函数(字母L表示)。

  • L的常见类型包括:
    – 01损失:计算对的为0,计算错的为1.
    – 平方损失:(Y-f(x))2 【附2:平方损失合理性证明】
    – 绝对值损失:|Y-f(x)| (为了方便求导计算时可以去掉绝对值符号,乘以一个带符号的项)

2. 风险函数

量化了单个误差之后,把样本的整体损失加在一起称为风险函数(字母R表示),假设每个样本的发生概率是p,总样本个数为N,则R = (Σp(xi)*L(xi))/N。
理想的策略是在模型完美匹配的时候,风险函数输出一个好结果,比如0,模型错误率很高的时候,风险函数输出一个坏结果,比如无穷大。

3.模型迭代要求

很容易想到的是,根据风险函数结果来调整模型。在数学上需要风险函数支持对每个参数的偏导。

4. 策略阶段要点

  1. 样本概率未知:
    样本的个数很多,几百万量级都是小意思。而每个样本的发生概率都是未知的,风险函数的计算方式却是需要这样的:R = Σp(xi)*L(xi),其中的p就是每个样本的发生概率。这个公式的直观理解就是经常发生的样本要准一点,不经常发生的有点错可以接受。实践中一般是直接把样本的损失函数平均,认为样本发生的概率就是实际发生的概率,当样本的量够大,且随机性可以保证时,确实可以这样,但是样本如果不是随机的,且数据量不够时要关注不同样本在期望风险中的权重。
  2. 过拟合
    如果以期望风险最小为唯一目标,有时候会出现一种明明在训练数据上误差很小,在其他数据集上却效果很差的情况,这就叫过拟合。过拟合是因为选用了太复杂的模型。
    如上图所示,在数学上给定九个点,一定有一个八阶函数可以完美经过这几个点,如图兰色的线就拟合的很好,期望风险甚至是0,但是肯定泛化性能很差。
    以N元模型为例,复杂的模型,往往系数的抖动幅度更大,可以考虑把系数作为损失函数的一部分,就可以同时优化模型和误差了。这种做法称为结构风险最小化(SRM structural risk minimization),而之前不带系数的方式称为经验风险最小化(empirical risk minimization)。结构风险最小化也被称作正则化(regularizer),模型复杂度在损失函数中的部分往往也被称为正则化项(一般用J(f)表达)。
    则损失函数最终形式为:R =(Σp(xi)*L(xi))/N + J(f) 。 【附3:结构风险最小、经验风险最小和极大似然估计、最大后验概率之间的关系】

(三)优化算法:

有了目标函数之后,只剩下最后一个问题了,如何得到让期望风险最小的参数,论文中经常会用min max单词来描述这一过程。
需要注意的是,机器学习中,不管是什么类型的损失函数,都转化成求最小值(如果损失函数越大越准确,可以先乘以一个负号)。
参数分为普通参数和超参数两种。

1. 普通参数

就是函数中的各种系数和常数项等,这些是通过样本一步步优化调整的。最常见的方式是梯度下降法:首先随机初始化一些参数,根据损失函数对每个参数的偏导,来迭代地优化参数。
梯度下降的优化方式有很多:比如提前停止,随机梯度下降(每个给样本都更新模型),小批量梯度下降(小部分样本计算完后更新一次模型)。

2. 超参数

是用来描述结构的,比如随机森林的抽样率,k-means的k是几,每次迭代的学习率等等。也就是调参侠的参,这些超参数的选择有很多trick。随着机器学习的发展,会有很多成熟的模型,实践性能差异的主要原因可能就是不同场景下超参数不一样。这部分的参数一般是手动预设的,框架中也有一些自适应的方式,但是总的来说都是通过试出来的。

二、深度学习改变了什么

以前也有神经网络,也有各种机器学习算法,为什么到了深度学习时代突然效果就变好了,可以大规模应用到各种领域上了呢。也许有人会说有了大规模的数据和更快的计算机,确实有一些原因,但是为什么不是所有算法的大爆发,只是深度学习一枝独秀呢?主要是有这两个优势:

1、大规模数据性能提升可观


传统机器学习数据量到一定程度的提升有限,比如svm,非支持向量的数据再多也没用,深度学习数据越多一般效果越好。

2、隐式特征学习

  1. 传统特征学习 图像识别等计算,一般是要预先设计特征,比如扫二维码,要先找三个黑色框来定位,再开始识别。很多工业中的特征需要靠专家几十年的经验,每个场景特征都不同,需要占用大量的时间,这是有多少人工就有多少智能的时代。常用的有以下几种方式:
  • 特征选择
    – 每次选取信息量最大的特征,或删除信息量最小的特征。.或留下对模型正确率最有帮助的特征。【附4 信息增益 熵家族】
  • 特征抽取
    – 主成分分析(PCA):【附5:方差、协方差与相关系数】【附6:矩阵特征值分解】
    PCA分析的作用是将数据降维,同时尽量保持最大的方差。

    降维的操作可以在空间中理解成投影,假设所有样本空间投影在模为1的投影向量w,则每个样本点投影后可以表示成wtx(n) 。投影后每个样本的总方差为
    1N∑\frac 1 N\sumN1​∑(wtx(n) - wtx)2
    =wtΣ\varSigmaΣw
    同时w需要满足模为一,可以用拉格朗是法转化为多条件优化问题,
    等于求max wtΣ\varSigmaΣw + λ\lambdaλ(1-wtw) ,这是一个凸函数,求导可得
    Σ\varSigmaΣw = λ\lambdaλw
    其中Σ\varSigmaΣ是原始样本的协方差。

– AE

机器学习(一)模型三要素相关推荐

  1. qbytearray初始化全0_【小白学PyTorch】4.构建模型三要素与权重初始化

    文章目录: 1 模型三要素 2 参数初始化 3 完整运行代码 4 尺寸计算与参数计算 这篇文章内容不多,比较基础,里面的代码块可以复制到本地进行实践,以加深理解. 喜欢的话,可以给公众号加一个星标,点 ...

  2. 【小白学PyTorch】4.构建模型三要素与权重初始化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 文章目录: 1 模型三要素 2 参数初始化 3 完整运行代码 4 ...

  3. 岗位胜任力模型三要素详解

    岗位胜任力模型的三要素,包括知识技能能力.态度价值观和个性特质. 一.知识技能能力 知识技能能力是岗位胜任力模型的核心要素之一,它是指员工在工作中所需要掌握的专业知识.技能和能力.在HR工作中,员工需 ...

  4. 逻辑模型三要素-完整性约束

    完全性约束是指对数据的一组完整性规则(约束条件)的集合.逻辑逻辑应该反映和和规定本数据模型必须遵守的基本的通用的完整性约束条件.例如,在关系模型中,任何关系都必须满足实体完整性和参照完整性两个条件.此 ...

  5. 逻辑模型三要素-数据操作

    数据操作是指对数据库中各种对象的实例或取值所允许执行操作的集合,其中包括操作方法及有关规则,它是对数据库动态特性的描述.

  6. 逻辑模型三要素-数据结构

    数据结构是计算机数据组织方式和数据之间联系的框架描述,而数据文件的数据就按照这种框架描述进行组织. 数据结构是所描述对象类型的集合,是对系统的静态描述.

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

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

  8. ML 03、机器学习的三要素

    FROM: http://www.cnblogs.com/ronny/p/4062792.html 机器学习算法原理.实现与实践--机器学习的三要素 1 模型 在监督学习中,模型就是所要学习的条件概率 ...

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

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

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

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

最新文章

  1. DevExpress ChartControl大数据加载时有哪些性能优化方法
  2. 面试精讲之面试考点及大厂真题 - 分布式专栏 11 Redis热点key大Value解决方案
  3. RMAN catalog 的创建和使用
  4. 勒索病毒运营团伙的运作流程
  5. 使用tornado让你的请求异步非阻塞
  6. Layui数据表格动态禁用checkbox
  7. linux xps文件,xps文件扩展名,xps文件怎么打开?
  8. 细粒度分类:Hierarchical Bilinear Pooling(HBP),分级双线性池化(二)
  9. STM32学习之普通定时器是否能定时1us?
  10. 徕卡 sl android app,相机入魔 徕卡SL DPReview测评结论
  11. [BZOJ3772]精神污染(dfs序+主席树)
  12. 乐行天下激光雷达SDK介绍
  13. 控制用计算机应具有特点,国开(中央电大)专科《可编程控制器应用》网上形考、机考试题及答案...
  14. NY8A051F 6 I/O 8-bit EPROM-Based MCU 台湾九齐单片机
  15. fat32转ntfs解决大于4G文件不能保存问题
  16. 福利来了 - 分享保时捷 Porsche EDI 项目 (一)
  17. java中解析计算公式
  18. BL200EC如何与欧姆龙相连
  19. 友情链接交易平台网站源码
  20. Java获取时间戳工具类Utils

热门文章

  1. 30分钟读懂Linux五大模块内核源码,内核整体架构设计
  2. 正则表达式经典教程-转
  3. 田忌赛马(贪心算法)
  4. (转)《蜗居》带给校园男女多少悲喜
  5. java update是什么_javaupdate是什么_tbupdate
  6. 【转】Windows Server 2003删除IE
  7. 解决使用shutil.rmtree无法删除文件夹的方案
  8. 如何在 Excel 中使用 SUMIF 函数?
  9. jquery fadein css同时用,Fadein,fadeout事件一起使用jquery
  10. 学习 C++,关键是要理解概念,而不应过于深究语言的技术细节