机器学习 李宏毅 L3-Regression

模型介绍

进化前pokemon的各种特征,一只pokemon为 x x ,包括了战斗力xcp、输入的pokemon的状态 xs x s 、hp值 xhp x h p 、重量 xw x w 、高度 xh x h ,以上为输入的特征;输出为pokemon进化后的CP值。

回归过程

根据第一讲介绍,第一步为找到模型,也就是对应的函数集合,本讲对应的模型为 y=b+wx y = b + w ⋅ x ,其中 y y 为进化后的CP值。而w b b 可以为不同值,这对应了不同的函数,构成了function set,也就是前面所说的模型,而这些函数数量为无穷多个,有些是合理的,有些是不合理的。上述模型为典型的线性模型(Linear model),w为weight, b b 为bias。

ML-LHY-L1-1.PNG

第二步为收集资料,评估模型函数集合中各函数的Goodness。
采用上标表示数据的序号,即存在各种不同的pokemon状态(x1,x2,...,xN),对应的进化后CP值为 (y1,y2,...,yN) ( y 1 , y 2 , . . . , y N ) 。具体的数据集见参考资料Pokemon数据集,可以利用数据可视化工具进行显示。
为了衡量各函数的Goodness,需要计算另外的一个函数,loss function,其输入为模型中的函数,输出为衡量值(how bad the function is),即loss function中包含了model中函数 f(xcpn) f ( x c p n ) ,这也对应着实际的预测输出量。将函数带入,则可以得到各变量对应的损失函数,也就是需要优化的函数。该过程如下图所示:

L(f)=n=1N(y^nf(xcpn))2(1) (1) L ( f ) = ∑ n = 1 N ( y ^ n − f ( x c p n ) ) 2

ML-LHY-L1-1.PNG

针对部分情况,可以通过手段将loss function可视化,例如下图中各点均代表了一个function,其中颜色代表了loss function的大小。

ML-LHY-L1-1.PNG

接下来就主要是解决如何找到最小的loss function, 这里对应的参数值就是loss function里面的自变量值,符合

w,b=argminw,bn=1N(y^n(b+wxncp))2(2) (2) w ∗ , b ∗ = a r g min w , b ∑ n = 1 N ( y ^ n − ( b + w ⋅ x c p n ) ) 2

第一个优化算法为Gradient descent,此为一阶最优化算法,可以找到函数的局部最小值( 极小值,这是GD的第一个问题: stuck at local minima or at saddle point),例如更新 w w 的步骤如下,其中η称为learning rate。该过程不断重复,直到微分形式的值为0,也就是达到了极值点。

w1w0ηdLdw|w=w0(3) (3) w 1 ← w 0 − η d L d w | w = w 0

w2w1ηdLdw|w=w1(4) (4) w 2 ← w 1 − η d L d w | w = w 1

对于本例子,存在两个优化参数,将两个参数排成一个vector,即 L ∇ L ,过程如下图所示。如果仅有两个参数,则可以绘制loss function的等高线图, L ∇ L 指向等高线的法线负方向。对于 L ∇ L ,其值与局部的下降速度有关,当等高线密集则 L ∇ L 的数值较大,对应图上则跳动的距离较长。

ML-LHY-L1-1.PNG

更一般地,使用 θ θ 代表参数集合,对于实际情况,并不能保证每次迭代完成后,Loss fuction均会降低,这是一个相对较大的问题
第三个问题是,当函数存在plateau的情况,如下图所示,则损失函数最优化得到的参数集合与最优值相差很远。但是对于linear regression来说,其loss function为convex,则出现前述问题的可能性不大。如果model较为复杂,则需要考虑以上三个问题。
对于Linear regression,可以采用链式法则(chain rule)进行求梯度操作。

ML-LHY-L1-1.PNG

回归的缺陷及解决方法

同样,为了能够实现更好的拟合,可以定义更加复杂的linear model(参数对于输出是否为Linear),例如定义如下,这同样也是一个linear model。同样的,也可以使用更高次的linear model去拟合,最终可能会导致过拟合的情况。过拟合指的是测试数据结果与训练数据结果相差过大的情况。其原因是高次复杂模型会包含低次模型,因此对于训练数据的误差而言只会越来越小,需要选择对于测试数据集最小的model。

y=b+w1xcp+w2x2cp(5) (5) y = b + w 1 ⋅ x c p + w 2 ⋅ x c p 2

解决overfitting的方法包括 collect more data(可能会发现一些隐藏的属性会影响输出),例如在数据足够多的情况下,可以发现预测CP值会与pokemon的种类有关,如下图所示。接下来,可以通过引入If条件,区别对待不同的pokemon,定义不同的种类,引入 δ δ 函数。

ML-LHY-L1-1.PNG

还有一种方式是通过regularization解决过拟合。如下图所示,较小的w意味着function较为平滑,也就是对于输入变化产生的输出变化较小。这基于一个假设:较为平滑的函数更有可能描述实际情况。
λ λ 需要人工干预,没有考虑bias(不需要考虑,加上后意味着需要x限制bias较小,对于本问题没什么帮助)。后续则需要人工干预 λ λ ,确定最合适的值。实际上,加上限制项,会发现training data的loss function越来越大,但是对于测试数据而言则会存在一个较优值。

ML-LHY-L1-1.PNG


ML-LHY-L1-1.PNG

本讲结论

ML-LHY-L1-1.PNG

可参考资料和网址

  1. Pokemon数据集
  2. Gradient descent网页资料
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值