Faizar Nur Fatihin
Convolutional Neural Network (CNN) merupakan salah satu metode AI yang diterapkan khusus untuk data berbentuk visual atau citra. Studi Kasus kali ini akan meng klasifikasikan Gambar Hewan Beruang dan Panda. Disini saya akan menggunakan Tensorflow library dari python, dan Data preprocessing untuk proses mengubah data mentah ke dalam bentuk yang lebih mudah dipahami.
Convolutional Neural Network (CNN) adalah salah satu algoritma dari Deep Learning yang merupakan pengembangan dari Multi Layer Perceptron (MLP) yang dirancang untuk mengolah data dalam bentuk grid, salah satunya citra dua dimensi, misalnya gambar atau suara. Convolutional Neural Network digunkaan untuk mengklasifikasikan data yang terlabel dengan menggunakan metode supervised learning, yang mana cara kerja dari supervised learning adalah terdapat data yang dilatih dan terdapat variabel yang ditargetkan sehingga tujuan dari metode ini adalah mengelompokan suatu data ke data yang sudah ada. CNN sering digunakan untuk mengenali benda atau pemandangan, dan melakukan deteksi dan segmentasi objek.(Sumber:DQLab). CNN pertama kali dikembangkan dengan nama NeoCognitron oleh Kunihiko Fukushima, seorang peneliti dari NHK Broadcasting Science Research Laboratories, Kinuta, Setagaya, Tokyo, Jepang. Konsep tersebut kemudian dimatangkan oleh Yann LeChun, seorang peneliti dari AT&T Bell Laboratories di Holmdel, New Jersey, USA.
Pada Studi Kasus kali ini datasets yang digunakan berasal dari Kaggle yaitu datasets “Bear”. (https://www.kaggle.com/datasets/hoturam/bear-dataset) , untuk pemrosesan data disini saya menggunakan Google Colab. data yang di ambil dari kaggle tersebut yaitu data Gambar Panda dan Beruang polar. untuk jumlah data tersebut dapat di lihat pada gambar di bawah ini.
Gambar 1. Jumlah Data
Setelah Datasets Dimasukan dan di dapat, langkah selanjutnya adalah tahap Data preprocessing. Data preprocessing adalah proses yang mengubah data mentah ke dalam bentuk yang lebih mudah dipahami. Proses ini penting dilakukan karena data mentah sering kali tidak memiliki format yang teratur. Untuk lebih jelasnya dapat di lihat pada gambar di bawah ini.
Gambar 2. Pre Processing Data
Gambar 3. Target (Callback dengan tingkat akurasi 90%)
Setelah tahap preporessing data dilakukan, disini saya langsung membuat model CNN dengan bantuan keras. Keras merupakan library jaringan syaraf tiruan tingkat tinggi yang ditulis dengan bahasa python dan mampu berjalan di atas TensorFlow, CNTK, atau Theano. Library ini menyediakan fitur yang digunakan dengan fokus mempermudah pengembangan lebih dalam tentang Deep Learning. masukan dan nilai dari filter. kemudian disini saya membuat 3 layer convolusional dengan metrics/ordo (3, 3) dengan fungsi aktivasi ‘relu’. dan membuat Maxpooling dengan metrics (2, 2). disini sebenernya convolusional dan maxpooling itu tidak harus 3, 3 atau 2, 2 atau tidak ada batasan. selanjutnya ada layer flatten atau flat digunakan untuk membuat datanya flat atau datar, dan menggunakan hidden layer sebanyak ‘200’ dan fungsi aktivasi ‘relu’. kemudian layer terakhir output menggunakan fungsi aktivasi ‘signoid’. untuk lebih detail nya dapat di lihat pada gambar di bawah ini.
Gambar 4. Pembentukan Model CNN
Selanjutnya pada model Summary, disni saya menggunakan total parameter sebanyak 3,824,486. atau dapat di lihat pada gambar berikut.
Gambar 5. Summary (param)
Selanjutnya untuk mencompile modelnya di sini saya menggunakan fungsi optimizer ‘Adam’, atau adaptive moment estimation. Adam adalah algoritma optimasi pengganti untuk stochastic gradient descent untuk training model deep learning. Adam menggabungkan sifat-sifat terbaik dari algoritma AdaGrad dan RMSProp untuk memberikan optimization algorithm yang dapat menangani sparse gradients pada noisy problem. kemudian, membuat model fix atau processing datanya. disni saya menggunakan epoch nya sebanyak 25, untuk epoch sebenranya semakin banyak epoch nya tentunya akurasi nya akan semakin bagus tetapi semakin banyak epoch nya maka memakan waktu yang cukup banyak juga. untuk lebih jelas nya dapat di lihat pada gambar berikut.
Gambar 6. processing data (Step Epoch 10 dari 130 , Epoch 25 tingkat Akurasi 90%)
Selanjutnya Tes untuk Tingkat akurasi dan Loss model, akan jelaskan pada gambar di bawah ini
Gambar 7. Grafik Training dan Validasi
Tahap Selanjutnya yaitu mencoba untuk klasifikasi atau mencoba model nya, disni saya meng import numpy dan keras. NumPy merupakan salah satu library Python yang berfungsi untuk proses komputasi numerik. NumPy memiliki kemampuan untuk membuat objek N-dimensi array. Array merupakan sekumpulan variabel yang memiliki tipe data yang sama. Keras dan google colab di gunakan untuk meng import file nya. untuk pengujian nya dapat di lihat pada gambar di bawah ini.
Gambar 8. Output
Dokumentasi :
Google Colab : https://colab.research.google.com/drive/1sTwHTjr-suVduz-M0WRoLVGnZQv0huBP?usp=sharing