【问题标题】:Normalization method for Multi Layer Perceptron多层感知器的归一化方法
【发布时间】:2013-12-29 04:42:42
【问题描述】:

我正在使用多层感知器实现分类。

我需要对输入数据进行标准化。我想知道哪个是多层感知器方法的更好方法。输入特征有如下不同的范围

特征1 - (0-1) 特征 2 - (1-100) 特征2 - (1-100000) . . .

  1. Max-Min 归一化:Range(0,1) 激活函数 - Sigmoid

normalized_data = (data-min)/(max-min)

  1. 标准差归一化:范围 (-1,1) - 不确定 Sigmoid 会是不错的选择。双曲正切??

normalized_data = data-mean/sd

谢谢, 阿蒂什

【问题讨论】:

    标签: neural-network normalization


    【解决方案1】:

    如果您想对训练数据集的每一行进行归一化,合适的方法是神经网络工具箱中的mapminmax 方法。

    如果你倾向于根据每一列(特征)进行归一化,那么方法太多了。如果你的数据集包含不同的边界,最好在[-1 1]之间进行归一化,否则[0 1]是合适的。

    [-1 1]之间的归一化方法可以编码:

    function xNorm = Normalization(x,MinX,MaxX)
    % x is data, MinX is minimum values in each column and MaxX is maximum values in each column
    
    xNorm = (x - MinX) / (MaxX - MinX) * 2 - 1;
    
    end
    

    xNorm 是介于 -1 和 1 之间的标准化输入数据。

    另一个解决方案是normc 函数,它对矩阵的列进行归一化。

    【讨论】:

    • Gaussian 函数是另一种最合适的规范化方法,它尝试考虑分布式数据的meanStd.
    • 感谢您的回答。如果我们在 [-1 1].. 之间进行归一化,那么我应该将激活函数从 sigmoid 更改为双曲线吗??
    • hyperbolic tangent function 提供与sigmoid activation function 类似的缩放比例;但是,hyperbolic tangent activation function 的范围为[-1 1]。因此,最好应用双曲线。另一个想法是,由于hyperbolic tangent activation function具有导数特性,它也可以产生[0 1]范围内的输出。
    • 感谢@Bluebit 的回答。很有帮助。
    • 我们还需要标准化输出吗?我有一个 5 类分类问题。它们采用以下值。 [1 0 0 0 0] 或 [0 0 1 0 0]
    猜你喜欢
    • 2013-08-24
    • 2015-08-14
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 2019-04-13
    • 2017-09-09
    相关资源
    最近更新 更多