机器学习现在tensorflow比较火,但它是python的,而我想后期用到java项目上,且我对java比较熟,找了一下deeplearning4j是面向java的深度多层神经网络库,就想试一下。
deeplearning4j的官网内容还是蛮多的,代码也比较清爽。
如何安装可以见官网:https://deeplearning4j.org/cn/archieved/quickstart
第一个例子MNIST
MNIST是一个手写数字图像的数据集,每幅图像都由一个整数标记。它主要用于机器学习算法的性能对标。深度学习算法处理MNIST的效果相当好,准确率可达到99.7%以上。
MNIST数据集
MNIST数据集包含一个有6万个样例的定型集和一个有1万个样例的测试集。定型集用于让算法学习如何准确地预测出图像的整数标签,而测试集则用于检查已定型网络的预测有多准确。
这在机器学习领域中被称为有监督学习,因为我们已经知道图像预测所应该得出的正确答案。定型集能起到监督和指导的作用,在神经网络预测错误时予以纠正。
运行MNIST示例
打开名为dl4j-examples
的文件夹。依次进入以下目录src → main → java → feedforward → mnist,运行名为MLPMnistSingleLayerExample.java
的文件,运行结果如下:
# of classes: 10
Accuracy: 0.9729
Precision: 0.9729
Recall: 0.9726
F1 Score: 0.9727
Precision, recall & F1: macro-averaged (equally weighted avg. of 10 classes)
========================================================================
o.d.e.f.m.MLPMnistSingleLayerExample - ****************Example finished********************
用一个简单的单个隐藏层的神经网络已经可以达到97.29%的准确率,好了,接下来我要学习LSTM了。