Machine Learning Chinese NLP :::: Regularization and the Cost Function - Chad Salinas ::: Data Scientist
Life and times of Chad Salinas
Chad Salinas, golf caddy, data scientist, chad rPubs, recovering chess addict, daddy caddy
1244
post-template-default,single,single-post,postid-1244,single-format-standard,qode-listing-1.0.1,qode-social-login-1.0,qode-news-1.0,qode-quick-links-1.0,qode-restaurant-1.0,ajax_fade,page_not_loaded,,qode-title-hidden,qode_grid_1300,qode-theme-ver-12.0.1,qode-theme-bridge,bridge,wpb-js-composer js-comp-ver-5.4.2,vc_responsive

Machine Learning Chinese NLP :::: Regularization and the Cost Function

Regularization & the Cost Function 

在这段视频中 
传达给你一个直观的感受 
告诉你正规化是如何进行的 
而且 我们还要写出 
我们使用正规化时 需要使用的代价函数 
根据我们幻灯片上的 
这些例子 
我想我可以给你一个直观的感受 
但是 一个更好的 
让你自己去理解正规化 
如何工作的方法是 
你自己亲自去实现它 并且看看它是如何工作的 
如果在这节课后 
你进行一些适当的练习 
你就有机会亲自体验一下 
正规化到底是怎么工作的 
那么 这里就是一些直观解释 
在前面的视频中 我们看到了 
如果说我们要 
用一个二次函数来 
拟合这些数据 它给了我们一个对数据很好的拟合 
然而 如果我们 
用一个更高次的 
多项式去拟合 我们最终 
可能得到一个曲线 
能非常好地拟合训练集 但是 
这真的不是一个好的结果 
它过度拟合了数据 
因此 一般性并不是很好 
让我们考虑下面的假设 
我们想要加上惩罚项 从而使 
参数 θ3 和 θ4 足够的小 
这里我的意思就是 
这是我们的优化目标 
或者客观的说 这就是我们需要 
优化的问题 我们需要尽量减少 
代价函数的均方误差 
对于这个函数 
我们对它进行一些 添加一些项 
加上 1000 乘以 θ3 的平方 
再加上 1000 乘以 θ4 的平方 
1000 只是我随便写的某个较大的数字而已 
现在 如果我们要 
最小化这个函数 
为了使这个 
新的代价函数最小化 
我们要让 θ3 和 θ4 
尽可能小 对吧? 
因为 如果你有 
1000 乘以 θ3 这个 
新的代价函数将会是很大的 
所以 当我们最小化 
这个新的函数时 我们将使 
θ3 的值 
接近于0 
θ4 的值也接近于0 
就像我们忽略了 
这两个值一样 
如果我们做到这一点 
如果 θ3 和 θ4 
接近0 那么我们 
将得到一个近似的二次函数 
所以 我们最终 
恰当地拟合了数据 你知道 
二次函数加上一些项 
这些很小的项 贡献很小 
因为 θ3 θ4 它们是非常接近于0的 
所以 我们最终得到了 
实际上 很好的一个二次函数 
因为这是一个 
更好的假设 
在这个具体的例子中 我们看到了 
惩罚这两个 
大的参数值的效果 
更一般地 这里给出了正规化背后的思路 
这种思路就是 如果我们 
的参数值 
对应一个较小值的话 
就是说 参数值比较小 
那么往往我们会得到一个 
形式更简单的假设 
所以 我们最后一个例子中 
我们惩罚的只是 θ3 和 
θ4 使这两个 
值均接近于零 
我们得到了一个更简单的假设 
也即这个假设大抵上是一个二次函数 
但更一般地说 如果我们就像这样 
惩罚的其它参数 通常我们 
可以把它们都想成是 
得到一个更简单的假设 
因为你知道 
当这些参数越接近这个例子时 
假设的结果越接近 
一个二次函数 
但更一般地 
可以表明 
这些参数的值越小 
通常对应于越光滑的函数 
也就是更加简单的函数 
因此 就不易发生过拟合的问题 
我知道 
为什么要所有的部分参数变小的这些原因 
为什么越小的参数对应于一个简单的假设 
我知道这些原因 
对你来说现在不一定完全理解 
但现在解释起来确实比较困难 
除非你自己实现一下 
自己亲自运行了这部分 
但是我希望 这个例子中 
使 θ3 和 θ4 
很小 并且这样做 
能给我们一个更加简单的 
假设 我希望这个例子 
有助于解释原因 至少给了 
我们一些直观感受 为什么这应该是这样的 
来让我们看看具体的例子 
对于房屋价格预测我们 
可能有上百种特征 
我们谈到了一些可能的特征 
比如说 x1 是房屋的尺寸 
x2 是卧室的数目 
x3 是房屋的层数等等 
那么我们可能就有一百个特征 
跟前面的多项式例子不同 
我们是不知道的 对吧 
我们不知道 θ3 
θ4 是高阶多项式的项 
所以 如果我们有一个袋子 
如果我们有一百个特征 
在这个袋子里 我们是很难 
提前选出那些 
关联度更小的特征的 
也就是说如果我们有一百或一百零一个参数 
我们不知道 
挑选哪一个 
我们并不知道 
如何选择参数 如何缩小参数的数目 
因此在正规化里 
我们要做的事情 就是把我们的 
代价函数 这里就是线性回归的代价函数 
接下来我度量 
来修改这个代价函数 
从而缩小 
我所有的参数值 因为你知道 
我不知道是哪个 
哪一个或两个要去缩小 
所以我就修改我的 
代价函数 在这后面添加一项 
就像我们在方括号里的这项 
当我添加一个额外的 
正则化项的时候 
我们收缩了每个 
参数 并且因此 
我们会使 
我们所有的参数 θ1 
θ2 θ3 
直到 θ100 的值变小

顺便说一下 按照惯例来讲 
我们从第一个这里开始 
所以我实际上没有去惩罚 θ0 
因此 θ0 的值是大的 
这就是一个约定 
从1到 n 的求和 
而不是从0到 n 的求和 
但其实在实践中 
这只会有非常小的差异 
无论你是否包括这项 
就是 θ0 这项 
实际上 结果只有非常小的差异 
但是按照惯例 通常情况下我们还是只 
从 θ1 到 θ100 进行正规化 
这里我们写下来 
我们的正规化优化目标 
我们的正规化后的代价函数 
就是这样的 
J(θ) 这个项 
右边的这项就是一个正则化项 
并且 λ 
在这里我们称做正规化参数 
λ 要做的就是控制 
在两个不同的目标中 
的一个平衡关系 
第一个目标 
第一个需要抓住的目标 
就是我们想要训练 
使假设更好地拟合训练数据 
我们希望假设能够很好的适应训练集 
而第二个目标是 
我们想要保持参数值较小 
这就是第二项的目标 
通过正则化目标函数 
这就是λ 这个正则化 
参数需要控制的 
它会这两者之间的平衡 
目标就是平衡拟合训练的目的 
和 
保持参数值较小的目的 
从而来保持假设的形式相对简单 
来避免过度的拟合 
对于我们的房屋价格预测来说 
这个例子 尽管我们之前有 
我们已经用非常高的 
高阶多项式来拟合 我们将会 
得到一个 
非常弯曲和复杂的曲线函数 
就像这个 如果你还是用高阶多项式拟合 
就是用这里所有的多项式特征来拟合的话 
但现在我们不这样了 
你只需要确保使用了 
正规化目标的方法 
那么你就可以得到 
实际上是一个曲线 但这个曲线不是 
一个真正的二次函数 
而是更加的流畅和简单 
也许就像这条紫红色的曲线一样 
那么 你知道的 
这样就得到了对于这个数据更好的假设 
再一次说明下 
我了解这部分有点难以明白 为什么加上 
参数的影响可以具有 
这种效果 但如果你 
亲自实现了正规化 
你将能够看到 
这种影响的最直观的感受

在正规化线性回归中 如果 
正规化参数值 
被设定为非常大 
那么将会发生什么呢? 
我们将会非常大地惩罚 
参数θ1 θ2 
θ3 θ4 
也就是说 
如果我们的假设是底下的这个 
如果我们最终惩罚 
θ1 θ2 θ3 
θ4 在一个非常大的程度 那么我们 
会使所有这些参数接近于零的 对不对? 
θ1 将接近零 θ2 将接近零 
θ3 和 θ4 
最终也会接近于零 
如果我们这么做 那么就是 
我们的假设中 
相当于去掉了这些项 并且使 
我们只是留下了一个简单的假设 
这个假设只能表明 
那就是 房屋价格 
就等于 θ0 的值 
那就是类似于拟合了 
一条水平直线 对于数据来说 
这就是一个 
欠拟合 (underfitting) 
这种情况下这一假设 
它是条失败的直线 
对于训练集来说 
这只是一条平滑直线 
它没有任何趋势 
它不会去趋向大部分训练样本的任何值 
这句话的另​​一种方式来表达就是 
这种假设有 
过于强烈的”偏见” 或者 
过高的偏差 (bais) 
认为预测的价格只是 
等于 θ0 并且 
尽管我们的数据集 
选择去拟合一条 
扁平的直线 仅仅是一条 
扁平的水平线 我画得不好 
对于数据来说 
这只是一条水平线 因此 
为了使正则化运作良好 
我们应当注意一些方面 
应该去选择一个不错的 
正则化参数 λ 
并且当我们以后讲到多重选择时 
在后面的课程中 我们将讨论 
一种方法 
一系列的方法来自动选择 
正则化参数 λ 所以 
这就是高度正则化的思路 
回顾一下代价函数 
为了使用正则化 
在接下来的两段视频中 让我们 
把这些概念 应用到 
到线性回归和 
逻辑回归中去 
那么我们就可以让他们 
避免过度拟合了
 

Any programming problem can be solved by adding a level of indirection.

– David J. Wheeler

No Comments

Sorry, the comment form is closed at this time.