哪个网站可以做视频播放器,烟台广告公司网站建设,如何做网站的教程二维码,中国做网站知名的公司山外风雨三尺剑 有事提剑下山去 云中花鸟一屋书 无忧翻书圣贤来 1.设置问题
以Web广告和点击量的关系为例来学习回归。
前提#xff1a;投入的广告费越多#xff0c;广告的点击量就越高。
根据以往的经验数据#xff0c;可以得到下图#xff1a; 那么假设我要投200块的广… 山外风雨三尺剑 有事提剑下山去 云中花鸟一屋书 无忧翻书圣贤来 1.设置问题
以Web广告和点击量的关系为例来学习回归。
前提投入的广告费越多广告的点击量就越高。
根据以往的经验数据可以得到下图 那么假设我要投200块的广告费那么带来的点击量有多少呢 也就是500次左右。
这就是机器学习。你所做的事情正是从已知的数据中进行学习然后给出预测值。
2.定义模型
只要知道通过图中各点的函数形式就能根据广告费得知点击量。 注意“点击量中含有噪声”所以函数不可能穿过所有的点。
可以得到一次函数 一个是截距一个表示斜率。
由这个函数可知x是广告费y是点击量。
可以把上面这个一次函数想象成是一个能够根据投入广告费预测点击量的模型而θ0和θ1就是模型的参数值。模型的好坏即预测结果的准确性和模型的参数值息息相关。
现在我们不知道这两个参数值取多少对这个模型来说最优。
根据数学中的假设法既然不知道就先随便假设试一试。先假设θ01、θ12那么上面的一次函数就会变成 根据假设的这个模型现在我要投入x100块钱的广告费那么预测的点击量
y 1 2 * 100 201
再看一下之前数据实际情况 所以假设的θ01、θ12完全不正确根据这两个参数得出的模型并不能得到正确结果。
下面我们就是要使用机器学习来求出正确的θ0与θ1。
3 最小二乘法
首先转换一次函数的表达式 这样就能一眼看出这是一个含有参数θ并且和变量x相关的函数。
我们之前有过投入的广告费与点击量之间的实际数据如下 在图中表示 根据刚才我们随便假设的参数可以得到 fθ(x)12x
将实际投入的广告费代入预测点击量 可以看出根据随便假设的参数预测的值与实际情况相差很大这种用随便确定的参数计算的值与实际的值存在偏差。 最理想的情况是我们的预测值与实际值一致即y-fθ(x)0。这就是说y和fθ(x)之间的误差为0。
但是不可能让所有的误差都等于0所以我们要做的就是让所有点的误差之和尽可能小。
用表达式展现出来就是 这个表达式称为目标函数核心E(θ)的E是误差的英语单词Error的首字母这类问题叫最优化问题。
注意点
1. x(i)和y(i)中的i不是i次幂的意思而是指第i个训练数据。
2. 要计算误差的平方排除误差为负值的情况。
3. 乘以1/2表达式更好微分而且不影响函数本身取最小值的点。
将开始的广告费与点击量数据代入进去可得 误差太大我们要做的就是让误差变小使得预测值接近实际值这种求误差的方法也叫作最小二乘法。
要让E(θ)越来越小就要去不停参数θ的值然后再去与实际值一次次进行比较修改这样太麻烦正确做法是使用微分。
示例
有一个二次函数为g(x)(x-1)*2 首先对g(x)进行微分 可以知道它的增减表 在x3这一点为了使g(x)的值变小我们需要向左移动x也就是必须减小x 在另一侧的x-1这一点为了使g(x)的值变小我们需要向右移动x也就是必须增加x 也就是说根据导数的符号来决定移动x的方向与导数符号相反的方向移动g(x)就会沿着最小值的方向前进。
把上面说的话总结起来用表达式来表示 这就是最速下降法或梯度下降法。
A:B这种写法它的意思是通过B来定义A参数自动更新。简单来说就是用上一个x来定义新的x。
η称为学习率读作“伊塔”。根据学习率的大小到达最小值的更新次数也会发生变化。换种说法就是收敛速度会不同。有时候甚至会出现完全无法收敛一直发散的情况。
所以η的取值很重要如η1从x3开始 这样就会陷入死循环。
设η0.1同样从x3开始 如果η较大那么x:x-η(2x-2)会在两个值上跳来跳去甚至有可能远离最小值。这就是发散状态。而当η较小时移动量也变小更新次数就会增加但是值确实是会朝着收敛的方向而去。
现在我们再来讨论广告费与点击量的目标函数 但是这个目标函数中包含fθ(x)fθ(x)拥有θ0和θ1两个参数。也就是说这个目标函数是拥有θ0和θ1的双变量函数所以不能用普通的微分而要用偏微分。 求表达式θ0的偏微分
E(θ)中有fθ(x)而fθ(x)中又有θ0所以可以使用复合函数 阶梯型地进行微分 先从u对v微分的地方开始计算 再v对θ0进行微分 v替换回fθ(x) 再v对θ0进行微分 最后得到参数θ0和θ1的更新表达式 只要根据这个表达式来更新θ0和θ1就可以找到正确的一次函数fθ(x)了。
用这个方法找到正确的fθ(x)然后输入任意的广告费就可以得到相应的点击量。这样我们就能根据广告费预测点击量了。
4 多项式回归
之前是将图像拟合成了一条直线但是在实际情况中曲线比直线拟合的效果会更好。 曲线对应的二次函数 或者使用更大次数的表达式也可以 但是并不是函数次数越好拟合的就越好可能会出现过拟合问题。
最终的参数更新表达式 像这样增加函数中多项式的次数然后再使用函数的分析方法被称为多项式回归。
5 多重回归
之前我们是根据广告费来预测点击量即只有一个变量广告费x但是在实际中要解决的很多问题是变量超过两个的复杂问题。
比如除了广告费点击量的多少还受到广告展示位置和广告版面大小等多个要素即多个变量x。
为了让问题尽可能地简单这次我们只考虑广告版面的大小设广告费为x1、广告栏的宽为x2、广告栏的高为x3那么fθ可以表示如下: 然后就可以对函数做微分了但是在这之前可以了解一下表达式的简化形式。
简化方法把参数θ和变量x看做向量 为了方便计算两边对齐 把θ转置之后与x相乘的结果 所以在实际编程时只需要用普通的一维数组表示就可以 求微分时是与之前一样的所以只需要求v对θj的微分就好了 那么第j个参数的更新表达式 这样包含多个变量的回归称为多重回归。
6 随机梯度下降法
前面讲的梯度下降算法有两个缺点一个是一次次更新x花费的时间长还有就是容易陷入局部最优解。
比如下面这种函数 从不同地方选择最开始的x会陷入局部最优解。
随机梯度下降法是以最速下降法为基础的。
最速下降法的参数更新表达式 这个表达式使用了所有训练数据的误差。而在随机梯度下降法中会随机选择一个训练数据并使用它来更新参数。 表达式中的k就是被随机选中的数据索引。最速下降法更新1次参数的时间随机梯度下降法可以更新n次。此外随机梯度下降法由于训练数据是随机选择的更新参数时使用的又是选择数据时的梯度所以不容易陷入目标函数的局部最优解。
此外还有随机选择m个训练数据来更新参数的做法
设随机选择m个训练数据的索引的集合为K 假设训练数据有100个那么在m10时创建一个有10个随机数的索引的集合例如K{61, 53, 59, 16, 30, 21, 85,31, 51, 10}然后重复更新参数就行了。
这种方法叫做小批量梯度下降法。