Regression

1. 什么是Regression(回归)?

2. 实现Regression的步骤

  step1:Model(建立一个模型)——线性模型

  step2: Goodness of function(确定评价函数)——损失函数

  step3:Best function ——梯度下降法

3. 方法优化(从step1,model入手)

 方法1:select another model(选择另一个模型)

 方法2:consider the hidden factors(考虑其他隐藏因素)

4. 进一步优化,方式过度拟合(从step2入手,)

 方法:Regularization(正则化)

5. 总结和个人理解

 

1. 什么是Regularization(回归)?

Regression 就是找到一个函数 function,通过输入特征 x ,输出一个数值 Scalar 。

例如:

1. 对于道路交通,输入道路情况,输出方向盘应该旋转的角度;

2. 对于天气预测,输入过去几天的天气情况,输出明天的温度或者湿度等;

2. 实现Regression的步骤(机器学习的步骤)

Framework(框架)

         A set of function + training data → goodness of function → pick the best function

 

以神奇宝贝的进化后的cp值预测为例

  step1:Model(建立一个模型)——线性模型

  y = b + w*x ,

其中

        x 为输入量,即进化前的cp值(先以此为例,后面再加其他因素)

        y 为输出量,即进化后的cp值

 

  step2:Goodness of function(确定评价函数)——损失函数

      Training data:This is real data  (x1,y1) (x2,y2) (x3,y3) (x4,y4)……(x10,y10)

实际进化后的CP值与模型预测的CP值的差值来判断建立的模型的好坏程度。

也就是Loss function,L(f)=L(w, b)是和w,b有关的函数,L(f)越小,说明我们建立的model越好。

             L(w,b) =  ∑  ( y- f (xn) )^2

        也可以写成

   L(w,b) = ∑  ( y-  ( b + w * x) )^2 

 

  step3:Best function ——梯度下降法

目的:找到一个最合适的参数w,b 使得Loss function的值最小,即误差最小

方法:Gradient Descent(梯度下降法),实际就是求微分。

如何实施:

Gradient Descent(梯度下降) → if only one parameter → w = arg min L(w)

1 (Randomly) Pick an initial value w0                                    1 随机选其一个初始值w0

2 Compute 𝑑𝐿/𝑑𝑤 |𝑤=𝑤0 → w1 = w0 -η*𝑑𝐿/𝑑𝑤 |𝑤=𝑤0         2 计算Loss function在w0的微分

       (η is called “learning rate”)                                          如果微分为负,则往前继续运算;

3 Compute 𝑑𝐿/𝑑𝑤 |𝑤=𝑤0 → w2 = w1 -η*𝑑𝐿/𝑑𝑤 |𝑤=𝑤1     如果微分为正,则往后继续运算;

4 Many iteration(多次迭代)                                      3 重复以上步骤,直至找到最低点停止。

 

Gradient Descent → how about two parameters→ w* , b* = arg min L(w , b)

1 (Randomly) Pick an initial value w0, b0

2 Compute 𝑑𝐿/𝑑𝑤 |𝑤=𝑤0 → w1 = w0 -η*𝜕𝐿/𝜕𝑤 |𝑤=𝑤0  (偏微分)

   Compute 𝑑𝐿/𝑑b |b=b0 → b1 = b0 -η*𝜕𝐿/𝜕b |b=b0

3 Compute 𝑑𝐿/𝑑𝑤 |𝑤=𝑤1 → w2 = w1 -η*𝜕𝐿/𝜕𝑤 |𝑤=𝑤1  (偏微分)

   Compute 𝑑𝐿/𝑑b |b=b1 → b2 = b1 -η*𝜕𝐿/𝜕b |b=b1

4 [ 𝜕𝐿/𝜕𝑤; 𝜕𝐿/𝜕b] | gradient

5 𝜕𝐿/𝜕𝑤 =    𝜕𝐿𝜕𝑏 =

如果是两个变量,w,b,就求偏微分,过程和一个变量相同,最终找到使得Loss function最小的w*,b*。

 

总结:至此Gradient Descent就已经完成了,Regression也就完成了。但是存在一些问题,也就是可能找到的结果只是局部最优解。

 

3. 方法优化(从model入手)

Selecting another Model(选择其他的模型)

           前面选择的model为                    y = b + w*x 

           我们可以选择更复杂的model      y = b + w1*x + w2*x2

      重新使用Gradient Descent确定b,w1,w2的值,并使用Test data计算L(f)。 

           再次选择更复杂的model      y = b + w1*x + w2*x2 + w3*x3

      再次使用Gradient Descent确定b,w1,w2,w3的值,并使用Test data计算L(f)。

         重复以上步骤,对比得出最好的model(并不是越复杂的model越好)。

A more complex model yields lower error on training data.

A more complex model does not always lead to better performance on testing data

We need to select suitable model 

Consider more hidden factors(考虑其他的因素)

          如考虑神奇宝贝的种类,种类a、种类b等

         If x = a,y1 = b1 + w1 * x + ……

         If x = b,y2 = b2 + w2 * x + ……

          ……

          y = y1 + y2 + y3 +…… 

   或者一起更多的因素。

 

4. 进一步优化,防止overfitting(过度拟合)

         Regularization(正则化)

                   y = b + w*x 

                     L(w,b) = ∑  ( y-  ( b + w * x) )^2 + λ ∑ (wi)2

       解释:在Loss function后加上与w相关的量之后,如果要使得L(f)最小,则w(斜率)也需要比较小,因此Loss function也就会更加平滑。

      缺点:选取合适的λ可以减少过度拟合的情况,但是如果λ选取过大(正则化过度),会使得bias增大。

 

5. 总结

以Regularization目的,介绍了如何使用Gradient Descent来选择最合适的model,并有一些改进意见。

后续:下次笔记内容有,分析误差的来源,并对 model 选取 做出进一步改善。