Gadzan

AI课程笔记(三)

三要素

三要素数据源数据计算机能够处理的数值向量空间模型Vector Space Model,VSMVSM 负责将格式(文字、图片、音频、视频)转化为一个个向量无标注数据特征向量(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)算法是机器学习和深度学习中最具技术含量的部分

模型的获取与改进

模型的获取和改进获取模型的过程数据准备数据预处理:收集数据、清洗数据、标注数据构建数据的向量空间模型(将文本、图片、音频、视频等格式的数据转换为向量)。将构建好向量空间模型的数据分为训练集、验证集和测试集。训练将训练集输入给训练程序,进行运算测试通过测试集数得到预测结果, 与原本预期的结果进行比较模型质量的衡量指标PrecisionRecallF1Score数据集合训练集(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_ATN: 实际与预测相符 但 都是非Class_AFP: 预测为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.随机取一个自变量的值 X02.对应该自变量算出对应点的因变量值: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) 近似收敛到最优解)梯度下降的超参数步长是算法自己学习不出来的,它必须由外界指定算法不能学习,需要人为设定的参数,就叫做超参数步幅大缺点: 几个迭代后反而取值越来越大优点: 步伐越大,每一次前进得越多步幅小缺点: 迭代次数多,运算时间也就越多优点: 不容易“跨过”极值点梯度下降的难点尝试不同起始点不能确定只有一个极小值, 取局部而非全局最小值

评论