如何选择网络的层数和神经元个数?
深度学习的层数和神经元个数条数一直是一个经验占比非常重的问题。在TensorFlow中,可以使用TensorBoard观察train loss和test loss,如果train loss下降慢,并且test loss没有上升,可以加大模型拟合能力,即加深网络和增大神经元个数。如果train loss难以下降,并且test loss开始反弹,则应控制模型的容量,即模型的拟合能力,保持层数和神经元个数不过大,同时使用各种减轻过拟合的方法,比如dropout、batch normalization等。
RNN和CNN分别适用哪些场景?
CNN适合空间和时间有关联性的场景,比如图片分类,文本分类,时间序列分类等。
RNN主要适合有时间关联性的场景,并且对时间先后顺序敏感,适合文本分类,语言模型等。