《机器学习基石》是国立台湾大学林轩田讲授的一门课程,课程的续集是《机器学习技法》。《机器学习基石》是网上热荐的一门机器学习课程,相关资源可以在youtube找到,也可在评论区索要云盘链接。本文主要是我学完一遍基石&技法后的笔记梳理,如果存疑请以原课程讲授内容为准,欢迎讨论~[注]本文仅适用于帮助复习,不适用于代替视频课程。
基石分为4个部分,分别为什么时候机器能够学为什么机器能够学习,机器是如何学习的,怎样让机器学得更好,什么时候机器能够学习?本文主要梳理后两部分。
三 机器是如何学习的
1线性回归
1.1 y
1.2 err:最小平方误差
1.3求最小平方错误的解析解
1.3.1先矩阵化
1.3.2再求梯度
如图,
Ein是连续、可微的凸函数
1.3.3令梯度为0,得到解析解
1.3.4由此得到线性回归算法
1.4线性回归真的在学习吗?(Ein会很小,Ein=Eout?)
1.4.1列式
1.4.2作图:
y:n维,WLin:d+1维,y^=XWLin,则y^是X的线性组合,y^落在X展开的空间内
帽子矩阵H希望y-y^最小那就要求y-y^垂直于span,此时y^就是y在span上的投影
claim给的公式对数学感兴趣的话可以证明。
1.4.3用noise衡量余数,
1.4.4作曲线图,
其中Eout的式子推导过程类似Ein,感兴趣可以推导。
故,当N够大时Ein真的会很小,且=Eout
1.5 PK线性分类
1.5.1线性回归更好做
1.5.2好的线性回归可以保证好的线性分类
1.5.3可以用线性回归做分类问题的基础
2逻辑回归
2.1 y
2.2 err(交叉熵错误)
由最大化似然,到最小化交叉熵:
2.3最小交叉熵错误的梯度下降解
2.3.1梯度
2.3.2下降
逻辑回归的梯度比线性回归(如下图)复杂得多,
难求解析解。故,采用迭代优化的方法,
泰勒展开
方向v的选择:
步长η的选择:
图中紫η=红η*梯度大小,是梯度大小的一个单调函数
2.3.3逻辑回归算法
2.4随机梯度下降
其中,n是一个随机点。θ(…)(…)是一个该点梯度的相反数。
形象上,批量梯度是针对所有点都下降的方向(径直向谷底滚下去),而随机梯度是针对某一个点下降的方向(盘旋着向谷底滚下去),最终它们都能到达局部最优解,但随机梯度下降更简单、好算。
2.5 PK线性分类、线性回归
2.5.1三者总览
其中,
2.5.2好的逻辑回归可以保证好的线性分类
其中,VC指的是
2.5.3可以用逻辑回归做分类问题的基础(比线性回归更好)
3多类别分类
3.1把二元分类器组合起来
3.2将上例分类器该为软性二元分类器(用逻辑回归来做)
软性分类器中,颜色越深代表概率越大。组合器选择概率最大的表达。
3.3 OVA分解算法
[注]第一步的k个任务可以分给k个机器做。
3.4 OVO算法(解决数据不平衡问题)
4.非线性转换
4.1圆形可分和线性可分
所以说z线性可分不代表x圆形可分,可能是椭圆可分等。
4.2一般二次假说集
4.3非线性转换的步骤
其中包含两个变量:Φ和A
4.4Φ
4.4.1基于领域知识
4.4.2计算/存储代价
4.4.3模型复杂度代价
4.5线性优先
四 怎样让机器学得更好
1不够好与过拟合
过拟合的原因:过度的dvc(开太快),杂讯(路不平),资料有限(路况了解有限)
1.1 “速度”的影响:两个案例
1.1.1 10维有杂讯
D=F+noise:
H:
结果:
1.1.2 50维无杂讯
D:
H:
结果:
关于deterministic noise
1.1.3结论:开慢点
有随机/确定杂讯时,受限的learner都要做的比过拟合的learner好
1.2“路不平”“路况了解程度”的影响:随机/确定杂讯&数据量对过拟合程度的影响
假设f是10次方,则Qf=10
2所以怎样让机器学得更好呢?
2.1开慢点:从简单模型开始(线性优先)1.1已证
2.2数据清洗/剪枝
2.3数据提示
2.4正则化
2.4.1如何回溯?
2.4.1.1硬限制
硬限制的限制太强了,H10做出来的和H2做出来的效果一样
2.4.1.2故放松限制
这样做出来的H10比H2强,但又比H10弱,但是很难解出来。
2.4.1.3软限制
2.4.2软限制求解
2.4.2.1矩阵化
2.4.2.2几何意义
条件的几何意义:
对梯度下降的限制:
2.4.3用拉格朗日乘数法求解
2.4.4等效的无条件问题
2.4.4.1λ的效果
2.4.4.2勒让德多项式
2.4.5正则化后的VC bound
2.4.5.1一种解释
2.4.5.2另一种解释
2.4.6实际应用
2.4.6.1 Regulizer的选择
2.4.6.2λ的选择
2.5验证
2.5.1原因
2.5.2基于验证集的验证过程
2.5.3验证集的大小
2.5.3.1对Eout的影响
2.5.3.2对Eval≈Eout的影响
我们希望small K,这样训练集做出来的g-和整个数据集做出来的g不会差太远
同时又希望large K,这样验证集(可以看成是测试集的一部分)验出来的E才和测试集测出来的E不会差太远
只有Eout和Eval够像且最后回传的g和g-够像,小的Eval(g-)才能保证小的Eout(g)
2.5.4留一法交叉验证
留一法:每次只去掉一个训练点保证了训练集足够大,每次的g-和实际的g不会差太多
交叉验证:每个点都留一遍取平均保证了验证集足够大,平均验证结果和实际测试结果接近
最终Eloocv(g-)≈Eout(g)
数学证明如下:
Eloocv(g-)的期望值= Eout(g-)的期望值≈Eout(g)的期望值
2.5.4.1优点
图中,Ecv≈Eout(差距<0.01)
基于Ein选择会使用较高的feature转换(高维曲线)从而使Ein=0,过拟合
而基于Ecv选择会使用适中的feature转换,图中#=5或7的位置,做出来比Ein好
2.5.4.2缺点
2.5.4.3改进
2.5.5做validation不一定会花更多时间
五 总结
1三个概念
2 3个bound
3 3个线性模型
4 3个基本工具
5 3个原则
5.1奥卡姆剃刀
5.2抽样偏差
5.3数据窥探