激活函数前的数据归一化
Normalization of data before activation function
我正在将 this tutorial 更改为 matlab,我正在尝试 class 化为 1/0
class。我的每个数据点 x
都是维度 30
,即它有 30 个特征。这是我的第一个NN。
我的问题是,当我尝试计算 a1=np.tanh(z1)
或在 matlab a1 = tanh(z1);
中时,我得到的是 1
或 -1
值,因为 |z1
|>2。
- 我应该规范化这些值吗?
- 我在教程中是否遗漏了保持在 -2 < z1 < 2 范围内的任何承诺?
- 我认为这是越界问题是否正确?
输入值应始终标准化,通常在 [0, 1] 范围内。否则网络可能无法训练。
另一件值得注意的事情是你使用 tanh 作为激活函数,这个函数在极值处饱和,这意味着梯度为零。其他激活函数如 ReLU (max(0, x)) 没有这个问题。值得一试。
我正在将 this tutorial 更改为 matlab,我正在尝试 class 化为 1/0
class。我的每个数据点 x
都是维度 30
,即它有 30 个特征。这是我的第一个NN。
我的问题是,当我尝试计算 a1=np.tanh(z1)
或在 matlab a1 = tanh(z1);
中时,我得到的是 1
或 -1
值,因为 |z1
|>2。
- 我应该规范化这些值吗?
- 我在教程中是否遗漏了保持在 -2 < z1 < 2 范围内的任何承诺?
- 我认为这是越界问题是否正确?
输入值应始终标准化,通常在 [0, 1] 范围内。否则网络可能无法训练。
另一件值得注意的事情是你使用 tanh 作为激活函数,这个函数在极值处饱和,这意味着梯度为零。其他激活函数如 ReLU (max(0, x)) 没有这个问题。值得一试。