深度学习: Regularization (正则化)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/JNingWei/article/details/79234406

Introduction

正则化,regularization,也即 约束 。是防止过拟合的诸多手段之一,很常用。

通过 限制 参数值域空间,显式地 控制了 模型复杂度,从而避免了过拟合。

对应total loss中的 decay loss

正则化手段

正则化手段包括了:
L1正则化、L2正则化、Elastic网络正则化、最大范数约束、随机失活、使用验证集。

L1正则化

假设待正则的网络层参数为 ω

l1=λ||ω||1=i|ωi|

λ :取值越大,则对模型复杂度的 约束程度 越大。

L2正则化

深度学习中 机器学习中
L2正则化 的 别名 权重衰减 (weight decay) 岭回归 (ridge regression)

l2=12λ||ω||22

Note

  • 现在正则化一般用L2正则化,因为其便于求导,从而方便优化;
  • L1正则化求导不易,大家一般不用。

Elastic网络正则化

Elastic网络正则化 = L1正则化 + L2正则化

功效
L1正则化 约束参数量级 + 稀疏化参数(可以造就更多的0值)
L2正则化 (只能)约束参数量级

lElastic=l1+l2=λ1||ω||1+λ2||ω||22

最大范数约束

最大范数约束,max norm constraints,通过 向 参数量级的范数 设置上限,从而正则化 (即 约束) 模型复杂度。

||ω||2<c

c:一般取 103104 数量级。

随机失活

随机失活,dropout,2012年于AlexNet中被提出。

Note :
- 只针对 全连接层 进行操作;
- 训练阶段和测试阶段的操作不同。

训练阶段

按概率p 随机 将神经元 置 0 [如下(b)图],以 缓解 神经元之间 隐形的协同适应,从而达到降低模型复杂度的目的:
这里写图片描述

别看dropout之后的网络只是原网络的一个 子网络 ,复杂度不比原网络。但由于每个神经元的dropout是 随机dropout,因此每一轮都相当于在一个 新的 子网络上训练。那么最终得到的模型便是 无数个 子网络 共同训练 的成果,效果自然会更好。

然后麻烦也来了,训练阶段的每个神经元要事先添加一道概率流程:
这里写图片描述

对应的公式变化如下如下:

  • 没有dropout的神经网络:
    这里写图片描述

  • 有dropout的神经网络:
    这里写图片描述

Tensorflow 中的 dropout API 如下:

tf.nn.dropout

其中,根据 keep_prob参数项 随机进行 dropout 。

# coding=utf-8

import tensorflow as tf
import numpy as np

inputs = np.random.uniform(-10, 10, size=[3, 3])
features = tf.placeholder_with_default(input=inputs, shape=[3, 3])

# 随机失活
output_dropout = tf.nn.dropout(features, keep_prob=0.5)

with tf.Session() as sess:
    print '\nfeatures :\n', sess.run(features)
    print '\n----------\n'
    print '\ndropout :\n', sess.run(output_dropout)
features :
[[ 0.53874537 -3.09047282 -2.88714205]
 [-1.92602402 -1.56025457  3.64309646]
 [-9.13147387  8.37367913 -7.9849204 ]]

----------

dropout :
[[  0.          -6.18094565  -5.77428411]
 [ -0.          -3.12050914   7.28619293]
 [-18.26294775  16.74735827  -0.        ]]

测试阶段

所有 神经元均呈 激活态,但其权重 需乘上 p 以保证各权重能有和 训练阶段 相同的 期望值
这里写图片描述

使用验证集

具体见:深度学习: 验证集 & 测试集 区别


[1] 解析卷积神经网络—深度学习实践手册
[2] 理解dropout

展开阅读全文

没有更多推荐了,返回首页