深度学习记录--正则化(regularization)

什么是正则化?

正则化(regularization)是一种实用的减少方差 (variance )的方法,也即避免过度拟合

几种正则化的方法

L2正则化

又被称为权重衰减(weight dacay)

在成本函数中加上正则项:

其中

由于在w的更新过程中会递减,即权重衰减

w递减的过程,实际上是w趋近于0的过程

在这个过程中,部分单元的影响逐渐减小(可以近似看作隐藏 ),最终成为深层神经网络(类似线性回归),从最开始的右图逐渐变为左图,即从high variance --> high bias

在变化的中间存在一个just right的状态,这个状态则是最优情况

缺点:

为了搜索合适的正则化参数lambda,需要进行大量验证计算,花费时间很长

dropout(随机失活)

dropout基本原理:将神经网络中的部分单元进行随机删除/失活 (将它们的影响降至几乎不存在),让原本的神经网络样本训练规模变小

常用方法:inverted dropout(反向随机失活)

设置一个概率参数keep_prob,在例子中设置为0.8,表示有0.2的概率让单元失活

设置bool矩阵d3,将a3矩阵与d3矩阵进行矩阵乘法 运算,然后a3/=keep_prob,保持未被失活单元的数据的完整性

代码实现:

python 复制代码
import numpy as np
a3=np.random.rand(3,3)
print("before dropout : \n",a3)
keep_prob=0.8
# print(a3.shape[0],a3.shape[1])
d3=np.random.rand(a3.shape[0],a3.shape[1])<keep_prob
# print("d3 = ",d3)
a3=np.multiply(a3,d3)
a3/=keep_prob
print("after dropout : \n",a3)

运行结果:

dropout合理性的解释

dropout会压缩权重(shrink weights),完成预防过拟合的外层正则化(类似L2正则化的功能),与L2正则化不同的是,dropout对不同的应用方式,会产生不同的效果

keep_prob的数值越小,dropout的效果越显著

对于某些层,若担心过拟合,可以设置更小的keep_prob参数值,而对于其他层,若无需使用dropout,则可以设置keep_prob=1

缺点

需要进行许多验证来得出不同的keep_prob参数值

同时,因为每次迭代部分节点都会被随机移除,J函数的定义无法被明确给出,难以对递减程度进行评估与复查

数据扩增data augmentation

当无法获得充足的数据时,又需要大量的数据时,则会选择这种方法:

对原有数据进行一定的处理,产生新的数据

缺点

需要额外的算法验证,对新数据判断是否合理

early stopping

只需运行一次梯度下降,找到w的较小值,中间值和较大值

在梯度下降过程中及时停止,得到较合理的dev set error和train set error

相关推荐
Gigavision4 小时前
基于BUAA-MIHR数据集的噪声解耦对比学习算法
人工智能·python·深度学习·算法
红海云4 小时前
Kimi 双端接入 CloudBase 的工程价值
人工智能·语言模型
计算机编程-吉哥5 小时前
YOLO26 vs YOLO11 vs YOLOv8:深度学习咖啡果实成熟度分割系统【计算机毕业设计选题推荐】
人工智能·python·深度学习·yolo·django·毕业设计
冬奇Lab5 小时前
一年前没启动 AI 提效的团队,今年在付什么钱?
人工智能
NeoGressAI外贸数字化6 小时前
IOR新规9月18日生效:Form 5106六项资料自查清单
人工智能
根目录下的猫6 小时前
RK3588适配的轻量级AI模型推荐
人工智能·后端·python·目标检测
weixin_6687 小时前
Cursor 插件使用说明:Linear 与 Figma
人工智能·cursor
wshzd7 小时前
LLM之Agent(六十八)|PI(七)构建测试与开发流程
人工智能
H0311169857 小时前
App竞品数据平台功能梳理:月狐数据、七麦数据、点点数据
人工智能
YOLO数据集集合7 小时前
高铁轨道紧固件损坏检测数据集 | 高铁巡检 紧固件缺陷 轨道安全9093期
人工智能·目标检测·计算机视觉·目标跟踪·轨道·铁轨紧固件·铁轨