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)是一种常用的一阶优化方法,是求解无约束优化问题最简单、最经典的方法之一

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

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

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

    牛顿法和拟牛顿法

  • 相关阅读:
    响应式的WEB设计
    WPF的抽奖程序
    使用Visual Studio 利用WinGDB编译和远程调试嵌入式Linux的程序
    Sqler 工具帮你解决(更新部分监控)
    YSlow相关规则的调优工具和方法
    wcf基础笔记
    HTTP协议之状态码详解
    网站首页图片滚动显示
    CodeLove初版发布
    HDFS学习– Namenode and Datanode
  • 原文地址:https://www.cnblogs.com/hyunbar/p/12867243.html
Copyright © 2011-2022 走看看