zoukankan      html  css  js  c++  java
  • 机器学习基础

    1、机器学习的开端

    1952年,IBM的Arthur Samuel(被誉为“机器学习之父”)设计了一款可以学习的西洋跳棋程序

    他能通过观察棋子的走位来构建新的模型,并用其提高自己的下棋技巧

    Samuel和这个程序进行多场对弈后发现,随着时间的推移,程序的棋艺变得越来越好

    2、机器学习的定义

    机器学习(Machine Learning,ML)主要研究计算机系统对于特定任务的性能,逐步进行改善的算法和统计模型

    通过输入海量训练数据对模型进行训练,使模型掌握数据所蕴含的潜在规律,进而对新输入的数据进行准确的分类或预测

    是一门多领域交叉学科,设计概率论、统计学、逼近论、凸优化、算法复杂度理论等多门学科。专门研究计算机怎么样模拟或实现人类的学习行为,1️⃣获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能

    3、机器学习的过程

    4、机器学习主要分类

    有监督学习:提供数据并提供数据对应结果的机器学习过程

    无监督学习:提供数据并且不提供数据对应结果的机器学习过程

    强化学习:通过与环境交互并获取延迟返回进而改进行为的学习过程

    无监督学习

    无监督学习(Unsupervised Learning)算法采用一组仅包含输入的数据,通过寻找数据中的内在结构来进行样本点的分组或聚类

    算法从没有被标记或分类的测试数据中学习

    无监督学习算法不是影响反馈,而是识别数据中的共性特征;对于一个新数据,可以通过判断其中是否存在这种特征,来做出相应的反馈

    无监督学习的核心应用是统计学中的密度估计和聚类分析

    无监督学习应用

    无监督聚类应用的一个列子就是谷歌新闻中

    谷歌新闻每天都会收集很多新闻内容。它将这些新闻分组,组成有关联的新闻,然后按主题显示给用户

    谷歌新闻做的就是搜索新闻事件,自动把他们聚类到一起;这些新闻事件圈是同一主题的

    监督学习

    监督学习(Supervised Learning)算法构建了包含输入和所需输出的一组数据的数学模型。这些数据称为训练数据,由一组训练样本组成

    监督学习主要包含分类回归

    当输出被限制为有限的一组值(离散数据值)时使用分类算法;当输出可以具有范围内的任何数据(连续数值)时使用回归算法

    相似度学习是和回归和分类都密切相关的一类监督机器学习,他的目标是使用相似性函数从样本中学习,这个函数可以度量两个对象之间的相似度或关联度。他在排名、推荐系统、视觉识别跟踪、人脸识别等方面有很好的应用场景

    5、监督学习深入介绍

    监督学习三要素

    模型(Model):总结数据的内在规律,用数学函数描述的系统

    策略(startegy):选取最优模型的评价准则

    算法(Algorithm):选取最优模型的具体方法

    监督学习实现步骤

    得到一个有限的训练数据集

    确定包含所有学习模型的集合

    确定模型选择的准则,也就是学习策略

    实现求解最优模型的算法,也就是学习算法

    通过学习算法选择最优模型

    利用得到的最优模型,对新数据进行预测或分析

    6、模型评估策略

    • 模型评估
      • 训练集和测试集
      • 损失函数和经验风险
      • 训练误差和测试误差
    • 模型选择
      • 过拟合和欠拟合
      • 正则化和交叉验证

    训练集和测试集

    我们将数据输入到模型中训练出了对应模型,但是模型的效果好不好?我们需要对模型的好坏进行评估

    我们将用来训练模型的数据称为训练集,将用来测试模型好坏的集合称为测试集

    训练集:输入到模型中对模型进行训练的数据集合

    测试集:模型训练完成后测试训练效果的数据集合

    损失函数

    损失函数用来衡量模型预测误差的大小

    定义:选取模型f为决策函数,对于给定的输入参数X,f(X)为预测结果,Y为真实结果;f(X)和Y之间可能会有偏差,我们就用一个损失函数(loss function)来度量预测偏差的程度,记作L(Y,f(X))

    损失函数是系数的函数

    损失函数值越小,模型就越好

    经验风险

    训练误差和测试误差

    过拟合和欠拟合

    欠拟合

    模型没有很好的扑捉到数据特征,特征集过小,导致模型补鞥呢很好滴拟合数据,称之为欠拟合(under-fitting)

    欠拟合的本质是对数据的特征“学习”得不够

    例如:想分辨一只猫,只给出了四条腿、两只眼睛、有尾巴这三个特征,那么由此训练出来的模型根本无法分辨猫

    过拟合

    把训练数据学习的太彻底,以至于把噪声数据的特征也学习到了,特征集过大,这样就会导致在后期测试的时候不能够很好地识别数据,即不能正确的分类,模型泛化能力太差,称之为过拟合(over-fitting)

    例如,想分辨一只猫,给出了四条腿、两只眼睛、一条有尾巴、叫声、颜色,能够捕捉老鼠、喜欢吃鱼、。。。,然后签好所有的训练数据的猫都是白色,难么这个白色是一个噪声数据,会干扰判断,结果模型吧颜色是白色也学习到了,而白色是局部样本的特征,不是全局特征,就造成了输入一个黑猫的数据,判断出不是猫

    模型的选择

    当模型复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值之后再增大

    当模型复杂度过大时,就会发生过拟合;所以模型复杂度应适当

    正则化

    结构风险最小化(Structural Risk Minimization,SRM)

    是在ERM基础上,为了防止过拟合而提出来的策略

    在经验风险上加上表示模型复杂度的正则化项(regularizer),或者叫做惩罚项

    正则化项一般是模型复杂度的单调递增函数,即模型越复杂,正则化值越大

    结构风险最小化的典型实现是正则化(regularization)

    奥卡姆剃刀

    奥卡姆剃刀(Occam `srazor)原理:如无必要,勿增实体

    正则化符合奥卡姆剃刀原理。它的思想是:在所有可能选择的模型中,我们应该选择能够很好地解释已知数据并且十分简单的模型

    如果简单的模型已经够用,我们不应该一味地追求更小的训练误差,而吧模型变得越来越复杂

    交叉验证

    • 数据集划分
      • 如果样本数据充足,一种简单方法是随机将数据集切成三部门:训练集(training set)验证集(validation set)测试集(test set)
      • 训练集用于训练模型,验证集用于模型选择,测试集用于学习方法评估
    • 数据不充足时,可以重复地利用数据--交叉验证(cross validation)
      • 简单交叉验证
        • 数据随机分为两部分,如70%作为训练集,剩下30%作为测试集
        • 训练集在不同的条件下(如参数个数)训练模型,得到不同的模型
        • 在测试集上评价各个模型的测试误差,选出最优模型
      • S折交叉验证
        • 将数据随机切分为S哥互不相交、相同大小的子集;S-1个做训练集,剩下一个做测试集
        • 重复进行训练集、测试集的选取、有S种可能的选择
      • 留一交叉验证

    分类和回归

    监督学习问题主要可以划分为两类,即分类问题回归问题
    - 分类问题预测数据属于那一类别。-- 离散
    - 回归问题根据数据预测一个数值。-- 连续

    通俗地讲,分类问题就是预测数据属于哪一种类型,就像上面的房屋出售预测,通过大量数据训练模型,然后去预测某个给定房屋能不能出售出去,属于能够出售类型还是不能出售类型

    回归问题就是预测一个数值,比如给出房屋一些特征,预测房价

    如果上面的房屋出售的问题改为预测房屋出售的概率,得到的结果将不是可以抽出(1)和不能售出(0),将会是一个连续的数值,例如0.5,这就变成一个回归问题

    分类问题

    精确率和召回率

    评价分类器性能的指标一般是分类准确率(Accuracy),它定义为分类器对测试集正确分类的样本数与总样本数之比

    对于二类分类问题,常用的评价指标是精确率(Precision)召回率(Recall)

    通常以关注的类为正类,其它为负类,按照分类器在测试集上预测的正确与否,会有四种情况出现,他们的总数分别记作:

    • TP(true positive):将正类预测为正类的数目
    • FN(false negative):将正类预测为负类的数目
    • FP(false positive):将负类预测为正类的数目
    • TN(true negative):将负类预测为负类的数目

    回归问题

    回归问题用于预测输入变量和输出变量之间的关系

    回归模型就是表示从输入变量到输出变量之间映射的函数

    回归问题的学习等价于函数拟合:选择一条函数曲线,使其很好地拟合已知数据,并且能够很好地预测未知数据

    回归问题的分类

    • 按照输入变量个数:一元回归和多元回归
    • 按照模型类型:线性回归和非线性回归

    回归学习的损失函数--平方损失函数

    如果选取平方损失函数作为损失函数,回归问题可以用著名的最小二乘法(Least squares)来求解

    模型求解算法(学习算法)

    • 梯度下降算法
    • 牛顿法和拟牛顿法

    梯度下降算法

    梯度下降(gradient descent)是一种常用的一阶优化方法,是求解无约束优化问题最简单、最经典的方法之一

    梯度方向:函数变化增长最快的方向(变量沿此方向变化时函数增长最快)

    负梯度方向:函数变化减少最快的方向(变量沿此方向变化时函数减少最快)

    损失函数是系数的函数,那么如果系统沿着损失函数的负梯度方向变化,此时损失函数减少最快,能够以最快速递下降到极小值

    牛顿法和拟牛顿法

  • 相关阅读:
    JavaScript中的闭包
    SQL 备忘
    SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
    unable to start debugging on the web server iis does not list an application that matches the launched url
    Freebsd 编译内核
    Freebsd 6.2中关于无线网络的设定
    【Oracle】ORA01219
    【Linux】Windows到Linux的文件复制
    【Web】jar命令行生成jar包
    【Linux】CIFS挂载Windows共享
  • 原文地址:https://www.cnblogs.com/hyunbar/p/12867243.html
Copyright © 2011-2022 走看看