Gadzan
首页
归档
关于我和最近
友情链接
AI课程笔记(三)
发布于 2018年12月20日 下午1点00分
大概7分钟读完
阅读量
0
三要素
三要素
数据
源数据
计算机能够处理的数值
向量空间模型
Vector Space Model,VSM
VSM 负责将格式(文字、图片、音频、视频)转化为一个个向量
无标注数据
特征向量(Feature Vector)
有标注数据
每一个标注样本既有无标注样本拥有的 X,同时还比无标注样本多了一个 y
特征工程
确定用哪些特征来表示数据
确定用什么方式表达这些特征
模型
机器学习的结果,这个学习过程,称为训练(Train)
一个已经训练好的模型,可以被理解成一个函数: y=f(x)。
数据(对应其中的 x)输入进去,得到输出结果(对应其中的 y)
回归
输出结果是一个数值
分类
输出结果是一个标签
模型是怎么得到的
基于数据,经由训练得到的
训练
根据已经被指定的 f(x) 的具体形式——模型类型,结合训练数据,计算出其中各个参数的具体取值的过程。
算法
训练过程需要依据某种章法进行运算。这个章法,就是算法
有监督学习的目标
让训练数据的所有 x 经过 f(x) 计算后,获得的 y’ 与它们原本对应的 y 的差别尽量小。
损失函数(Loss Function)
L(y, y’)= L(y, f(x))
用来描述 y’ 与 y 之间的差别
针对一个训练数据
代价函数(Cost Function)
J(theta)
描述整体的损失
面对所有的训练数据
theta 也可以是一个向量,每个维度表示一个具体的参数
取值越小越好
目标函数 argmin J(theta)
最小化J(theta)
最终的模型函数
最小的 theta 带入到原 f(x)
优化算法
梯度下降法(Gradient Descent)[最常用]
共轭梯度法(Conjugate Gradient)
牛顿法和拟牛顿法
模拟退火法(Simulated Annealing)
算法是机器学习和深度学习中最具技术含量的部分
模型的获取与改进
模型的获取和改进
获取模型的过程
数据准备
数据预处理:收集数据、清洗数据、标注数据
构建数据的向量空间模型(将文本、图片、音频、视频等格式的数据转换为向量)。
将构建好向量空间模型的数据分为训练集、验证集和测试集。
训练
将训练集输入给训练程序,进行运算
测试
通过测试集数得到预测结果, 与原本预期的结果进行比较
模型质量的衡量指标
Precision
Recall
F1Score
数据集合
训练集(Train Set)
用来做训练的数据的集合
验证集(Validation Set)
在训练的过程中,每个训练轮次结束后用来验证当前模型性能,为进一步优化模型提供参考的数据的集合
测试集(Test Set)
用来测试的数据的集合,用于检验最终得出的模型的性能
每个集合都应当是独立的,和另外两个没有重叠
三者的比例可以是训练集:验证集:测试集=2:1:1,也可以是7:1:2
训练的过程
编写训练程序
选择模型类型
选择优化算法
根据模型类型和算法编写程序
训练 -> 获得临时模型
在训练集上运行临时模型,获得训练集预测结果
在验证集上运行临时模型,获得验证集预测结果
综合参照 上两步 的预测结果,改进模型
上三步 反复迭代,直至满意,或者已经无法继续优化模型
改进模型
数据
大量的高质量训练数据,是提高模型质量的最有效手段
有限的数据提高质量
对数据进行归一化(Normalization,又译作正规化、标准化)等操作
采用 Bootstrap 等采样方法处理有限的训练/测试数据,以达到更好的运算效果
根据业务进行特征选取:从业务角度区分输入数据包含的特征,并理解这些特征对结果的贡献
调参
超参数
梯度下降方法学习 LR 模型时的步长(Alpha)
BFGS 方法学习 Linear-chain CRF 时的权重(w)
超参数是需要模型训练者自己来设置和调整的
模型类型选择
尝试, 选择对的, 不比追求最前沿的
模型的质量和评判指标
模型的质量和评判指标
衡量模型质量
分类模型评判指标
精准率(Precision)
召回率(Recall)
F1Score
综合这两个指标并得出量化结果
测试集预测
TP: 实际与预测相符 且 都为Class_A
TN: 实际与预测相符 但 都是非Class_A
FP: 预测为Class_A但 实际与预测不符
FN: 实际为Class_A 但 实际与预测不符
公式
精准率:Precision=TP/(TP+FP)
所有被预测为 Class_A 的测试数据中,预测正确的比率
召回率:Recall=TP/(TP+FN)
所有实际为 Class_A 的测试数据中,预测正确的比率
F1Score = 2*(Precision * Recall)/(Precision + Recall)
偏差和过拟合
欠拟合(Underfitting)
在训练集上的预测结果就不佳,指标偏低,那一般是欠拟合的问题
选定模型类型太过简单,特征选取不够
过拟合 (Overfitting)
在训练集上指标很好,而在验证/测试集上指标偏低,则很可能是过拟合问题
模型太过复杂,特征选择不当(过多或组合不当)
增大训练数据量都可能会有所帮助
梯度下降法
梯度下降法
凸函数(Convex Function)
某个向量空间的凸子集(区间)上的实值函数,如果在其定义域上的任意两点 ,有 f(tx + (1-t)y) <= tf(x) + (1-t)f(y),则称其为该区间上的凸函数
梯度下降法
寻找某个凸函数的最小值
在直接应用任何优化算法之前,应该先确定它是凸函数
获得其最小值步骤
1.随机取一个自变量的值 X0
2.对应该自变量算出对应点的因变量值:f(X0)
3.计算 f(X0)处目标函数 f(X) 的导数
4.从f(X0)开始,沿着该处目标函数导数的方向,按一个指定的步长a,向前“走一步”,
走到的位置对应自变量取值为X1|f(X0) - f(X1)|/a = f(X) 在 F(X0)处的斜率
5.继续重复2-4,直至退出迭代(达到指定迭代次数,或 f(x) 近似收敛到最优解)
梯度下降的超参数
步长是算法自己学习不出来的,它必须由外界指定
算法不能学习,需要人为设定的参数,就叫做超参数
步幅大
缺点: 几个迭代后反而取值越来越大
优点: 步伐越大,每一次前进得越多
步幅小
缺点: 迭代次数多,运算时间也就越多
优点: 不容易“跨过”极值点
梯度下降的难点
尝试不同起始点
不能确定只有一个极小值, 取局部而非全局最小值
本作品采用
知识共享署名 4.0 国际许可协议
进行许可。
评论