机器学习笔记(三)——正则化最小二乘法

一. 模型的泛化与过拟合

在上一节中,我们的预测函数为:

f(x;ω)=ωT@H_@R_502_449@_44@x

其中,
x=[x1],ω=[ω1ω0]

上述称为线性模型,我们也可以将 x 扩展为:
x=xn@H_@R_502_449@_44@x2x1,ω=ωn@H_@R_502_449@_44@ω2ω1ω0

那么预测函数 f@H_@R_502_449@_643@(x;w) 就变为一个非线性函数。预测函数次数越高,越能准确地拟合训练数据。在某些情况下,高次预测函数会拟合大部分或全部训练数据,这时,我们就说这个模型过拟合。因为这种过度拟合训练数据的模型对未知数据的预测就不是那么准确了,它对训练数据外的其它数据是相当敏感的,也就是说它不够泛化。所以我们需要一个最好的模型,也就是说我们需要的模型误差要最小,而且还有一定的泛化能力。

二. 正则化最小二乘法

要避免模型过拟合,我们可以选择部分数据进行模型的训练,也可以利用正则化方法。一般来讲,正则化,有L1正则和L2正则,它们都是基于 Lp@H_@R_502_449@_44@ 范数的:

Lp@H_@R_502_449@_44@=(i@H_@R_502_449@_44@n@H_@R_502_449@_44@|xi@H_@R_502_449@_44@|p@H_@R_502_449@_44@)1@H_@R_502_449@_44@p@H_@R_502_449@_44@

这里我们选择模型的复杂度为L2正则: @H_404_857@n@H_@R_502_449@_44@i@H_@R_502_449@_44@ω2i@H_@R_502_449@_44@ ,写为向量形式为: ωT@H_@R_502_449@_44@ω 关于正则化的详细内容,可以参考:
http://www.jb51.cc/article/p-ewwyltlp-ue.html

那么我们新的损失函数可以写为:

L=L+@H_@R_502_449@_1017@λωT@H_@R_502_449@_44@ω=1N(ωT@H_@R_502_449@_44@XT@H_@R_502_449@_44@Xω2ωT@H_@R_502_449@_44@XT@H_@R_502_449@_44@y+yT@H_@R_502_449@_44@y)+λωT@H_@R_502_449@_44@ω

同样的对上式求偏导数:
Lω=@H_446_1301@1N(2XT@H_@R_502_449@_44@Xω2XT@H_@R_502_449@_44@y)+2λω=0(XT@H_@R_502_449@_44@X+NλI)ω=XT@H_@R_502_449@_44@yω=(@H_357_1502@XT@H_@R_502_449@_44@X@H_404_1524@+NλI)1XT@H_@R_502_449@_44@y

选择 λ 的值就是选择多项式拟合函数时,折中过拟合/泛化的过程。值太小,过拟合;值太大,不利于数据的逼近。至于 λ 的选择,可以采用交叉验证获得最好预测性能 λ

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...