案例举例
1. 股票市场预估
2. 无人车
3. 商品推荐系统
实际案例:用回归预估宝可梦的cp值(战斗值)
野外找到一只妙蛙种子, 喂一些糖,让他成长
找一个function 来对改宝可梦得各种特性x进行进化,输出一个cp值
Xcp, Xw, Xh,Xhp
第一步,给出一些模型,比如
带入b和w的值,如下有n多个可能性,有的带入值合理,有的值不合理。
这样的一个模型,我们称之为线性模型,那么w的权重乘上输入的不同的Xi 得feature,b是偏执量
。
我们有了模型,那么下面去判断各个方程的好坏
我们用上标表示一对数据集,比如每一只宝可梦。
用下标来表示一个feature特性,比如cp值,比如身高和hp值。
现在来抓10只宝可梦的例子, 横轴是初始Xcp,纵轴是进化后的cp值,每个点代表一只宝可能的进化前和进化后cp值得对。
第二步,判断function好不好
下面来进行function好坏的评价,我们一般用损失函数或者代价函数Loss function
L 用来衡量一个function好用还是不好用。
对第一只到第十只宝可梦进行加和。看预测出来的结果 和实际得到的结果有多大差别。最小二乘法计算出差距
带入我们b和w得到如下的loss function
第三步,找一个最好的function
由于b和w的值太多,无法穷举了,所以需要更好地方法来寻找更好地function
我们知道function是由w和b组成的,所以我们要找出一对合适的w、b来让loss function最小。
带入L fucntion后得到上面的function,变成一个优化问题。
使用什么方法来解这个方程呢?线性代数是可以的,但是我们要用更general的方法:gradient descent
该方法的适用条件:只要可以列出L方法,并且loss function L只要是对他的输入参数是可微分的,即可使用该方法,该方法,就是要找到全局最优解,也就是Loss function对于输入参数趋近于0的点对应的参数。
Gradient Descent 梯度下降
梯度下降法举例介绍:
第一个例子
考虑一个单参数的损失函数 L(w),参数w是唯一参数
第一步,随机选取一个点w0,
第二步,计算L对于w在w0这一点的微分,也就是曲线L在W0这一点的切线的斜率。
第三步,看该点的斜率是正还是负,
如果斜率为正,表明这一点曲线的斜率是上升的,那么我们需要减小W参数的取值,向左侧移动;
如果该点斜率为负,那么意味着曲线在该点是向下倾斜的,那么我们应当增加w的取值,也就是向右侧移动。
第四步,如果如图示,w0处的微分结果(斜率)是负的(也就是曲线称下降的趋势),那么这个趋势是符合我们去寻找到Loss function的最小点的,我们就需要相应的增加w的取值,让曲线上取的点向右移动。
假设现在增加了w的值为w1,让他移动到w0的右侧,那么w0向w1的变化就写为如下式子。
使用数学公式来表示w1点相对于w0点的变化
那么为为什么这里要写一个负号呢?是因为,w0点处的微分是负的,我们需要增加w的取值,那么需要让这个的取负数,好让负负得正,加给w0,就得到了增加了的w1的参数值。
(唉塔)被称之为learning rate学习率,决定了学习的速度有多快。
第五步,同样道理,我们对w1取的微分之后,就可以得到w2的取值。
一直重复以上的求微分操作,直到一个点wt,微分得0,也就是该点的切线斜率为0,保持水平了, 不能在进行左右移动了
但有个问题是,这个点不一定是全局最小,而是局部最小,所以初始点w0,选择在不同的地方会得到不同的结果,目前来看整个方法是一个看人品的方法......
第二个例子
考虑有两个参数w和b
第一步,随机选择w0和b0
第二部,分别计算L对于(w,b)在(w0,b0)处的偏微分
第三步,分别计算w1对w0的更新,和b1对于b0的更新
w0减去 L对w在(w0,b0)的偏微分乘上学习率唉塔,
b0减去L 对b在(w0,b0)的偏微分乘上学习率唉塔。