神经网络(Neural Network,NN)主要由输入层、隐藏层、输出层构成,输入层的的节点数等于待处理数据中输入变量的个数(每一个变量代表了一个特征),输出层的节点数等于与每个输入变量关联的输出的数量(代表了分类标签的个数)。
不论是回归还是分类任务,输入和输出层的节点数是固定的(在做二分类时,如果采用 sigmoid 分类器,输出层的个数为 1 个;如果采用 softmax 分类器,输出层个数为2个)
一个基本的三层神经网络可见下图:
理论上,隐藏层的层数越深,拟合函数的能力越强,效果按理说会更好,但是实际上更深的层数可能会带来过拟合的问题,同时也会增加训练难度,使模型难以收敛。参考神经网络的理解与实现
神经网络语言模型(Neural Network Language Model, NNLM)
具体实现代码请参考