Sekilas tentang Jaringan Saraf Tiruan dan Deep Learning

Jaringan Saraf Tiruan (JST) adalah sebuah model pada bidang machine learning yang dibuat (dengan asumsi) menyerupai cara kerja otak manusia.

Secara ringkas pada jaringan saraf tiruan terdapat tiga nilai atau variabel utama:

  • Nilai Input $X$: nilai yang diinputkan pengguna
  • Nilai Target $T$: nilai yang diharapkan pengguna
  • Nilai Prediksi $Y$: nilai yang dihasilkan JST

Jaringan saraf tiruan akan menerima input $X$ dan akan menghasilkan suatu nilai prediksi $Y$ melalui proses matematis. Awalnya nilai $Y$ ini akan bernilai acak. Dengan proses pembelajaran, jaringan saraf tiruan akan terus memperbaiki diri agar dapat menghasilkan nilai prediksi $Y$ yang sedekat (semirip) mungkin dengan nilai target $T$.

Suatu “proses pembelajaran” di sini berarti pada awalnya model JST ketika menerima input $X$ akan menebak nilai $Y$ secara acak (tanpa knowledge), dan seiring berjalannya waktu, kita akan melatih model JST (dengan memberi contoh lain misalnya) sehingga dapat memperbaiki diri dan menebak nilai $Y$ dengan lebih baik (mendekati nilai target $T$).

Neuron

jaringan saraf tiruan neuron

Di atas adalah contoh sebuah neuron (elemen pada jaringan saraf tiruan) yang menerima input X dan menghasilkan nilai Y. Sebuah neuron adalah visualisasi dari perhitungan sederhana berikut:

$$ Y = \sigma ( X . W+ b) $$

Dengan $W$ adalah suatu nilai “bobot” (weight) yang awalnya bernilai random. Setiap kali melakukan proses pelatihan, nilai $W$ ini akan diubah sehingga JST dapat menghasilkan nilai $Y$ yang lebih baik (mendekati nilai $T$). Variabel $b$ biasa disebut dengan bias, konsepnya sama seperti $W$ dengan nilai awal yang bernilai random.

Continue reading
implementasi jaringan saraf tiruan

Implementasi Jaringan Saraf Tiruan Dalam 4 Baris Kode

Perhatikan kode implementasi jaringan saraf tiruan di bawah:

Yups, Implementasi Jaringan Saraf Tiruan kini tidaklah sulit lagi. Cukup dengan empat baris di atas kita telah membuat melatih dan mengevaluasi jaringan saraf tiruan dengan sebuah hidden layer (Multi Layer Perceptron)

Scikit-learn merilis fitur MLPClassifier ini sejak di versi 0.18. Saya salah seorang yang termasuk menunggu fitur ini rilis saat itu. Karena sebelumnya, untuk implementasi jaringan saraf tiruan saya menggunakan Theano atau coding dari scratch untuk membuat jaringan saraf tiruan. Meskipun ini hanya sebuah fungsi library, tapi menurut saya fungsi ini sudah cukup bagus untuk kasus-kasus sederhana.

Continue reading

Review Course Online Berbayar tentang AI/ML/Deep Learning

Tahun 2018-2019 ini alhamdulillah saya dapat kesempatan untuk merasakan dua course online yang (seharusnya) berbayar dengan topik AI, machine learning, atau deep learning. Saya akan coba review singkat kedua course tersebut, semoga bisa jadi pertimbangan jika ada yang tertarik mengikutinya.

Datacamp

Datacamp Course Online

Course online pertama yang saya dapat adalah Datacamp, saya dapat premium student plan-nya berkat bantuan kerja sama Pak Widiawan, dosen UGM, sekitar pertengahan tahun 2018. Course tersebut berlangsung sekitar 4 bulan.

Continue reading
tutorial fasttext bahasa indonesia

Membuat Model Word Embedding Fasttext Bahasa Indonesia

Artikel ini adalah kelanjutan dari dua artikel sebelumnya, word embedding dengan Fasttext bagian 1 dan word embedding dengan Fasttext bagian 1.5. Pada artikel sebelumnya kita berfokus menggunakan pretrained model Fasttext Bahasa Indonesia menggunakan package gensim dan package Fasttext Python. Kali ini kita akan mencoba membuat model word embedding Fasttext Bahasa Indonesia sendiri menggunakan package Fasttext python.

Apa yang dibutuhkan?

Dalam membuat model word embedding Fasttext Bahasa Indonesia, yang kita butuhkan pertama adalah dataset. Untuk menghasilkan model yang baik, diperlukan dataset yang cukup besar. Karena ukuran dataset yang bisa sangat besar, disarankan menggunakan komputer dengan RAM berkapasitas besar, atau kalau saya pribadi menggunakan Google Colab.

Continue reading
backpropagation step by step

Contoh Perhitungan Algoritma Backpropagation

Beberapa waktu lalu saya dapat kesempatan untuk mengasisteni kegiatan kemkominfo di UGM seputar AI. Salah satu topik yang dibicarakan adalah ANN (Artificial Neural Network) alias JST (Jaringan Saraf Tiruan). Dan tentu saja membicarakan ANN/JST tidak akan terlepas dengan yang namanya Backpropagation. Di postingan ini saya akan mencontohkan perhitungan Backpropagation langkah per langkah, menggunakan arsitektur yang sederhana dan dilanjutkan implementasi menggunakan Python.

Sebelum memulai perhitungan, sebaiknya kita harus mengerti terlebih dahulu dasar-dasar untuk:

  • Menghitung turunan satu variabel suatu persamaan
  • Memahami cara perkalian antarmatriks

Jika masih dirasa banyak yang lupa, silakan refresh kembali materi tersebut.

Overview

model / arsitektur JST sederhana

Sebelum kita mulai, kita ingat kembali beberapa poin penting dalam JST pada ilustrasi di atas.

Continue reading