机器学习-Regression

机器学习(Regression:Case Study)

前言:
学习资料

videopptblog
Example Application

宝可梦CP值估计

建立一个model,将宝可梦的一些数据作为输入,然后输出宝可梦进化以后的战斗力CP值,这个model的建立尤为重要,但是这个模型的建立也是需要一步一步慢慢进行,下面,我们先从最简单的一个参数开始,然后到后面的多参数。


Step 1:Model

建立模型,我们建立一个Linear model(线性模型):
y = b + w * x
w and b are parameters(can be any value)
A set of function(一系列的函数)
f1: y = 10.0 + 9.0 ∙ xcp
f2: y = 9.8 + 9.2 ∙ xcp
f3: y = - 0.8 - 1.2 ∙ xcp
多元线性模型


Step 2:Goodness of Function

我们有一系列的函数,但是这些函数哪一个是最好的,也就是说哪一个参数是最适合作为我们当前的预测模型,所以此时我们引入了损失函数(Loss Function)L
Loss Function:
函数的函数,用来评价模型函数的好坏,在这模型里面,我们可以通过转化,将该损失函数幻化为关于w和b的函数,我们此处用的是均方误差(MSE),定义不完全一样,但是基本的原理是一样的,取平方主要是为了防止正负误差相抵消,造成错误的拟合
各种误差可以了解这篇文章

Loss Function

Loss Function L函数的函数
inputa function
outputhow bad it is

通过将预测数据的函数带入L,我们可以得到一个关于w和b的函数
可以看作这是一个三维函数,输入数据有两种,颜色的深浅表示第三个维度
函数转化


Step 3:Best Function

前面我们说明了损失函数的作用,接下来我们就应该学习如何找到最优的模型函数,即最优的w和b
损失函数的值肯定是越小越好,但是如何找到最小的值
下面是使用线性代数的知识进行解决,但是我看不懂(因为线性代数是一年前学的😢)

Best Function

下面我们来讲解一种新的思路:梯度下降法,很容易理解

只考虑一个参数

单变量:(这里靠的是w,所以可以把b看作一个定值)
我们应该调整w找到最低点,高中的时候学过导数,导数为正,表示增加,w应该减少,导数为负,表示减少,w应该增加,导数的绝对值大小表示了此处的陡峭程度。
所以L关于w求导,然后随机选取一点w开始,接着对其进行变化更新,但是变化多少得由我们自己设定,导数也决定了增加还是减少
**Learn Rate:(学习率)**通过学习率的设定,我们可以很好的控制w的变化速度,设定过大,导致跳过最优解,过小,导致收敛过慢。
迭代更新,找到最优的函数对应的w

单参数
多参数

计算偏导,选取初始的w和b,然后使用上面的方法同时对他们进行更新

偏导

循环迭代,找到最优解

多参数
梯度

有兴趣的可以去了解一下这个概念,不是很好理解,但是很重要
等高线的法线方向

梯度

  • Each time we update the parameters, we obtain f that makes 𝐿 f smaller.

How’s the results?

我们找到了当前函数集合里面的最优函数,但是这个函数具体的好坏我们很难评价,通过图像可以看出很多点无法进行拟合
Average Error:体现我们对未来预测数据的准确程度,是很重要的一个指标

Average Error

优化方法,通过观察发现,将各个点连接起来以后更像一个曲线,那么我们可以试一下二次方差,或者高次方程

效果如下:
高次拟合

此时你会发现,并不是越高次的拟合效果越好,所以就引出了Overfitting
training data的Average Error越来越小,但是Test data的表现却不尽如人意,甚至在五次方程时,大大超出了我们的预估,那么这种现象就叫做overfitting。因为我们前说过要让test data的Average Error越小越好

Overfitting

这种情况我们又该如何解决呢?


Redesign the Model

Back To Step 1
What are the hidden factors?

Hidden Factors

不同的宝可梦,可以用同一个公式进行估计吗?
答案肯定是不行,但是我们最后是用一个函数进行预测,所以我们需要进行统一
下面的图片展示的不是很清晰,实际上就是把多个函数进行柔和,但是每个函数需要乘以一个式子,那便是对输入数据的不同而进行设置,如果输入的是皮卡丘,我们就吧皮卡丘函数的式子设置为1,其他为0,那么就可以实现一个函数进行所有的预测。

优化

Are there any otherhidden factors?

Hidden Factors


Regularization

Back To Step 2
这里我们分析两句话

  • We believe smoother function is more likely to be correct?
    在使用损失函数的时候,我们用的是train_data进行训练,调整参数,但是我们更关注的是test_data的预测情况,那么我们希望我们训练出来的函数是平滑的,那样在输入变化的时候,输出不会有很大的变化,从而减小我们预测的误差,所以这就要求我们在计算损失函数时关注w,防止正负影响,加上平方,但是w在里面的占比,我们可以手动调控,这样才能让损失函数最小的时候,我们对于test_data的预测情况更加准确,而我们进行调控的因子就是λ
  • Do you have to apply regularization on bias?
    b只会是我们的函数上下平移,对于函数的平滑程度没有任何影响,所以不需要考虑在内

Regularization
Regularization

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值