memahami istilah-istilah deep learning

Istilah-Istilah di Neural Network ataupun Deep Learning (bagian 1)

Semester ini saya dapat kesempatan mengajar kelas Deep Learning di Program Studi S1 Informatika UII. Selama mengajari mahasiswa yang mayoritas masih awam dengan Deep Learning, bahkan Neural Network, saya merasakan ternyata banyak sekali istilah-istilah di Neural Network ataupun Deep Learning yang mungkin sulit untuk dipahami.

Karenanya, artikel ini saya buat dengan harapan dapat membantu teman-teman yang sedang belajar Neural Network ataupun Deep Learning untuk memahami istilah-istilah tersebut. Jika ada istilah-istilah yang belum tersampaikan / kurang jelas / malah salah maknanya silakan tulis di komentar ya 🙂

AI vs Machine Learning vs Neural Network vs Deep Learning

Kalau di kelas, saya menggambarkan diagram venn hubungan keempatnya seperti berikut ini.

John McCarthy, orang pertama yang memunculkan istilah Artificial Intelligence (AI) memberi definisi AI adalah “Science and engineering of making intelligent machines”1 atau saya sering mendefinisikan sendiri sebagai sekumpulan metode yang digunakan agar komputer dapat meniru atau bahkan melampaui kecerdasan manusia2.

Nah, Machine Learning merupakan salah satu teknik di bidang AI untuk membuat mesin mampu belajar dari data tanpa perlu diprogram secara eksplisit. Salah satu algoritma machine learning yang bisa digunakan adalah Neural Network (jaringan saraf tiruan). Suatu program yang memiliki banyak if-else, dapat meniru kecerdasan manusia (AI), namun bukan termasuk machine learning karena program tidak belajar dari data, melainkan dengan ditulis secara ekspliti oleh programmer.

Neural Network (NN) mencerdaskan mesin dengan membangun model matematika yang (berusaha) meniru bagaimana sel saraf bekerja. Pada NN bagian-bagian kecil (sel saraf) dirangkai untuk menciptakan arsitektur jaringan saraf yang sesuai untuk suatu masalah.

Deep Learning adalah salah satu metode machine learning yang menggunakan neural network dengan arsitektur yang kompleks. Ke-kompleks-an tersebut ditujukan agar mesin mampu belajar lebih baik dengan unsur campur tangan manusia yang seminimal mungkin (end-to-end learning). Misalnya, mesin yang menggunakan deep learning, mampu memahami konsep garis, bentuk, tekstur, dan juga pengaruhnya hanya dengan melihat data-data citra tanpa bantuan / informasi tambahan dari manusia.

Pendapat di atas adalah salah satu pendapat populer. Beberapa orang, contohnya Sebastian Raschka, penulis buku Python Machine Learning, menggunakan diagram yang sedikit berbeda untuk menjelaskan hubungan istilah-istilah tersebut. Untuk penjelasan lebih lanjut, silakan cek websitenya.

Multi Layer Perceptron

Istilah multi layer perceptron (MLP) memang sering digunakan dengan pemaknaan yang berbeda-beda. Kebanyakan orang menggunakan istilah MLP untuk arsitektur neural network yang sederhana (istilah lainnya adalah Vanilla Neural Network), di mana layer-layernya saling terhubung (fully-connected) dan tidak memiliki banyak layer (deep neural network). Pada definisi ini, perceptron adalah unit pehitungan sederhana yang terjadi pada neuron-neuron (buletan-buletan di ilustrasi). Detail perhitungannya bisa cek di artikel yang lain.

Namun, istilah perceptron awalnya digunakan untuk jenis perhitungan yang lebih spesifik. Jadi begini, kita tahu pada neural network sederhana, proses perhitungan yang terjadi pada sebuah neuron, bisa disederhanakan menjadi 2 bagian:

  1. Perkalian input dengan bobot, lalu dijumlahkan
  2. Fungsi aktivasi

Nah, berdasarkan sejarahnya istilah perceptron digunakan ketika fungsi aktivasi pada perhitungan tersebut menggunakan fungsi aktivasi yang berjenis treshold, seperti step function. Ini yang saya maksud dengan “lebih spesifik”. Karena kalau berdasarkan definisi ini, neural network yang menggunakan fungsi aktivasi sigmoid bukanlah multi layer perceptron.

Backpropagation atau Gradient Descent?

Backpropagation adalah sebuah proses, sedangkan Gradient Descent adalah algoritma optimasi. Backpropagation adalah istilah yang digunakan ketika kita menggunakan gradient descent pada neural network.

Gradient descent merupakan algoritma optimasi yang digunakan untuk mencari nilai minimal suatu fungsi berdasarkan turunan pertama fungsi tersebut. Proses menghitung turunan oleh gradient descent dapat menciptakan chain rule. Nah, chain rule di neural network seakan-akan menunjukkan pergerakan ke arah layer input (bergerak mundur), hal tersebut memunculkan istilah backward propagation. Cek detail backpropagation di artikel kami yang lain.

Beda Hyperparameter dengan Parameter

Pada neural network, parameter adalah nilai-nilai yang menentukan performa model. Hyperparameter adalah parameter-parameter yang nilainya tidak berubah selama proses pelatihan dan ditentukan di awal proses.

Dari penjelasan tersebut, tampak istilah “parameter” ini bisa dibilang lebih umum dibanding hyperparameter. Namun, ketika dipakai bersamaan, istilah “parameter” bisa jadi dimaksudkan untuk “lawan” dari hyperparameter, yakni nilai-nilai yang akan berubah selama proses pelatihan.

Berdasarkan pengertian kedua, maka bisa saya beri contoh dari hyperparameter adalah:

  • banyak neuron pada suatu layer,
  • banyak iterasi,
  • besaran learing rate.

Sedangkan contoh parameter adalah bobot dari neural network.

Referensi

  1. https://www.sciencedaily.com/terms/artificial_intelligence.htm
  2. https://www.qualcomm.com/products/artificial-intelligence/what-is-ai-faq
  3. https://datascience.stackexchange.com/questions/14187/what-is-the-difference-between-model-hyperparameters-and-model-parameters
  4. https://stackoverflow.com/questions/37953585/what-is-the-difference-between-sgd-and-back-propagation
  5. https://en.wikipedia.org/wiki/Multilayer_perceptron#Terminology

About the author

Rian Adam

Lecturer at Universitas Islam Indonesia; Machine Learning Enthusiast

View all posts

2 Comments

Leave a Reply