深度学习基础之-2.6标签值归一化
提出问题
在计算Loss时,会达到172.287,337.246这样大的数值,一般Loss都应该小于1.
解决问题
标签值也归一化公式如下:
(1) y n e w = y − y m i n y m a x − y m i n = y − y m i n y r a n g e y_{new} = \frac{y-y_{min}}{y_{max}-y_{min}} = \frac{y-y_{min}}{y_{range}} \tag{1} ynew=ymax−yminy−ymin=yrangey−ymin(1)
将标签归一化之后进行训练其他操作保持不变,会得到非常小的W,B值:
w=0.01374991 -0.09151012 0.90392058
b=0.08233892
z=0.62474539
这样在预测时,z值也会非常小,只有0.62,一套房子不可能6000块钱,一平米都买不到。所以要把预测出来的值也要做反归一化。根据公式1: (2) y = y n e w ∗ y r a n g e + y m i n y = y_{new}*y_{range}+y_{min} \tag{2} y=ynew∗yrange+ymin(2)
归一化和反归一化的关系
归一化 | Weight | Bias | 预测值Xt | 预测方法 |
---|---|---|---|---|
只归一化X | W n o r m W_{norm} Wnorm反归一化为 W r e a l W_{real} Wreal | W n o r m W_{norm} Wnorm反归一化为 B r e a l B_{real} Breal | 不归一化 X t Xt Xt | 用 W r e a l , B r e a l W_{real},B_{real} Wreal,Breal预测 |
只归一化Y | 使用训练结果 W n o r m W_{norm} Wnorm | 使用训练结果 B n o r m B_{norm} Bnorm | 归一化为 X t n o r m Xt_{norm} Xtnorm | 用 W n o r m , B n o r m W_{norm},B_{norm} Wnorm,Bnorm预测 |
同时归一化X和Y | 使用训练结果 W n o r m W_{norm} Wnorm | 使用训练结果 B n o r m B_{norm} Bnorm | 归一化为 X t n o r m Xt_{norm} Xtnorm | 用 W n o r m , B n o r m W_{norm},B_{norm} Wnorm,Bnorm预测,再反归一化结果 |
- X必须归一化,否则无法训练
- 训练出的结果W和B,在推理时有两种使用方式:
- a. 直接使用,此时必须把预测时输入的X也做相同规则的归一化
- b. 反归一化为W,B的本来值 W R e a l , B R e a l W_{Real},B_{Real} WReal,BReal,推理时输入的X不需要改动
- Y可以归一化,好处是迭代次数少。如果结果收敛,也可以不归一化,如果不收敛(数值过大),就必须归一化
- 如果Y归一化,先沿袭第2步的做法,对得出来的结果做关于Y的反归一化
标签值归一化 | 标签值不归一化 |
---|---|
Loss初始值只有0.04 | oss初始值达到4000 |
迭代次数1000次 | 迭代次数2000次 |
https://github.com/microsoft/ai-edu/blob/master/B-教学案例与实践/B6-神经网络基本原理简明教程/05.6-归一化标签值.md
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183684.html原文链接:https://javaforall.cn
相关文章
- 学习笔记第一章 编程基础
- 深度学习基础:8.卷积与池化
- Unity 3D 入门基础[通俗易懂]
- paddle深度学习基础之训练调试与优化
- Java 基础学习(3)
- EmWin学习课堂_小白EmWin_EmWin快速入门_EmWin动态内存,显示和触摸屏_EmWin基础配置
- MySQL数据库基础学习(十五)
- JS基础(三)
- Python基础语法-函数-迭代器生成斐波那契数列
- 深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测
- Linux基础:Centos 安装jdk教程解析
- java基础学习总结——equals方法详解编程语言
- java基础学习总结——static关键字详解编程语言
- python安装和基础语法学习详解编程语言
- 知识Linux学习之路:基础知识指南(linux基础)
- Oracle创建主键表:基础指南(oracle建主键表)
- 语言学习Linux Bash编程基础:C语言之旅(linuxbashc)
- 干货分享 | 深度学习零基础进阶大法!
- 深度学习零基础进阶第四弹|干货分享
- 25道Linux基础笔试题,让你轻松掌握Linux操作系统基础知识!(linux基础笔试题)
- 库删除MSSQL数据库:从最基础开始(删除mssql数据)
- 学习linux 基础,借助孟庆昌linux基础教程(linux基础教程孟庆昌)
- 无基础学习Linux:快速入门和实践(零基础linux教程)
- 深入探索学习Redis的基础准备(学习redis前提)
- 零基础写python爬虫之爬虫的定义及URL构成