导图社区 机器学习简介
机器学习入门相关知识,机器学习的基本类型、基本要素,以及一些基本概念(过拟合、欠拟合、泛化、正则化、超参数等),机器学习训练、验证和测试的基本方法等。
编辑于2023-02-11 20:54:44 北京市机器学习简介
什么是机器学习
本质
一个计算机程序通过经验E的改进,在任务T上由性能度量P所衡量的性能有所提高
计算机程序从经验中“学习”以提高程序某个或某些方面的“性能”,外在表现为让程序“学习”到了某种经验或能力,如让程序学到识别花卉和动物的能力。
一个机器学习系统的基本结构流程
机器学习的过程
收集数据
机器学习模型针对特定问题有效,根据具体问题来确定所需数据
数据来源应该专业且广泛,如多个相关的知名专业网站
数据预处理
删除不合格数据
规范数据结构
设定数据属性统一的范围
避免输入数据分散度过高
其他操作(可能)
数据样本标注
抽取特征向量
模型选择
不同模型适用于不同任务
模型
线性回归
神经网络
支持向量机
任务
图像识别
神经网络(卷积神经网络)
模型学习/训练
训练、验证和测试
模型不合适,则重新进行模型选择
模型应用
常见领域
图像分类和识别
计算机视觉
语音识别
自然语言处理
推荐系统
网络搜索引擎
无人系统领域
智能机器人
无人驾驶汽车
无人机自主系统
通信与信息系统领域
信号分类和识别
通信信道建模
其他领域
生命科学和医学
机械工程
金融和保险
物流航运
机器学习的分类
基本分类
根据数据可用信息进行分类
监督学习
数据集
样本 数据集的每个成员
样本元
特征向量
表示这一样本的特征,如一个邮件中包含对应词汇次数的向量
并不一定是一维向量,还有可能是矩阵或张量,如图像或视频的特征; 特征向量的结构选取合适与否会影响后续模型训练的成本和效果
标注Label
体现了监督学习的特点,告诉模型特征向量x代表什么,如是否为垃圾邮件
任务
本质是获得数学模型的过程
设计学习算法,利用带有标注y的数据集,通过学习过程得到一个数学模型
数学模型可能是显示的数学函数,概率公式,树形的决策结构等
无监督学习
数据集
特点
没有标注y,即没有统一的很强的学习目标
典型类型
聚类Clustering
发现聚集现象->分类->总结同质化性质
如分析人口调查数据
降维与可视化
主分量分析
低维向量逼近高维向量,代替作为模型输入
可视化
降维为二维或三维数据,用于图形显示数据集
密度估计
估计样本的概率密度分布函数p(x)
隐变量因子分析
半监督学习
特点
只有少量样本有标注y,其他样本没有标注
过程
首先进行无监督学习,进行聚类分类
然后将分类结果作为标注y,训练得到数学模型
强化学习
过程
对学习结果进行评价分值奖励,引导模型向最优策略进化,使模型的长期收益最大化
举例
战胜人类顶尖棋手的AlphaGo
注
一个复杂的系统可能包括多类成分,如深度强化学习包括监督学习中的深度神经网络
根据模型类型进行分类
参数模型
w表示模型参数/待定系数
参数w确定,模型就确定了
举例
线性回归模型
逻辑回归模型
神经网络模型
深度神经网络DNN通过多层复合函数表示模型,可能具有超过百万数量的参数
非参数模型
不显式地依赖固定的参数集
举例
K近邻算法
决策树
根据模型的确定性进行分类
确定性模型
根据新输入特征向量x计算得到确定的y
概率模型
两类常用表示
x作为条件时y的条件概率
x和y的联合概率
举例
病情诊断给出生病的概率
根据样本处理方式进行分类
批处理方式
将完整样本集一次性使用进行训练的实现方式
适用范围
小规模问题,如小规模样本的线性回归模型
增量式方式
每次只取出一个样本或一小批量样本进行训练,对完整样本集的使用是按序列方式或递推方式进行的
适用范围
小规模问题,大规模问题均可
在线学习
边采样数据边学习,是一种增量式学习方式
注
一个具体的机器学习算法可以是上述类型的组合
参数模型+监督学习
大多数神经网络分类系统
输出概率
线性回归
输出确定
无监督学习
K-Means聚类
输出确定
基于混合高斯模型的软聚类
输出概率
监督学习及其功能分类
分类
特点
需处理的对象可分为数目有限的类型
样本标注值y为有限的离散值
识别或检测问题
二分类问题
个人计算机的人脸识别
主人和非主人
多分类问题
家庭智能锁的指纹识别
多个家庭成员和非家庭成员
回归
特点
对象/模型输出为连续值
支持向量机SVM和神经网络对分类和回归均适用
排序
特点
模型输出是一个按照与输入词相关程度排序的列表
应用
信息检索
构建机器学习系统
机器学习的基本元素
数据集
特定问题
机器学习模型针对特定问题有效,根据具体问题来确定所需数据
收集数据
从已经发生的该类问题中收集大量原始数据
预处理和标注
获得适合机器学习的样本,特征文字描述->数字特征向量x,标注y等
学习和测试
训练集Dtrain
训练学习模型
测试集Dtest
测试所学模型的性能
数据集来源
标准数据集
有关组织或研究者收集并发布,语音、文字、图像等通用数据集多种多样
MNIST数据集
美国国家标准与技术研究所发布的手写数字识别数据集
60000幅训练集图像及其标注,10000幅测试集图像及其标注
CIFAR-10
中规模彩色图像数据集
50000幅为训练集,10000幅为测试集
用途
小数据集
简单经典学习算法实验
大规模数据集
训练深度网络
实际采集数据
实际采集数据,量化特征+标注,建立数据集{(xi,yi)}
目标函数
作用
刻画系统对目标的到达程度
类型
损失函数/风险函数
评价与目标系统的差距
追求目标函数最小化
收益函数
评价系统的收益
追求目标函数最大化
监督学习的损失函数
样本损失函数
总体损失函数
样本损失函数的期望值,已知概率密度函数
最小化总体损失函数得到最优参数
经验损失函数
样本集的平均损失,未知概率密度函数
最小化经验损失函数得到逼近的最优参数
泛化
解释
对于训练集中没有的新样本,模型的推广能力
泛化损失
未知样本的期望损失,可估计泛化损失界/
可用测试集平均损失近似表示
模型
解释
一个机器学习算法采用的具体数学表示形式
类型
参数模型
线性模型
非线性模型
线性非线性
y对参数w
系统优化的复杂度
y对特征向量x
系统的表达能力
非参数模型
模型选择
预先选择一种模型
确定模型的规模进行训练
若无法达到目标,改变模型规模或类型
找到可能最适合的模型
模型复杂度问题
模型并不是越复杂越好,实际上为了避免欠拟合,选择相对较复杂的模型,然后通过正则化避免过拟合
原因
过拟合噪声,训练误差小但测试误差可能很大
过拟合
模型过于复杂,训练误差达到理想结果,但泛化性能差(测试误差大)
欠拟合
模型过于简单,无法表达复杂规律,训练误差无法降低至要求水平
正则化
对目标函数增加一个约束项,原损失函数+约束项
约束项
用于控制系统复杂度
权因子λ
平衡损失函数和约束项的影响程度
超参数,不能通过训练过程确定,通过交叉验证方式确定
优化算法
优化模型参数w的算法
前提
数据集,目标函数,模型规模类型确定
适用
比较复杂的机器学习模型,难以得到闭式公式,需迭代求解
机器学习的一些基本概念
输入空间
包含所研究对象的特征向量的空间
输出空间
模型的预测目标的空间
如垃圾邮件检测系统输出空间有两个元素
假设空间
能够表示从输入空间到输出空间的映射关系的函数空间
机器学习问题
没有最佳的通用模型
不是选择越先进、越复杂的模型就越好
维数灾难,即样本数随空间维数指数增加
机器学习模型的性能评估
回归的性能评估
均方误差
平均绝对误差
最大误差
分类的性能评估
最基本准则
分类错误率和分类准确率
样本集中正类样本和负类样本分布均衡,分类准确率才能较好地评价分类器的性能
更有效的准则
精度
真正类与被分类器识别为正类的比例
查全率
正类样本被分类器正确识别为正类的概率
综合性能指标
同时考虑精度和查全率
ROC曲线
AUC参数
ROC曲线之下到横坐标轴之间的面积
通过简单示例理解机器学习
一个简单的回归示例
原函数
sigmoid函数
回归模型
简单多项式
损失函数
样本集均方误差
模型的影响
次数较低
欠拟合
训练误差大
次数中等
拟合较好
次数较高
过拟合
训练误差小,测试误差大,泛化能力差
解决过拟合方法
增加训练集规模
大样本可以平滑噪声
正则化
原损失函数基础上,施加对模型权系数的约束(抑制过大参数)
约束较小时
过拟合没有明显减弱
约束适中时
过拟合基本消失
约束过大时
出现欠拟合
一个简单的分类示例
K近邻算法KNN 非参数方法
本质
近邻样本中哪种类型多,新样本就是这种类型
具体流程
对于给定的近邻数K,给出一个新的待分类样本,以该样本为中心形成一个圆(三维以上情况时对应为超球体),半径逐渐扩大直到圆内包含了K个训练集样本,将圆内包含的K个训练样本表示为Dk,统计Dk内各类型样本数,最多的类型作为新样本的类型
问题
K较小时
过拟合
K较大时
欠拟合
超参数K如何确定
训练、验证与测试
超参数
不能直接通过训练过程确定得到的参数
多项式拟合的阶M,KNN的参数K或正则项的控制参数λ
简单情况
不需确定超参数
训练集
训练模型
测试集
测试误差近似评价泛化性能
一般情况
训练集80%,验证集10%,测试集10%
具体流程
训练集训练模型
在一般的学习过程中,在超参数的取值空间内,按一定方式(等间隔均匀取值或随机取值)取一个(或一组,复杂模型可能有多个超参数)超参数值,用这组确定的超参数,通过训练集训练模型。
用验证集确定超参数
将训练得到的模型用于验证集,计算验证误差。取不同的超参数,重复这个过程,最后确定效果最好的超参数以及对应的模型
用测试集测试性能
用测试集测试性能,计算测试误差,估计泛化性能。若测试性能达不到要求,还可能回到原点,选择不同的模型,重复以上过程,直到达到要求或在可能选择的模型中取得最好结果。注,在整个过程中测试集是不参与学习过程的,这样才能够可信地评估模型的泛化能力。
交叉验证Cross Validation方法
数据集规模较小情况,极限情况为留一验证
具体流程
数据集划分
训练集、测试集
训练集循环训练验证
将训练集分为K折,用于训练和验证,对于一组给出的超参数,做多轮训练,每次训练留出一折作为验证集,其余作为训练集,进行一次训练和验证,然后循环操作
用验证误差确定超参数
做完一个循环,将每次验证集的误差做平均,作为验证误差。选择一组新的超参数重复该过程。直到全部需要实验的超参数取值完成后,比较所有超参数取值下的验证误差,确定超参数的值
训练集训练最终模型
用全部训练集样本训练出模型
测试集计算测试误差
将以上学习过程确定的模型用于测试集计算测试误差,评价是否达到目标
深度学习简介
深度学习发展
多层感知机MLP
卷积神经网络CNN
循环神经网络RNN
深度学习DL
深度强化学习DRL
目的
改善传统机器学习的表示能力和泛化能力
传统机器学习
从对象的原始输入抽取重要特征,形成特征向量,将特征向量输入机器学习模型
深度学习
多层抽取特征
一般可将对象的原始形式(不排除一些必要的剪裁和归一化等基本预处理)直接输入机器学习模型,由多层网络分层抽取各级特征,即模型自身可抽取特征
从处理对象抽取出嵌套的层次概念表示,由简单表示逐层演进到复杂表示,直到概括出高级的抽象表示,“表示学习”
适用
大规模数据,至少数千样本,若达到人类识别水平,则需要千万量级样本
习题
什么是机器学习?或者怎么理解机器学习?
计算机程序从经验中“学习”以提高程序某个或某些方面的“性能”
机器学习算法有哪些基本类型?
监督学习,无监督学习,半监督学习,强化学习;参数模型,非参数模型;确定性模型,概率模型;批处理学习,增量学习
构造一个机器学习系统的基本元素是什么?
数据集,目标函数,模型,优化算法
机器学习模型有哪些类型?举例说明。
分类、回归、排序
解释名词:输入空间、输出空间、假设空间。
输入空间
包含所研究对象的特征向量的空间
输出空间
模型的预测目标的空间
如垃圾邮件检测系统输出空间有两个元素
假设空间
能够表示从输入空间到输出空间的映射关系的函数空间
怎样理解深度学习?
从处理对象抽取出嵌套的层次概念表示,由简单表示逐层演进到复杂表示,直到概括出高级的抽象表示
讨论几个名词的含义:过拟合、泛化、正则性。
过拟合
模型过于复杂,训练误差达到理想结果,但泛化性能差(测试误差大)
欠拟合
模型过于简单,无法表达复杂规律,训练误差无法降低至要求水平
泛化
解释
对于训练集中没有的新样本,模型的推广能力
泛化损失
未知样本的期望损失,可估计泛化损失界/
可用测试集平均损失近似表示
正则化
对目标函数增加一个约束项,原损失函数+约束项
约束项
用于控制系统复杂度
权因子λ
平衡损失函数和约束项的影响程度
超参数,不能通过训练过程确定,通过交叉验证方式确定
什么是模型的参数和超参数?超参数有什么作用?怎样确定超参数?
参数
w表示模型参数/待定系数
参数w确定,模型就确定了
超参数
不能通过训练过程确定,通过交叉验证方式确定,如正则化的权因子λ
什么是交叉验证?假设有1000个带标注的样本,设计一个参数模型y=h(x;w),讨论你可能选择的样本集划分方式和交叉验证过程。
交叉验证Cross Validation方法
数据集规模较小情况,极限情况为留一验证
具体流程
数据集划分
训练集800、测试集200
训练集循环训练验证
将训练集分为K折,用于训练和验证,对于一组给出的超参数,做多轮训练,每次训练留出一折作为验证集,其余作为训练集,进行一次训练和验证,然后循环操作
用验证误差确定超参数
做完一个循环,将每次验证集的误差做平均,作为验证误差。选择一组新的超参数重复该过程。直到全部需要实验的超参数取值完成后,比较所有超参数取值下的验证误差,确定超参数的值
训练集训练最终模型
用全部训练集样本训练出模型
测试集计算测试误差
将以上学习过程确定的模型用于测试集计算测试误差,评价是否达到目标