Jaringan Saraf Tiruan Sederhana Menggunakan Tensorflow 2.x

Ini adalah artikel “versi lain” dari tulisan sebelumnya di sini. Sebagian besar artikel akan sama, namun pada artikel ini kita akan coba membuat jaringan saraf tiruan sederhana menggunakan Tensorflow 2.x. Tensorflow 2.x atau tensorflow versi 2, merupakan tensorflow versi terbaru yang membawa konsep yang berbeda dengan Tensorflow versi sebelumnya. Bagi yang masih bingung tentang JST dan mau memahami bagaimana JST bekerja bisa buka artikel berikut.

Dataset

Kita akan menggunakan dataset Iris yang sudah cukup populer. Dataset ini berisi data dari 150 Bunga Iris yang berasa dari 3 spesies berbeda. Diberikan 4 buah fitur / ciri, yakni panjang kelopak (sepal length), lebar kelopak (sepal width), panjang mahkota (petal length), dan lebar mahkota (petal width), lalu kita akan mencoba untuk mengklasifikasikan bunga tersebut adalah spesies apa.

iris set

Saya telah memisahkan dataset aslinya menjadi dua file, satu untuk training, dan satu untuk testing. File csv dataset tersebut dapat di download di sini: training set dan test set.

Implementasi Jaringan Saraf Tiruan

Arsitektur

Melihat dataset yang ada, dapat kita simpulkan untuk arsitektur jaringan saraf tiruan kita membutuhkan 4 buah neuron input (fitur) dan 3 buah neuron output (spesies). Kita akan coba menggunakan sebuah hidden layer dengan jumlah neuron hidden layer sebanyak 3. Ilustrasinya tampak sebagai berikut:

Continue reading

Implementasi Jaringan Saraf Tiruan menggunakan PyTorch

Pada artikel ini kita akan coba melakukan implementasi Jaringan Saraf Tiruan / JST / Artificial Neural Network untuk kasus klasifikasi menggunakan PyTorch. Bagi yang belum tahu PyTorch bisa membaca artikel sebelumnya di sini atau bagi yang mau memahami bagaimana JST bekerja bisa buka artikel berikut.

Dataset

Kita akan menggunakan dataset Iris yang sudah cukup populer. Dataset ini berisi data dari 150 Bunga Iris yang berasa dari 3 spesies berbeda. Diberikan 4 buah fitur / ciri, yakni panjang kelopak (sepal length), lebar kelopak (sepal width), panjang mahkota (petal length), dan lebar mahkota (petal width), lalu kita akan mencoba untuk mengklasifikasikan bunga tersebut adalah spesies apa.

iris set

Saya telah memisahkan dataset aslinya menjadi dua file, satu untuk training, dan satu untuk testing. File csv dataset tersebut dapat di download di sini: training set dan test set.

Implementasi Jaringan Saraf Tiruan

Arsitektur

Melihat dataset yang ada, dapat kita simpulkan untuk arsitektur jaringan saraf tiruan kita membutuhkan 4 buah neuron input (fitur) dan 3 buah neuron output (spesies). Kita akan coba menggunakan sebuah hidden layer dengan jumlah neuron hidden layer sebanyak 3. Ilustrasinya tampak sebagai berikut:

Continue reading

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 adalah sebuah algoritma yang akan menerima input $X$ dan akan menghasilkan suatu nilai prediksi $Y$ secara matematis. Nilai $Y$ tersebut diharapkan bernilai sama dengan nilai $T$.

Kenapa diharapkan? Karena 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$.

Dalam kasus aslinya JST akan menerima banyak nilai $X$ yang masing-masing punya nilai target $T$ yang bisa jadi berbeda-beda. Untuk itu, sangat sulit untuk mengatur rumus JST untuk menghasil nilai $Y$ yang persis sama dengan $T$ setiap kali diinputkan suatu nilai $X$.

proses pembelajaran atau learning di sini berarti pada awalnya model JST ketika menerima beberapa input $X$ akan menebak nilai $Y$ secara acak (tanpa knowledge), dan seiring berjalannya waktu, kita akan melatih model JST (dengan melihat pola contoh lain) 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