Anda di halaman 1dari 33

Artificial Neural Network

Oktavian Lantang
Definisi
• Neural Network sebenarnya mengadopsi kemampuan otak manusia
yang mampu memberikan stimulasi/rangsangan, melakukan proses,
dan memberikan output.
• Output diperoleh dari variasi stimulasi dan proses yang terjadi di
dalam otak manusia.
• Kemampuan manusia dalam memproses informasi merupakan hasil
kompleksitas proses di dalam otak.
• Misalnya, yang terjadi pada anak-anak, mereka mampu belajar untuk
melakukan pengenalan meskipun mereka tidak mengetahui algoritma
apa yang digunakan.
History
• Perkembangan ilmu Neural Network sudah ada sejak tahun 1943
ketika Warren McCulloch dan Walter Pitts memperkenalkan
perhitungan model neural network yang pertama kalinya. Mereka
melakukan kombinasi beberapa processing unit sederhana bersama-
sama yang mampu memberikan peningkatan secara keseluruhan
pada kekuatan komputasi.
History
• Hal ini dilanjutkan pada penelitian yang dikerjakan oleh Rosenblatt
pada tahun 1950, dimana dia berhasil menemukan sebuah two-layer
network, yang disebut sebagai perceptron. Perceptron
memungkinkan untuk pekerjaan klasifikasi pembelajaran tertentu
dengan penambahan bobot pada setiap koneksi antar-network.
Konsep
• Gambar dibawah ini menjelaskan bahwa setiap sel otak manusia
setidaknya memiliki 1 neuron (faktanya ada 1011) dan setiap neuron
setidaknya memiliki 1 akson dan 1 dendrit
• Dendrit berfungsi untuk mengirimkan impuls yang diterima dari
badan sel syaraf.
• Akson berfungsi untuk mengirimkan impuls ke
jaringan lain
• Sinapsis berfungsi sebagai penghubung antara
dua sel syaraf
Konsep
• Tiap neuron menerima input dan melakukan operasi dot dengan
sebuah weight, menjumlahkannya (weighted sum) dan
menambahkan bias. Hasil dari operasi ini akan dijadikan parameter
dari activation function yang akan dijadikan output dari neuron
tersebut.
Arsitektur (MLP/Fully-Connected Layer)
• Setiap neuron pada MLP saling
berhubungan yang ditandai dengan
Weight dan Bias tanda panah pada gambar dibawah. Tiap
koneksi memiliki weight yang nantinya
nilai dari tiap weight akan berbeda-beda
• Hidden layer dan output layer memiliki
tambahan “input” yang biasa disebut
dengan bias
• Sehingga pada arsitektur disamping
terdapat 3x4 weight + 4 bias dan 4x2
weight + 2 bias. Total adalah 26
parameter yang pada proses training
akan mengalami perubahan untuk
mendapatkan hasil yang terbaik.
Activation Function
• Neuron pada input layer tidak memiliki activation function,
sedangkan neuron pada hidden layer dan output layer memiliki
activation function yang kadang berbeda tergantung daripada data
atau problem yang kita miliki.
• Activation function berfungsi untuk menentukan apakah neuron
tersebut akan “aktif” atau “tidak” berdasarkan dari weighted sum dari
input. Secara umum terdapat 2 jenis activation function, Linear dan
Non-Linear Activation function.
Linear Activation Function
• secara “default” activation function dari sebuah neuron adalah Linear.
Jika sebuah neuron menggunakan linear function, maka keluaran dari
neuron tersebut adalah weighted sum dari input + bias.
Non-linear Activation • Sigmoid function mempunyai
Function rentang antara 0 hingga 1
sedangkan rentang dari Tanh
adalah -1 hingga 1. Kedua fungsi
ini biasanya digunakan untuk
klasifikasi 2 class atau kelompok
data.
Non Linear Activation • ReLU melakukan “treshold” dari 0
Function hingga infinity.
Training vs Validation
• Supervised Learning (Pembelajaran Terbimbing), mempunyai 2
tahapan utama yaitu:
• Training (Pelatihan)
• Validation (Validasi)
• Pada tahap training setiap weight dan bias pada tiap neuron akan
diupdate terus menerus hingga output yang dihasilkan sesuai dengan
harapan. Pada tiap iterasi akan dilakukan proses validasi yang
biasanya digunakan untuk menentukan kapan harus menghentikan
proses training (stopping point)
Forward & Backward Propagation
• Training process itu sendiri mencakup dua tahapan yaitu:
• Forward Propagation : Forward pass atau biasa juga disebut forward
propagation adalah proses dimana kita membawa data dari input melewati
tiap neuron pada hidden layer sampai kepada output layer kemudian akan
dihitung nilai errornya.
• Backward Propagation: Error yang kita dapat pada forward pass akan
digunakan untuk mengupdate setiap weight dan bias dengan learning rate
tertentu.
• Kedua proses diatas akan dilakukan berulang-ulang sampai
didapatkan nilai weight dan bias yang dapat memberikan nilai error
sekecil mungkin pada output layer (pada saat forward pass)
Contoh penggunaan non-linear AF
•  f(x) = 3x + 2
• Dimana Weight = 3, Bias = 2 dan Input = x

• Arsitektur Neural Network adalah:


• 1 node input layer (x)
• 1 node output layer f(x)

• Cek jupyter notebook


Multi Layer Perceptron
• Untuk non-linear regression kita membutuhkan setidaknya 3 layer
neural network atau yang biasa disebut Multilayer Perceptron (MLP)
atau Fully-Connected Layer dengan menggunakan non-linear
activation function pada seluruh neuron di hidden layer.
Contoh penggunaan non-linear AF
• Berikut kita melakukan regresi menggunakan fungsi non linear

• Berdasarkan fungsi diatas maka dibuat arsitektur neural network:


• 1 node input layer
• 8 node hidden layer (menggunakan relu activation function)
• 1 node output layer (menggunakan Linear activation function)

• Cek jupyter notebook


Training Process
Proses training terdiri dari 2 bagian
utama yaitu Forward Pass dan
Backward Pass. Panah biru dibawah
ini adalah Forward Pass dan panah
merah adalah backward pass.
Pada saat forward pass, input akan
di-”propagate” menuju output layer
dan hasil prediksi output akan
dibandingkan dengan target dengan
menggunakan sebuah fungsi yang
biasa disebut dengan Loss Function.
Training Process
• Loss function digunakan untuk mengukur seberapa bagus performa
dari neural network kita dalam melakukan prediksi terhadap target.
• Ada berbagai macam loss function, namun yang paling sering
digunakan adalah Squared Error (L2 Loss) untuk regresi. Sedangkan
untuk klasifikasi yang biasa digunakan adalah Cross Entropy.
Training Process
Tahapan back propagation adalah:
• Hitung gradient dari loss function terhadap semua parameter yang
ada, dengan cara mencari partial derivative (turunan parsial) dari
fungsi tersebut.
• Update semua parameter (weight dan bias) menggunakan Stochastic
Gradient Descent (SGD) dengan mengurangi atau menambahkan nilai
weight lama dengan “sebagian” (learning rate) dari nilai gradient yang
sudah kita dapat.
• Apa itu GRADIENT ??  Tangent_function_animation.gif (300×285)
(wikimedia.org)
Parameter (Weight &
Bias)
Terdapat 4 weight dan 4 bias
diantara input layer dan
hidden layer pertama, 8
weight dan 2 bias diantara
hidden layer pertama dan
kedua, 2 weight dan 1 bias
diantara hidden layer kedua
dan output layer. Sehingga
total ada 21 parameter yang
harus diupdate.
Paramater (weight & bias)
Propagasi input layer ke hidden layer
Output hidden layer 1
• Sehingga output dari hidden layer 1 menjadi:
Propagasi Hidden layer 1 ke Hidden layer 2
• Hidden Layer 1  Hidden Layer 2
Output hidden layer 2
• Setelah Activation Function:
Propagasi hiden layer 3 ke output layer dan
hasil output layer
• Hidden layer 2  Output layer

Setelah activation function:


Loss function
• Setelah mendapatkan nilai prediksi output kita harus mengecek
seberapa jauh hasil yang didapat dengan nilai harapan
(menggunakkan loss function). Dalam kasus ini kita menggunakan
Squared Error.
Back propagation
Activation Function Derivatives
• Untuk back propagation, kita perlu mencari derivative dari activation
function yang kita gunakan:

ReLu Derivative Sigmoid Derivative Linear Derivative


Propagasi output layer ke hidden layer 1
• Hampir sama seperti pada forward pass, pada backward pass, loss
akan mengalir menuju semua node pada hidden layer untuk dicari
gradient nya. terhadap parameter yang akan diupdate. Misalkan kita
ingin mengupdate parameter Wk1o:

• maka kita bisa gunakan chain rule seperti dibawah ini:


Linear vs non linear classification problem

Anda mungkin juga menyukai