这一次task的学习内容是CNN框架的基本知识和构建。
1.CNN基本知识
数据输入,经过(多次)卷积池化后,Flatten操作将二维向量拉直为一维向量放入下一层的神经网络中,最后在尾部重新拟合。
关于神经网络的概念:
神经网络就像是一个爱学习的孩子,您教她的知识她是不会忘记而且会学以致用的。我们把学习集(Learning Set)中的每个输入加到神经网络中,并告诉神经网络输出应该是什么分类。在全部学习集都运行完成之后,神经网络就根据这些例子总结出她自己的想法,到底她是怎么归纳的就是一个黑盒了。之后我们就可以把测试集(Testing Set)中的测试例子用神经网络来分别作测试,如果测试通过(比如80%或90%的正确率),那么神经网络就构建成功了。我们之后就可以用这个神经网络来判断事务的分类了。 (引用自百度词条“神经网络”)
类似于人类大脑,神经网络也是通过极多节点连接而完成他自己的判断的。而数据的特征就是神经网络最大的判断依据。我们要做的就是构建CNN框架,训练他,最后让他判断待测数据集里的数据。
这里用了python的Keras库,一个可以进行深度学习模型的设计、调试、评估、应用和可视化的开源人工神经网络库。
# 训练模型
model.fit(X_train, Y_train, epochs = 150, batch_size = 50, validation_data = (X_test, Y_test))
这里Epoch是训练次数,accuracy是准确率,可以看出训练前后准确率提升了很多。
最后测试成功。