dropout 算法是如何防止过拟合的

简介: dropout在训练的过程中,可以很好的防止过拟合,是因为它可以随机性的让一些神经元不处于激活状态。

时间回到2012年,深度学习大佬 Hinton在其论文《Improving neural networks by preventing co-adaptation of feature detectors》中,提出了一种随机无差别消灭神经元的方法,

同样是2012年,Hinton大佬使用这种方法来训练 AlexNet,一种图像识别网络,赢得了2012年图像识别大赛冠军,引爆了神经网络应用的热潮。

从此,图像识别正式从科学界的研究中,走进了普罗大众的视野。

为何科学家钟爱这种无差别随机消灭的算法?

在AI算法中,这种随机无差别消灭神经元的方法,叫做 dropout。它是一种随机将神经元参数置为零的方法,神经元只有在参数非零的情况下,才能参与运算,对最终的结果产生影响,可想而知,将神经元参数置为零,意味着神经元不参与任何计算。

也就是说,神经元死了。

有的人活着,他已经死了。有的人死了,他还活着。

但神经元死了,可能比活着的作用还大。

只因为,死了的神经元,可以在神经网路模型的训练阶段,有效的防止训练过拟合。

什么是拟合

时间回到我们初中的数学课。

数学老师会给我们下面一张图。问有哪位同学能计算出一个函数出来,用来预测一个房子面积对应的房子价格?

image.png

数学成绩稳定在59分以上的同学,这时候可能都会举起手来喊道,“老师,这题我会!”

首先我们假设有一个直线 y = ax + b,然后算出每个点到直线的距离之和,当距离之和最短时,得到的a和b的值就是直线的参数,这样就得到了一个函数,也就是一条直线。

没错,这就是拟合,这种简单的拟合方法,叫做线性拟合,也叫线性回归!

在处理离散数据时,数据拟合是一个很常用的方法。

说到这你可能明白了,其实,神经网络的训练过程就是一个很复杂的拟合过程,它拟合出来的不再是一个简单的一次函数,而是可能连我们自己都不知道的一种函数,或者说是一个黑盒。

image.png

人工智能就通过这个黑盒的运算,来推断出,它看到的一张图片上,画的是一只狗,还是一只猫。

那什么是过拟合

假如老师又给了你下面一张散点图,让你用一种手段把所有的点都连接(拟合)起来。

image.png

小明同学的做法简单粗暴,画出了下面的图形,

image.png

看着还不错,拟合地刚刚好,已经把所有的点都连接起来了,而且点与点之间有一定的几何关系。

酷爱绘画的小红同学,拿到图之后,一顿操作猛如虎,得到下面的一张图,

image.png

初中老师看了小红惊为天人的操作,大惊失色,但却随后说出了一句:“你过拟合了。”

过拟合,就是说,这张可爱的小猫咪或许只能在我给你的这张图上用点连起来,我再给你其他的图,你可能就画不出来猫咪了,甚至连动物都有可能都连不起来了。

但是,上面小明同学的做法就很好,很有普适性,或者叫泛化性,给你任何的散点图,都可以画出那种横竖的线段出来。

神经网络的过拟合与人工智障

神经网络训练时处理的也是数据,有数据就有模型拟合,有模型拟合就有模型过拟合。

也就是说,模型训练的过头了,因为它只在给定的数据上做了十分精确的匹配,却缺少了泛化性!

image.png

比如我们只用自己家的一只白猫照片来训练一个什么也不知道的神经网络,无时无刻的不告诉他,这是一只猫。在神经网络看了1000遍照片之后,他懂了,他知道了这是一只猫。

可是突然有一天,又来了一只橘猫,甚至还戴着一顶圣诞帽。

image.png

神经网络懵了,没见过啊,活这么大只见过自家的白猫,这个橘色的头上还带着个东西的生物,是个啥?

这哪里算的上人工智能,典型的人工智障。

怎么解决

把神经网络的神经元每次都随机消灭一部分,让神经网络每次看到的自家白猫的图片不是一整张,而是分散的局部。

比如第一次看到的是一只猫耳朵,第二次看到的是一只猫眼睛,第三次看到的是猫嘴巴,经过若干轮的训练之后,即使这个神经网络看到一只猫咪的小爪子,他大概也会知道,哦,这是一只猫。

那么即使这时候来了一只开着飞机的猫,只要它有着和白猫一样的尖尖的耳朵,神经网络一眼就能认出它。

小样,你以为你穿个马甲我就不认你了。

...

人类大脑的模糊处理

而实际上,人类的脑神经在理处数据的候时,也不是每个数据都格严处理,大脑在处理信息时,也是一种类似的模糊处理方式,会随机的丢弃掉某些信息。

说到这你或许都没有发现,前面一句话,有3个中文词语是反着写的。

模糊处理有很多好处,最明显的就是,降低大脑的运行密度,我们不需要逐字逐句的解读,就能明白一句话的意思,丝毫不影响我们的阅读体验。

避免过拟合的其他方法

当然,在实际的神经网络训练过程中还有很多其他的方法可以防止过拟合的出现。比如数据增强、正则化(L1/L2)等方法。以后有机会会再写写正则的东西的。

欢迎持续关注。

相关文章
|
6月前
|
机器学习/深度学习 数据采集 算法
|
机器学习/深度学习 算法
Interview:算法岗位面试—10.24下午—上海某软件公司(机器学习,上市)电话面试—考察SVM、逻辑回归、降低过拟合、卷积网络基础等
Interview:算法岗位面试—10.24下午—上海某软件公司(机器学习,上市)电话面试—考察SVM、逻辑回归、降低过拟合、卷积网络基础等
|
人工智能 算法 Python
07 回归算法 - 过拟合欠拟合 - 案例
1、引入头文件 import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import pandas as pd import warnings import sklearn from sklearn.
1447 0
|
算法
06 回归算法 - 损失函数、过拟合欠拟合
== 损失函数 == 损失函数是衡量一个模型好坏的指标,一般来说损失函数的值越小越好。 0~1损失函数: J(θ)=$begin{cases}1,Y≠f(X)\0,Y=f(X)\end{cases}$ 如果预测值不等于真实值,J(θ)值加1。
3070 0
|
26天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
11天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
12天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
13天前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。
|
12天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
12天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
31 3