线性回归的简介 #A0020

作者: Vincentlyl | 来源:发表于2017-11-14 18:30 被阅读0次

学习资料

点击查看PDF教材
点击查看视频教材(需要科学上网)

本课思路

以如何预测Pokemon Go里的宝可梦进化后的CP值(Combat Power)为例,按照上一课里提到的训练和测试过程,找出最合适的函数模型。期间用到了以下概念

  1. 回归(Regression)与线性模型(Linear Model)
  2. 训练数据(Training Data)和测试数据(Testing Data)
  3. 损失函数(Loss Function)
  4. 梯度下降(Gradient Descent)
  5. 过拟合(Overfitting)、正则化(Regularization)与函数的平滑(Smooth)程度

还记得机器学习的目的是通过分析输入与输出数据,找到两者间的关系。这里就讲了找这层关系的过程:

1.设定回归问题的目标:预测宝可梦进化后的CP值
2.准备训练数据和测试数据:一组宝可梦进化前后的数据
3.假设只考虑进化前CP值的线性模型:y = b + w ⋅ xcp
4.设定损失函数 L(𝑓)
5.以梯度下降算法,用训练数据来找出最佳函数 𝑓* = arg min L(𝑓)
6.用训练数据和测试数据分别测试 𝑓* 的平均误差(error)值
7.重新设计线性模型:y = b + w1 ⋅ xcp + w2 ⋅ (xcp)2
8.重复5-6-7步,比较所有模型,得出结论:越复杂的模型,对训练数据更准确,但对训练数据可能越不准确,这就叫做过拟合。
9.考虑引入更多因素,如宝可梦的种类、HP、重量、身高
10.重新设计损失函数: 加上𝜆Σ (wi)2,提高𝜆同时找到相对更小的wi,即意味函数更平滑,测试数据的误差就越小


数学水平大概还不如小学生的我,看到数学公式瞬间脑爆,这还仅仅是最简单的线性和微分。听老师授课,慢慢琢磨感觉自己能懂,但无法用自己的语言复述,说明还未真正消化理解。

一、 第一句话

数学真TMD神奇

二、回归(本文讲的是线性回归)有什么用?

  • 预测数字,比如下周股票价格、明天气温、无人汽车转向角度、用户购买某商品的概率、预测宝可梦进化后的CP值……
  • 线性回归算法是预测模型的首选技术之一

三、 线性模型是什么样子的?

线性模型公式
  • x: input object,包含各种xi
  • xi: x的第i个特征(feature)
  • wi: weight,是xi的权重,
  • b: bias,偏差,回归线在Y轴上下移动的距离

四、训练数据是什么样子的?

我抓来10只宝可梦,用x1,x2,到x10表示。每只宝可梦有几个特征值,,可分别用xcp、xs、xhp、xh、xw来表示CP,种类名称,HP,身高,体重。还知道这10只进化后的数据,用ŷ1到ŷ10表示,进化后的CP值就用ŷcp来表示。

训练数据就是10组这样的数据
(x11),(x22),...,(x1010)
x是原始的input,ŷ是标记过的output,所以我们在讨论的是监督学习。

表示原始cp与进化后cp关系的10个点

五、 损失函数有什么用,长什么样

损失函数的输入是函数,输出是这个函数的总误差值,误差值越小,说明输入的函数越好越准确。损失函数可根据经验自行设计,常见的方法就是计算值与目标值的误差之和

损失函数

六、梯度下降是什么鬼?如何帮我找出𝑓*

说来话长,我们有了训练数据(x11),(x22),...,(x1010),设定了线性模型y = b + w ⋅ xcp,设定了损失函数L(𝑓) =∑(ŷn -
( b + w ⋅ xncp))2,接下来要做的就是穷举w和b,算出L(𝑓)的最小值,可以写成下图公式。

𝑓*的公式定义

argmin表示的是函数取值最小时的自变量取值,比如 L(𝑓) 最小值在 𝑓 = 𝑓* 时取得,那么便有:𝑓* = argmin L(𝑓)

穷举法太反人类,于是我们可以用梯度下降法来找出最小值的点,以求找L(w)最小值来举例,算法过程如下

  1. 选取一个初始随机值 w0
  2. 计算w0的偏微分,就是L(w)这个点的斜率
    斜率<0时,左边高右边低,要找更低的L(w)就要增加w
    斜率>0时,左边低右边高,要找更低的L(w)就要减少w
  3. 然后计算w要增加/减少的值,这个值可以用微分值(dl/dw|w=w0)乘上η(读作eta)来表示。微分值越大,斜率越大,越陡峭,可以迈出的步子越大。η是人为设定学习速率(learning rate),η越大,迈出的步子越大,学习速度越快。
    于是就能算出w1 <-- w0
  4. 反复2和3步,直到偏微分值=0时,找到最小值(minima)。这时可能会发现该数值只是一个局部最小值,取决于初始点w0落在哪里。然而线性回归不存在局部最小值
L(w)的计算过程

同理L(w,b)的计算过程和L(w)的一样

L(w,b)的计算过程 L(w,b)的计算过程长这样

七、过拟合是什么鬼?

用我自己的话来说

为了使得模型与训练数据更匹配,导致模型过于复杂,但在测试数据上的结果反而更糟糕。这种情况就叫做过拟合。

用李老师的举例

在驾校学车时,教练告诉你的各种应试技巧,如倒桩入库要从反光镜看车后一个铁杆子与车屁股的位置balabala,于是很顺利地通过考试。等真正自己开车时,这些技巧没有任何用处。

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

知乎上找到的

用简单易懂的语言描述「过拟合 overfitting」?https://www.zhihu.com/question/32246256

过拟合的表现1
过拟合的表现2

八、正则化与平滑的函数

我们可用正则化来避免过拟合的发生,怎么做?修改损失函数,加入正则化公式。

𝜆Σ (wi)2是我们加入的正则化公式

  • 𝜆是一个常数,手动调整。𝜆设的越大,参数w会越小
  • 参数w越小越接近于0,函数输出对输入的变化就越小,函数则越平滑
  • 一个平滑的函数在大量测试数据的表现会更好
调整𝜆来获得最好的模型

这里我们选择𝜆=100,测试数据的误差值11.1最小,是“最佳”的模型(仅考虑xcp时)


Next Lecture

有哪些因素会导致模型出现误差值?我们会继续了解更多关于过拟合、正则化、验证的原理。

相关文章

  • 线性回归的简介 #A0020

    学习资料 点击查看PDF教材点击查看视频教材(需要科学上网) 本课思路 以如何预测Pokemon Go里的宝可梦进...

  • (16)多重线性回归分析

    一、多重线性回归分析简介 简单线性回归分析:自变量X =1 个 多重线性回归分析:自变量X >=2 个 多元线性回...

  • 2020-08-13--线性回归01

    线性回归算法简介 解决回归问题 思想简单,容易实现 许多强大的非线性模型的基础 结果具有很好的 线性回归分为一元线...

  • 线性回归算法简介

    线性回归(Linear Regression)定义:是一种通过对样本特征进行线性组合来进行预测的线性模型,其目的是...

  • 机器学习之Logistic回归

    1. Logistic回归的概念 1.1 简介 logistic回归又称logistic回归分析,是一种广义的线性...

  • 14logistic回归(spss)

    1.logistic 回归简介 是针对变量为分类变量二进行回归分析的一种统计方法,属于概率行非线性回归。 在线性回...

  • 逻辑回归(Logistic Regression)

    一.简介 如果我们要用线性回归算法来解决一个分类问题,对于分类, 取值为 0 或者1,但如果你使用的是线性回归,...

  • 深度神经网络中的激活函数

    简介 线性模型是机器学习领域中最基本也是最重要的工具,以逻辑回归和线性回归为例;在真实情况中,我们往往会遇到线性不...

  • 线性回归的前世今生

    简介 线性回归,可谓是机器学习领域的HelloWorld了。工作中大部分预测、监控之类的需求,都可以用线性回归来解...

  • 常用线性回归算法类库简介

    常用线性回归算法类库简介: LinearRegressionLinearRegression类就是我们平时所说的普...

网友评论

    本文标题:线性回归的简介 #A0020

    本文链接:https://www.haomeiwen.com/subject/mszxvxtx.html