机器学习 李宏毅 L3-Regression
2018-01-26 14:35
597 查看
模型介绍
进化前pokemon的各种特征,一只pokemon为xx,包括了战斗力xcpxcp、输入的pokemon的状态xsxs、hp值xhpxhp、重量xwxw、高度xhxh,以上为输入的特征;输出为pokemon进化后的CP值。回归过程
根据第一讲介绍,第一步为找到模型,也就是对应的函数集合,本讲对应的模型为 y=b+w⋅xy=b+w⋅x,其中yy为进化后的CP值。而ww和bb可以为不同值,这对应了不同的函数,构成了function set,也就是前面所说的模型,而这些函数数量为无穷多个,有些是合理的,有些是不合理的。上述模型为典型的线性模型(Linear model),ww为weight,bb为bias。第二步为收集资料,评估模型函数集合中各函数的Goodness。
采用上标表示数据的序号,即存在各种不同的pokemon状态(x1,x2,...,xN)(x1,x2,...,xN),对应的进化后CP值为(y1,y2,...,yN)(y1,y2,...,yN)。具体的数据集见参考资料Pokemon数据集,可以利用数据可视化工具进行显示。
为了衡量各函数的Goodness,需要计算另外的一个函数,loss function,其输入为模型中的函数,输出为衡量值(how bad the function is),即loss function中包含了model中函数f(xcpn)f(xcpn),这也对应着实际的预测输出量。将函数带入,则可以得到各变量对应的损失函数,也就是需要优化的函数。该过程如下图所示:
L(f)=∑n=1N(y^n−f(xcpn))2(1)(1)L(f)=∑n=1N(y^n−f(xcpn))2
针对部分情况,可以通过手段将loss function可视化,例如下图中各点均代表了一个function,其中颜色代表了loss function的大小。
接下来就主要是解决如何找到最小的loss function, 这里对应的参数值就是loss function里面的自变量值,符合
w∗,b∗=argminw,b∑n=1N(y^n−(b+w⋅xncp))2(2)(2)w∗,b∗=argminw,b∑n=1N(y^n−(b+w⋅xcpn))2
第一个优化算法为Gradient descent,此为一阶最优化算法,可以找到函数的局部最小值(极小值,这是GD的第一个问题: stuck at local minima or at saddle point),例如更新ww的步骤如下,其中ηη称为learning rate。该过程不断重复,直到微分形式的值为0,也就是达到了极值点。
w1←w0−ηdLdw|w=w0(3)(3)w1←w0−ηdLdw|w=w0
w2←w1−ηdLdw|w=w1(4)(4)w2←w1−ηdLdw|w=w1
对于本例子,存在两个优化参数,将两个参数排成一个vector,即∇L∇L,过程如下图所示。如果仅有两个参数,则可以绘制loss function的等高线图,∇L∇L指向等高线的法线负方向。对于∇L∇L,其值与局部的下降速度有关,当等高线密集则∇L∇L的数值较大,对应图上则跳动的距离较长。
更一般地,使用θθ代表参数集合,对于实际情况,并不能保证每次迭代完成后,Loss fuction均会降低,这是一个相对较大的问题。
第三个问题是,当函数存在plateau的情况,如下图所示,则损失函数最优化得到的参数集合与最优值相差很远。但是对于linear regression来说,其loss function为convex,则出现前述问题的可能性不大。如果model较为复杂,则需要考虑以上三个问题。
对于Linear regression,可以采用链式法则(chain rule)进行求梯度操作。
回归的缺陷及解决方法
同样,为了能够实现更好的拟合,可以定义更加复杂的linear model(参数对于输出是否为Linear),例如定义如下,这同样也是一个linear model。同样的,也可以使用更高次的linear model去拟合,最终可能会导致过拟合的情况。过拟合指的是测试数据结果与训练数据结果相差过大的情况。其原因是高次复杂模型会包含低次模型,因此对于训练数据的误差而言只会越来越小,需要选择对于测试数据集最小的model。y=b+w1⋅xcp+w2⋅x2cp(5)(5)y=b+w1⋅xcp+w2⋅xcp2
解决overfitting的方法包括 collect more data(可能会发现一些隐藏的属性会影响输出),例如在数据足够多的情况下,可以发现预测CP值会与pokemon的种类有关,如下图所示。接下来,可以通过引入If条件,区别对待不同的pokemon,定义不同的种类,引入δδ函数。
还有一种方式是通过regularization解决过拟合。如下图所示,较小的w意味着function较为平滑,也就是对于输入变化产生的输出变化较小。这基于一个假设:较为平滑的函数更有可能描述实际情况。
λλ需要人工干预,没有考虑bias(不需要考虑,加上后意味着需要x限制bias较小,对于本问题没什么帮助)。后续则需要人工干预λλ,确定最合适的值。实际上,加上限制项,会发现training data的loss function越来越大,但是对于测试数据而言则会存在一个较优值。
本讲结论
可参考资料和网址
Pokemon数据集Gradient descent网页资料
相关文章推荐
- 机器学习笔记(李宏毅):Regression
- 【机器学习(李宏毅)】 二、Regression: Case Study
- [机器学习入门] 李宏毅机器学习笔记-2 (Regression:Case Study ;回归:案例研究)
- 李宏毅机器学习笔记(三)——Regression: output a scalar & Gradient Descent
- 李宏毅笔记机器学习(四)——Regression——Demo
- 李宏毅机器学习课程7~~~反向传播
- Cousera-stanford-机器学习练习-第二周-Linear Regression with Multiple Variables
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
- 【机器学习笔记】Locally Weighted Regression (Loess)
- 机器学习 李宏毅 L30-Transfer Learning
- 李宏毅机器学习 视频笔记一
- 机器学习 李宏毅 L36L37-RNN
- 机器学习 1 regression
- Andrew NG机器学习课程笔记系列之——机器学习之单变量线性回归(Linear Regression with One Variable)
- 【机器学习笔记4】Stanford公开课Exercise 3——Multivariate Linear Regression
- Stanford机器学习---第一讲. Linear Regression with one variable
- 机器学习笔记1——Regression
- 机器学习系列-Locally weighted linear regression(2)
- [机器学习入门] 李宏毅机器学习笔记-10 (Tips for Deep Learning;深度学习小贴士)
- [机器学习:李宏毅]28.Deep Reinforcement Learning