Artificial Intelligence (AI) telah mendapatkan popularitas yang signifikan dalam beberapa tahun terakhir.
Jika Anda seorang insinyur perangkat lunak, ilmuwan komputer, atau penggemar ilmu data pada umumnya, maka Anda mungkin tertarik dengan aplikasi luar biasa dari pemrosesan gambar, pengenalan pola, dan deteksi objek yang disediakan oleh bidang ini.
Subbidang AI terpenting yang mungkin Anda dengar adalah Deep Learning. Bidang ini berfokus pada algoritme yang kuat (instruksi program komputer) yang dimodelkan setelah fungsi otak manusia yang dikenal sebagai Jaringan Saraf Tiruan.
Pada artikel ini, kita akan membahas konsep Neural Networks dan bagaimana membangun, mengkompilasi, menyesuaikan, dan mengevaluasi model-model ini menggunakan Ular sanca.
Jaringan Saraf Tiruan
Neural Networks, atau NN, adalah serangkaian algoritma yang dimodelkan setelah aktivitas biologis otak manusia. Neural Network terdiri dari node, juga disebut neuron.
Kumpulan node vertikal dikenal sebagai layer. Model terdiri dari satu masukan, satu keluaran, dan sejumlah lapisan tersembunyi. Setiap lapisan terdiri dari node, juga disebut neuron, di mana perhitungan berlangsung.
Dalam diagram berikut, lingkaran mewakili node dan kumpulan vertikal node mewakili lapisan. Ada tiga lapisan dalam model ini.
Node dari satu lapisan terhubung ke lapisan berikutnya melalui saluran transmisi seperti yang terlihat di bawah ini.
Dataset kami terdiri dari data berlabel. Ini berarti bahwa setiap entitas data telah diberi nilai nama tertentu.
Jadi untuk dataset klasifikasi hewan kami akan memiliki gambar kucing dan anjing sebagai data kami, dengan 'kucing' dan 'anjing' sebagai label kami.
Penting untuk dicatat bahwa label perlu dikonversi ke nilai numerik agar model kita dapat memahaminya, sehingga label hewan kita menjadi '0' untuk kucing dan '1' untuk anjing. Baik data dan label dilewatkan melalui model.
Learning
Data diumpankan ke model satu entitas pada satu waktu. Data ini dipecah menjadi potongan-potongan dan melewati setiap node model. Node melakukan operasi matematika pada potongan ini.
Anda tidak perlu mengetahui fungsi atau perhitungan matematika untuk tutorial ini, tetapi penting untuk memiliki gambaran umum tentang cara kerja model ini. Setelah serangkaian perhitungan dalam satu lapisan, data diteruskan ke lapisan berikutnya dan seterusnya.
Setelah selesai, model kami memprediksi label data pada lapisan keluaran (misalnya, dalam masalah klasifikasi hewan, kami mendapatkan prediksi '0' untuk seekor kucing).
Model kemudian melanjutkan untuk membandingkan nilai prediksi ini dengan nilai label sebenarnya.
Jika nilainya cocok, model kami akan mengambil input berikutnya tetapi jika nilainya berbeda, model akan menghitung perbedaan antara kedua nilai, yang disebut kerugian, dan menyesuaikan perhitungan node untuk menghasilkan label yang cocok di lain waktu.
Kerangka Pembelajaran Mendalam
Untuk membangun Neural Networks dalam kode, kita perlu mengimpor Kerangka kerja Pembelajaran Mendalam dikenal sebagai perpustakaan menggunakan Integrated Development Environment (IDE) kami.
Kerangka kerja ini adalah kumpulan fungsi yang telah ditulis sebelumnya yang akan membantu kita dalam tutorial ini. Kami akan menggunakan kerangka Keras untuk membangun model kami.
Keras adalah perpustakaan Python yang menggunakan pembelajaran mendalam dan backend kecerdasan buatan yang disebut aliran tensor untuk membuat NN dalam bentuk model sekuensial sederhana dengan mudah.
Keras juga hadir dengan model yang sudah ada sebelumnya yang dapat digunakan juga. Untuk tutorial ini, kita akan membuat model kita sendiri menggunakan Keras.
Anda dapat mempelajari lebih lanjut tentang kerangka kerja Deep Learning ini dari Situs web Keras.
Membangun Jaringan Syaraf Tiruan (Tutorial)
Mari kita beralih ke membangun Neural Network menggunakan Python.
Pernyataan Masalah
Neural Networks adalah jenis solusi untuk masalah berbasis AI. Untuk tutorial ini kita akan membahas Data Pima Indians Diabetes, yang tersedia di sini.
UCI Machine Learning telah mengumpulkan dataset ini dan berisi catatan medis pasien India. Model kami harus memprediksi apakah pasien memiliki onset diabetes dalam waktu 5 tahun atau tidak.
Memuat Kumpulan Data
Dataset kami adalah file CSV tunggal yang disebut 'diabetes.csv' yang dapat dengan mudah dimanipulasi menggunakan Microsoft Excel.
Sebelum membuat model kita, kita perlu mengimpor dataset kita. Menggunakan kode berikut Anda dapat melakukan ini:
impor panda sebagai pd
data = pd.read_csv('diabetes.csv')
x = data.drop(“Hasil”)
y = data[“Hasil”]
Di sini kita menggunakan Panda library untuk dapat memanipulasi data file CSV kita, read_csv() adalah fungsi bawaan Pandas yang memungkinkan kita untuk menyimpan nilai dalam file kita ke variabel yang disebut 'data'.
Variabel x berisi dataset kami tanpa data hasil (label). Kami mencapai ini dengan fungsi data.drop() yang menghapus label untuk x, sementara y hanya berisi data hasil (label).
Membangun Model Sekuensial
Langkah 1: Mengimpor Perpustakaan
Pertama, kita perlu mengimpor TensorFlow dan Keras, bersama dengan parameter tertentu yang diperlukan untuk model kita. Kode berikut memungkinkan kita untuk melakukan ini:
impor tensorflow sebagai tf
dari tensorflow import keras
dari tensorflow.keras.models import Sequential
dari tensorflow.keras.layers impor Aktivasi, Padat
dari tensorflow.keras.optimizers impor Adam
dari tensorflow.keras.metrics impor categorical_crossentropy
Untuk model kami, kami mengimpor lapisan padat. Ini adalah lapisan yang sepenuhnya terhubung; yaitu, setiap node dalam lapisan terhubung sepenuhnya dengan node lain di lapisan berikutnya.
Kami juga mengimpor pengaktifan fungsi yang diperlukan untuk menskalakan data yang dikirim ke node. Pengoptimal juga telah diimpor untuk meminimalkan kerugian.
Adam adalah pengoptimal terkenal yang membuat perhitungan simpul pembaruan model kami lebih efisien, bersama dengan categorical_crossentropy yaitu jenis fungsi kerugian (menghitung perbedaan antara nilai label yang sebenarnya dan yang diprediksi) yang akan kita gunakan.
Langkah 2: Merancang Model Kami
Model yang saya buat memiliki satu lapisan input (dengan 16 unit), satu tersembunyi (dengan 32 unit) dan satu output (dengan 2 unit). Angka-angka ini tidak tetap dan akan bergantung sepenuhnya pada masalah yang diberikan.
Menetapkan jumlah unit dan lapisan yang tepat adalah proses yang dapat ditingkatkan dari waktu ke waktu melalui latihan. Aktivasi sesuai dengan jenis penskalaan yang akan kita lakukan pada data kita sebelum melewatinya melalui sebuah node.
Relu dan Softmax adalah fungsi aktivasi terkenal untuk tugas ini.
model = Berurutan([
Padat(satuan = 16, input_shape = (1,), aktivasi = 'relu'),
Padat(satuan = 32, aktivasi = 'relu'),
Padat(unit = 2, aktivasi = 'softmax')
])
Berikut adalah ringkasan model yang akan terlihat:
Melatih Model
Model kami akan dilatih dalam dua langkah, yang pertama adalah menyusun model (menempatkan model bersama-sama) dan yang berikutnya adalah menyesuaikan model pada dataset yang diberikan.
Ini dapat dilakukan dengan menggunakan fungsi model.compile() diikuti oleh fungsi model.fit().
model.compile(optimizer = Adam(learning_rate = 0.0001), loss = 'binary_crossentropy', metrics = ['accuracy'])
model.fit(x, y, epoch = 30, batch_size = 10)
Menentukan metrik 'akurasi' memungkinkan kami mengamati keakuratan model kami selama pelatihan.
Karena label kami dalam bentuk 1 dan 0, kami akan menggunakan fungsi kerugian biner untuk menghitung perbedaan antara label yang sebenarnya dan yang diprediksi.
Dataset juga sedang dibagi menjadi 10 batch (batch_size) dan akan melewati model 30 kali (epoch). Untuk kumpulan data yang diberikan, x akan menjadi data dan y akan menjadi label yang sesuai dengan data.
Menguji Model Menggunakan Prediksi
Untuk mengevaluasi model kami, kami membuat prediksi pada data uji menggunakan fungsi predict().
prediksi = model.predict(x)
Dan itu dia!
Anda sekarang harus memiliki pemahaman yang baik tentang Belajar mendalam aplikasi, Neural Networks, cara kerjanya secara umum dan cara membangun, melatih, dan menguji model dalam kode Python.
Saya harap tutorial ini memberi Anda permulaan untuk membuat dan menerapkan model Deep Learning Anda sendiri.
Beri tahu kami di komentar jika artikel itu bermanfaat.
Tinggalkan Balasan