regression
知识点
regression基本3步骤
- 定义一系列模型
- 定义loss function,将模型和training data带入模型中。此时loss function仅有我们要求的参数是未知数。
- 用gradient descent等方法找到我们要求的最佳参数。
错误来源
以上三步骤得到的最佳模型,错误来源主要有两个。一个是bias,一个是variance。
bias度量了学习算法的期望输出与真实结果的偏离程度, 刻画了算法的拟合能力,Bias 偏高表示预测函数与真实结果差异很大。
Variance:则代表“同样大小的不同的训练数据集训练出的模型”与“这些模型的期望输出值”之间的差异。训练集变化导致性能变化, Variance 偏高表示模型很不稳定。
当模型定义得过于复杂的时候,常常会出现bias小,varience过大,overfitting;当模型定义得过于简单的时候,常常出现varience小,bias过大,underfitting。
- 逻辑上分析
直观上,模型简单时,我们考虑的因素比较少。比如我们要预测一个人未来10年的收入,我们只考虑了他的学历。
f( educational background)=income
但是实际上,income和他本人的性格,家庭,外貌都有很大关系,但是我们并没有把这些因素考虑进去,导致在预测小A,小B,小C时,出现预测结果很不准确,即bias过大的情况。
模型复杂时,我们考虑的的因素多。比较极端的情况是我们考虑的因素过多,除了性格,学历,家庭,外貌,我们甚至把脚底有一颗痣考虑进去。
f(educational background;personality;family;...;Mole under foot)=income
这时,我们的模型和training data的选择关系很大,如果我们的training data中,脚下面有痣的人比较多,这就会导致得出的模型里面,脚下面有痣的人更容易成功;反之,如果training data中,脚下面有痣的人比较少,得出的模型里面,脚下面有痣的人更不易成功;训练集变化导致性能变化大,即varience大。
-
从数学概率论分析
E[f*^(x)–f(x)] 为 Bias,即期望;E[f(x)−E(f^(x))]2 为 Variance,即方差。
当模型复杂时,在寻找最合适的参数时,已经包含简单模型的最佳参数,所以复杂模型和data之间的偏差更小,即bias更小。另一方面,因为复杂模型和training data过于拟合,得出的模型和training data的相关性太大,导致可能和testing data之间的差异过大,即varience过大。
- 从图形上分析
简单模型对属性(图中的Xcp)影响更小,做出的模型中,数据点不会散落太开,varience小。
减少error
从上面的分析中可以看出,减少error的要从减少bias和variance入手,即在模型的简单和复杂之间找到一个平衡点。这里提出了两个方法:更多的数据和regularization。
更多的数据
在估计income的时候,每个样本只有10个人,偶然样本里面的high income人士脚下面6个都有痣,那么对模型影响必然很大。但是如果我们增加样本数量,每一个样本里面都有1000个人,这样得出来的模型,“脚下面有痣”的权重一定很小。
增加training data是万能的,一定可以优化模型
regularization
一般来说,最基本的loss function被定义为
而 regularization的loss function使参数(wi)更小,如下图证明.可以使模型更加自然地变化,而不会出现突然一下子变得特别大或者特别小的情况。
但是可能理想模型变化本来就很剧烈的,所以regularization并不万能。
基本三步骤之 找到最佳参数
使用gradient descent,我们可以在模型中找到local minima。这里是三个tip。
仅仅是局部最小值,并不是全局最小值!
tip1: learning rate的选择
learning rate是我们在寻找最佳参数时,迈的脚步的大小。
我们期望在寻找minima的过程中,离理想值远时,我们大跨步,迅速接近理想值;在离minima比较近了之后,就细细走,不要错过最佳值。即随时间变化,步子先小后大。由此定义和时间相关的learinng rate。
进一步,升级成Adagrad。Adagrad可以给每个参数分配一个和以前的该参数变化速率有关的learning rate。
tip2:Stochastic Gradient Descent
Stochastic Gradient Descent可以使训练更快。
原loss function是把所有的样本的偏离值一起计算,现在的Stochastic Gradient Descent loss function是一个样本一个样本地计算。有多少个样本,Stochastic Gradient Descent就比原来快多少倍。
tip3:feature scaling
在我们估计一个人的income的时候,考虑他身高和外貌两个因素。
定义1:身高单位是cm,相貌评分是10分制。
定义2:身高单位是cm,相貌评分是200分制
定义1 | 定义2 | ||
---|---|---|---|
外貌(w1) | 身高(w2) | 外貌(w1) | 身高(w2) |
170 | 9 | 170 | 180 |
180 | 6 | 180 | 160 |
160 | 8 | 160 | 170 |
156 | 2 | 156 | 50 |
作图可得:
在进行gradient Descent的时候,第二种样本定义,是一直朝着local minima前进,因此可以做优化,对training data消除量纲的影响。
其中,m i为均值,σ i是标准差。
消除量纲影响后,xri的均值为0;标准差为1。
博客中所有图都来自于台大李宏毅老师ppt。
刚刚开始学习,路漫漫其修远;请大家多多指正。