tensorflow - NeuralNet 回归、输入归一化/输出反归一化和激活函数的作用?
问题描述
给定一个训练数据集,Xtrain (mxn) 和 ytrain(m,) 以及一些神经网络序列模型。
训练数据何时以及在什么范围内也必须进行归一化?应该如何对预测值进行非规范化?不同层的激活函数的选择如何影响这一点?
- 我们是否必须标准化 Xtrain 数据?
- 我们归一化的范围,例如 [0-1]、[-1,1]、[-5,5]、[0,) 是否取决于输入层的激活函数域?还是所有激活函数都会影响它,因此应该将其归一化为模型中所有激活函数的共同范围?
对于训练中使用的目标(ytrain):
- 那必须非规范化吗?
- 它是否必须归一化为输出层激活函数的范围或所有层的公共范围?
非常困惑,因此非常感谢为我阐明这一点。
解决方案
我们是否必须标准化 Xtrain 数据?
- 是的,我们必须
我们标准化的范围是否取决于输入层的激活函数?
- 不,它没有
那必须非规范化吗?
- 不
它是否必须归一化为输出层激活函数的范围或所有层的公共范围?
- 实际上,我没有得到这个问题。但是让我解释一下标准化是如何工作的。
规范化的主要目的 - 将特征带到单一视图中。标准化提高了模型的数值稳定性。如果您有不同的特征(例如,一些介于 1000 和 20000 之间的数字列,一些介于 -10 和 5 之间的数字列,一些布尔列等),您必须进行标准化。这会将您的非常不同的变成相似的。
但我们为什么需要它?在神经网络中,每个神经元都将特征和权重作为输入:
g(X) = X^T * w
因此,如果您的某些特征比其他特征大,模型将更加关注大数字。
谈到非规范化。我们需要非规范化y值吗?不,我们没有。由于我们没有对模型训练的y_train特征进行归一化,因此我们不需要对预测值进行反归一化。
推荐阅读
- pandas - Pyspark Dataframe udf 依赖于先前的索引值
- mysql - 不在分组日期中的 SQL 连接
- node.js - Google Photos API - 有没有办法提取评论
- python - 获取表格单元格的内容而不删除里面的标签
- sql-server - Opentext 内容服务器无法创建/连接到数据库
- r - 将列转置为数据帧列表中的行并将其写入 R 中的新数据帧
- python - 使用 Python 将包含逗号的抓取字符串转换为整数
- python - 使用缺少键值对更新嵌套字典
- jquery - Asp.Net Core 5.0 在局部视图中使用 jQuery
- javascript - 如何将变量从 Code.gs 传递到包含的脚本片段