定义网络结构
总结上文神经网络:
1) 神经网络的输入应该是8维的向量 2) 神经网络只有一个隐藏层 3) 神经网络的输出应该是一个8维向量,且各维的值相加为1
-
有了这些,可以很容易定义出如下的网络结构:
-
它的隐藏层并没有激活函数,但是输出层却用了softmax,这是为了保证输出的向量是一个概率分布。
-
隐藏层
输出层的神经元应该是8个,这样才能输出一个8维的向量。那么隐藏层的神经元应该是多少?
这取决于我们希望得到的词向量是多少维,有多少个 隐藏神经元 词向量就是多少维。每一个隐藏的神经元接收的输入都是一个8维向量,假设我们的隐藏神经元有3个(实际中,google推荐的是300个,怎么效果好怎么定),如此以来,隐藏层的权重就可以用一个8行3列的矩阵来表示。网络训练完成后,这个8行3列的矩阵的每一行就是一个单词的词向量!
-
训练完成后,只需要保存 隐藏层的 权重矩阵 ,输出层此时已经完成使命,可以丢掉了。
那么怎么使用去掉了输出层的网络呢?
网络的输入是one-hot编码的单词&#x