Proyek ini terinspirasi oleh Pembelajaran Mendalam Y. Tang menggunakan Mesin Vektor Dukungan Linier (2013).
Makalah lengkap tentang proyek ini dapat dibaca di arXiv.org.
Jaringan saraf konvolusional (CNN) mirip dengan jaringan saraf "biasa" dalam arti bahwa jaringan tersebut terdiri dari lapisan tersembunyi yang terdiri dari neuron dengan parameter "dapat dipelajari". Neuron-neuron ini menerima masukan, melakukan perkalian titik, dan kemudian mengikutinya dengan non-linearitas. Seluruh jaringan mengekspresikan pemetaan antara piksel gambar mentah dan skor kelasnya. Secara konvensional, fungsi Softmax adalah pengklasifikasi yang digunakan pada lapisan terakhir jaringan ini. Namun, terdapat penelitian (Alalshekmubarak dan Smith, 2013; Agarap, 2017; Tang, 2013) yang dilakukan untuk menantang norma ini. Studi yang dikutip memperkenalkan penggunaan mesin vektor dukungan linier (SVM) dalam arsitektur jaringan saraf tiruan. Proyek ini merupakan satu lagi pembahasan mengenai subjek ini, dan terinspirasi oleh (Tang, 2013). Data empiris menunjukkan bahwa model CNN-SVM mampu mencapai akurasi pengujian ~99,04% menggunakan dataset MNIST (LeCun, Cortes, dan Burges, 2010). Di sisi lain, CNN-Softmax mampu mencapai akurasi pengujian ~99,23% menggunakan kumpulan data yang sama. Kedua model tersebut juga diuji pada kumpulan data Fashion-MNIST yang baru-baru ini diterbitkan (Xiao, Rasul, dan Vollgraf, 2017), yang dianggap sebagai kumpulan data klasifikasi gambar yang lebih sulit daripada MNIST (Zalandoresearch, 2017). Hal ini terbukti karena CNN-SVM mencapai akurasi pengujian ~90,72%, sedangkan CNN-Softmax mencapai akurasi pengujian ~91,86%. Hasil tersebut dapat ditingkatkan jika teknik pra-pemrosesan data diterapkan pada kumpulan data, dan jika model dasar CNN relatif lebih canggih daripada yang digunakan dalam penelitian ini.
Pertama, kloning proyek tersebut.
git clone https://github.com/AFAgarap/cnn-svm.git/
Jalankan setup.sh
untuk memastikan bahwa perpustakaan prasyarat telah diinstal di lingkungan.
sudo chmod +x setup.sh
./setup.sh
Parameter program.
usage: main.py [-h] -m MODEL -d DATASET [-p PENALTY_PARAMETER] -c
CHECKPOINT_PATH -l LOG_PATH
CNN & CNN-SVM for Image Classification
optional arguments:
-h, --help show this help message and exit
Arguments:
-m MODEL, --model MODEL
[1] CNN-Softmax, [2] CNN-SVM
-d DATASET, --dataset DATASET
path of the MNIST dataset
-p PENALTY_PARAMETER, --penalty_parameter PENALTY_PARAMETER
the SVM C penalty parameter
-c CHECKPOINT_PATH, --checkpoint_path CHECKPOINT_PATH
path where to save the trained model
-l LOG_PATH, --log_path LOG_PATH
path where to save the TensorBoard logs
Lalu, buka direktori repositori, dan jalankan modul main.py
sesuai parameter yang diinginkan.
cd cnn-svm
python3 main.py --model 2 --dataset ./MNIST_data --penalty_parameter 1 --checkpoint_path ./checkpoint --log_path ./logs
Hyperparameter yang digunakan dalam proyek ini ditetapkan secara manual, dan bukan melalui pengoptimalan.
Hyperparameter | CNN-Softmax | CNN-SVM |
---|---|---|
Ukuran kumpulan | 128 | 128 |
Kecepatan pembelajaran | 1e-3 | 1e-3 |
Tangga | 10.000 | 10.000 |
SVM C | T/A | 1 |
Percobaan dilakukan pada komputer laptop dengan CPU Intel Core(TM) i5-6300HQ @ 2.30GHz x 4, RAM DDR3 16GB, dan GPU NVIDIA GeForce GTX 960M 4GB DDR5.
Gambar 1. Pelatihan akurasi (kiri) dan loss (kanan) CNN-Softmax dan CNN-SVM pada klasifikasi citra menggunakan MNIST.
Plot oranye mengacu pada akurasi pelatihan dan kerugian CNN-Softmax, dengan akurasi pengujian sebesar 99,22999739646912%. Di sisi lain, plot biru mengacu pada akurasi pelatihan dan kerugian CNN-SVM, dengan akurasi pengujian sebesar 99.04000163078308%. Hasilnya tidak menguatkan temuan Tang (2017) untuk klasifikasi angka tulisan tangan MNIST. Hal ini mungkin disebabkan oleh fakta bahwa tidak ada prapemrosesan data atau pengurangan dimensi yang dilakukan pada kumpulan data untuk proyek ini.
Gambar 2. Pelatihan akurasi (kiri) dan loss (kanan) CNN-Softmax dan CNN-SVM pada klasifikasi citra menggunakan Fashion-MNIST.
Plot merah mengacu pada akurasi pelatihan dan kerugian CNN-Softmax, dengan akurasi pengujian sebesar 91.86000227928162%. Di sisi lain, plot biru muda mengacu pada akurasi pelatihan dan hilangnya CNN-SVM, dengan akurasi pengujian sebesar 90,71999788284302%. Hasil CNN-Softmax menguatkan temuan zalandoresearch di Fashion-MNIST.
Untuk mengutip makalah ini, silakan gunakan entri BibTex berikut:
@article{agarap2017architecture,
title={An Architecture Combining Convolutional Neural Network (CNN) and Support Vector Machine (SVM) for Image Classification},
author={Agarap, Abien Fred},
journal={arXiv preprint arXiv:1712.03541},
year={2017}
}
Untuk mengutip repositori/perangkat lunak, silakan gunakan entri BibTex berikut:
@misc{abien_fred_agarap_2017_1098369,
author = {Abien Fred Agarap},
title = {AFAgarap/cnn-svm v0.1.0-alpha},
month = dec,
year = 2017,
doi = {10.5281/zenodo.1098369},
url = {https://doi.org/10.5281/zenodo.1098369}
}
Copyright 2017-2020 Abien Fred Agarap
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.