上QQ阅读APP看书,第一时间看更新
2.4.3 增加内部隐藏层神经元数量
上一小节只是构建了一个隐藏层,神经元数量为8,但经过20次迭代后就能达到90%的准确率,实属不易。现在,让我们将全连接神经网络模型的隐藏层数量扩展到3个,且第1个隐藏层的神经元数量为32,第2个隐藏层的神经元数量为16,第3个隐藏层的神经元数量为8。最后在训练模型时将训练周期设为100。
> model <- keras_model_sequential() > model %>% + layer_dense(units = 32,kernel_initializer = 'uniform', + activation = 'relu',input_shape = c(16)) %>% + layer_dense(units = 16,kernel_initializer = 'uniform', + activation = 'relu') %>% + layer_dense(units = 8,kernel_initializer = 'uniform', + activation = 'relu') %>% + layer_dense(units = 1,kernel_initializer = 'uniform', + activation = 'sigmoid') > model %>% compile(loss='binary_crossentropy', + optimizer='rmsprop', + metrics=c('accuracy')) > history <- model %>% fit( + x_train_scale, y_train, + batch_size = 128, + epochs = 100, + verbose = 0, + validation_split = 0.2 + ) > score <- model %>% evaluate(x_test_scale,y_test) > score $loss [1] 0.1994061 $accuracy [1] 0.934613
由结果可知,当加大神经网络的拓扑结构后,模型的预测能力有了一定程度的提升。RMSProp优化器建立的分类模型对测试集评价的损失值从0.253下降到0.199,准确率从0.902上升到0.934。