业精于勤,荒于嬉;行成于思,毁于随[1]。
一个通过反向传播算法来实现神经网络与小波神经网络的 repo
,由于未使用到 GPU
加速, 当网络层数较多时会导致训练比较慢,训练集也只是截取了 mnist 手写数据集中的 5000
张图片,测试集则选择了 1000
张。
需要安装的库包括:
TensorFlow 1.12.0 (如果已下载 mnist 手写数据集则不需要)
numpy 1.15.4
matplotlib 2.0.2
神经网络 (Neural Network, NN) 程序实现包含 2
个隐藏层的神经网络,激活函数为 sigmoid
函数,运行结果的笔记保存至 jupyter notebook
文件。
小波神经网络 (Wavelet Neural Network, WNN) 程序实现包含 1
个小波隐藏层的小波神经网络,激活函数为小波函数 morlet 函数(左下图),右下图所示的则为 morlet
小波的导函数。
包含单个隐层的小波神经网络的能力与双隐层的普通神经网络相当。更多关于小波激活函数的小波神经网络在这个 repo,运行结果的笔记保存至 jupyter notebook
文件。
当隐层的小波函数为 POLYWOG3
小波函数[2]时(左下图),右下图所示的则为 POLYWOG3
小波的导函数。
网络收敛速度明显快于普通的神经网络,精度在经过 40
次迭代之后达到了含双隐层的普通神经网络需要 200
次迭代才能达到的结果[3]。代码、运行结果的笔记保存至 py
和 jupyter notebook
文件。
脚注 (Footnote)
[1]: 进学解 -- 韩愈
[2]: Gaviphat L. Adaptive Self-Tuning Neuro Wavelet Network Controllers // PhD thesis. Blacksburg, Virginia. 1997. 122p.
[3]: Ван Л. Петросян О.Г. Распознавание лиц на основе классификации вейвлет признаков путём вейвлет-нейронных сетей // Информатизация образования и науки. 2018. №4. С. 129-139.