根据奥卡姆剃刀定律,或许咱们能够经过下降复杂模型的复杂度来防止过拟合,这种原则称为正则化
直接拿网上的图来讲明过拟合机器学习
图一欠拟合,图二是符合预期,图三过拟合
机器学习的模型是但愿有良好的泛化效果,图三的训练结果太贴合训练集,就会致使后面基于新数据的预测会不许确。学习
咱们怎么解决这个过拟合的状况,根据奥卡姆剃刀定律(机器学习模型越简单,良好的实证结果就越有可能不单单基于样本的特性),因此咱们但愿模型须要更简单。
也就是说,模型训练并不是只是以最小化损失(经验风险最小化)为目标,而是以最小(损失+模型复杂)为目标,这也称为结构风险最小化:
minimize(Loss(Data|Model)+complexity(Model))
好了,这里专家们出现了,定义:Loss(Data|Model)为损失项,complexity(Model)为正则化项,衡量模型复杂度。
上图的数据公式为:
f(x)=w0x0+w1x1+w2x2+...+wnxn
减小模型复杂度,减小特征(x)数量就能够。这里就须要介绍0、一、2范数了。spa
0范数,向量中非零元素的个数。
1范数,为绝对值之和。
2范数,就是一般意义上的模。
这里看0范数很符合咱们的要求,非零元素的个数少,模型就简单。
可是0范数比较恶心,是个NP-hard问题。同时1范数是0范数的最优凸近似
minimize(Loss(Data|Model)+lambda|W|1 )code
L2范数就是指向量各元素的平方和而后求平方根。咱们让L2范数的正则项||W||2最小,可使得W的每一个元素都很小,都接近于0,但与L1范数不一样,它不会让它等于0,而是接近于0。ip
a、1范数和0范数能够实现稀疏,能够来筛选特征。
b、2范式主要在不减小特征的状况解决过拟合。it