【问题标题】:How to denormalize the output in a Neural Network (MATLAB)?如何对神经网络(MATLAB)中的输出进行非规范化?
【发布时间】:2017-02-24 10:04:29
【问题描述】:

我是神经网络的大三学生,我有一个神经网络,它经过训练可以将输入数据与目标数据相匹配,然后在新的样本数据上模拟神经网络以获得预测输出。

问题是输出是介于“零”和“一”之间的规范化值,我需要将它们转换(非规范化)为真实值,如“小数”。

你能解释一下如何做到这一点吗?

我读到我必须使用激活函数,但我不明白如何执行此操作。

【问题讨论】:

    标签: matlab neural-network simulation training-data data-fitting


    【解决方案1】:

    当创建训练集并对输出值进行归一化时,您可能使用了 min-max 归一化(或 mean-std 归一化):

    z = (x - min) / (max - min)
    

    其中 z 是标准化输出。要获得未归一化的值,您只需存储用于归一化的最小值和最大值,然后反转等式:

    x = (max - min) * z + min
    

    对于其他类型的归一化,执行相同的过程。请记住,归一化因子必须从原始训练集中获得。

    【讨论】:

    • % 初始化 NN: net = newff(minmax([输入样本]),[3 10 10 10 1] ); % 净参数:net.trainFcn = 'trainlm'; net.trainParam.lr = 0.1; net.trainParam.epochs = 500; net.trainParam.goal = 0.0; % 初始化训练:[net, tr] = train(net,input,target);
    • 请看上面的示例代码,对于NN初始化步骤中的这种归一化(minmax),我该如何做相反的过程?
    • @MohamedNedal 如果您询问恢复进程的函数调用,可能没有,因为您需要保存最小/最大因子以撤消进程。实现数学应该是微不足道的。
    • 好的,非常感谢。
    猜你喜欢
    • 2020-05-01
    • 2015-11-26
    • 2019-08-19
    • 1970-01-01
    • 2015-12-29
    • 2013-03-02
    • 2011-02-11
    • 2014-01-02
    • 2017-12-31
    相关资源
    最近更新 更多