视频来源:
李宏毅机器学习(2017)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
https://www.bilibili.com/video/av10590361/?p=3
机器学习的目的就是找到最优函数,而回归的目的就是我们要找的函数的输出是一个数值。例如下面的例子,不管是输入怎样的特征,我们都是需要通过学习输出它的明天产品的平均值,方向盘的角度,以及商户购买这些商品可能性(而这些都是数值)
估计宝可梦进化的CP值
输入数据: 进化前的数据(属性或特征) Xs(种类),Xcp,Xhp,Xw(体重),Xh(高度)
第一步:有数据的输入之后,需要从我们的函数集合(或者是模型)带入每一个的数据,w是权重,b是偏移量;根据b和w的不同可以在model中创建不同的函数比如f1,f2,f3..... 符合y=a+bx类型的为线性模型
假设进化后的y值和进化前的数据属性的关系如下:
步骤二:在Model集中那么多的model怎么评测那个是最好的model(函数)??引入另一个function专门的衡量model的好坏程度-----loss function
使用统计学中的误差分析: 最小二乘法的计算 (预测值-真值)^2 = loss
这里的使用与y^表示真实值
loss function 中的主导的变量w和b
步骤三:获得最优的函数,也就是损失函数最小。通过高数求偏导的思路可以获得损失函数对各个变量的偏导。然后使得导数的值为0,或者是趋于零。从而得到最优
arg表示受限于---------argmin受限于最小化##
通常我们获得最优的函数使用---------------梯度下降的方法
步骤:
(1)随机初始化变量比如w0,b0
(2)计算导数(一个变量)or 偏导(多个变量),根据具体的趋势更新w1,b1,迭代的使用该方法直到偏导数为0
具体的意思:比如只有一个变量w的损失函数L(w)
当偏导数为负的时候说明是一个局部的递减,要使得函数L(w)的函数值逐渐的小的话就需要向右增加w的值从而跟新w1
当偏导数为正的时候说明是一个局部的递增,要使得函数L(w)的函数值逐渐的小的话就需要向左减小w的值从更新w1
问题来了:怎么更新数据
借助于学习率:评价学习的步伐(在上一步的基础上学习了的步子)
逐渐的迭代直到使得导数 的值为0
梯度下降不能保证找到全局最优,但是一定可以找到解(局部或者是全局)
多变量额时候使用偏导数
偏导数表示方法:
过拟合Overfitting
如图所示:函数值不超过15.3的时候loss 较小,但是超过以后误差飞涨。 也就是只是在前面的具有很好的符合后面不具有通用型。我们在机器学习中需要综合的找到通用型的。而不是着眼于几个线索,陷入误区,那些使的强烈符合的就是过拟合。过度的依赖一些数据使得数据普遍性小
解决Overfitting
所以更多的线索带入:
将种类作为一个特征参数分类,然后再进行训练。
但是其任然是一个线性模型,当一个类型成立的时候其他的无关的类别的参数就是0
其他的参数和值的关系:可以通关“关联规则”评测那个属性是最有关的
也是就是说W比较小,函数比较平滑(对输入有些变化,而输出的变化变化的比较小)
输出的变为:
是需要自己去调整的。例如: