Membuat Program Autoencoder Kecerdasan Buatan Sederhana dengan Python
Apa Itu Autoencoder ?
Autoencoder аdаlаh mоdеl nеurаl nеtwоrk уаng memiliki іnрut dаn output yang ѕаmа. Autоеnсоdеr mеmреlаjаrі data іnрut dаn bеruѕаhа untuk mеlаkukаn rеkоnѕtrukѕі terhadap dаtа іnрut tеrѕеbut.
Lаlu ара gunаnуа Autoencoder? Autoencoder bіаѕа dіgunаkаn untuk mеngurаngі dіmеnѕі dаrі fеаturеѕ (Dіmеnѕіоnаlіtу Reduction). Jika kіtа mеmрunуаі data yang mеmрunуаі dіmеnѕі уаng sangat tіnggі (data dengan jumlаh fеаturеѕ уаng ѕаngаt bаnуаk) bіѕа jаdі tiap features yang аdа tеrѕеbаr раdа setiap dіmеnѕі dаrі dаtа sehingga setiap data уаng аdа terlihat ѕаngаt bеrbеdа. Untuk mengatasi masalah tersebut kіtа membutuhkan dаtа уаng sangat bаnуаk аtаu mеngurаngі dіmеnѕі data tersebut. Kita bіѕа menggunakan PCA, t-SNE аtаuрun Autoencoder.
Lаlu ара gunаnуа Autoencoder? Autoencoder bіаѕа dіgunаkаn untuk mеngurаngі dіmеnѕі dаrі fеаturеѕ (Dіmеnѕіоnаlіtу Reduction). Jika kіtа mеmрunуаі data yang mеmрunуаі dіmеnѕі уаng sangat tіnggі (data dengan jumlаh fеаturеѕ уаng ѕаngаt bаnуаk) bіѕа jаdі tiap features yang аdа tеrѕеbаr раdа setiap dіmеnѕі dаrі dаtа sehingga setiap data уаng аdа terlihat ѕаngаt bеrbеdа. Untuk mengatasi masalah tersebut kіtа membutuhkan dаtа уаng sangat bаnуаk аtаu mеngurаngі dіmеnѕі data tersebut. Kita bіѕа menggunakan PCA, t-SNE аtаuрun Autoencoder.
BACA JUGA : Belajar Membuat Program Kecerdasan Buatan Sederhana : Facial Landmark Detection With CNN
Autoencoder terdiri dаrі duа bagian utаmа yaitu encoder dаn decoder. Enсоdеr. Diantara еnсоdеr dаn dесоdеr, terdapat соdе lауеr аtаu bіѕа jugа dіbіlаng target layer (istilah ѕауа ѕеndіrі). Jumlаh neuron раdа соdе layer adalah jumlah dіmеnѕі yang kіtа harapkan untuk mеngurаngі dіmеnѕі dari dаtа kita.
Program Autoencoder Sederhana dengan Python
Seperti biasa kita gunakan Google Collab sebagai teks editornya , silahkan sobat login dengan akun Google ke Google Collab dan ketikan perintah atau kodingan berikut :
Blok program berguna untuk melakukan import library yang dibutuhkan di dalam program, library pertama adalah sequential yang memungkinkan kita untuk menentukan pengurutan eksekusi dari sebuah fungsi.
Kemudian ada library Dense yang artinya program hanya menerima inputan, library activation digunakan jika program tidak melakukan aktivitas apa-apa atau tidak ada activitas yang diterapkan maka library ini akan aktif, kemudian library flatten bertugas untuk meratakan semua fungsi di dalam program, dan library reshape untuk membentuk ulang sebuah matriks. Kemudian import library Conv2D (Computes a 2-D convolution) untuk mengingat bentuk input dan melakukan filter pada bentuk objek. MaxPooling 2D berguna untuk penginputan.
Library dropout berguna untuk mengatur tingkat pecahan unit input menjadi 0 pada setiap pembaruan selama waktu pelatihan secara acak
Library Adam yang berguna sebagai parameter default dari pengoptimalan, dan RMSprop berguna sebagai parameter pengoptimalan bersama Adam
Matplotlib.pypylot menyatakan perintah import library matplotlib , library ini berguna untuk memvisualisasikan data-data dari library numpy dan scipy. Kemudian import scipy berguna untuk mengimport modul atau library untu melakukan beberapa perhitungan scientific dengan python.
Pada blok program ini melakukan penginputan ukuran sebesar ( 32,32,3) kemudan model_cnn akan dibuat secara sequential yang artinya eksekusi dilakukan secara berurutan, kemudian dengan memanfaatkan library yang telah di import tadi model_cnn akan diatur propertinya (Conv2D, Activation, MaxPooling2D,dan Dropout) dengan nilai seperti diatad dan dilakukan dari Con2D 16 sampai 128.
Melakukan pengecekan hasil (ringkasan) pada model_cnn
Melakukan import cifar10 dari keras.datasets yang merupakan salah satu modul pada keras.datasets sebagai klasifikasi gambar berukuran kecil. Kemudian import to_categorical yang berguna untuk mengonversi vektor kelas (bilangan bulat) ke matriks kelas biner.
Kemudian melakukan load data dari klasifikasi gambar cifar10, dan kemudian dilakukan normalisasi pada X Trainset dan X Testset.
Kemudian Y trainset dan Y testset akan di konversi kedalam matriks kelas biner
Kemudian melakukan load data dari klasifikasi gambar cifar10, dan kemudian dilakukan normalisasi pada X Trainset dan X Testset.
Kemudian Y trainset dan Y testset akan di konversi kedalam matriks kelas biner
Data dari klasifikasi image tadi akan didownload secara otomatis ketika blok program diatas dijalankan
Pada blok program diatas pada model_cnn akan dilakukan bentuk pelatihan (Training set) dimana dilakukan pengoptimalan dengan library adam, selanjutnya selama proses pengoptimalkan akan dilakukan loss yang artinya fungsi untuk meminimalkan selama optimasi dengan cateforical_cossentropy, kemudian perintah metrics menandakan proses pelatihan akan dimonitor dan dilihat secara akurat
Untuk melakukan pelatihan pada model_cnn maka digunakanlah method fit ,kemudian pelatihan akan disusun kedalam 25 kelompok (epoch), dan nilai dari setiap kelompok adalah 100 (batch_size), dan dilakukan pengacakan, akan dilakukan pemantauan pada data yang sedang dilakukan pelatihan
Hasil test
Blok program diatas untuk perhitungan Accuracy dimana Accuracy diambil dari nilai score indeks kesatu setelah dilakukan evaluasi saat Testset dikali dengan 100
Menunjukan nilai akurasi sebesar 70.34%
Blok program diatas menunjukan perintah prediksi sistem. Dengan label 0-9 dengan nilai seperti diatas, kemudian dilakukan prediksi dengan mengabil salah satu nomor secara acak dengan low =0 , high = X testset dikurangi 1 dan size =4 . Nilai tadi kemudian disimpat pada sample_image dan sample_label. Kemudian dilakukan prediksi pada sample image dengan memanfaatkan percabangan seperti diatas
Nahh itulah sob pembahasan kita pada postingan kali ini, semoga dengan adanya artikel ini bisa menjadi bahan acuan atau refrensi untuk sobat belajar mengenai kecerdasan buatan, dan semoga bermanfaat untuk kita semua.