文章目录
一. 机器学习的概念
机器学习是什么
机器如何学习?
- 对于某个特定的任务,以大量的经验为基础;
- 对任务完成的好坏,给与一定的评测标准;
- 通过分析大量的经验数据,任务完成的更好了;
机器学习的开端
- 1952年,IBM的Arthur Samuel(被誉为“机器学习之父”)设计了一款可以学习的西洋跳棋程序
- 它能通过观察棋子的走位来构建新的模型,并用其提高自己的下棋技巧。
- Samuel 和这个程序进行多场对弈后发现,随着时间的推移,程序的棋艺变得越来越好
机器学习的定义
- 通过输入海量训练数据对模型进行训练,使模型掌握掌握数据中所蕴含的潜在规律,进而对新输入的数据进行准确的分类和预测
- 主要研究计算机系统对于特定任务的性能,逐步进行改善的算法和统计模型;
- 研究计算机怎样模拟或实现人类的学习行为,以获取新的知识和技能,重新组织已有的知识结构使之不断改善自身的性能
机器学习的过程
【海量数据 -> 提炼规律 -> 预测未来】
机器学习实例
【有无角进行分类】
二. 机器学习的全部分类
三. 机器学习的主要分类
监督学习
【有特征数据,且有特征数据对应的结果】
-
监督学习算法构建了包含输入和所需输出数据的一组数学模型;这组数据称为训练数据,由一组训练样本组成;
-
监督学习主要包含分类和回归;
-
输出为离散值时使用分类算法;输出为连续值时使用回归算法;
-
相似度学习是和分类和回归都密切相关的一类监督机器学习,目的为使用相似性函数从样本中学习,这个函数可以度量两个对象之间的相似度或关联度;在排名,推荐系统,视觉识别跟踪,人脸识别等方面有很好的应用场景;
监督学习的应用: -
预测房价
无监督学习
【只有特征数据】
- 仅包含特征数据,通过寻找数据中的内在结构来对样本点的分组或聚类
- 无监督学习不是响应反馈,而是要识别数据中的共性特征。当输入新数据时,可以通过判断新数据是否存在这种特征,来做出相应的反馈;
- 无监督学习的核心应用是统计学中的密度估计和聚类分析;
无监督学习应用:
- 谷歌新闻每天都会搜索很多新闻内容。它将这些新闻分组,组成有关联的新闻,按主题显示给用户;【搜索新闻事件,之后进行聚类,有关联的聚类在一起,按主题显示给用户】
强化学习
【通过与环境交互并获取延迟返回进而改进行为的学习过程】
四. 监督学习深入理解
监督学习三要素
- 模型:总结数据的内在规律,用数学函数描述的系统;
- 策略:选取最优模型的评价准测;(我觉得主要看测试误差)
- 算法:选取最优模型的具体方法;(如梯度下降法)
监督学习实现步骤
得到训练集 -> 包含所有模型的集合 -> 确定模型选择的准则【学习策略】-> 实现求解最优模型的算法【学习算法】-> 通过学习算法选取最优模型 -> 利用得到的最优模型,对新数据进行预测和分析
监督学习模型评估策略
-
训练集与测试集:
训练集:用来训练模型的数据集合
测试集:模型训练完成后,对模型效果进行测试的训练集合; -
损失函数:
1. 用来衡量模型预测误差
2. 定义:对于模型f,输入参数X,f(X)为预测结果,真实结果为Y;f(X)和Y之间可能有偏差,就用损失函数来衡量预测偏差的程度,记作L(f(X),Y)
3. 损失函数是系数的函数 -
损失函数分类:
1. 0-1 损失函数
2. 平方损失函数
3. 绝对损失函数
4. 对数损失函数
-
训练误差: 关于训练集的平均损失
【训练误差的大小用来判断给定的任务是否容易学习】 -
测试误差: 关于测试集的平均损失
【测试误差真实的反应了对未知数据的预测能力,又称泛化能力】 -
欠拟合: 数据太少,学习的不够
【训练误差大,测试误差也大】
举例:四条腿,两只眼,有尾巴 就是猫
解决:增加训练数据 -
过拟合: 训练数据学习的太彻底
【训练误差小,测试误差大】
举例:四条腿,两只眼,一条尾巴,叫声,能捉老鼠,喜欢吃鱼,白色就是猫
解决:正则化 -
模型的选择:
- 当模型复杂度增大时,训练误差会逐渐减小并趋近于0,测试误差会先减小后增大;
- 当模型复杂度过大时,就会发生过拟合;所以模型复杂度应适中;
-
正则化:
- 训练误差的基础上加上表示模型复杂度的正则化项,或者叫惩罚项
- 正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大
- 正则化项可以取不同的形式,特征向量的L1范数或L2范数
【如上图模型过于拟合,没加正则化就是训练误差趋近于0,而加上正则化项之后就是训练误差+正则化项趋近于0,则表示训练误差不趋近于0了,也就是不那么拟合了】
-
简单交叉验证: 选取最优模型(多个模型)
- 随机划分数据的70%作为训练集,30%作为测试集
- 训练集在不同条件下(如参数个数)训练模型,得到不同的模型
- 在测试集上评价各个模型的测试误差,选取最优模型
-
S折交叉验证: 测试模型的稳定性(1个模型)
- 将数据切分为S个互不相交,相同大小的子集,选取S-1份作为训练集,1份作为测试集;
- 重复进行训练集和测试集的选取,则有S种选则
分类和回归
分类问题与回归问题的划分: 结果为离散型数据还是连续性数
- 通俗的讲,分类就是预测数据属于哪一类别,就像上面的房屋出售预测,通过大量的数据训练模型,然后去预测某个给定的房屋能不能出售出去,属于能够出售类型和不能够出售类型
- 回归则是预测一个数值,比如给出房屋的特征,预测房价
- 当然分类问题与回归问题也可以相互转换,比如将预测房屋能否出售问题改为房屋能够出售的概率,得到的结果将不再是0(不能出售),1(能出售),而将会是一个连续性数值,例如0.5,变成了一个回归问题
分类:
- 当输出变量Y取有限个离散值时,预测问题就成了分类问题
- 分类问题包含学习和分类两个过程。学习过程:利用已知的训练数据集通过学习方法学习一个分类器;分类过程:利用习得的分类器对新的输入数据进行类别预测;
- 分类问题的学习方法:逻辑回归,K近邻,决策树,朴素贝叶斯法,支撑向量机,感知机,神经网络等;
分类器的性能评价指标:
- 准确率:对于测试集,预测正确的样本数 / 总样本数
二分类问题:
- 精确率:预测正确的正样本数量 / 预测的总样本数
- 召回率:预测正确的正样本数量 / 真正的正样本数量
回归:
- 回归模型就是表示从输入变量到输出变量之间的映射函数
- 回归问题的学习等价于函数拟合,使其能很好的拟合已知数据,并能够很好的预测未知数据
- 回归问题的分类:
1. 按照输入变量的个数:一元回归和多元回归
2. 按照模型类型:线性回归和非线性回归
回归器的性能评价指标:
- 平方损失函数:测试集上真实值与预测值之间误差的平方
【若选取平方损失函数作为损失函数,则使用最小二乘法求解】
监督学习模型求解算法
梯度下降法:
- 梯度方向:函数变化增长最快的方向(变量沿此方向变化时函数增长最快)
- 负梯度方向:函数变化减小最快的方向(变量沿此方向变化时函数减小最快)
- 损失函数是系数的函数,如果系数沿着损失函数的负梯度方向变化,那么此时损失函数减少最快,能够以最快的速度下降到最小值,但是梯度下降不一定能够找到一个全局最优解,有可能找到的是局部最优解(如果损失函数为凸函数,梯度下降算法得到的一定是全局最优解)
**总结:**梯度下降算法就是损失函数沿着负梯度的方向迭代,迭代后的θ使损失函数L(θ)的值最小,但是有可能是局部最小值。
具体求解步骤请看我另一篇博客:https://blog.csdn.net/weixin_45506408/article/details/114433800
牛顿法和拟牛顿法:
牛顿法:
- 由公式可以看出,梯度下降法只考虑了一阶导数,而牛顿法考虑了二阶导数,因此收敛速度更快
拟牛顿法:
- 牛顿法需要求解目标函数的海塞矩阵的逆矩阵,计算比较复杂
- 拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵,从而大大简化了计算过程