【翻译论文】An Architecture Combining Convolutional Neural Network (CNN) and Support Vector Machine (SVM) for Image Classification(2017)
一种结合卷积神经网络(CNN)和支持向量机(SVM)的图像分类架构 DOI:10.48550/arXiv.1712.03541
摘要:
卷积神经网络(cnn)类似于“普通”神经网络,它们由隐藏层组成,这些层由具有“可学习”参数的神经元组成。这些神经元接收输入,执行点积,然后再进行非线性处理。整个网络表示原始图像像素与其等级分数之间的映射关系。按惯例,Softmax函数是在这个网络的最后一层使用的分类器。然而,已有研究[2,3,11]对这一标准提出了挑战。引用的研究介绍了线性支持向量机(SVM)在人工神经网络体系结构中的应用。这个项目是对这个主题的另一个尝试,并受到了[11]的启发。实证数据表明,利用MNIST数据集[10],CNN-SVM模型能够达到≈99.04%的测试精度。另一方面,使用相同的数据集,CNN-Softmax能够达到≈99.23%的测试精度。这两个模型也在最近发布的Fashion-MNIST数据集[13]上进行了测试,该数据集被认为是比MNIST[15]更难的图像分类数据集。CNN-SVM的测试精度为≈90.72%,而CNN-Softmax的测试精度为≈91.86%。如果在数据集上使用数据预处理技术,并且基础CNN模型比本研究中使用的模型相对复杂,那么上述结果可能会得到改善。
CCS的概念 计算方法→分类监督学习;支持向量机;神经网络;
关键词
人工智能;人工神经网络;分类;图像分类;机器学习;mnist数据集;softmax;监督式学习;支持向量机
1.介绍
许多涉及深度学习方法的研究都声称,在相当多的任务中都有最先进的性能。其中包括但不限于图像分类[9]、自然语言处理[12]、语音识别[4]和文本分类[14]。上述任务中使用的模型在分类层采用了softmax函数。
然而,已经进行了研究 [2, 3, 11],研究了用于分类的 softmax 函数的替代方法——支持向量机 (SVM)。上述研究声称,在人工神经网络 (ANN) 架构中使用 SVM 比使用传统的 softmax 函数产生相对更好的结果。当然,这种方法有一个缺点,那就是对二进制分类的限制。由于 SVM 旨在确定分离数据集中两个类别的最佳超平面,因此多项式情况似乎被忽略了。在多项式分类中使用支持向量机,情况变成一对多,其中正类代表得分最高的类,其余代表负类。
2.方法
2.1 机器智能库
Google TensorFlow[1] 用于实现本研究中的深度学习算法。
2.2数据
MNIST[10] 是一个成熟的标准手写数字分类数据集,广泛用于深度学习模型的基准测试。这是一个 10 类分类问题,有 60,000 个训练示例和 10,000 个测试用例——全部为灰度。然而,有人认为 MNIST 数据集“太简单”和“过度使用”,“它不能代表现代 CV [计算机视觉] 任务”[15]。因此,[13] 提出了 Fashion-MNIST 数据集。所述数据集由 Zalando 的文章图像组成,具有与 MNIST 相同的分布、相同的类数和相同的颜色配置文件。
MNIST 和 FashionMNIST 的数据集分布。
两个数据集都按原样使用,没有进行标准化或降维等预处理。
2.3 支持向量机
支持向量机 (SVM) 由 Vapnik[5] 开发用于二进制分类。其目标是找到最优超平面 f (w, x) = w · x + b 以分离给定数据集中的两个类,特征 x ∈ Rm。SVM 通过解决优化问题(方程 1)来学习参数 w。
其中 wT w 是曼哈顿范数(也称为 L1 范数),C 是惩罚参数(可以是任意值或使用超参数调整选择的值),y’ 是实际标签,wT x + b 是预测函数。方程。 1 被称为 L1-SVM,具有标准的铰链损失。它的可微分对应物 L2-SVM(等式 2)提供了更稳定的结果[11]。
其中 ∥w∥2 是欧几里得范数(也称为 L2 范数),带有平方铰链损失。
2.4卷积神经网络 (CNN)
卷积神经网络(CNN)是一类深度前馈人工神经网络,常用于图像分类等计算机视觉问题。 CNN 与“普通”多层感知器 (MLP) 网络的区别在于它使用卷积层、池化和非线性,如 tanh、sigmoid 和 ReLU。
卷积层(用 CONV 表示)由一个滤波器组成,例如 5 × 5 × 1(宽度和高度为 5 个像素,因为图像是灰度的,所以为 1)。直观地说,CONV 层用于“滑动”输入图像的宽度和高度,并计算输入区域与权重学习参数的点积。这反过来将产生一个二维激活图,该图由给定区域的过滤器响应组成。
因此,池化层(由 POOL 表示)根据 CONV 滤波器的结果减小了输入图像的大小。结果,模型中的参数数量也减少了——称为下采样。
图1:当x<0时,整流线性单元(ReLU)激活函数产生0作为输出,然后当x>0时产生斜率为1的线性。
最后,使用激活函数在计算中引入非线性。如果没有这些,模型将只学习线性映射。目前常用的激活功能是ReLU功能[6](见图1)。ReLU通常用于tanh和siаmoid,因为与其他两个函数相比,它大大加快了随机梯度下降的收敛速度[9]。此外,与tanh和si k moid所需的大量计算相比,ReLU是通过简单地对零处的矩阵值进行阈值化来实现的(见等式3)。
在本文中,我们采用以下架构实现了一个基本CNN模型:
(1) INPUT: 32 × 32 × 1 (2) CONV5: 5 × 5 size, 32 filters, 1 stride (3) ReLU: max(0,hθ (x)) (4) POOL: 2 × 2 size, 1 stride (5) CONV5: 5 × 5 size, 64 filters, 1 stride (6) ReLU: max(0,hθ (x)) (7) POOL: 2 × 2 size, 1 stride (8) FC: 1024 Hidden Neurons (9) DROPOUT: p = 0.5 (10) FC: 10 Output Classes
在CNN的第10层,代替传统的softmax函数和交叉熵函数(用于计算损失),实现了L2-SVM。也就是说,输出应转换为以下情况y∈ {?1,+1},损失由公式2计算。然后使用Adam[8]学习权重参数。
2.5 数据分析
本研究的实验分为两部分:(1)训练阶段,(2)测试用例。CNN-SVM和CNN Softmax模型在MNIST和Fashion MNIST上使用。本研究仅考虑了训练准确性、训练损失和测试准确性。
3.实验
代码实现可以在https://github上找到。com/AFAgarap/cnnsvm。本研究中的所有实验都是在一台笔记本电脑上进行的,该电脑采用Intel Core(TM)i5-6300HQ CPU@2.30GHz x 4,16GB的DDR3 RAM,以及NVIDIA GeForce GTX 960M 4GB的DDR5 GPU。
表2:CNN Softmax和CNNSVM模型使用的超参数。 表2中列出的超参数是手动分配的,用于MNIST和FashionMNIST的实验。
图2显示了CNN Softmax和CNN-SVM在使用MNIST进行图像分类时的训练精度,而图3显示了它们的训练损失。在10000步时,两位模特都能在4分16秒内完成训练。CNN Softmax模型的平均训练准确率为98.4765625%,平均训练损失为0.136794931,而CNN-SVM模型的平均训练准确率为97.671875%,平均训练损失为0.268976859。 图2:使用matplotlib绘制[7]。CNN Softmax和CNN-SVM在使用MNIST进行图像分类时的训练精度[10]。 图3:使用matplotlib绘制[7]。CNN Softmax和CNN-SVM在使用MNIST进行图像分类时的训练损失[10]。 图4:使用matplotlib绘制[7]。CNN Softmax和CNN-SVM在使用Fashion MNIST进行图像分类时的训练精度[13]。
图5:使用matplotlib绘制[7]。CNNSoftmax和CNN-SVM在使用FashionList进行图像分类时的训练损失[13]。
图4显示了CNN Softmax和CNNSVM在使用MNIST进行图像分类时的训练精度,而图5显示了它们的训练损失。在10000个步骤中,CNN Softmax模型能够在4分47秒内完成训练,而CNN-SVM模型能够在4分29秒内完成训练。CNN Softmax模型的平均训练准确率为94%,平均训练损失为0.259750089,而CNNSVM模型的平均训练准确率为90.15%,平均训练损失为0.793701683。
表3:CNN Softmax和CNN-SVM在使用MNIST[10]和Fashion MNIST[13]进行图像分类时的测试精度。 经过 10,000 个训练步骤后,两个模型都在每个数据集的测试用例上进行了测试。如表 1 所示,两个数据集各有 10,000 个测试用例。表 3 显示了 CNNSoftmax 和 CNN-SVM 使用 MNIST[10] 和 Fashion-MNIST[13] 进行图像分类的测试精度。
MNIST 数据集的测试准确度并不能证实 [11] 中的发现,因为 CNN-Softmax 的分类准确度比 CNN-SVM 更好。这个结果可能归因于没有比 MNIST 数据集进行数据预处理的事实。此外,[11] 具有比本研究中的简单程序相对更复杂的模型和方法。另一方面,CNN-Softmax 模型的测试准确性与 [15] 中的结果相匹配,因为这两种方法都不涉及 Fashion-MNIST 的数据预处理。
4.结论与建议
这项研究的结果需要改进其方法,以进一步验证其对 [11] 提出的 CNN-SVM 的审查。尽管与 [11] 中的发现相矛盾,但从数量上讲,CNN-Softmax 和 CNN-SVM 的测试精度与相关研究几乎相同。假设通过数据预处理和相对更复杂的基础 CNN 模型,应重现 [11] 中的结果。
结论
本研究的结果需要对其方法进行改进,以进一步验证其对提出的[11]CNN-SVM的评价。CNN-Softmax和CNN-SVM的测试精度虽然与[11]的结果相矛盾,但从数量上讲,与相关研究的测试精度基本一致。假设经过数据预处理和相对复杂的基础CNN模型,可以重现[11]中的结果。
参考文献
[1] Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S. Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Ian Goodfellow, Andrew Harp, Geoffrey Irving, Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser, Manjunath Kudlur, Josh Levenberg, Dan Mané, Rajat Monga, Sherry Moore, Derek Murray, Chris Olah, Mike Schuster, Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar, Paul Tucker, Vincent Vanhoucke, Vijay Vasudevan, Fernanda Viégas, Oriol Vinyals, Pete Warden, Martin Wattenberg, Martin Wicke, Yuan Yu, and Xiaoqiang Zheng. 2015. TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems. (2015). http://tensorflow.org/ Software available from tensorflow.org. 异构系统上的大规模机器学习
[2] Abien Fred Agarap. 2017. A Neural Network Architecture Combining Gated Recurrent Unit (GRU) and Support Vector Machine (SVM) for Intrusion Detection in Network Traffic Data. arXiv preprint arXiv:1709.03082 (2017). 结合门控循环单元 (GRU) 和支持向量机 (SVM) 的神经网络架构,用于网络流量数据中的入侵检测
[3] Abdulrahman Alalshekmubarak and Leslie S Smith. 2013. A novel approach combining recurrent neural network and support vector machines for time series classification. In Innovations in Information Technology (IIT), 2013 9th International Conference on. IEEE, 42–47 一种结合递归神经网络和支持向量机进行时间序列分类的新方法
[4] Jan K Chorowski, Dzmitry Bahdanau, Dmitriy Serdyuk, Kyunghyun Cho, and Yoshua Bengio. 2015. Attention-based models for speech recognition. In Advances in Neural Information Processing Systems. 577–585. 基于注意力的语音识别模型,在神经信息处理系统的进展。
[5] C. Cortes and V. Vapnik. 1995. Support-vector Networks. Machine Learning 20.3 (1995), 273–297. https://doi.org/10.1007/BF00994018 支持向量网络
[6] Richard HR Hahnloser, Rahul Sarpeshkar, Misha A Mahowald, Rodney J Douglas, and H Sebastian Seung. 2000. Digital selection and analogue amplification coexist in a cortex-inspired silicon circuit. Nature 405, 6789 (2000), 947–951. 数字选择和模拟放大共存于皮层启发的硅电路中
[7] J. D. Hunter. 2007. Matplotlib: A 2D graphics environment. Computing In Science & Engineering 9, 3 (2007), 90–95. https://doi.org/10.1109/MCSE.2007.55 2D 图形环境
[8] Diederik Kingma and Jimmy Ba. 2014. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980 (2014). 一种随机优化方法
[9] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. 2012. Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems. 1097–1105. 分类与深度卷积神经网络
[10] Yann LeCun, Corinna Cortes, and Christopher JC Burges. 2010. MNIST handwritten digit database. AT&T Labs [Online]. A vailable: http://yann. lecun. com/exdb/mnist 2 (2010). MNIST 手写数字数据库
[11] Yichuan Tang. 2013. Deep learning using linear support vector machines. arXiv preprint arXiv:1306.0239 (2013). 使用线性支持向量机进行深度学习
[12] Tsung-Hsien Wen, Milica Gasic, Nikola Mrksic, Pei-Hao Su, David Vandyke, and Steve Young. 2015. Semantically conditioned lstm-based natural language generation for spoken dialogue systems. arXiv preprint arXiv:1508.01745 (2015). 用于口语对话系统的基于语义条件 LSTM 的自然语言生成
[13] Han Xiao, Kashif Rasul, and Roland Vollgraf. 2017. Fashion-mnist: a novel image dataset for benchmarking machine learning algorithms. arXiv preprint arXiv:1708.07747 (2017). 文档分类的层次注意网络
[15] Zalandoresearch. 2017. zalandoresearch/fashion-mnist. (Dec 2017). https://github.com/zalandoresearch/fashion-mnist
[1] Agarap A F . An Architecture Combining Convolutional Neural Network (CNN) and Support Vector Machine (SVM) for Image Classification[J]. 2017.
|