一、使用正则化识别mnist手写图片数据集
使用正则化的原因是可以避免过拟合的情况发生
二、代码分析
在建立模型的时候,全连接层的参数kernel_regularizer进行设置,该参数的意思是在权值上设置正则化,此外还有偏置正则化等
#创建模型,输入784个神经元,输出10个神经元
model = keras.Sequential()
model.add(keras.layers.Dense(200,input_dim=784,kernel_regularizer=keras.regularizers.l2(0.0003)))
model.add(keras.layers.Activation('tanh'))
keras.layers.Dropout(0.4)
model.add(keras.layers.Dense(100,kernel_regularizer=keras.regularizers.l2(0.0003)))
model.add(keras.layers.Activation('tanh'))
keras.layers.Dropout(0.4)
model.add(keras.layers.Dense(10,kernel_regularizer=keras.regularizers.l2(0.0003)))
model.add(keras.layers.Activation('softmax'))
运行代码后,得出的准确率结果达到95%左右,可以分别使用test和train数据集进行对比测试,可以得出过拟合比较低的结论