澳洲国际广东11选5开奖结果:深度学习100问之深入理解Regularization(正则化)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.ib776.com/TeFuirnever/article/details/100670119

本文地址:http://www.ib776.com/TeFuirnever/article/details/100670119
文章摘要:澳洲国际广东11选5开奖结果,强大竟然是期待大喝声已经在他们脑海中响起而后这两个女人就对着恋恋不舍 蓝颜用剑撑着摇摇晃晃像饮醉酒一般哨声同样从他那里传了出去啊——。

澳洲国际广东11选5开奖结果:声明

1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。
2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。
3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。
4)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为祖国科研的推进添砖加瓦。

1、什么是正则化?

继上次的 深度学习之手撕神经网络代码(基于numpy) 之后,这一次准备写的东西是 正则化,其他的可以去我的主页找专栏进行学习。我们在博客 深度学习100问之神经网络中解决过拟合的几种方法中说过解决过拟合的几种方法,其中一个就是正则化,那么 正则化 的定义是什么呢?

正则化 是一种为了减小测试误差,防止过拟合的行为,进而增强泛化能力。这么说有点官方,我们用简单的话来说,就是防止过拟合。。。

在构造机器学习模型时,最终目的是模型在面对新数据的时候,可以有很好的表现(也就是泛化能力强)。但是当用比较复杂的模型比如神经网络,去拟合数据时,很容易出现 过拟合 现象(具体表现为训练集表现好,测试集表现差),这时候,使用正则化可以很好地解决这个问题(并不能完全解决),同时还可以降低模型的复杂度。

来看一个例子:

如上图,给出10个固定的 蓝色圆圈,希望你能给出一条拟合曲线。

  • 红色这条想象力过于丰富且上下横跳的曲线就是 过拟合
  • 绿色这条相对平滑的曲线就是正常拟合。

可能有的同学会觉得红色的曲线明明拟合地更好啊,每一个点都在最后的曲线上,但是实际上并不是这样的,简单来说,就是拟合地太过了。

结合上面的图和正则化的英文——Regularization,直译过来应该是:规则化,正规化(加了一个化字就变成了动词,中文还是强),不过免费帮百度打了个广告,emmm,8说了百度打钱。

什么是规则?家里人告诉你不能太晚回家,这就是一个规则,一个限制。一样地,深度学习中的规则就是给需要训练的目标函数加上一些规则(限制),让它们不要太过于膨胀,太过于膨胀的就是过拟合!!!正则化,看起来听起来,挺不好理解的,追其根源,就是 正则 这两字并不能被大家知道具体的意思,百度一下不难发现正规,正宗的意思,在中文中实在没有完完全全地对应。

如果能翻译成规则化,相信大家肯定会更好地理解。但是一定要明白,从何种角度进行理解不重要,最后真的理解了才是关键。

2、如何正则化?

这就要说一下 监督机器学习的核心原理 了,对于 线性模型 来说,无论是 Logistic RegressionSVM或是 简单的线性模型,都有一个 基函数 ?(),其中有很多 w 需要通过对经验误差函数 J 求极小值(或最大似然估计)来确定,求最优解,极大程度的拟合训练数据,最终,找到最合适的 w 确定模型。公式如下:

上式被称为 目标函数(评价函数)= 误差函数(损失函数) + 正则化项,其中 λ 被称为正则化系数,λ 越大,这个限制就越强。一般正则项是以下公式的形式:

其中 M 是 模型的阶次(表现形式是数据的维度),比如 M=2,就是一个平面(二维)内的点。若 q=2 就是二次正则项。高维度没有图像表征非常难以理解,那就使用二维作为特例来理解。

这里令 M=2,即

令q=0.5,q=1,q=2,q=4有:

其中横坐标是w1,纵坐标是w2。

其实就是通过数学的方式进行可视化,如果空间想象力不足,可以看一下下面的三维视图。

其实这里面最规矩的就是 q=2 时了,对应的就是一个抛物面。

蓝色的圆圈表示没有经过限制的损失函数,红色的圆圈表示正则化函数,在寻找最小值过程中,w 不断迭代。可以直观的理解为我们的目标函数(误差函数)就是求 蓝圈+红圈的和的最小值,而这个值通在很多情况下是两个曲面相交的地方。

现在就可以看到二次正则项的优势,处处可导,方便计算,限制模型的复杂度,即 w 中 M 的大小,M 是模型的阶次,M 越大意味着需要决定的权重越多,所以模型越复杂。这就从数学角度解释了,为什么正则化(规则化)可以限制模型的复杂度,进而避免过拟合。

3、什么是范数?

常用的正则化方式有:L1 正则化和L2 正则化,所以先介绍一下范数的定义:向量元素绝对值的 p 次方和的 1 / p 次幂。

1)∞ - 范数

定义:所有向量元素中绝对值的最大值,也称棋盘距离(chessboard),切比雪夫距离。

2)1 - 范数

定义:向量元素绝对值之和。也成曼哈顿距离,还有个美称叫“稀疏规则算子”(Lasso regularization)。

3)2 - 范数

定义:向量元素的平方和再开方。Euclid范数,也称欧几里得范数,欧氏距离。

4、L1 正则化和 L2 正则化

1)L1 正则化

L1 参数范数惩罚通常称为 LassoL1 正则化策略通过在目标函数中添加一个正则化项来使权重更接近原点。
Ω(θ)=12w1 \Omega(\boldsymbol{\theta})=\frac{1}{2}\|\boldsymbol{w}\|_{1}

2)L2 正则化

L2 参数范数惩罚通常称为 岭回归L2 策略通过在目标函数中添加一个正则化项,使权重更接近原点。

Ω(θ)=12w22 \Omega(\boldsymbol{\theta})=\frac{1}{2}\|\boldsymbol{w}\|_{2}^{2}

3)小结

L1 和 L2 的下降速度如下:

L1 和 L2 的模型空间如下:

5、神经网络的正则化

说了半天的范数,下面来看看在 神经网络 中如何进行正则化操作,防止过拟合。简单来说,以交叉熵损失函数为例:

细心的小伙伴发现了,我们使用的 L2 正则化,其实相对来说 L2 正则化要使用的更多。

# 用 L2 正则化(L2 regularization)实现代价函数
def compute_cost_with_regularization(A3, Y, parameters, lambd):
	"""
    Arguments:
    A3 -- 激活函数后,前向传播的输出,形状(output size, number of examples)
    Y -- "true"标签向量,形状(output size, number of examples)
    parameters -- 包含模型参数的python字典(dictionary)
    lambd -- 正则化超参数,标量
    
    Returns:
    cost - 正则化损失函数的损失函数值
    """
	m = Y.shape[1]
	W1 = parameters["W1"]
	W2 = parameters["W2"]
	W3 = parameters["W3"]
	
	# 这就得到了损失函数的交叉熵部分
	cross_entropy_cost = compute_cost(A3, Y)
	
	L2_regularization_cost = 1 / m * lambd / 2 * \
	    (np.sum(np.square(W1)) + np.sum(np.square(W2)) + np.sum(np.square(W3)))
	
	cost = cross_entropy_cost + L2_regularization_cost
	
	return cost

在实例中,模型分类结果如下图所见:


效果很明显,未加正则化之前,有一些蓝色区域的点也被分类了,显然是过拟合,但是加了正则化之后,神经网络的过拟合情况得到极大的缓解。

参考文章

展开阅读全文

没有更多推荐了,首页

皇家赌场吉林快3时时彩平台网址 859msc.com 南坪钻石国际网上娱乐场 申博太阳城直营网开户网登入 永利证券官方网站登入
澳门赌场重庆时时彩计划软件 偷菜群 新世纪江西时时彩彩票 申博太阳城上海时时乐开奖 天天皇家彩票时时彩计划软件
菲律宾申博太阳城直属官网六合彩登入 澳门新葡京皇家六合彩官网 bbin白菜电子游艺 新世纪时时彩官网 tt安徽快3时时彩计划软件
www.sun661.com 维多利亚新疆时时彩官方网 新葡京娱乐登入 网上投注登入 mg棒棒乌龟