返回顶部
首页 > 资讯 > 精选 >Dropout正则化对抗及过拟合是什么
  • 912
分享到

Dropout正则化对抗及过拟合是什么

2023-07-05 20:07:43 912人浏览 独家记忆
摘要

这篇“Dropout正则化对抗及过拟合是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Dropout正则化对抗

这篇“Dropout正则化对抗及过拟合是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Dropout正则化对抗及过拟合是什么”文章吧。

    1. 简介

    过拟合是我们大多数人在训练和使用机器学习模型时已经或最终会遇到的常见挑战。自机器学习诞生以来,研究人员一直在努力对抗过拟合。他们提出的一种技术是 dropout 正则化,其中模型中的神经元被随机移除。

    1.1. 什么是过拟合

    过拟合是指模型在其训练数据上过度训练,导致它在新数据上表现不佳。从本质上讲,在模型力求尽可能准确的过程中,它过分关注训练数据集中的细节和噪声。这些属性通常不存在于真实世界的数据中,因此模型往往表现不佳。当模型的参数相对于数据量而言太多时,就会发生过拟合。这可能导致模型过度关注与模型必须开发的一般模式无关的较小细节。例如,假设训练了一个复杂模型(许多参数)来识别图片中是否有马。在这种情况下,它可能会开始关注天空或环境的细节,而不是马本身。这可能发生在:

    • 该模型太复杂(具有太多参数)而不利于其自身。

    • 模型训练时间过长。

    • 训练模型的数据集太小。

    • 该模型在相同的数据上进行训练和测试

    • 训练模型的数据集具有重复的特征,使其容易过拟合。

    1.2. 重要性

    过拟合不仅仅是一个简单的烦恼——它会破坏整个模型。它给人一种模型表现良好的错觉,即使它无法对所提供的数据进行适当的概括。

    过拟合会产生极其严重的后果,尤其是在人工智能越来越普及的医疗保健等领域。由于过拟合而未经过适当训练或测试的 ai 可能导致错误诊断。

    2. 什么是Dropout

    • Dropout 是一种正则化技术

    理想情况下,对抗过拟合的最佳方法是在同一数据集上训练大量不同架构的模型,然后对它们的输出进行平均。这种方法的问题在于它非常耗费资源和时间。虽然相对较小的模型可能负担得起,但可能需要大量时间来训练的大型模型很容易压垮任何人的资源。

    Dropout 的工作原理是从输入层或隐藏层中“丢弃”一个神经元。多个神经元从网络中移除,这意味着它们实际上不存在——它们的传入和传出连接也被破坏。这人为地创建了许多更小、更不复杂的网络。这迫使模型不再完全依赖于一个神经元,这意味着它必须使其方法多样化并开发多种方法来实现相同的结果。例如,回到马的例子,如果一个神经元主要负责马的树部分,它的被丢弃将迫使模型更多地关注图像的其他特征。 Dropout 也可以直接应用于输入神经元,这意味着整个特征都从模型中消失了。

    通过在每一层(包括输入层)中随机丢弃神经元,将 Dropout 应用于神经网络。预定义的丢弃率决定了每个神经元被丢弃的机会。例如,dropout rate 为 0.25 意味着神经元有 25% 的几率被丢弃。在模型训练期间的每个时期都会应用 Dropout。

    3. 应用

    3.1. 数据集

    让我们从一个可能容易过拟合的数据集开始:

    # Columns: has tail, has face, has green grass, tree in background, has blue sky, 3 columns of noise | is a horse image (1) or not (0)survey = np.array([ [1, 1, 1, 1, 1, 1], # tail, face, green grass, tree, blue sky | is a horse image [1, 1, 1, 1, 1, 1], # tail, face, green grass, tree blue sky | is a horse image [0, 0, 0, 0, 0, 0], # no tail, no face, no green grass, no tree, no blue sky | is not a horse image [0, 0, 0, 0, 0, 0], # no tail, no face, no green grass, no tree, no blue sky | is not a horse image])

    此数据与我们的马及其环境示例相关。我们将图像的特性抽象为一种易于理解的简单格式。可以清楚地看到,数据并不理想,因为其中有马的图像也恰好包含树木、绿草或蓝天——它们可能在同一张照片中,但一个不影响另一个。

    3.2. 模型

    让我们使用 Keras 快速创建一个简单的 MLP:

    # Importsfrom keras.models import Sequentialfrom keras.layers import Dense, Dropoutimport numpy as np# Columns: has tail, has face, has green grass, tree in background, has blue sky, 3 columns of noise | is a horse image (1) or not (0)survey = np.array([ [1, 1, 1, 1, 1, 1], # tail, face, green grass, tree, blue sky | is a horse image [1, 1, 1, 1, 1, 1], # tail, face, green grass, tree blue sky | is a horse image [0, 0, 0, 0, 0, 0], # no tail, no face, no green grass, no tree, no blue sky | is not a horse image [0, 0, 0, 0, 0, 0], # no tail, no face, no green grass, no tree, no blue sky | is not a horse image])# Define the modelmodel = Sequential([    Dense(16, input_dim=5, activation='relu'),    Dense(8, activation='relu'),    Dense(1, activation='sigmoid')])# Compile the modelmodel.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])# Train the modelX = survey[:, :-1]y = survey[:, -1]model.fit(X, y, epochs=1000, batch_size=1)# Test the model on a new exampletest_example = np.array([[1, 1, 0, 0, 0]])prediction = model.predict(test_example)print(prediction)

    我强烈建议使用 python notebook(例如 Jupyter Notebook)来组织代码,这样您就可以快速重新运行单元而无需重新训练模型。沿每个注释拆分代码。

    让我们进一步分析我们正在测试模型的数据:

    test_example = np.array([[1, 1, 0, 0, 0]])

    本质上,我们有一张包含马的所有属性的图像,但没有包含在数据中的任何环境因素(绿草、蓝天、树木等)。模型输出:

    0.02694458

    即使模型有脸和尾巴——我们用它来识别马——也只有 2.7% 的概率确定图像是马。

    3.3. Dropout

    Keras 使实施 dropout 以及其他防止过拟合的方法变得非常简单。我们只需要返回到包含模型层的列表:

    # Define the modelmodel = Sequential([    Dense(16, input_dim=5, activation='relu'),    Dense(8, activation='relu'),    Dense(1, activation='sigmoid')])

    并添加一些 dropout 层!

    # Define the modelmodel = Sequential([    Dense(16, input_dim=5, activation='relu'),    Dropout(0.5),    Dense(8, activation='relu'),    Dropout(0.5),    Dense(1, activation='sigmoid')])

    现在模型输出:

    0.98883545

    马图像即使不包含环境变量,也有 99% 的把握是马!

    Dropout(0.5) 表示上层中的任何神经元都有 50% 的机会被“丢弃”或从存在中移除。通过实施 dropout,我们基本上以资源高效的方式在数百个模型上训练了 MLP。

    3.4. Dropout Rate

    为你的模型找到理想的 Dropout 率的最好方法是通过反复试验——没有万能的方法。从 0.1 或 0.2 左右的低丢失率开始,然后慢慢增加,直到达到所需的精度。使用我们的马 MLP,0.05 的 dropout 导致模型有 16.5% 的置信度图像是马的图像。另一方面,0.95 的 dropout 只是丢弃了太多神经元以使模型无法运行——但仍然达到了 54.1% 的置信度。这些值不适用于此模型,但这确实意味着它们可能适合其他模型。

    以上就是关于“Dropout正则化对抗及过拟合是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

    本文标题: Dropout正则化对抗及过拟合是什么

    本文链接: https://lsjlt.com/news/354860.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Dropout正则化对抗及过拟合是什么
      这篇“Dropout正则化对抗及过拟合是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Dropout正则化对抗...
      99+
      2023-07-05
    • Dropout 正则化对抗 过拟合
      目录1. 简介1.1. 什么是过拟合1.2. 重要性2. 什么是Dropout3. 应用3.1. 数据集3.2. 模型3.3. Dropout3.4. Dropout Ra...
      99+
      2023-05-14
      Dropout 正则化对抗过拟合 Dropout 正则化
    • Python中怎么使用正则表达式及正则表达式匹配规则是什么
      1 导库import re2 使用模板re_pattern = re.compile(pattern, flags=0) result = re.findall(re_pattern,string)3 说明参数描述pattern匹配的正则表...
      99+
      2023-05-14
      Python
    • 正则表达式原理及常用示例是什么
      这期内容当中小编将会给大家带来有关正则表达式原理及常用示例是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、正则的含义正则表达式就是用来操作字符串的一种逻辑公式二、正则表达式的应用场景数据分析时数据...
      99+
      2023-06-26
    • JavaScript通过RegExp使用正则表达式的方法是什么
      本篇内容介绍了“JavaScript通过RegExp使用正则表达式的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!RegExpEC...
      99+
      2023-07-05
    • CSS代码整理及优化七大原则是什么
      这篇文章将为大家详细讲解有关CSS代码整理及优化七大原则是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在有很多准则来帮助你在完成CSS布局后进行CS...
      99+
      2024-04-02
    • python虚拟机解释器及运行过程是什么
      今天小编给大家分享一下python虚拟机解释器及运行过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是pytho...
      99+
      2023-06-30
    • ArrayList集合初始化及扩容方法是什么
      这篇文章主要介绍“ArrayList集合初始化及扩容方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ArrayList集合初始化及扩容方法是什么”文章能帮助大家解决问题。ArrayList集...
      99+
      2023-07-05
    • 虚拟化服务器对硬盘的需求是什么
      虚拟化服务器对硬盘的需求主要包括以下几个方面: 存储容量:虚拟化服务器通常需要存储大量的虚拟机镜像、数据和日志等内容,因此需要足...
      99+
      2024-04-09
      虚拟化服务器 服务器
    • DHCP对IP地址管理方式及分配原则是什么
      本篇内容主要讲解“DHCP对IP地址管理方式及分配原则是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DHCP对IP地址管理方式及分配原则是什么”吧!DHCP(Dynamic Host Co...
      99+
      2023-06-03
    • Python虚拟机栈帧对象及获取的方法是什么
      本篇内容主要讲解“Python虚拟机栈帧对象及获取的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python虚拟机栈帧对象及获取的方法是什么”吧!Python虚拟机问题:在 Pyth...
      99+
      2023-07-05
    • 云服务器虚拟化是一种成本结构对吗为什么不对
      云服务器虚拟化是一种高效的计算机架构,可以将服务器硬件资源虚拟为多个逻辑资源,实现资源的共享和高效利用。虚拟化技术的优势在于可以提高计算效率、减少硬件投资、降低能耗和维护成本等。云服务器虚拟化的架构设计可以让用户只需购买一台云服务器,就可以...
      99+
      2023-10-28
      是一种 成本 结构
    • 网站优化过度的表现及解决办法是什么
      本篇文章为大家展示了网站优化过度的表现及解决办法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。网站优化过度对于网站的影响是很大的,因为,网站优化过度是被搜索引擎视为作弊的一种行为,如果网站优化...
      99+
      2023-06-10
    • 云服务器虚拟化是一种成本结构对吗为什么
      云服务器虚拟化是将计算资源(存储、网络和其他资源)分布在多个云计算服务提供商的平台上,以提供更高的性能和更好的安全性。 与传统的服务器虚拟化技术不同,云服务器虚拟化通过将多台物理服务器虚拟成一台虚拟服务器,从而实现高性能和高可靠性,并且能...
      99+
      2023-10-27
      是一种 成本 结构
    • PostgreSQL查询优化中对消除外连接的处理过程是什么
      本篇内容介绍了“PostgreSQL查询优化中对消除外连接的处理过程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,...
      99+
      2024-04-02
    • 云服务器虚拟化是一种成本结构对吗为什么这么重要
      云服务器虚拟化技术的优点有很多,其中最为突出的就是提高了服务器的可用性和可扩展性。通过云服务器虚拟化,用户可以将多个物理服务器虚拟成一个逻辑服务器,从而实现了更加灵活的IT架构,并且可以在一个云服务器上部署多个应用程序。同时,云服务器虚拟化...
      99+
      2023-10-28
      是一种 成本 结构
    • Java锁的膨胀过程以及一致性哈希对锁膨胀的影响是什么
      这篇文章给大家分享的是有关Java锁的膨胀过程以及一致性哈希对锁膨胀的影响是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、锁优化在JDK6之前,通过synchronized来实现同步效率是很低的,被syn...
      99+
      2023-06-29
    • PostgreSQL查询优化对表达式预处理中连接Var溯源的过程是什么
      本篇内容介绍了“PostgreSQL查询优化对表达式预处理中连接Var溯源的过程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大...
      99+
      2024-04-02
    • 大数据中对讲机使用过程中的常见故障及排除故障的解决方法是什么
      今天就跟大家聊聊有关大数据中对讲机使用过程中的常见故障及排除故障的解决方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  对讲机使用过程中的常见故障及排除故障的解决方法  问...
      99+
      2023-06-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作