我使用了归一化的训练数据,包含n个特征。训练样本的数量为m。我实现了深度学习模型Keras,第一层如下:
model.add(layers.Dense(32,input_shape=(n,),activation='relu')
由于我的训练数据已归一化,均值为0,标准差为1,那么在训练过程中许多数据点的值小于0,神经网络是否会遭受ReLU死亡问题?
当训练数据归一化为均值0和标准差1时,第一层是否应该使用ReLU?
回答:
正如我在其他地方解释的那样,在
model.add(Dense(32,input_shape=(n,),activation='relu')
当作为Keras顺序API的第一层使用时(即带有input_shape
参数),有一个隐式的输入层;当我们使用Keras函数式API写同样的事情时,这一点会更加清楚,即:
inputs = Input(shape=(n,)) # 输入层x = Dense(32, activation='relu')(inputs) # 第一隐藏层
因此,从这个角度来看,很明显ReLU不是直接应用于你的输入的。