当前位置: 首页 > news >正文

lossBN

still tips for learning

    • classification and regression
    • 关于softmax的引入和作用
    • 分类问题损失函数 - MSE & Cross-entropy⭐
    • Batch Normalization(BN)⭐
      • 想法:直接改error surface的landscape,把山铲平
      • feature normalization
      • 那我们如何继续传播normalization的参数呢?
      • 添加参数γ,​β调整输出分布
      • testing (又叫inference中),pytorch提供moving average
      • 对batch normalization的研究结果
    • 援引

classification and regression

分类和回归做的事情都差不多,不同的是最后输出结果,分类输出的 y 是向量,不是数值,最后的 y’ 要把 y 经过一个softmax函数再输出,使 y’ 的值在0~1之间
之前分类宝可梦,讲到 把分类问题向回归问题靠拢,分类的输出应当如何表示?

把每一类当作一个数字,但是数字之间有关系,类别之间不一定和数字之间的关系保持一致比如大小,是否相邻

实际问题中,有可能真的存在这种类别间的相似关系。例如:用身高和体重预测学生的年级。一年级和二年级的身高和体重比较接近,但一年级和三年级的身高和体重比较不相似。

在这里插入图片描述

若将分类问题当做回归问题,正确的类别编码方式是:将类别表示为独热码one-hot vector。这种向量表示法,不会使类别间产生不存在的相似关系,神经网络需要输出的结果不再是一个数值,而是一个向量,向量的元素个数与类别个数相同。

关于softmax的引入和作用

从generative的model开始讲起,一路讲到logistic regression

因为softmax是从generative model的后验概率式子推出来的

softmax的输入往往被叫做 Logit

softmax的作用:除了normalize以外,还可以对最大值做强化,因为在做第一步的时候,对原始输出z取exponential会使大的值和小的值之间的差距被拉得更开,也就是强化大的值。

浅浅打一个问号????

分类问题损失函数 - MSE & Cross-entropy⭐

在这里插入图片描述

cross-entropy,win!!! cross-entropy常用到 cross-entropy 和 softmax 在pytorch里面是绑在一起的
copy cross-entropy,里面自动内建了softmax,使用cross-entropy的时候,pytorch自动把softmax加在network的最后一层

why win?
explain1:交叉熵其实是用极大似然式子推出来的???
explain1:
从optimization的角度
1、数学证明 链接废了
2、举例说明
根据 label data可以知道最终的分类结果是y1
y3进行exp运算后非常小,可以忽略不记,看y1,y2

y1越大y2越小自然就是loss最小的情形啦,如右下角
左上角反之
在这里插入图片描述
通过cross-entropy,左上角有斜率,有办法通过gradient往下走,
卡住了,在loss很大的地方很平坦,gradient非常小趋近于0,离目标又很远,很大可能性就train不下去

因为Cross-entropy的左上角比较陡峭,所以收敛更快更好,MSE左上角比较平缓,所以收敛较慢。

loss function的定义都能影响train的容易程度

Batch Normalization(BN)⭐

想法:直接改error surface的landscape,把山铲平

常用在 CNN、影像处理

直接改landscape,error surface 很崎岖的时候比较难train
把山铲平,让他容易train一点

when error surface is confessed,是个碗的形状,都不见得很好train

假设两个参数对loss的斜率差别非常大,在w1这个方向变化很小,在w2这个方向变化很大,坡度非常不一样,在固定的learning rate上很难得到好的结果

需要adapted Learning rate,如Adam,等进阶的optimization

或者一个更直接的想法:直接改landscape
两个参数对loss的斜率差别非常大,这种现象产生的根本原因是什么

在w1这个方向变化很小,可能输入很小,对L影响很小
w1改变一点,对L影响不大

于是 制造出近似于"圆形"(各方向平滑)的 error surface,有很多办法,统一命名为Feature Normalization,下面是一种Feature Normalization。

让feature里面不同的dimension 有相同的数值范围,制造一个比较好的error surface
很多种方法,统称为feature normalization

feature normalization

在这里插入图片描述

这种操作其实叫做标准化,standardization,,除以的是标准差(Standard Deviation)

得到normalization以后的数值放回每一行相应的位置,这样的好处是

1、做完 normalize 以后,每个维度上面的数值就会平均是 0,然后它的 方差和就会是 1,所以这一排数值的分布就都会在0 00 上下
2、对每一个维度都做一样的 normalization,就会发现所有 feature 不同维度的数值都在 0 上下,那因为不同x
xx的取值范围接近,可能会制造出一个好的error surface,让loss收敛得更快一点,达到训练加速的效果。

3、因为我们大多都采用Sigmoid
Function,它的图象是越远离0越不敏感,存在着一定的饱和区间,这样将数据都集中在0附近可以更快更新梯度。

假设 x ⃗ 1 \vec x^1 x 1 x ⃗ R \vec x^R x R是我们所有的训练资料 的 feature vector
在这里插入图片描述
我们将 x ~ r \tilde{x}^r x~r 传到神经网络后,与 w ~ r \tilde{w}^r w~r相乘得到 Z ~ r \tilde{Z}^r Z~r ,虽然我们的
x ~ r \tilde{x}^r x~r 经过了Normalization,但 Z ~ r \tilde{Z}^r Z~r
还是再不同的区间,他们的分布仍然有很大的差异的化,我们再训练下一层的时候还是会遇到相同的困难,所以我们这边要对 Z ~ r \tilde{Z}^r Z~r
或者是 a ~ r \tilde{a}^r a~r 也进行一次Normalization的操作

在activation function之前还是之后做normalization呢,差别不大

但如果选择得是sigmoid function,推荐在activation function之前做feature normalization,因为sigmoid函数S形状嘛,在0附近斜率比较大,选择在 Z ~ r \tilde{Z}^r Z~r后面进行Normalization的操作,把所有的挪到0附近,gradient就比较大

那我们如何继续传播normalization的参数呢?

方法如下:那你就把 Z ~ r \tilde{Z}^r Z~r 想成是另外一种 feature ,我们这边有 Z 1 ~ r \tilde{Z1}^r Z1~r Z 2 ~ r \tilde{Z2}^r Z2~r Z 3 ~ r \tilde{Z3}^r Z3~r
,我们就把 Z 1 ~ r \tilde{Z1}^r Z1~r Z 2 ~ r \tilde{Z2}^r Z2~r Z 3 ~ r \tilde{Z3}^r Z3~r 拿出来,算一下它的 mean,
这边的 μ ~ \tilde{μ} μ~ 是一个 vector
(嗯?如果我没理解错的话,这里说 μ ~ \tilde{μ} μ~ σ ~ \tilde{σ} σ~ 都是代表着vector是因为整体数据分成了若干个batch,每个batch对应一个μ和σ,但愿,没理解错★),
我们就把 Z 1 ~ r \tilde{Z1}^r Z1~r Z 2 ~ r \tilde{Z2}^r Z2~r Z 3 ~ r \tilde{Z3}^r Z3~r 这三个 vector 算他们的平均值得到 μ ~ \tilde{μ} μ~,再算他们的标准差得到 σ ~ \tilde{σ} σ~ , 它也代表了一个 vector,
然后

在这里插入图片描述
把两个向量对应的element进行相除

在这里插入图片描述
之前独立处理,现在变得彼此关联了
z 1 z^1 z1 改变,123都跟着改变
在这里插入图片描述

看来一定要有个够大的batch size,这个batch才足以表示整个copes的分布

添加参数γ,​β调整输出分布

往往还有这样的设计

γ,​β,是network的参数,另外再learn出来的

输出的平均值是0,也许会给network一些限制,带来一些负面影响, 于是设计γ,​β来调整输出的分布
在这里插入图片描述
那为什么要加上β 跟 γ 呢,如果我们做 normalization 以后,那这边的z ,它的平均就一定是 0那也许,今天如果平均是 0 的话,就是给那 network一些限制,也许这个限制会带来什么负面的影响,所以我们把 β 跟 γ 加回去,后面network会自己调整 β 跟 γ的值。
但这不是和之前我们初衷相背离了嘛,我们之前就是想要他们保持在0附近并且range一样。其实没有,我们最开始的时候β ββ 的初始值里面全部都是0向量, γ γγ 就是里面全部都是1的向量,所以在训练开始阶段每一个dimension 的分布是比较接近的,但训练一段时间后已经找到一个比较好的 error surface,那再把γ 跟β 学习出其他的值慢慢地加进去。

在这里插入图片描述

testing (又叫inference中),pytorch提供moving average

不一定会一次性给定所有数据,或者是给够一个batch的数据,不能说等累计到一个batch再开始运算,于是pytorch提供了一个方法,moving average,大概就是在不完全具备一个batch的数据的时候就可以计算出一个 μ ~ \tilde{μ} μ~

在这里插入图片描述

对batch normalization的研究结果

在这里插入图片描述

一般都会选择relu,sigmoid比较难train,但是加BN还是可以train起来

learning rate 变大30倍

援引

batch normalization这块的内容,笔记有照抄这位博主,笔记真难记!
BatchNorm和LayerNorm——通俗易懂的理解(还没学齐,据说解释的好,先码住!!!

相关文章:

lossBN

still tips for learning classification and regression关于softmax的引入和作用分类问题损失函数 - MSE & Cross-entropy⭐Batch Normalization(BN)⭐想法:直接改error surface的landscape,把山铲平feature normalization那…...

【微信小程序】数字化会议OA系统之投票模块(附源码)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯&#x1f3a…...

clang-前端插件-给各种无花括号的“块”加花括号-基于llvm15--clang-plugin-add-brace

处理的语句 case 术语约定或备忘 case起止范围: 从冒号到下一个’case’开头, 简称有: case内 、case内容Ast: Abstract syntax tree: 抽象语法树没插入花括号的case 若case内, 以下任一条成立,则 跳过该case 即 不会对该case内容用花括号包裹. 有#define、有#include、有…...

python爬虫-某政府网站加速乐(简单版)实例小记

# -*- coding:utf-8 -*- # Time : 2023/10/23 17:06 # Author: 水兵没月 # File : 哈哈哈哈.py # Software: PyCharm ####################import random import requests# 代理 def get_proxy(proxy_typerandom.choice([1,2,3,4,5])):url "http://ZZZZZZZZZZZZZZZZZZ&qu…...

stable diffusion简介和原理

Stable Diffusion中文的意思是稳定扩散,本质上是基于AI的图像扩散生成模型。 Stable Diffusion是一个引人注目的深度学习模型,它使用潜在扩散过程来生成图像,允许模型在生成图像时考虑到文本的描述。这个模型的出现引起了广泛的关注和讨论&am…...

【机器学习】模型平移不变性/等变性归纳偏置Attention机制

Alphafold2具有旋转不变性吗——从图像识别到蛋白结构预测的旋转对称性实现 通过Alphafold2如何预测蛋白质结构,看有哪些机制或tricks可以利用? 一、等变Transformer 等变Transformer是Transformer众多变体的其中一种,其强调等变性。不变性…...

c++的4中类型转换操作符(static_cast,reinterpret_cast,dynamic_cast,const_cast),RTTI

目录 引入 介绍 static_cast 介绍 使用 reinterpret_cast 介绍 使用 const_cast 介绍 使用 dynamic_cast 介绍 使用 RTTI(运行时确定类型) 介绍 typeid运算符 dynamic_cast运算符 type_info类 引入 原本在c中,我们就已经接触到了很多类型转换 -- 隐式类型转…...

CNN实现与训练--------------以cifar10数据集为例进行演示(基于Tensorflow)

本文以cifar10数据集为例进行演示 (cifar10数据集有5万张3232像素点的彩色图片,用于训练有1万张3232像素点的彩色图片,用于测试) import tensorflow as tf import os import numpy as np from matplotlib import pyplot as plt from tensorflow.keras.layers import Conv2…...

YOLOv5算法改进(21)— 添加CA注意力机制 + 更换Neck网络之BiFPN + 更换损失函数之EIoU

前言:Hello大家好,我是小哥谈。通过上节课的学习,相信同学们一定了解了组合改进的核心。本节课开始,就让我们结合论文来对YOLOv5进行组合改进(添加CA注意力机制+更换Neck网络之BiFPN+更换损失函数之EIoU),希望同学们学完本节课可以有所启迪,并且后期可以自行进行YOLOv5…...

面对6G时代 适合通信专业的 毕业设计题目

对于通信专业的本科生来说,选择一个与学习内容紧密相关的毕业设计题目十分重要。 以下是东枫科技建议的题目,它们涵盖了通信技术的不同方面: 高校老师可以申请东枫科技工程师共同对学生指导,完成毕业设计。 基于5G/6G的通信技术…...

使用Python实现一个简单的斗地主发牌

使用Python实现一个简单的斗地主发牌 1.源代码实现2.实现效果 1.源代码实现 import random# 定义扑克牌的花色和大小 suits [♠, ♥, ♣, ♦] ranks [2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A]# 初始化一副扑克牌 deck [suit rank for suit in suits for rank in ranks]# …...

Linux系统之file命令的基本使用

Linux系统之file命令的基本使用 一、file命令介绍1.1 Linux简介1.2 file命令简介 二、file命令的使用帮助2.1 file命令的help帮助信息2.2 file命令的语法解释2.3 file命令的man手册 三、文件类型介绍四、file命令的基本使用4.1 查询file版本4.2 显示文件类型4.3 输出时不显示文…...

【智能大数据分析】实验1 MapReduce实验:单词计数

【智能大数据分析】实验1 MapReduce实验:单词计数 文章目录 【智能大数据分析】实验1 MapReduce实验:单词计数一、实验目的二、实验要求三、实验原理1 MapReduce编程2 Java API解析 四、实验步骤1 启动Hadoop2 验证HDFS上没有wordcount的文件夹3 上传数据…...

KV STUDIO的安装与实践(一)

目录 什么是KV STUDIO? 如何安装KV STUDIO? 如何学习与使用KV STUDIO(在现实中的应用)? 应用一(在现实生活中机器内部plc的读取与替换) 读取 KV STUDIO实现显示器的检测!&#…...

matlab simulink ADRC控制样例

1、内容简介 略 3-可以交流、咨询、答疑 2、内容说明 用adrc控制传递函数,保证输出达到预期 ADRC控制器、传递函数 3、仿真分析 4、参考论文 略...

我是如何走上测试管理岗的

最近有小伙伴问了一个问题:他所在的测试团队规模比较大,有 50 多个人,分成了 4 ~ 5 个小组。这位同学觉得自己的技术能力在团队里应该属于比较不错的,但疑惑的是在几次组织架构调整中,直属领导一直没有让他来管理一个小…...

回溯法:雀魂启动!

题目链接:雀魂启动!_牛客题霸_牛客网 题解: 回溯法 1、用哈希思想构建映射表,标记已有的卡的种类和个数 2、遍历卡池,先从卡池中抽一张卡,因为只能抽一张卡,所以一种卡只判断一次 3、抽到卡后找…...

新的iLeakage攻击从Apple Safari窃取电子邮件和密码

图片 导语:学术研究人员开发出一种新的推测性侧信道攻击,名为iLeakage,可在所有最新的Apple设备上运行,并从Safari浏览器中提取敏感信息。 攻击概述 iLeakage是一种新型的推测性执行攻击,针对的是Apple Silicon CPU和…...

Java练习题2021-1

"从大于等于N的正整数里找到一个最小的数M,使之满足: M和M的逆序数(如1230的逆序数为321)的差的绝对值为一个[100000,200000]区间内的值。 输入说明:起始数字N; 输出说明:找到的第一个符合…...

微信小程序input输入字母自动转大写不生效问题解决

uniapp中开发的小程序&#xff0c;采用 style"text-transform:uppercase" H5中正常小写变大写&#xff0c;编译小程序后不生效 解决办法 uniapp中 input增加 input"TransFormationsFn" <input type"text" value"" input"…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...