Neural Network

(BAHASA INDONESIA) – Bagus Kurniawan

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

Pada kesempatan ini saya ingin menuliskan sebuah sedikit ilmu yang berkaitan dengan NN, Tentunya pada website saya ini saya tidak akan menjelaskan pengertian dan sejarah dari NN. Mungkin dari pembaca jika ingin mengetahui lebih dalam mengenai sejarah dan asal mula teori NN ini digunakan dapat melihat disini .

Website saya akan saya jelaskan mengenai perhitungan mengenai Neural Network. Apabila ada kesalahan teori yang saya tangkap silahkan beritahu kepada saya, dan saya sangat menerima sharing ilmu teman teman sekalian. Saya juga mengambil refrensi dari sebuah website yang cukup keren, kalian juga bisa melihatnya disini.

Okay langsung saja masuk ke pembahasan, Dalam pembahasan ini saya akan menggunakan Struktur NN seperti pada Gambar dibawah ini.

Jadi bisa dikatakan dalam proses perhitungan ini saya hanya memperhatikan perhitungan peng-upgrade an dari bobot w1,w2,w3,w4,w5,w6,w7, dan w8. Ada beberapa artikel yang memperhatikan peng-upgrade an dari bobot bias dan input virtualnya. Tetapi fokusan pembahasan kali ini hanya pada pembobotan net saja.

Okay langsung masuk ke proses perhitungan forward, proses perhitungan ini sangat mudah dicari dan dijumpai di literatur. Adapun Net Pada h1 didapatkan dari :

Neth1 = i1.w1 + i2.w2 + 1.b1

Kita masih mendapatkan nilai dari Neth1, jika ingin mendapatkan nilai dari h1 itu sendiri maka harus dilakukan aktivasi, dengan menggunakan rumus aktivasi berikut ini :

Hal yang serupa juga terjadi untuk h2,h3, O1 dan O2. Adapun rumus yang disimpulkan adalah sebagai berikut :

Okay, kita sudah mendapatkan setiap point yang diinginkan, perlu diingat bahwa nilai h1, h2, h3, O1, dan O2 akan selalu berubah apabila dilakukan perubahan bobot kelaknya. Dan yang tidak boleh berubah dalam proses perhitungan ini adalah i1, i2, target1 dan target2.

Setelah didapatkan nilai O1 dan nilai O2, kita harus mengetahui nilai eror yang dihasilkan dengan melihat selisih dari Target dengan Output. Untuk mengetahui nilai eror dapat menggunakan persamaan berikut ini :

Saat nilai eror yang dihasilkan ternyata tidak sesuai yang diinginkan, semisal nilai eror yang diinginkan lebih besar dari target eror yang diinginkan. Maka perlu dilakukan perhitungan backward (mundur) untuk memperbaiki bobot yang akan digunakan nantinya.

Disini perhitungan mundur akan mulai ribet, jadi dimohon untuk agak fokus ya gaes, Hehe.

Sebelum melakukan perhitungan mundur kita kenalkan dulu struktur dalam dari lingkaran yang digunakan dalam struktur NN. Jika ingin mencari nilai bobot maka menggunakan persamaan berikut ini :

Baik, disini akan kitas bahas semua elemen perhitungan dalam pencarian bobot nya. Saat kita membahas peng-upgrade an pada bobot w5 maka kita dapati bahwa input yang masuk dari input lingkaran adalah EO1 yaitu nilai eror O1 terhadap Target 1. Sehingga dapat kita masukkan persamaan rumus tersebut, sehingga dapat dilihat dari gambar berikut ini :

Setelah menemukan delta eror terhadap bobot maka tahap selanjuutnya untuk mendapatkan nilai bobot dari w5 perlu dilakukan perhitungan dengan menggunakan rumus seperti berikut ini (dimana teta adalah learning rate):

Hal yang serupa dapat dilakukan untuk mencari pembobotan baru pada w6, w7, dan w8. Sehingga dapat disimpulkan seperti berikut ini :

Setelah mendapatkan bobot baru pada w5, w6, w7 dan w8. Maka kita akan mencari bobot baru pada w3 dan w4.

Pertama pada bobot w3. Bobot w3 terhubung dengan h2, dimana h2 memiliki 2 input yaitu dari O1 dan O2.

Mari kita analisa untuk Delta Eror O1 terhadap Out h2, hal ini jika di analisa dari netO1 maka didapatkan persamaan,

Pada persamaan ini dapat dilihat bahwa DeltaEO1 terhadap DeltanetO1 sudah pernah kita lakukan perhitungan yaitu

Jadi kita diperlu melakukan perhitungan lagi, cukup mengambil hasil perhitungan yang telah kita hitung sebelumnya :). Lalu untuk Deltanet O1 terhadap Deltaout h2 dapat dilakukan penurunan netO1 yang diturunkan terhadap h2, maka didapatkan hasil w5. Sehingga persamaan untuk deltaEO1 terhadap deltaOuth2 menjadi

Analisa yang sama didapatkan pula pada EO2 sehingga Delta Total Eror Output terhadap delta out h2 adalah sebagai berikut,

Kembali ke persamaan berikut ini,

Kita telah mendapatkan deltaEOtot terhadap deltaouth2, maka langkah selanjutnya untuk mencari deltaouth2 terhadap deltaneth2 didapatkan turunan dengan proses yang sama dengan menurunkan rumus aktivasi h2 terhadap net h2, sehingga menjadi Outh2(1-Outh2). Sedangkan untuk nilai dari deltaneth2 terhadap deltaw3 didapatkan dengan melakukan turunan terhadap jalur h2 yaitu h1.w3 + b3 , sehingga menjadi h1. Dan hal tersebut dapat digunakan pula untuk mencari w4. Sehingga didapatkan persamaan penuh untuk mencari w3 dan w4 adalah sebagai berikut,

Setelah kita mendapatkan nilai dari bobot w3 dan w4, maka kita kan memasuki step terakhir, yaitu mencari bobot pada w1, dan w2. Okay sebelum mencari nilai dari bobot tersebut kita dapat melihat dari struktur berikut

Dapat dilihat bobot w1 dan w2 diperantarai melalui h1, dan kita juga dapat melihat bahwa h1 mendapatkan input dari h2 dan h3. Mari kita turunkan persamaan untuk mencari bobot pada w1.

Okay untuk mencari nilai dari deltaEtot terhadap outh1, kita dapat mengetahui dengan cara melihat pada sisi input h1, terdapat 2 masukan yaitu dari h1 dan h2, maka

Nilai deltaEtot terhadap h1 sudah kita lakukan perhitungan sebelumnya (Mencari upgrade nilai w3 dan w4) , sehingga tidak perlu melakukan perhitungan kembali. sehingga kita dapat simpulkan untuk mencari bobot dari w1 dan w2 maka kita dapat menggunakan rumus berikut ini,

Nah, disini kita telah melakukan perhitungan mundur (backward), dengan sudah melakukan pembaharuan pada nilai bobot w1, w2, w3, w4, w5, w6, w7,dan w8. Sehingga kita dapat melakukan perhitungan maju(forward) kembali. Saat perhitungan maju lalu dilakukan pehitungan mundur maka dikatakan 1 iterasi atau 1 epoch. Iterasi dan epoch akan berhenti saat nilai eror atau toleransi eror yang diinginkan sudah sesuai dengan syarat ketentuan dari standart yang dibuat.

Hanya itu hal yang dapat disampaikan oleh saya, sehingga apabila ada kekurangan dalam penyampaian dan salah pengertian dalam penulisan rumus dan lain lain, silahkan diskusi bersama, saya sangat senang diskusi dengan para ahli seperti para pembaca ini.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website at WordPress.com
Get started
%d bloggers like this: