首页 文章

MATLAB中神经网络建模的归一化和非归一化

提问于
浏览
0

我有一个包含5个输入和1个输出的数据集 . 我想用MATLAB中的神经网络建模训练这个数据集 . 当我在没有标准化的情况下输入数据时,MSE在 1e+3 附近非常大 . 但是,当我对输入数据进行标准化时,输出错误变为 1e-4 左右 . 因此,据我所知,规范化是一项重要任务 .

我的2个问题:

1-训练过程之前的真实目标(输出)在 [0 1000][50 800] 的范围内,但在归一化之后,由于归一化,神经网络给出了一个范围为 [0 1] 的值 . 我的意思是,我的实际范围 [0 1000][50 800] 无法获得任何 Value . 如何将神经网络的输出转换为 [0 1000][50 800] 范围内的正确目标?这样做是否合乎逻辑?当我的真实(目标)输出应该是 [0 1000][50 800] 时,我可以用 [0 1] 范围内的值做什么?

2-我想用一个新的输入模式测试训练好的NN . 当我在训练阶段对输入数据进行标准化时,应该对这个新的输入模式进行标准化 . 是?怎么样?我的意思是,我在训练阶段的输入数据大约是1000个数据,我用 (x-min)/(max-min) 对它们进行了标准化 . 我应该在 minmax 范围内规范化我的一个新输入模式吗?

1 回答

  • 1

    好吧,假设归一化是线性的(可能是),你可以取输出,乘以1000并将其舍入 .

    您还可以使用不同的传输功能 . Sigmoid有许多理想的属性,但它不能产生大于1的任何东西(如果你的输出高达1000,这是必要的) . 我认为最后一层通常具有线性传递函数 - 但由于你的输出很大,在这种特殊情况下可能还不够 .

相关问题