Model Klasifikasi Menggunakan Jaringan Syaraf Tiruan (JST)
Diterbitkan: 2020-12-01Dalam terminologi pembelajaran mesin, Klasifikasi mengacu pada masalah pemodelan prediktif di mana data input diklasifikasikan sebagai salah satu kelas berlabel yang telah ditentukan sebelumnya. Misalnya, memprediksi Ya atau Tidak, Benar atau Salah termasuk dalam kategori Klasifikasi Biner karena jumlah keluaran dibatasi pada dua label.
Demikian pula, keluaran yang memiliki banyak kelas seperti mengklasifikasikan kelompok usia yang berbeda disebut masalah klasifikasi multikelas. Masalah klasifikasi adalah salah satu jenis masalah ML yang paling umum digunakan atau didefinisikan yang dapat digunakan dalam berbagai kasus penggunaan. Ada berbagai model Machine Learning yang dapat digunakan untuk masalah klasifikasi.
Mulai dari teknik Bagging hingga Boosting meskipun ML lebih dari mampu menangani kasus penggunaan klasifikasi, Neural Network muncul ketika kita memiliki jumlah kelas output yang tinggi dan jumlah data yang tinggi untuk mendukung kinerja model. Ke depan, kita akan melihat bagaimana kita dapat mengimplementasikan Model Klasifikasi menggunakan Neural Networks di Keras (Python).
Pelajari Kursus Kecerdasan Buatan dari Universitas top Dunia. Dapatkan Master, PGP Eksekutif, atau Program Sertifikat Tingkat Lanjut untuk mempercepat karier Anda.
Daftar isi
Jaringan Saraf
Jaringan saraf secara longgar mewakili pembelajaran otak manusia. Jaringan Syaraf Tiruan terdiri dari Neuron yang pada gilirannya bertanggung jawab untuk membuat lapisan. Neuron ini juga dikenal sebagai parameter yang disetel.
Output dari setiap lapisan diteruskan ke lapisan berikutnya. Ada fungsi aktivasi nonlinier yang berbeda untuk setiap lapisan, yang membantu dalam proses pembelajaran dan output dari setiap lapisan. Lapisan keluaran juga dikenal sebagai neuron terminal.

Sumber: Wikipedia
Bobot yang terkait dengan neuron dan yang bertanggung jawab atas prediksi keseluruhan diperbarui pada setiap zaman. Tingkat pembelajaran dioptimalkan menggunakan berbagai pengoptimal. Setiap Neural Network dilengkapi dengan fungsi biaya yang diminimalkan saat pembelajaran berlanjut. Bobot terbaik kemudian digunakan di mana fungsi biaya memberikan hasil terbaik.
Baca: Tutorial Deteksi Objek TensorFlow Untuk Pemula
Masalah Klasifikasi
Untuk artikel ini, kita akan menggunakan Keras untuk membangun Neural Network. Keras dapat langsung diimpor dengan python menggunakan perintah berikut.
impor tensorflow sebagai tf
dari tensorflow import keras
dari keras.models import Sequential
dari keras.layers impor Padat
Dataset dan variabel Target
Kami akan menggunakan dataset Diabetes yang akan memiliki fitur berikut:
Variabel Masukan (X):
- Kehamilan: Berapa kali hamil
- Glukosa: Konsentrasi glukosa plasma 2 jam dalam tes toleransi glukosa oral
- Tekanan Darah: Tekanan darah diastolik (mm Hg)
- SkinThickness: Ketebalan lipatan kulit trisep (mm)
- Insulin: insulin serum 2 Jam (mu U/ml)
- BMI: Indeks massa tubuh (berat dalam kg/(tinggi dalam m)^2)
- Diabetes SilsilahFungsi: Fungsi silsilah diabetes
- Usia: Usia (tahun)
Variabel Keluaran (y):
Hasil: Variabel kelas (0 atau 1) [Pasien menderita Diabetes atau tidak]
# memuat kumpulan data
df= loadtxt('pima-indians-diabetes.csv', pembatas=',')
# Pisahkan data menjadi X (masukan) dan Y (keluaran)
X = kumpulan data[:,0:8]
y = kumpulan data[:,8]
Tentukan Model Keras
Kita dapat mulai membangun jaringan saraf menggunakan model sekuensial. Pendekatan top-down ini membantu membangun arsitektur Neural net dan bermain dengan bentuk dan lapisan. Lapisan pertama akan memiliki sejumlah fitur yang dapat diperbaiki menggunakan input_dim. Kami akan mengaturnya ke 8 dalam kondisi ini.
Membuat Neural Networks bukanlah proses yang sangat mudah. Ada banyak percobaan dan kesalahan yang terjadi sebelum model yang baik dibangun. Kami akan membangun struktur jaringan yang Terhubung Sepenuhnya menggunakan kelas Padat dengan keras. Neuron dianggap sebagai argumen pertama yang diberikan ke lapisan padat.
Fungsi aktivasi dapat diatur menggunakan argumen aktivasi. Kami akan menggunakan Rectified Linear Unit sebagai fungsi aktivasi dalam kasus ini. Ada opsi lain seperti Sigmoid atau TanH, tetapi RELU adalah opsi yang sangat umum dan lebih baik.

# tentukan model kerasnya
model = Berurutan()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Padat(8, aktivasi='relu'))
model.add(Padat(1, aktivasi='sigmoid'))
Kompilasi Model Keras
Menyusun model adalah langkah berikutnya setelah definisi model. Tensorflow digunakan untuk kompilasi model. Kompilasi adalah proses di mana parameter ditetapkan untuk pelatihan model dan prediksi. CPU/GPU atau memori terdistribusi dapat digunakan di latar belakang.
Kita harus menentukan fungsi kerugian yang digunakan untuk mengevaluasi bobot untuk lapisan yang berbeda. Pengoptimal menyesuaikan kecepatan pembelajaran dan melewati berbagai rangkaian bobot. Dalam hal ini kita akan menggunakan Binary Cross Entropy sebagai fungsi kerugian. Dalam hal pengoptimal, kami akan menggunakan ADAM yang merupakan algoritma penurunan gradien stokastik yang efisien.
Ini sangat populer digunakan untuk penyetelan. Terakhir, karena ini adalah masalah klasifikasi, kami akan mengumpulkan dan melaporkan akurasi klasifikasi, yang ditentukan melalui argumen metrik. Kami akan menggunakan akurasi dalam hal ini.
# kompilasi model keras
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
Model fit dan Evaluasi
Pemasangan model pada dasarnya dikenal sebagai model pelatihan. Setelah Mengkompilasi model, model siap untuk secara efisien memeriksa data dan melatih dirinya sendiri. Fungsi fit() dari Keras dapat digunakan untuk proses pelatihan model. Dua parameter utama yang digunakan sebelum pelatihan model adalah:
- Epochs: Satu melewati seluruh dataset.
- Ukuran Batch: Bobot diperbarui pada setiap ukuran batch. Epoch terdiri dari kumpulan data yang terdistribusi secara merata.
# sesuaikan model keras pada dataset
model.fit(X, y, epochs=150, batch_size=10)
GPU atau CPU digunakan dalam proses ini. Pelatihan bisa menjadi proses yang sangat panjang tergantung pada zaman, ukuran batch dan yang paling penting ukuran Data.
Kita juga dapat mengevaluasi model pada dataset pelatihan menggunakan fungsi evaluasi(). Data dapat dibagi menjadi set pelatihan dan pengujian dan pengujian X dan Y dapat digunakan untuk evaluasi model.
Untuk setiap pasangan input dan output, ini akan menghasilkan perkiraan dan mengumpulkan skor, termasuk kerugian rata-rata dan pengukuran apa pun yang telah kami pasang, seperti presisi.
Daftar dua nilai akan dikembalikan oleh fungsi evaluasi(). Yang pertama adalah model loss pada dataset dan yang kedua adalah akurasi model pada dataset. Kami hanya tertarik pada keakuratan laporan, jadi kami akan mengabaikan pentingnya kerugian.
# evaluasi model keras

_, akurasi = model.evaluate(Xtest, ytest)
print('Akurasi: %.2f' % (akurasi*100))
Baca Juga: Pengenalan Model Neural Network
Kesimpulan
Kami membuat dan mengevaluasi Neural Network berdasarkan klasifikasi. Meskipun data yang digunakan kecil dalam kasus ini, jaringan saraf tiruan sebagian besar cocok untuk kumpulan data numerik besar.
Lihat Program Sertifikat Tingkat Lanjut Grad dalam Pembelajaran Mesin & NLP. Kursus ini telah dibuat dengan mengingat berbagai jenis siswa yang tertarik dengan Pembelajaran Mesin, menawarkan bimbingan 1-1 dan banyak lagi.
Bagaimana jaringan saraf dapat digunakan untuk klasifikasi?
Klasifikasi adalah tentang mengkategorikan objek ke dalam kelompok. Jenis klasifikasi adalah di mana beberapa kelas diprediksi. Dalam jaringan saraf, unit saraf diatur ke dalam lapisan. Pada lapisan pertama, input diproses dan output diproduksi. Output ini kemudian dikirim melalui lapisan yang tersisa untuk menghasilkan output akhir. Input yang sama diproses melalui layer untuk menghasilkan output yang berbeda. Ini dapat direpresentasikan dengan perceptron multi-layer. Jenis jaringan saraf yang digunakan untuk klasifikasi tergantung pada kumpulan data, tetapi jaringan saraf telah digunakan untuk masalah klasifikasi.
Mengapa jaringan saraf tiruan bagus untuk klasifikasi?
Untuk menjawab pertanyaan ini, kita perlu memahami prinsip dasar jaringan saraf dan masalah yang dirancang untuk dipecahkan oleh jaringan saraf. Seperti namanya, jaringan saraf adalah model otak manusia yang terinspirasi secara biologis. Ide dasarnya adalah bahwa kita ingin memodelkan neuron sebagai fungsi matematika. Setiap neuron mengambil input dari neuron lain dan menghitung output. Kemudian kami menghubungkan neuron-neuron ini dengan cara yang meniru jaringan saraf di otak. Tujuannya adalah untuk mempelajari jaringan yang dapat mengambil beberapa data dan menghasilkan keluaran yang sesuai.
Kapan kita harus menggunakan Jaringan Syaraf Tiruan?
Jaringan Syaraf Tiruan digunakan dalam situasi di mana Anda mencoba menduplikasi kinerja organisme hidup atau mendeteksi pola dalam data. Diagnosis medis, mengenali ucapan, memvisualisasikan data, dan memprediksi angka tulisan tangan adalah kasus penggunaan yang baik untuk JST. Jaringan saraf tiruan digunakan ketika ada kebutuhan untuk memahami hubungan yang kompleks antara input dan output. Misalnya, mungkin ada banyak gangguan dalam variabel dan mungkin sulit untuk memahami hubungan antara variabel-variabel ini. Oleh karena itu, menggunakan Jaringan Syaraf Tiruan adalah praktik umum untuk mempertahankan pengetahuan dan data.