谈谈自己对正则化的一些理解~

上学的时候,就一直很好奇,模式识别理论中,常提到的正则化到底是干什么的?渐渐地,听到的多了,看到的多了,再加上平时做东西都会或多或少的接触,有了一些新的理解。

1. 正则化的目的:防止过拟合!

2. 正则化的本质:约束(限制)要优化的参数。


关于第1点,过拟合指的是给定一堆数据,这堆数据带有噪声,利用模型去拟合这堆数据,可能会把噪声数据也给拟合了,这点很致命,一方面会造成模型比较复杂(想想看,本来一次函数能够拟合的数据,现在由于数据带有噪声,导致要用五次函数来拟合,多复杂!),另一方面,模型的泛化性能太差了(本来是一次函数生成的数据,结果由于噪声的干扰,得到的模型是五次的),遇到了新的数据让你测试,你所得到的过拟合的模型,正确率是很差的。


关于第2点,本来解空间是全部区域,但通过正则化添加了一些约束,使得解空间变小了,甚至在个别正则化方式下,解变得稀疏了。这一点不得不提到一个图,相信我们都经常看到这个图,但貌似还没有一个特别清晰的解释,这里我尝试解释一下,图如下:


这里的w1,w2都是模型的参数,要优化的目标参数,那个红色边框包含的区域,其实就是解空间,正如上面所说,这个时候,解空间“缩小了”,你只能在这个缩小了的空间中,寻找使得目标函数最小的w1,w2。左边图的解空间是圆的,是由于采用了L2范数正则化项的缘故,右边的是个四边形,是由于采用了L1范数作为正则化项的缘故,大家可以在纸上画画,L2构成的区域一定是个圆,L1构成的区域一定是个四边形。


再看看那蓝色的圆圈,再次提醒大家,这个坐标轴和特征(数据)没关系,它完全是参数的坐标系,每一个圆圈上,可以取无数个w1,w2,这些w1,w2有个共同的特点,用它们计算的目标函数值是相等的!那个蓝色的圆心,就是实际最优参数,但是由于我们对解空间做了限制,所以最优解只能在“缩小的”解空间中产生。


蓝色的圈圈一圈又一圈,代表着参数w1,w2在不停的变化,并且是在解空间中进行变化(这点注意,图上面没有画出来,估计画出来就不好看了),直到脱离了解空间,也就得到了图上面的那个w*,这便是目标函数的最优参数。


对比一下左右两幅图的w*,我们明显可以发现,右图的w*的w1分量是0,有没有感受到一丝丝凉意?稀疏解诞生了!是的,这就是我们想要的稀疏解,我们想要的简单模型。

还记得模式识别中的剃刀原理不?倾向于简单的模型来处理问题,避免采用复杂的。


这里必须要强调的是,这两幅图只是一个例子而已,没有说采用L1范数就一定能够得到稀疏解,完全有可能蓝色的圈圈和四边形(右图)的一边相交,得到的就不是稀疏解了,这要看蓝色圈圈的圆心在哪里。


此外,正则化其实和“带约束的目标函数”是等价的,二者可以互相转换。关于这一点,我试着给出公式进行解释:

针对上图(左图),可以建立数学模型如下:



通过熟悉的拉格朗日乘子法(注意这个方法的名字),可以变为如下形式:



看到没,这两个等价公式说明了,正则化的本质就是,给优化参数一定约束,所以,正则化与加限制约束,只是变换了一个样子而已。


此外,我们注意,正则化因子,也就是里面的那个lamda,如果它变大了,说明目标函数的作用变小了,正则化项的作用变大了,对参数的限制能力加强了,这会使得参数的变化不那么剧烈(仅对如上数学模型),直接的好处就是避免模型过拟合。反之,自己想想看吧。。。


个人感觉,“正则化”这几个字叫的实在是太抽象了,会吓唬到人,其实真没啥。如果改成“限制化”或者是“约束化”,岂不是更好?


神经网络是一种模拟人脑神经系统的计算模型,它由多层神经元组成,能够通过学习调整权重和偏置等参数,从而实现图像识别、语音识别、自然语言处理等复杂任务。下面将从神经元、网络结构、激活函数、损失函数、优化器、正则化等方面详细介绍神经网络算法。 一、神经元 神经元是神经网络的基本单元,它接收多个输入信号,通过加权和运算和激活函数的处理,产生一个输出信号。神经元中的权重和偏置等参数可以通过训练调整,从而实现对输入信号的分类、回归等任务。神经元的公式如下: $$ y=f(\sum_{i=1}^n w_ix_i+b) $$ 其中,$y$表示神经元的输出,$f$表示激活函数,$w$表示权重,$x$表示输入信号,$b$表示偏置。 二、网络结构 神经网络的结构主要包括输入层、隐藏层和输出层,其中隐藏层可以包括多个层次。输入层接收输入数据,输出层产生输出结果,隐藏层通过多层神经元进行信息处理。神经网络的结构可以通过调整隐藏层数、每层神经元数量、激活函数等参数来优化网络性能。 三、激活函数 激活函数是神经元中的非线性函数,它通过对输入信号进行变换,产生非线性输出,从而使神经网络能够处理更加复杂的数据。常用的激活函数包括 sigmoid、ReLU、Tanh 等。激活函数的选择可以根据任务需求和网络性能进行调整。 四、损失函数 损失函数是神经网络中的一个重要指标,它用于衡量模型预测结果与实际结果之间的差距。常用的损失函数包括均方误差、交叉熵等。损失函数的选择可以根据任务需求和网络性能进行调整。 五、优化优化器是神经网络中的一个重要组件,它用于调整模型中的权重和偏置等参数,从而使损失函数最小化。常见的优化器包括随机梯度下降、Adam、Adagrad 等。优化器的选择可以根据任务需求和网络性能进行调整。 六、正则化 正则化是神经网络中的一个重要技术,它用于解决过拟合问题,从而提高模型的泛化性能。常见的正则化方法包括 L1 正则化、L2 正则化、dropout 等。正则化的选择可以根据任务需求和网络性能进行调整。 总之,神经网络是一种强大的计算模型,它通过多层神经元和非线性激活函数等操作,实现对复杂数据的处理和分类等任务。随着深度学习技术的不断发展,神经网络也将在更多领域发挥重要作用,为人类带来更多的智能化服务。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值