我正在查看用于情绪分析的自定义神经网络代码。它有3层(1隐藏层)。我更关心的是层的重量初始化。
self.weights_0_1 = np.zeros((self.input_nodes,self.hidden_nodes))
self.weights_1_2 = np.random.normal(0.0, self.output_nodes**-0.5,(self.hidden_nodes,self.output_nodes))初始化零的权重矩阵的想法是什么?我已经了解到,将权值初始化为零可能导致线性。
这可能是一个非常模糊的问题,我很乐意提供任何你想要的细节。https://github.com/udacity/deep-learning/blob/master/sentiment-network/Sentiment_分类_Solutions.ipynb
发布于 2018-12-23 12:01:57
三层有一层隐藏层?这听起来不对。您有2层,输入->隐藏->输出,即只有2层,有两组权重。
仅用0初始化的单个层将不会收敛,因为导数将严格相同(此规则也适用于网络中的任何最后一层,该层基本上无用)。在这里,有第二层之后,这节省了时间,但它仍然是一个糟糕的做法,在一般情况下。
https://datascience.stackexchange.com/questions/43056
复制相似问题