Metode & Algoritma | List Tutorials | Source Code | About | Sitemap
Konsultan Tesis
Bimbingan dan Konsultasi Tesis Informatika bersama team Project Graduate Indonesia. Konsultasi hanya untuk yang sudah me-Like FB kami (Silahkan LIKE tombol ini jika belum).
. Scroll kebawah untuk memasukan kode AntiSpam Protection. Hasil konsultasi akan kami kirimkan ke email Anda.

Contoh Jaringan Saraf Tiruan Backpropagation di PHP - Contoh Program + Source Code




.


Metode dan Algoritma | Contoh Jaringan Saraf Tiruan Backpropagation di PHP - Contoh Program + Source Code . Anda bisa melakukan konsultasi tentang Contoh Jaringan Saraf Tiruan Backpropagation di PHP - Contoh Program + Source Code melalui form di samping kanan !!!

skateline



 Algoritma ini melakukan dua tahap perhitungan yaitu perhitungan maju untuk menghitungerror antara keluaran aktual dan target, dan perhitungan mundur yang mempropagasikan balik error tersebut untuk memperbaiki bobot sinaptik pada semua neuron yang ada. Fungsi aktivasi yang digunakan harus memenuhi beberapa syarat, yaitu kontinu, terdiferensial dengan mudah dan merupakan fungsi yang tidak turun. Fungsi yang akan digunakan dalam sistem ini adalah funngsi sigmoid biner.


Pelatihan backpropagation meliputi 3 fase. Fase pertama adalah fase maju. Pola masukan dihitung maju mulai dari layar masukan hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan. fase kedua adalah fase mundur. Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan tersebut dipropagasikan mundur, dimulai dari garis yang berhubungan langsung dengan unit-unit di layar keluaran. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi.



  • inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil).

  • Tetapkan : Maksimum Epoh, Target error, dan Learning Rate(a).

  • Inisialisasi : Epoh = 0

  • Kerjakan langkah-langkah berikut selama (Epoh < Maksimum Epoh) dan (MSE < Target error):



  1. Epoh = epoh + 1

  2. Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan:


Feedforward:



  1. Tiap-tiap unit input (Xi, i=1,2,3,…,n) menerima sinyal xdan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada di atasnya (lapisan tersembunyi).

  2. Tiap-tiap unit pada lapisan tersembunyi (Zj, j=1,2,3,…,p) menjumlahkan sinyal-sinyal input terbobot:


z_inj = b1j +


gunakan fungsi aktivasi untuk menghitung sinyal outputnya:


zj = f(z_inj)


dan sinyal ini dikirimkan ke semua unit di lapisan atasnya (unit-unit output). Langkah ini diulang sebanyak jumlah lapisan tersembunyi.



  1. Tiap-tiap unit output (Yk, k=1,2,3,..,m) menjumlahkan sinyal-sinyal input terbobot.


y_ink = b2+


gunakan fungsi aktivasi untuk menghitung sinyal outputnya:


yk = f (y_ink)


Backpropagation



  1. Tiap-tiap unit output (Yk, k=1,2,3,…,m) menerima target pola yang berhubungandengan pola input pembelajaran, hitung informasi errornya:


dk = (tk – yk) f’(y_ink)


kemudian hitung koreksi bobot (yang nantinya digunakan untuk mengubah nilai wjk):


Dwjk = a dk zj


hitung nilai bias (yang nantinya digunakan untuk memperbaiki nilai b2k):


Db2k = a dk



  1. Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…,p) menjumlahkan delta inputnya (dari unit-unit yang berada pada lapisan di atasnya)


d_inj =


kalikan nilai ini dengan turunan fungsi aktivasinya untuk menghitung informasi error :


dj = d_inj f’(z_inj)


kemudian hitung nilai koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij):


Dvij = a dj xi


hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai b1j)


Db1j = a dj



  1. Tiap-tiap unit output (Yk, k=1,2,3,…,m) memperbaiki bias dan bobotnya (j=0,1,2,..,p):


wjk(baru) = wjk(lama) + Dwjk


b2k(baru) = b2k(lama) + Db2k


Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…,p) memperbaiki bias dan bobotnya (i=0,1,2,..,n):


vij(baru) = vij(lama) + Dvij


b1j(baru) = b1j(lama) + Db1j



  1. Hitung error


E =


Kecerdasan Buatan(bahasa InggrisArtificial Intelligence atau AI) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Dorongan utama dari Artificial Intelligence (AI) adalah pengembangan fungsi normal komputer yang digabungkan dengan kecerdasan manusia, seperti memberi alasan, menarik kesimpulan, belajar dan memecahkan masalah.


Untuk membangun aplikasi kecerdasan buatan ada 2 bagian utama yang sangat dibutuhkan, yaitu:




  1. Knowledge base (Basis pengetahuan), berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya.


  2. Inference engine (Mesin penyimpul), yaitu kemampuan menarik kesimpulan berdasarkan pengalaman.


Gambar 2.1 Penerapan kecerdasan buatan di komputer  


Jaringan Syaraf Tiruan



Gambaran Umum


Jaringan syaraf tiruan adalah suatu arsitektur jaringan untuk memodelkan cara kerja sistem syaraf manusia (otak) dalam melaksanakan tugas tertentu. pemodelan ini didasari oleh kemampuan otak manusia dalam mengorganisasi sel-sel penyusunnya (yang disebut neuron), sehingga memiliki kemampuan untuk melaksanakan tugas-tugas tertentu khususnya pengenalan pola dengan efektivitas jaringan yang sangat tinggi.Tetapi, model ini tentu saja sangat jauh lebih sederhana dibandingkan sistem syaraf manusia yang sebenarnya


Jaringan syaraf tiruan sederhana pertama kali diperkenalkan oleh McCulloch dan Pitts di tahun 1943. McCulloch dan Pitts menyimpulkan bahwa kombinasi beberapa neuron sederhana menjadi suatu system neural akan meningkatkan kemampuan komputasinya. Bobot dalam jaringan yang diusulkan McCulloch dan Pitts diatur untuk melakukan fungsi sederhana. Fungsi aktivasi yang dipakai adalah fungsi threshold.


Jaringan syaraf tiruan dibentuk sebagai generalisasi model matematika dari jaringan saraf biologi, dengan asumsi bahwa :



  1. Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron)

  2. Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung

  3. Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal

  4. Untuk  menentukan output, setiap neuron menggunakan fungsi aktivasi (biasanya bukan fungsi linier) yang dikenakan pada jumlahan input yang diterima. Besarnya output ini selanjutnya dibanding dengan suatu batas ambang.


Jaringan syaraf tiruan ditentukan oleh 3 hal :



  1. Pola hubungan antar neuron (disebut arsitektur jaringan)

  2. Metode untuk menentukan bobot penghubung (disebut metode learning/algoritma)

  3. Fungsi aktivasi


Gambar 2.2 Contoh Fungsi Aktivasi


Pada gambar tersebut sebuah neuron akan mengolah N input (x1, x2, …, xN) yang masing-masing memiliki bobot w11, w2, …, wN dengan rumus :


y_in =


Kemudian fungsi aktivasi F akan mengaktivasi y_in menjadi output jaringan y.


Arsitektur Jaringan Syaraf Tiruan


Hubungan antar neuron dalam jaringan syaraf tiruan mengikuti pola tertentu tergantung arsitektur jaringan sarafnya. beberapa arsitektur jaringan yang sering dipakai antara lain :



  1. Jaringan Layar Tunggal (Single Layer Network)


Arsitektur jaringan ini memiliki ciri-ciri yaitu hanya terdiri dari satu lapisan input dan satu lapisan output, tanpa lapisan tersembunyi. Dalam jaringan ini, semua unit inputdihubungkan dengan semua unit output, meskipun dengan bobot yang berbeda-beda. Tidak ada unit input yang dihubungkan dengan unit input lainnya. Demikian pula unit output.


Jaringan Layar Jamak (Multi Layer Network)


Jaringan ini merupakan perluasan dari jaringan layar tunggal. Memiliki satu atau lebih lapisan yang terletak diantara lapisan input dan output (memiliki satu atau lebih lapisan tersembunyi).


Gambar 2.3 Jaringan layar jamak (multi layer network)


Jaringan Recurrent


Arsitektur ini memungkinkan hubungan antar neuron. terdapat neuron output yang memberikan sinyal pada unit input (sering disebut feedback loop).


Fungsi Aktivasi


Fungsi aktivasi digunakan untuk menentukan keluaran suatu neuron. Argumen fungsi aktivasi adalah net masukan (kombinasi linier masukan dan bobotnya). Beberapa fungsi aktivasi yang sering digunakan, antara lain :



  1. Fungsi threshold (batas ambang)


f(x) =


Untuk beberapa kasus fungsi threshold yang dibuat tidak berharga 0 atau 1, tapi berharga -1 atau 1 (sering disebut threshold bipolar)


Fungsi hard limit (undak biner)


Jaringan dengan lapisan tunggal sering menggunakan fungsi undak untuk mengkonversikan input dari suatu variabel yang bernilai kontinu ke suatu output biner.


f(x) =


Fungsi linear (Identitas)


f(x) = x


Fungsi identitas sering dipakai apabila kita menginginkan keluaran jaringan berupa sebarang bilangan riil (bukan hanya pada range [0,1] atau [-1,1])


Fungsi sigmoid biner


Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0 atau 1. Fungsi sigmoid biner dirumuskan :


f(x) =


dengan: f’(x) = sf(x)[1-f(x)]


Source Code :


[sourcecode language="php"]


&lt;?php

///////////////////////////////////////////////////

//MLP neural network in PHP

//Original source code by Phil Brierley

//www.philbrierley.com

//Translated into PHP – dspink Sep 2005

//Modified by Phil July 2009

//This code may be freely used and modified at will

////////////////////////////////////////////////


//Tanh hidden neurons

//Linear output neuron


//To include an input bias create an

//extra input in the training data

//and set to 1


//////////////////////////////// User settings //////////////////

$numEpochs = 500;

$numHidden = 3;

$LR_IH = 0.7;

$LR_HO = 0.07;


//////////////////////////////// Data dependent settings //////////////////

$numInputs = 3;

$numPatterns = 4;


////////////////////////////////////////////////////////////////////////////////


$patNum;

$errThisPat;

$outPred;

$RMSerror;


$trainInputs = array();

$trainOutput = array();


// the outputs of the hidden neurons


$hiddenVal = array();


// the weights

$weightsIH = array();

$weightsHO = array();


main();


//==============================================================

//********** THIS IS THE MAIN PROGRAM **************************

//==============================================================


function main()

{

global $numEpochs;

global $numPatterns;

global $patNum;

global $RMSerror;


// initiate the weights

initWeights();


// load in the data

initData();


// train the network

for($j = 0;$j &lt;= $numEpochs;$j++)

{


for($i = 0;$i&lt;$numPatterns;$i++)

{


//select a pattern at random

//srand();

$patNum = rand(0,$numPatterns-1);


//calculate the current network output

//and error for this pattern

calcNet();


//change network weights

WeightChangesHO();

WeightChangesIH();

}


//display the overall network error

//after each epoch

calcOverallError();


if (gmp_mod($j,50) == 0)

print &quot;epoch = &quot;.$j.&quot; RMS Error = &quot;.$RMSerror.&quot;&lt;/br&gt;&quot;;


}


//training has finished

//display the results

displayResults();


}


//============================================================

//********** END OF THE MAIN PROGRAM **************************

//=============================================================


//***********************************

function calcNet()

{

global $numHidden;

global $hiddenVal;

global $weightsIH;

global $weightsHO;

global $trainInputs;

global $trainOutput;

global $numInputs;

global $patNum;

global $errThisPat;

global $outPred;


//calculate the outputs of the hidden neurons

//the hidden neurons are tanh


for($i = 0;$i&lt;$numHidden;$i++)

{

$hiddenVal[$i] = 0.0;


for($j = 0;$j&lt;$numInputs;$j++)

{

$hiddenVal[$i] = $hiddenVal[$i] + ($trainInputs[$patNum][$j] * $weightsIH[$j][$i]);

}


$hiddenVal[$i] = tanh($hiddenVal[$i]);


}


//calculate the output of the network

//the output neuron is linear

$outPred = 0.0;


for($i = 0;$i&lt;$numHidden;$i++)

{

$outPred = $outPred + $hiddenVal[$i] * $weightsHO[$i];

}

//calculate the error

$errThisPat = $outPred – $trainOutput[$patNum];

}


//************************************

function WeightChangesHO()

//adjust the weights hidden-output

{

global $numHidden;

global $LR_HO;

global $errThisPat;

global $hiddenVal;

global $weightsHO;


for($k = 0;$k&lt;$numHidden;$k++)

{

$weightChange = $LR_HO * $errThisPat * $hiddenVal[$k];

$weightsHO[$k] = $weightsHO[$k] – $weightChange;


//regularisation on the output weights

if ($weightsHO[$k] &lt; -5)

{

$weightsHO[$k] = -5;

}

elseif ($weightsHO[$k] &gt; 5)

{

$weightsHO[$k] = 5;

}

}

}


//************************************

function WeightChangesIH()

//adjust the weights input-hidden

{

global $trainInputs;

global $numHidden;

global $numInputs;

global $hiddenVal;

global $weightsHO;

global $weightsIH;

global $LR_IH;

global $patNum;

global $errThisPat;


for($i = 0;$i&lt;$numHidden;$i++)

{

for($k = 0;$k&lt;$numInputs;$k++)

{

$x = 1 – ($hiddenVal[$i] * $hiddenVal[$i]);

$x = $x * $weightsHO[$i] * $errThisPat * $LR_IH;

$x = $x * $trainInputs[$patNum][$k];

$weightChange = $x;

$weightsIH[$k][$i] = $weightsIH[$k][$i] – $weightChange;

}

}

}


//************************************

function initWeights()

{

global $numHidden;

global $numInputs;

global $weightsIH;

global $weightsHO;


for($j = 0;$j&lt;$numHidden;$j++)

{

$weightsHO[$j] = (rand()/getrandmax() – 0.5)/2;


for($i = 0;$i&lt;$numInputs;$i++)

{

$weightsIH[$i][$j] = (rand()/getrandmax() – 0.5)/5;

}

}


}


//************************************

function initData()

{

global $trainInputs;

global $trainOutput;


print &quot;initialising data&lt;/br&gt;&quot;;


// the data here is the XOR data

// it has been rescaled to the range

// [-1][1]

// an extra input valued 1 is also added

// to act as the bias

// the output must lie in the range -1 to 1


$trainInputs[0][0] = 1;

$trainInputs[0][1] = -1;

$trainInputs[0][2] = 1; //bias

$trainOutput[0] = 1;


$trainInputs[1][0] = -1;

$trainInputs[1][1] = 1;

$trainInputs[1][2] = 1; //bias

$trainOutput[1] = 1;


$trainInputs[2][0] = 1;

$trainInputs[2][1] = 1;

$trainInputs[2][2] = 1; //bias

$trainOutput[2] = -1;


$trainInputs[3][0] = -1;

$trainInputs[3][1] = -1;

$trainInputs[3][2] = 1; //bias

$trainOutput[3] = -1;


}


//************************************

function displayResults()

{

global $numPatterns;

global $patNum;

global $outPred;

global $trainOutput;


for($i = 0;$i&lt;$numPatterns;$i++)

{

$patNum = $i;

calcNet();

print &quot;pat = &quot;.($patNum+1).&quot; actual = &quot;.$trainOutput[$patNum].&quot; neural model = &quot;.$outPred.&quot;&lt;/br&gt;&quot;;

}

}


//************************************

function calcOverallError()

{

global $numPatterns;

global $patNum;

global $errThisPat;

global $RMSerror;


$RMSerror = 0.0;

for($i = 0;$i&lt;$numPatterns;$i++)

{

$patNum = $i;

calcNet();

$RMSerror = $RMSerror + ($errThisPat * $errThisPat);

}

$RMSerror = $RMSerror/$numPatterns;

$RMSerror = sqrt($RMSerror);

}


?&gt;


[/sourcecode]


skateline


CONTOH SOURCE CODE


Kode ini dapat digunakan / ditambahkan dalam aplikasi apapun dengan hanya menambahkan kelas yang ada ke dalam kode sumber Anda. Proses lainnya telah diimplementasikan dalam format yang mudah untuk dimengerti dan tepat sesuai dengan fleksibilitas program yang anda butuhkan.


Download  Contoh Program + Source Code Artikel di Atas


download 128x128


Click here


skateline Artikel lainnya  : + Source Code ASP.NET + Source Code C++ + Source  Code C-Sharp + Source Code Delphi + Source Code Java + Source Code JavaScript +  Source code MATLAB + Source Code Ruby + Source Code VB.6.0 + Source Code VB.Net - Adaptive Resonance Theory (ART) - Algoritma & Pemrograman - Algoritma Backpropagation - Algoritma Blowfish - Algoritma Cipher - Algoritma Clustering Gaussians - Algoritma Eigenface - Algoritma Fuzzy C-Means - Algoritma Genetika - Algoritma Huffman - Algoritma Komputer Quantum - Algoritma LOKI - Algoritma MD5 - Algoritma Persamaan Diophantine - Algoritma Rijndael - Algoritma Semut - Algoritma Tabu Search - Analisis Kriteria Majemuk - Analytical Hierarchy Sistem (AHP) - Ant Colony System - Case Based Reasoning (CBR) - Chaotic Encryption Algorithm - Data Encryption  Standard (DES) - Discrete Wavelet Transform - Elliptic Curve Digital Signature Algorithm (ECDSA) - Haar Wavelet - Hidden Markov Model (HMM) - JST Hopfield - Least Significant Bit (LSB) - Metode Analisis Heuristik - Metode Analisis Regresi - Metode Burrows-Wheeler  Transform - Metode Forward Chaining - Metode Gost - Metode Huffman Statis - Metode Hybrid - Metode Insertion Heuristic - Metode Maksimum Likelihood - Metode Newton- Raphson - Metode Otsu - Metode Penyetaraan Histogram - Optical Character Recognition (OCR) - Propagasi Balik - Self Organizing Map (SOM) - Tabu Search - Teorema Bayes -  Transformasi Wavelet Kontinyu Uncategorized ~ Artificial Intelligence ~ Blind Signature ~ Data Mining ~ Decission Support Sistem ~ Digital Signal Processing (DSP) ~ Digital Signature ~ Enkripsi & Dekripsi ~ Image & Data Prossesing ~ Jaringan MANET ~ Jaringan Neural Quantum ~ Jaringan Syaraf Tiruan ~ Judul Skripsi Tesis Informatika ~ Kecerdasan Buatan ~ Kriptografi ~ Model Pemrograman Linear (MPL) ~ Multiple Trip Vehicle Routing Problem (MTVRP) ~ Neural Network ~ Pengenalan Pola ~ Pengenalan Wajah ~ Pengolahan Citra ~ Penjadwalan ~ Pewarnaan Simpul Graph ~ Recognition ~ Sistem Pakar ~ Steganography ~ Tanda Tangan Digital ~ Traveling Salesman Problem (TSP) ~ Watermarking skateline iklan red31



Contoh Jaringan Saraf Tiruan Backpropagation di PHP - Contoh Program + Source Code


Source Code ActionScript AS3 ASP.NET AJAX C / C++ C# Clipper COBOL ColdFusion DataFlex Delphi Emacs Lisp Fortran FoxPro Java J2ME JavaScript JScript Lingo MATLAB Perl PHP PostScript Python SQL VBScript Visual Basic 6.0 Visual Basic .NET Flash MySQL Oracle Android
Related Post :


Project-G
Judul: Contoh Jaringan Saraf Tiruan Backpropagation di PHP - Contoh Program + Source Code
Rating: 100% based on 99998 ratings. 5 user reviews.
Ditulis Oleh hank2

Anda sedang membaca artikel tentang Contoh Jaringan Saraf Tiruan Backpropagation di PHP - Contoh Program + Source Code, Semoga artikel tentang Contoh Jaringan Saraf Tiruan Backpropagation di PHP - Contoh Program + Source Code ini sangat bermanfaat bagi teman-teman semua, jangan lupa untuk mengunjungi lagi melalui link Contoh Jaringan Saraf Tiruan Backpropagation di PHP - Contoh Program + Source Code.


Posted by: Metode Algoritma Updated at: 12.11

{ 0 komentar... Views All / Send Comment! }

Posting Komentar