#6 Artificial Neural Network (ANN) — Part 1 (Pengenalan)

Muhammad Yunus
6 min readApr 8, 2020

--

Definisi, Arsitektur, Tipe ANN dan Jenis Activation Function

Source [link]

Artificial Neural Network (ANN) atau Jaringan Saraf Tiruan (JST) merupakan set algoritma yang berkerja seperti jaringan saraf otak manusia, dimana neuron saling terhubung satu dengan lainya, bekerja untuk memproses informasi[1][2]. Tujuan utama dari ANN adalah menjadikan komputer memiliki kemampuan cognitif seperti otak manusia, memiliki kemampuan problem solving dan dapat melakukan proses pembelajaran [3].

Apa yang sebenarnya dilakukan Neural Network?

Gambar 1. Representasi Neural Network — cs231n stanford (Lecture 4–92) [link]

Pada Gambar 1, ada tiga input masuk kedalam neuron (x0, x1, x2), setiap input tersebut dikalikan terlebih dahulu dengan variable yang disebut sebagai ‘weight’ (w0, w1, w2), setelah itu ketiga nya dijumlahkan. Setiap koneksi neuron memiliki ‘weight’ masing-masing dan nilainya akan berubah saat proses learning sampai model yang dihasilkan ANN mendekati target output yang diinginkan [2].

Setelah itu bisa ditambahkan bias b kedalam hasil penjumlahan diatas. Nilai bias ini tidak datang dari input layer [2]. Bias seperti intercept dalam persamaan linear, ditambahkan untuk mengatur agar hasil perhitungan lebih akurat[4].

Setelah semua penjumlahan diatas dilakukan, neuron akan dimasukan ke sebuah fungsi yang disebut Activation Function [2]. Activation Function mengatur apakah neuron tersebut harus aktif atau tidak [1].

Gambar 2. Identity Activation Function f(x) = x [link]

Nah, seperti itulah ANN bekerja, semua neuron saling terhubung satu sama lain dalam menghasilkan output dari input yang diberikan.

Arsitertur Artificial Neural Network (ANN)

ANN adalah sekumpulan neuran yang terorganisir dalam lapisan-lapisan (layers) [5], diantaranya :

  • input layer : lapisan yang membawa data masuk kedalam system untuk kemudian di proses pada layer selanjutnya.
  • hidden layer: lapisan antara input layer dan output layer, dimana artificial neuron yang memiliki sekumpulan input pembobot ‘weight’ dan prosedur untuk menghasilkan output neuron melalui activation function.
  • output layer: lapisan terakhir dari neuron yang menghasilkan output system.
Gambar 3. Arsitektur Neural Network — cs231n stanford (Lecture 4–97) [link]

Berikut adalah tipe-tipe Neural Network beserta Arsitekturnya:

  1. Feed Forward Neural Network

Feed Forward Neural Network adalah Neural Network paling sederhana. Informasi masuk dari input layer menuju hiden layer sampai output layer dalam satu arah ‘forward’, tidak melakukan proses cycle/loop seperti pada Recurrent Neural Network [7].

  1. a. Single Layer Perceptron

Neural Network paling sederhana adalah single layer perceptron, yang hanya memiliki single layer output node. Input data masuk langung ke output neuron melalui serangkaian pembobot ‘weight’. penjumlahan untuk semuan perkalian dot antara input variable dan ‘weight’ ditiap koneksi neuron [7].

Perceptron dapat ditraining dengan cara yang sederhana dengan memanfaatkan delta rule , yang akan menghitung error yang dihasilkan oleh output layer terhadap nilai sebenarnya yang selanjutnya digunakan untuk mengoreksi pembobot ‘weight’ [7].

Single layer perceptron hanya mampu digunakan untuk permasalahan yang bersifat lineary separable, artinya batas-batas output didefinisikan jelas dan hanya memiliki dua kemungkinan.

2.b. Multi Layer Perceptron

Multi Layer Perceptron melibatkan banyak layer yang saling terhubung dengan cara feed forward, dimana tiap neuron pada layer terhubung dengan semua neuron di layer selanjutnya. Banyak implementasi Multi Layer Perceptron menggunaan Sigmoid function sebagai Activation Funtion-nya [7].

Multi Layer Perceptron menggunakan Backpropagation dalam proses training yang akan menghitung gradient dari loss funtion yang berhubungan dengan ‘weight’ tiap koneksi neuron dan akan meminimalkan loss saat ‘weight’ diubah [8].

Two layer neural network dapat digunakan untuk menghitung hasil XOR [link]

2. Radial Basis Function (RBF)

Radial Basis Function Network menggunakan Radial Basis Function sebagai Activation Funtion-nya. RBF mampu menyelesaikan permasalahan function approximation, time series prediction, classification, dan system control [9].

Input value x di gunakan untuk semua input Radial Basis Function pada hidden layer. Dan output network merupakan linear combination dari semua output RBF pada hidden layer.

Arsitektur Radial basis funtion network [link]

RBF Activation Function diformulasikan sebagai berikut,

dimana x adalah input value, a adalah pembobot, N adalah banyaknya neuron pada hidden layer dan c adalah center vector neuron[9].

3. Convolutional Neural Network (CNN)

Convolutional Neural Network (CNN) dalam Deep Learning tergolong kedalam deep neural network yang banyak digunakan dalam analisis citra (visual imagery). CNN merupakan versi regularization dari multi-layer perceptron dan dibangun oleh banyak convolution layer dengan activation funtion yang kebanyakan adalah ReLU [10].

CNN Arhitecture (MLP — Fully connected layer) [link]

Convolutional Layer

Convolutional Layer adalah kunci utama CNN. Input layer CNN merupakan sekumpulan filter/kernel berupa matrix dua dimensi berukuran kecil. Pada saat forward pass, tiap kernel menyusuri input matrix (gambar) sehingga menghasilkan activation map berukuran 2 dimensi untuk kernel tersebut. Hasilnya network mempelajari filter/kernel yang aktif ketika mendeteksi beberapa jenis fitur tertentu pada posisi spasial dalam input (gambar).

Demo convolution layer [link]

Selain tipe neural network diatas, masih banyak lagi yang lainya misalnya Recurrent Neural Network (RNN), Generative Adversarial Network (GAN), dll.

Jenis-Jenis Activation Function

  1. Identity

Identity Function merupakan fungsi yang akan mengembalikan nilai yang sama dengan input yang diberikan, dimana f(x) merupakan Identity Function, untuk semua nilai x (-∞, ∞) berlaku,

f(x) = x

kurva Identity function digambarkan sebagai berikut,

Kurva Identity funtion, f(x) = x, untuk semua nilai x [link]

2. Binary Step

Binary Step Function adalah fungsi yang akan mengembalikan nilai 1 jika input x ≥ 0, dan akan mengembalikan nilai 0 untuk input x < 0, sehingga f(x) hanya akan memiliki output nilai 0 atau 1.

f(x) = 0 , jika x < 0

f(x) = 1, jika x ≥ 0

kurva Binary Step function digambarkan sebagai berikut,

Kurva Binary Step Function [link]

3. Sigmoid (logistic function)

Sigmoid function dikenal juga dengan instilah logistic function, akan menghasilkan nilai pada rentang [0 , 1], dirumuskan sebagai,

Pada mulanya fungsi sigmoid tumbuh secara exponenial, setelah itu mulai terjadi saturasi dan pertumbuhan melambat sehingga menjadi linear sampai pertumbuhan berhenti. Kurva Sigmoid function digambarkan sebagai berikut,

Kurva Sigmoid Function [link]

4. Rectified Linear Unit (ReLU)

Rectified Linear Unit (ReLU) function memiliki kelebihan dalam Network yang diinisiasi secara random, hanya 50% dari hidden layer yang akan di aktivasi. ReLU Function di rumuskan sebagai berikut,

f(x) = max (0, x)

atau dalam bentuk sesepengal,

kurva ReLU function digambarkan sebagai berikut,

Kurva ReLU Function [link]

5. Leaky Rectified Linear Unit (Leaky ReLU)

Leaky ReLU Function merupakan ReLU yang memperbolehkan sedikit nilai gradien positif saat unit tidak aktif. Leaky ReLU dirumuskan sebagai berikut,

Untuk nilai x ≤ 0 maka Leaky ReLU akan menghasilkan 1% besar nilai x (0.01x)

kurva Leaky ReLU digambarkan sebagai berikut,

Kurva Leaky ReLU [link]

6. Softmax

Softmax Funtion atau disebut juga softmax regression adalah bentuk logistic regression yang input valuenya di normalisasi kedalam probability distribution, dirumuskan sebagai,

untuk i = 1, …, J

Nah, sekian untuk tulisan kali ini, selanjutnya kita akan coba hands on Neural Network single perceptron untuk kasus binaryclass problem.

Terima Kasih..

Sumber :

  1. https://medium.com/@samuelsena/pengenalan-deep-learning-8fbb7d8028ac
  2. https://towardsdatascience.com/first-neural-network-for-beginners-explained-with-code-4cfd37e06eaf
  3. https://medium.com/datadriveninvestor/neural-networks-explained-6e21c70d7818
  4. https://intellipaat.com/community/253/role-of-bias-in-neural-networks
  5. https://blog.goodaudience.com/artificial-neural-networks-explained-436fcf36e75
  6. https://www.geeksforgeeks.org/introduction-to-ann-set-4-network-architectures/
  7. https://en.wikipedia.org/wiki/Feedforward_neural_network
  8. https://en.wikipedia.org/wiki/Backpropagation
  9. https://en.wikipedia.org/wiki/Radial_basis_function_network
  10. https://en.wikipedia.org/wiki/Convolutional_neural_network

--

--

Muhammad Yunus

IoT Engineer, Software Developer & Machine Learning Enthusiast