深度学习记录--正则化(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,保持未被失活单元的数据的完整性
代码实现:
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

相关文章:
深度学习记录--正则化(regularization)
什么是正则化? 正则化(regularization)是一种实用的减少方差(variance)的方法,也即避免过度拟合 几种正则化的方法 L2正则化 又被称为权重衰减(weight dacay) 在成本函数中加上正则项: 其中 由于在w的更新过程中会递减,即权…...
Java的便捷输入方法及解析
在 Java 中,有多种便捷的输入方法可以从用户那里获取输入。下面是一些常见的便捷输入方法及解析: 使用 Scanner 类:在上述示例中,首先导入了 java.util.Scanner 类,创建了一个 Scanner 对象,并使用 System…...
抖音矩阵云混剪系统源码(免授权版)多平台多账号一站式管理,附带系统搭建教程
搭建教程 MySQL 5.6 PHP 7.2 Apache 数据库名称 juzhen Nginx环境切换伪静态 1、解压安装包到项目根目录,找到application/database.php 更换自己的数据库密码 2、阿里云现有的配置不要动 其他按照文档进行添加 3、项目访问目录:public 4、域名…...
【Linux】权限的深度解析
前言:在此之前我们学习了一些常用的Linux指令,今天我们进一步学习Linux下权限的一些概念 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的学习 👈 💯代码仓库:卫卫周大胖的学习日记&a…...
c++函数怎么返回多个值
文章目录 使用结构体或类:定义一个结构体或类,其中包含了所有需要返回的值。然后在函数中返回这个结构体或类的实例。 struct Result {int value1;double value2;char value3; };Result myFunction() {Result r;r.value1 1;r.value2 2.0;r.value3 a;r…...
《剑指 Offer》专项突破版 - 面试题 15 : 字符串中的所有变位词(C++ 实现)
题目链接:LCR 015. 找到字符串中所有字母异位词 - 力扣(LeetCode) 题目: 输入字符串 s1 和 s2,如何找出字符串 s2 的所有变位词在字符串 s1 中的起始下标?假设两个字符串中只包含英文小写字母。例如&…...
03 SpringMVC响应数据之接收Cookie和请求头+原生API+共享域对象操作
下载postman,测试传json数据 1. 接收cookie 用CookieValue注解将cookie值绑定到控制器中的handler参数。 Controller类中的一个handler GetMapping("/CookieTest") public void handle(CookieValue("cookie的id(name)") String cookie) { //... }2. 接收…...
数据仓库(3)-模型建设
本文从以下9个内容,介绍数据参考模型建设相关内容。 1、OLTP VS OLAP OLTP:全称OnLine Transaction Processing,中文名联机事务处理系统,主要是执行基本日常的事务处理,比如数据库记录的增删查改,例如mysql、oracle…...
交换机配置及网络测试
实验环境 拓扑图 Ip规划表 部门 主机数量 网络地址 子网掩码 网关 可用ip Vlan 市场部 38 192.168.131.0 255.255.255.0 192.168.131.1 2-254 11 研发部 53 192.168.132.0 255.255.255.0 192.168.132.1 2-254 12 财务部 9 192.168.133.0 255.255.255…...
贪吃蛇游戏
文章目录 前言一.Win32API1.1GetStdHandle1.2GetConsoleCursorInfo1.3SetConsoleCursorInfo1.4SetConsoleCursorPosition1.5GetAsyncKeyState1.6setlocale二.游戏设计三.GameStart3.1蛇的创建3.2分文件3.3控制台设置3.4WelComeToGame3.5CreateMap3.6InitSnack3.7CreateFood 四.…...
DPDK trace 的简单使用
文章目录 前言trace的简单使用 前言 日志用于记录不太频繁,比较高level的事情。trace记录频繁发生的事情,它的开销低。 trace可以在运行时,通过参数控制是否启用;可以在任何时间点,将trace记录的缓冲区保存到文件系统…...
《游戏-01_2D-开发》
首先利用安装好的Unity Hub创建一个unity 2D(URP渲染管线)项目 选择个人喜欢的操作格局(这里采用2 by 3) 在Project项目管理中将双栏改为单栏模式(个人喜好) 找到首选项(Preferences)…...
如何禁用WordPress站点的管理员电子邮件验证或修改检查频率?
今天boke112百科登录某个WordPress站点时,又出现“管理员邮件确认”的提示,要求确认此站点的管理员电子邮箱地址是否仍然正确。具体如下图所示: 如果点击“稍后提醒我”,那么管理员邮件验证页面就会在3天后重新显示。 说实话&…...
三、MySQL实例初始化、设置、服务启动关闭、环境变量配置、客户端登入(一篇足以从白走到黑)
目录 1、选择安装的电脑类型、设置端口号 2、选择mysql账号密码加密规则 3、设置root账户密码 4、设置mysql服务名和服务启动策略 5、执行设置(初始化mysql实例) 6、完成设置 7、MySQL数据库服务的启动和停止 方式一:图形化方式 方式…...
Ubuntu20.04-剪贴板
针对图形界面用户 1.两种方式 1.1 安装Parcellite 简单轻量级剪贴板管理器 sudo apt install parcellite 1.2 安装Gpaste 更强大的剪贴板管理器,包含历史记录和同步功能 sudo apt install gpaste...
springmvc常用的组件
SpringMVC常用组件 以下的Handler也叫Controller。 1、DispatcherServlet:前端控制器,不需要工程师开发,由框架提供 作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求 2、H…...
Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
场景 Mysql中怎样设置指定ip远程访问连接: Mysql中怎样设置指定ip远程访问连接_navicat for mysql 设置只有某个ip可以远程链接-CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式,如果通过可视化工具比如Navicat来实现。 注:…...
vue2+webpack升级vue3+vite,报错Cannot read properties of null (reading ‘isCE‘)
同学们可以私信我加入学习群! 正文开始 前言问题分析解决总结 前言 系列文章:vue2webpack升级vue3vite,修改插件兼容性bug 前面的文章主要是介绍,在升级初始阶段遇到的一些显而易见的兼容性问题和bug。随着项目迭代的不断深入&a…...
【性能调优】local模式下flink处理离线任务能力分析
文章目录 一. flink的内存管理1.Jobmanager的内存模型2.TaskManager的内存模型2.1. 模型说明2.2. 通讯、数据传输方面2.3. 框架、任务堆外内存2.4. 托管内存 3.任务分析 二. 单个节点的带宽瓶颈1. 带宽相关理论2. 使用speedtest-cli 测试带宽3. 任务分析3. 其他工具使用介绍 本…...
Zabbix监控(2)
目录 一.自动发现 配置自动发现:(被动模式) 修改三台服务器的hosts文件: 修改agent02的配置文件: 访问页面,删除客服端主机配置: 在配置的自动发现中添加规则: 我们重启的zab…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
