🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 1 算法学习目标 * 1 懂原理-算法基本原理 * 2 会用工具 * 用包解决一些工程问题 * 3 掌握语言 * 实现算法原型 * 加深对算法的理解 * 4 会优化 * 根据自己的需求 * 定制化的改进算法 ## 2 基础知识 ### 2.1 基础知识 * 2.1.1 课程纲要 * 机器学习几个基本概念 * 机器学习实质 * 机器学习方法的三要素 * 经验风险和结构风险 * 2.1.2 目标 * 了解机器学习相关概念 * 了解机器学习实质 * 了解常见损失函数 * 了解经验风险和结构风险 * 2.1.3 机器学习方法流程 * `监督学习`为例,eg好比`比照例题做习题` * `监督`,有结果的样本数据 * `模型`,eg女孩子购物180的包 还价90 * `监督学习流程`, * `输入数据(Raw data)`, * `特征工程(Features)`,特征加工和整理 * `模型训练(Models)`,如果数据训练出模型,并且评估模型 * `模型部署(Deploy in production`),放到线上做成API * `模型应用(Predictions)`,预测 * 业务和数据都是动态变量的,`模型生命周期有限`,定期去更新模型 * 2.1.4 输入空间(Input Space)和输出空间(Output Space) * `输入空间`,输入所有可能取值集合 * `输出空间`,输出所有可能取值集合 * eg 父亲身高所有可能取值(`输入空间`),儿子的身高所有可能取值(`输出空间`) * eg 泰坦尼克生还,`输出空间`生还指标;`输入空间`除了生还指标以外的 * 2.1.5 特征空间 * `特征(Features)`,属性 * `特征向量(Features Vector)`,多个特征组成的集合 * `特征空间(Features Space)`,特征向量所有可能的取值的集合 * eg 身高,父亲身高165 `这是一条特征`;(165)`一维特征向量`; * eg 泰坦尼克号,除了survive字段以外的,就是一个`十一维的特征向量` * `特征空间`和`输入空间`可以相同也可以不同,eg 身高就是相同的;泰坦尼克号`fare票价`,`离散为c_level`就是不一样 * `模型`定义在`特征空间`上 * 2.1.6 假设空间(hypothesis space) * `模型`属于从输入空间到输出空间的`映射集合`,这个集合就是`假设空间` * 从输入空间到输出空间的映射集合就是假设空间 * eg 购物 * 输入空间 `gender 男 女 credit 高 中 低` * 输出空间 `buy 买 不买` * 假设空间 `输入记录所有可能出现的可能组合` * 假设空间中的每一种可能就是一个假设 * 那么假设空间个数在这里就是2<sup>2x3</sup> * 建模就是从2<sup>2x3</sup>种假设种`挑出贴合数据的假设` * 这个`贴合的假设`作为模型对新的数据进行预测 * 寻找模型就是在`输入`和`输出`映射的`假设空间`中,寻找一种`当前数据匹配度最高`的`假设` ### 2.2 机器学习方法的三要素 * 2.2.1 机器学习方法的三要素 * 机器学习方法由`模型`,`策略`,`算法`构成;`方法`=`模型`+`策略`+`算法` * `模型`,输入空间到输出空间的映射关系 * 确定学习范围 * `策略`,从众多假设空间中`挑选最优模型的标准`和`规则` * 确定学习规则,去寻找最合适的假设 * `算法`,学习模型具体的`计算方法`,假设空间中找假设就是求解`最优化问题` * 按规则在范围内学习,如何找到最优解 * 2.2.2 模型 * 分析当前问题,确定模型 * 预测分类 * 分类(classification) * eg 泰坦尼克生还 * eg 消费者购买可能性 * 预测取值 * 回归(Regression) * eg 预测身高 * eg 预测产品价格走势 * 发现结构 * 聚类(Clustering) * eg 分析客户购买能力 * 发现异常数据 * 异常检测(Anomaly Detection) * eg 电信防欺诈 * 2.2.3 策略 * 假设空间中找到最优假设(模型)的`学习标准`和`规则` * 1 评估某个模型对`单个训练样本`的效果 * 2 评估某个模型对`训练集`的整体效果 * 3 评估某个模型对包括`训练集`,`预测集`在内的所有数据的整体效果 * 需要定义指标对上述问题做衡量 * `损失函数`, * 0-1损失函数, * 平方损失函数, * 绝对损失函数, * 对数损失函数 * `风险函数`, * 经验风险, * 期望风险, * 结构风险 * 基本策略 * `经验风险最小(EMR,Empirical Risk Minimization)` * `结构风险最小(SMR,Structural Risk Minimization)` * 2.2.4 损失函数(Loss Function) * 度量单个样本的预测结果和真实值差异 * 衡量预测结果和真实结果之间的差距,损失函数值越小效果越好,损失函数L(Y,f(x)) Y真实值 * `0-1损失函数(0-1 LF)`,预测值和真实值精确相等`没有损失`记为0,`完全损失`记为1 * `绝对值损失函数(Absolute LF)`,预测值和真实结果差的绝对值 * `平方损失函数(Quadratic LF)`,预测值和真实结果差的平方 * `对数似然损失函数(log-likehood loss function)`,对数具有单调性 * `指数损失函数(Exponential LF)`,单调性,非负性, * `折页损失函数(Hinge LF)`,对于判定边界附近点的惩罚力度较高,常用于SVM * 不同损失函数应用场景 * `0-1`,理想状况模型 * `对数log`,逻辑回归,交叉熵 * `平方Squared`,线性回归 * `指数Exponential`,AdaBoosting * `折页Hinge`,SVM,soft margin * 2.2.5 经验风险(Empirical Risk)和风险函数(Risk Function) * 经验风险 * 损失函数,预测单个样本和真实值的差异 * 衡量整个训练集预测值和真实值的差异, * 经验风险越小,说明模型f(x)对训练集的拟合程度越好 * 损失函数累加/N * 风险函数(期望损失,期望风险) * 所有数据集(训练集合测试集)损失函数的期望值 * 经验风险VS期望风险 * 期望风险模型对`全局(所有数据集)的效果`,经验风险是模型对`局部(训练集)的效果` * 期望风险往往`没法计算`,经验风险`可以计算` * 训练集足够大时,经验风险可以替代期望风险,局部最优替代全局最优 * 经验风险问题 * `在样本量较小时`,`仅关注`经验风险,容易导致`过拟合` * eg 7个数据点(x,y) * 一次模型拟合 直线 * 两次模型拟合 曲线 * 三次模型拟合 * 四次模型拟合 * 五次(一元五次方程)模型拟合 * 六次模型拟合 完美拟合每一个点 * 2.2.6 结构风险(Structural Risk) * 在`经验风险`基础上,增加一个`正则化项(Regularizer)`或者叫`惩罚项(Penalty Term)` * `结构风险` = `经验风险`+`λJ(f)`(模型f(x)的复杂度),λ大于0 * 经验风险VS结构风险 * 经验风险越小,模型决策函数越复杂,包含的参数越多 * 经验风险小到一定程度就出现`过拟合现象` * 防止过拟合方式,降低决策函数的复杂度,让惩罚项J(f)最小化 * 需要同时保证经验风险函数和模型决策函数复杂度都达到最小化 * 把两个式子融合到一起成为一个式子,得到结构风险函数然后对结构风险函数进行最小化 * 2.2.7 正则化项 * 选定惩罚函数项 * 计算结构风险和经验风险 * 选择结构风险最小的 * `λJ(f)`(模型f(x)的复杂度),λ大于0 * 2.2.8 范数 * 正则化函数λJ(f)有多种选择 * 一般它是模型复杂度单调递增函数 * 模型越复杂,函数值越大,惩罚力度越大 * 范数常为模型参数向量的范数 * 常用的范数有:零范数,一范数,二范数,迹范数 * `跳过` * 2.2.9 期望风险 vs 经验风险 vs 结构风险 * 如何判断一个模型好坏,通过`损失函数`和`风险函数`判断 * 期望风险(需要拿到训练数据和预测数据集),预测数据集一般不容易拿到 * 经验风险(在训练集)上拟合效果过好,容易产生过拟合(训练集上表现好,预测集上表现差) * 如何避免,结构风险 = 经验风险+惩罚项;模型过于复杂惩罚项就会变大,模型就不会被选中 * 经验风险保证在训练集上拟合效果好;惩罚项保证拟合效果不错,不要基于过于复杂的模型 ## 3 总结和回顾 ### 3.1 总结 * 3.1.1 基本概念 * 输入空间 * 输出空间 * 假设空间 * 特征空间 * 3.1.2 机器学习实质 * 输入空间到输出空间中各种假设形成的假设空间中,找到对当前数据拟合情况最好 * 3.1.3 机器学习三要输 * 模型,确定问题 * 策略,评估模型好坏规则 * 算法,如何在规则内优化得到要的假设 * 3.1.4 机器学习`策略`如何判断模型好坏 * 经验风险 * 期望风险 * 结构风险 = 经验风险+惩罚项(模型不要过于复杂) ### 3.2 学习目标 * 3.2.1 基本概念 * `输入` `输出` `假设` `特征` * 3.2.2 机器学习实质 * 假设空间中`搜索更适合当前数据`的`假设` * 3.2.3 损失函数 * 预测结果和模型真实值的差异 * 常见的损失函数 0-1函数 绝对值 平方损失函数 * 平方损失函数 * 计算容易 * 结果为非负实值 * 经常回去求导,算起来容易 * 3.2.4 经验风险和结构风险 ### 3.3 思考和练习 * 3.3.1 空间相关概念,解释机器学习实质 * 3.3.2 经验风险和结构风险不同,经验风险和期望风险的不同 * 3.3.3 为什么要引入正则项,和经验风险和结构风险的关系 * 3.3.4 损失函数的意义,常见的损失函数,说明异同;了解常用算法选用什么损失函数 * 3.3.5 泰坦尼克号生还分析,拆解案例