首页 / 资讯中心 / 文章详情

机器学习-吴恩达-学习自用笔记7

机器学习-吴恩达-学习自用笔记7 ★ FEATURED ARTICLE
过拟合问题不管是线性回归问题还是逻辑回归问题解决问题的模型一旦构建出来所存在的可能有过拟合和欠拟合的问题。依旧拿房子大小预测房子价格的线性回归问题来举栗子欠拟合高偏差此时公式为yw1xbyw_1xbyw1​xb显然是一个一次多项式对模型显然存在欠拟合的问题数据大部分不能被很好的覆盖掉好的泛化此时公式为yw1xw2x2byw_1xw_2x^2byw1​xw2​x2b显然比第一种表达式更加复杂此时例子表现出的状态刚好。假设模型可以在测试数据之外表现出良好的预测我们称之为泛化我们都希望自己的模型有良好的泛化功能。过拟合高方差此时公式为yw1xw2x2w3x3w4x4byw_1xw_2x^2w_3x^3w_4x^4byw1​xw2​x2w3​x3w4​x4b显然比第一次和第二次更加复杂了此时虽然对于预测数据的拟合来说极好有点太好了但是我们并不认为这是个良好的预测模型因为他在各点处表现出曲折的状态这显然不像会对测试之外的数据表现出泛化的效果。现在我们考虑判断一个是否为恶性肿瘤的分类在过拟合/欠拟合中的例子三种如下从从左到右分别表现出欠拟合良好过拟合的效果与线性回归的特征一样在分类里面表现出了类似的效果。需要注意公式的复杂度可以看出太简单和太复杂的问题构建都会影响模型的拟合效果解决过拟合的三种方法一、收集更多的数据更多的数据可以帮助解决过拟合但是有时候这并不可能收集更多效果如下图二、尝试选择并仅使用特征的子集假设我们有太多的特征并且没有对这些特征进行足够的训练那么也会导致过拟合解决方法就是选择使用最有用的特征原本特征的子集最相关的会很好的解决过拟合的问题。三、使用正则化来减少参数的大小我们可以考虑去减少特征的值即选取一个很小的 $ w$是否改变bbb对结果影响不大那样的话会得到一条很好的拟合训练数据的曲线。实际上正则化的作用是为了让你保留所有特征但只是防止特征产生过大的影响过拟合带正则化的成本函数这篇介绍一个修改后的代价函数可以用它来实际应用正则化。依旧举一个线性回归模型的卖房子的例子左侧函数图像w1xw2x2bw_1xw_2x^2bw1​xw2​x2b右侧函数图像w1xw2x2w3x3w4x4bw_1xw_2x^2w_3x^3w_4x^4bw1​xw2​x2w3​x3w4​x4b对比两个函数图像假设你的模型是通过非常高阶的多项式拟合来的那么你会得到一个过拟合数据的曲线假设你修改了代价函数如上图的最下方的公式那么你如果像最小化这个函数只能尽可能的让w32,w42w_3^2,w_4^2w32​,w42​的值变小此时就等同于消除了w3x3w4x4w_3x^3w_4x^4w3​x3w4​x4这一项这会使函数图像更好。正则化通常的实现方式是让所有的特征变小惩罚所有的wj参数并且可以证明这通常会导致拟合一个更平滑更简单不太弱的函数不太容易过拟合。高能来了图片的公式应该去掉大括号认真分析我们考虑一种情况当函数是个超级复杂的多项式有多复杂呢他有100个特征(n100)此时我们不能确定哪个特征值需要我们变小那我们索性让他们全部变小。原始的代价函数为12m∑i1m(fw⃗,b(x⃗(i))−(y(i)))2\frac{1}{2m}\sum_{i1}^{m}(f_{\vec w,b}(\vec x^{(i)})-(y^{(i)}))^22m1​i1∑m​(fw,b​(x(i))−(y(i)))2此时我们额外加上我们 “惩罚” 的那些特征正则化项λ2m∑j1nwj2\frac{\lambda}{2m}\sum_{j1}^nw_j^22mλ​j1∑n​wj2​注意此时的λ\lambdaλ为正则化参数他的取值对代价函数的影响我们在后续还会讨论现在知道即可分母上的2m表示我们与前面项同时按照1/2m的比例缩放选择一样的值会对λ\lambdaλ的选择变得更容易一些。此时训练数据集即便变大时λ\lambdaλ也同样有效顺便说下我们通常不会改变参数bbb的值没太大影响λ2m∑j1nb2\frac{\lambda}{2m}\sum_{j1}^nb^22mλ​j1∑n​b2最后把他们合并在一起就可以了。此时代价函数变为min⁡w⃗,bJ(w⃗,b)min⁡w⃗,b[12m∑i1m(fw⃗,b(x⃗(i))−(y(i)))2λ2m∑j1nwj2]\min_{\vec w,b}J(\vec w,b)\min_{\vec w,b}[\frac{1}{2m}\sum_{i1}^m(f_{\vec w,b}(\vec x^{(i)})-(y^{(i)}))^2\frac{\lambda}{2m}\sum_{j1}^nw_j^2]w,bmin​J(w,b)w,bmin​[2m1​i1∑m​(fw,b​(x(i))−(y(i)))22mλ​j1∑n​wj2​]此时代价函数的目的是试图最小化第一项鼓励算法通过最小化预测值与实际值之间的平方差来更好的拟合训练数据试图最小化第二项鼓励算法试图保持参数wjw_jwj​较小这将倾向于减少过拟合此时说回λ\lambdaλ让我们继续考虑两种情况λ0\lambda 0λ0此时相当于没有后面那个正则化项了也就是依旧过拟合2.λmax\lambda maxλmax超级大此时最小化这个代价函数的唯一方法就是确保所有的w的值都非常接近于0即fx只剩b了.从上面你可以看到当λ\lambdaλ很小的时候模型会过拟合当λ\lambdaλ很大的时候模型会欠拟合。所以选择一个合适的λ\lambdaλ是很重要的正则化的线性回归模型先看一下此时的梯度下降算法有了正则化后会怎么改变此时能看到其实就是简单的求了个偏导注意 b项是不变化的因为我们不需要缩小 b然后我们带回这些项此时梯度下降算法变成了如下记得要对这些项进行同时更新我们继续看一下正则化的梯度下降工作原理我们把上图的式子拆开重新排列可以看出前一项可以提公因式此时后面的一项就是一个常规普通的梯度下降公式我们在这里主要看前面的公式他们是由学习率aaa正则化参数λ\lambdaλ测试数据量mmm来共同组成的。看个下图的例子还记得之前讲过的内容吗学习率aaa是个很小的值同样的λ\lambdaλ也不大我们分别取 0.01和1样本量是50可以看出这一定是个正数并且很小再通过1-0.0002 来得到wjw_jwj​的变化值正则化的逻辑回归模型再重复一下逻辑回归的意思就是分类我们会用到一个sigmoid函数来去拟合测试数据当用于其中的变量zzz就是我们含多项式的函数。如图当多项式很复杂的时候也会导致过拟合此时我们的成本函数为也是常规逻辑回归模型的成本函数加上一个正则化项我们如何更新其实和线性回归的没什么区别一样的。只是因为选择的f的定义不同线性回归的f是线性逻辑回归的f是应用于z的逻辑函数。
阅读完成 · 觉得有帮助?
咨询建站