Regression:目标是为了输出一个标量
例如:
Example Applicatiom
估计一个宝可梦进化后的CP值。可以使用多个输入的参数:Xcp,种类Xs,HP,Xw,Xh
-
Step 1:选择一种模型
这里选择线性的模型:y = b + WX;其中b为偏置值,W为权重。但是随着w和b的取值不同,模型函数的表现不一样。
-
Step2 使用损失函数判断选择的模型的好坏
我们的目的是根据输入值(例如CP值)来预测进化后的CP输出值。
我们拿到一系列的训练数据是真实的数据,根据训练数据去拟合一条直线,获取最合适的w和b值。
我们如何判断此最合适的w和b的值呢?是通过一个loss函数来判断,的loss函数的值越小,证明预测值与真实值的差距越小。
下图描述w和b的分布与loss函数大小之间的关系,颜色越浅,loss越小。 -
Step3 选择最佳的函数:梯度下降
如何一步一步调整w和b的大小从而得到最好的函数呢?需要用到求导的方式,往导数减少的方向去调整参数。
往导数减少的方向去调整参数,即往梯度下降的地方去调整,直到梯度为零时,即找到局部最优点。
每次往梯度下降的方向移动的步伐大小,即学习率。
每次计算当前梯度的大小并更下w和b的值,得到下一次计算的w和b的值。
顺着梯度下降的地方,一步一步走向loss函数的最低点。
但是并不是每移动一步,获取的loss值都比上一个此获取的loss值小的,也有可能“步子太大”而跳过了最低点。
可能会出现的几种情况:1)在一个梯度很小的地方慢慢移动;2)阻塞在一个梯度为0但不是最低点的地方;3)阻塞在一个局部最低点。
如何计算梯度?就是遵循求导法则即可。
-
结果判断
假设我们训练得到一个使loss最小时的w和b的值。
我们判断这个模型好不好时,需要把此模型用在测试数据上,并判断测试数据在此模型中的平均loss值。
如果我们选择另外一种模型对数据进行训练,例如二次函数模型,将会得到loss更小的结果。
在进一步,选用三次函数进行训练数据,得到的结果更加好。
但是,如果使用了四次甚至五次函数进行训练时,得到的loss反而比三次函数模型大,为什么?因为发生了过拟合现象了。
在模型的选择上,其实高阶模型对低阶模型是一种包含的关系。
我们可以看到上述问题中,模型次数与loss的关系。
更复杂的参数选择
如果现在数据量变大了,分布变得更加不线性了,需要怎么办呢?
这时候一个参数Xcp已经不能很好地训练出一个好的模型了,还需要加入一个种类的参数。
-
两种输入参数的情况
除了Xcp之外,还需要考虑参数Xs,随着Xs的不同,所选取的b和w也不一样,针对每一种宝可梦去建立不同的参数b和w。
可以用此方法训练出三条拟合线,针对不同种类的宝可梦。
-
更多输入参数的情况
可以对求loss函数的时候加入正则化的操作,使拟合的曲线更加平滑。
但是,λ的值越大,得到的曲线虽然越平滑,也会使结果loss越大。
总结
胶片来自于台湾大学李宏毅教授的《机器学习课程》,侵删!