本系列文章为《Machine Learning for Algorithmic Trading》第十八章 CNNS for Financial Time Series and Satellite Images 中代码复现。
02 使用前馈神经网络和 LetNet5 进行基本图像分类
导入所需模块以及作图工具
导入MNIST数据库
原始 MNIST 数据集包含 60,000 张 28x28 像素分辨率的图像,单个灰度包含从 0 到 9 的手写数字。
可视化数据
可视化前 10 个训练图像
下图显示了数据集中的前十张图像,并突出显示了相同数字实例之间的显着差异。 在右侧,它显示了单个图像的像素值如何在 0 到 255 之间变化。
详细显示随机图像
准备数据
重新调整像素值
我们将像素值重新缩放到范围 [0, 1] 以规范训练数据并促进反向传播过程并将数据转换为 32 位浮点数,以减少内存需求和计算成本,同时为我们的用例提供足够的精度。
用 Keras 进行one-hot 标签编码
打印前十个标签
前馈神经网络模型架构
编译模型
计算基线分类精度
模型持久性的回调
提前停止回调
训练模型
绘制CV图
测试分类精度
LeNet5
模型架构
我们使用交叉熵损失和原始随机梯度优化器进行编译:
定义检查点回调
训练模型
生成CV图
测试准确性
由上述结果可知:相比之下,一个简单的两层前馈网络只能达到 37.36% 的测试准确率。LeNet5 对 MNIST 的改进实际上是适度的。 非神经方法也实现了大于或等于 99% 的分类准确率。