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——通俗易懂的理解(还没学齐,据说解释的好,先码住!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/120724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive分区表和分桶表

1.分区表 1.1 概念 Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大。 分区为 HDFS 上表目录的子目录,数据按照分区存储在子目录中。如果查询的 `where` 字句的中包含分区条件,则直接从该分区去查找,而不是扫描整…

python实现PDF表格与文本分别导出EXCEL

现需将pdf 转换至Excel , 目前实现方式:将PDF的TABLE部分与 非 TABLE部分分别导出至Excel两个sheet中 1)、识别PDF中的表格块 2)、将PDF转换为Word格式 3)、提取Word中非表格的文本数据 4)、对文本与表格重…

Qt 实现侧边栏滑出菜单效果

1.效果图 2.实现原理 这里做了两个widget,一个是 展示底图widget,一个是 展示动画widget。 这两个widget需要重合。动画widget需要设置属性叠加到底图widget上面,设置如下属性: setWindowFlags(Qt::FramelessWindowHint | Qt::…

Java提升技术,进阶为高级开发和架构师的路线

原文网址:Java提升技术,进阶为高级开发和架构师的路线-CSDN博客 简介 Java怎样提升技术?怎样进阶为高级开发和架构师?本文介绍靠谱的成长路线。 首先点明,只写业务代码是无法成长技术的。提升技术的两个方法是&…

【Docker】Docker-Compose内置DNS负载均衡失效问题

Docker Compose实现负载均衡 还是对前面的例子docker-compose.yml稍微修改: version: "3.8"services:flask-demo:build:context: .dockerfile: Dockerfileimage: flask-demo:latestenvironment:- REDIS_HOSTredis-server- REDIS_PASS${REDIS_PASS}healt…

软考-入侵检测技术原理与应用

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 入侵检测技术概念 入侵检测技术是指一种计算机安全技术,旨在监测计算机系统、…

回溯法:雀魂启动!

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

行为型模式-状态模式

在状态模式中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 意图:允许对象在内部状态发生改变时改变它的行为&#xff0…

jmeter报Java.NET.BindException: Address already in use: connect

1、windows10和window11上: 修改注册表的内容: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters: 新建dword(值)的类型: MaxUserPort 65334 TcpTimedWaitDelay 30window

Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin

Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import com.b…

Chimera:混合的 RLWE-FHE 方案

参考文献: [HS14] S. Halevi and V. Shoup. Algorithms in HElib. In Advances in Cryptology–CRYPTO 2014, pages 554–571. Springer, 2014.[HS15] S. Halevi and V. Shoup. Bootstrapping for HElib. In Advances in Cryptology–EUROCRYPT 2015, pages 641–6…

K8s概念汇总-笔记

目录 1.Master 1.1在Master上运⾏着以下关键进程 2.什么是Node? 1.2在每个Node上都运⾏着以下关键进程 3.什么是 Pod ? 4. 什么是Label ? 5.Replication Controller 6.Deployment 6.1Deployment的典型场景: 7.Horizontal Pod Autoscaler TODO…

【MATLAB源码-第57期】基于matlab的IS95前向链路仿真,输出误码率曲线。

操作环境: MATLAB 2022a 1、算法描述 IS-95,也被称为cdmaOne,是第一代的CDMA(Code Division Multiple Access,码分多址)数字蜂窝通信标准。IS-95的全称是Interim Standard-95,最初由Qualcomm…

春运压力如何破?V2X技术来解题

近日,国务院发布了2024春节放假方案。春节作为每年中国交通运输系统最繁忙的时期,车流的快速增长带来了道路运载压力和事故风险率。如果想拥有一个不堵车又平安的春节?那就不得不提V2X 技术,以及它在提升交通安全与交通效率、助力…

自定义一个注解,用它标记的执行并于给定值做对比(即简单的junit)

目录 程序设计 程序分析 系列文章 程序设计 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME) @Target(ElementT…

TVRNet网络PyTorch实现

文章目录 文章地址网络各层结构代码实现 文章地址 An End-to-End Traffic Visibility Regression Algorithm文章通过训练搜集得到的真实道路图像数据集(Actual Road dense image Dataset, ARD),通过专业的能见度计和多人标注,获得…

10个Golang 数据库最佳实践

如果您使用 Golang 开发数据库支持的应用程序,则应遵循一些最佳实践,以确保您的代码干净、高效且可靠。 在本文中,我们将探讨在 Golang 中使用数据库的 10 种最佳实践。我们将涵盖连接数据库、CRUD 操作以及使用准备好的语句等主题。在本文结…

图像语义分割 pytorch复现DeepLab v1图像分割网络以及网络详解(骨干网络基于VGG16)

图像语义分割 pytorch复现DeepLab v1图像分割网络以及网络详解(骨干网络基于VGG16) 背景介绍2、 网络结构详解2.1 LarFOV效果分析 2.2 DeepLab v1-LargeFOV 模型架构2.3 MSc(Multi-Scale,多尺度(预测))2.3 以VGG16为特…

1-多媒体通信概述

文章目录 媒体和多媒体媒体多媒体VarityIntergrationInteraction 多媒体通信(MMC)业务类型 MMC主要问题和关键技术主要问题关键技术 MMC发展动向重要事件趋势 标准化组织 媒体和多媒体 媒体 承载信息的载体. 感知媒体, 表示媒体, 显示媒体, 存储媒体, 传输媒体. 多媒体 Var…

电脑定时关机

电脑定时关机 1.右键 管理 2. 3. 4. 5. shutdown.exe/s /f /t 06.点击完成就好了 7.这里面可以 看到定时任务和启动 右键有运行 结束 禁用