P7 正则化

发布时间 2024-01-02 14:56:39作者: 静听微风tom

如果我怀疑我的模型存在过拟合或者说高方差的问题

那么正则化可能是需要首先尝试的手段

获取更多数据可能也是不错的手段,很好理解,导致高方差的数据往往相较于大多数聚集的数据,比较分散,如果数据集足够庞大,这种个例兮兮的数据就会权重降低,但是获取数据并不简单,或者说会花费更多成本。

正则化有助于过拟合,也会降低神经网络的errors

我们以逻辑回归为例来解释

在逻辑回归中,我们会希望最小化代价函数:minJ(w,b),代价函数指的是每一个训练样本的预测的损失之和:从1到m J(w,b)=1/m ∑ L(y(i)output,y(i))+λ/2m ||ω||2  

这里的||ω||2  指的是从1到nx ∑ (ωj2 也等于ωTω

这叫做L2正则化,因为这里使用的是欧几里得范数,这里的b就不进行正则化了,因为w的维数比b高很多,b影响不大的。所有的参数几乎都集中在w上,b只是一个常量。

 

L1正则化就是改成λ/m |w|1,说白了这里的L1正则化就是对w的一范数进行了缩放,那么如果说w矢量内有很多0,这样的话,存放数据会变得容易,压缩了数据集的内存,然而L1正则化会让w变得稀疏,作用不大。

这边 λ是正则化参数,在python中,因为lambda是保留关键字,我们要把这里的正则化参数λ改写成lambd,避免语法冲突


 

那么在神经网络中怎么做正则化呢???

在神经网络中也会有一个代价函数J(w[1],b[1],.......,w[L],b[L])这边的L指的是神经网络的层数,代价函数指的是每一个训练样本的预测的损失之和:从1到m J(w,b)=1/m ∑ L(y(i)output,y(i))+λ/2m ||ω||2  

L2正则化又被称为权重衰减,也就是说对w[L] 会做w-w[L] *(1-dλ/m)-α(从反向传播得到的原梯度)

 

下一章讲解释为什么正则化有助于过拟合问题