Aturan
belajar (learning) perceptron lebih handal jika di banding aturan heb (heb
rule). Dengan asumsi yang sesuai prosedur belajar interatifnya, dapat
dibuktikan dengan konvergenya ke bobot yang benar, yakni bobot yang
memungkinkan jaringan menghasilkan nilai output yang benar untuk setiap pola
input pelatihan (Hermawan, 2006).
Merujuk pada penjelasan di atas penting
untuk kita pelajari lebih lanjut bagaima perceptron bekerja, akan kita pelajari
juga bagaimana mengimplementasikan perceptron dengan bahasa pemerograman java. Sebab
dalam prinsifnya bahasa pemerograman apapun bisa digunakan dalam
mengimplementasikan konsep jaringan syaraf tiruan.
Contoh kasus 1.a
Data Training
X1
|
X2
|
Target
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
Data training ini
sebagai sumber pengetahuan dari sistem yang akan dibangun, algoritma dalam yang
akan digunakan, agar lebih mudah sayagambarkan dalam Gambar 1.1 dibawah ini:
Gambar 1.1 algoritma perceptron
dalam menyelesaikan contoh kasus 1.a
Langkah
buka IDE eclips, lalu buat projek baru: projek ini saya namakan “JSTproj1”
tampak sepert gambar 1.2 dibawah ini
Buat
package, dan dua buah kelas, class pertama adalah class “Perceptron” dan class
kedua adalah kelas “Driver” dimana kelas
driver sebagai kelas main untuk menjalankan program.
Berikut adalah source kode
pada class Perceptron:
package satuNN;
public class Perceptron {
public static final int [][][] andData = {{{0,0},{0}},
{{0,1},{0}},
{{1,0},{0}},
{{1,1},{1}}};
public static final double LEARNING_RATE =0.05;
public static final double[] INITIAL_WEIGHT = {Math.random(),
Math.random()};
//buat
method untuk menghitung bobot
public double
calculateWeightedSum(int[] data, double[] weights) {
double weightedSum = 0;
for(int x = 0; x < data.length; x++)
weightedSum += data[x] * weights[x];
return weightedSum;
}
//method untuk
fungsi Aktifasi
public int
applyActivationFunction(double weightedSum) {
int result = 0;
if(weightedSum > 1) result = 1;
return result;
}
//method penyesuaian
bobot
public double [] adjustWeights(int[] data, double[] weights, double error) {
double[] adjustWeights = new double[weights.length];
for(int x=0; x < weights.length; x++)
adjustWeights[x] = LEARNING_RATE * error * data[x] + weights[x];
return adjustWeights;
}
}
Sorce code pada class Driver:
package satuNN;
public class Driver {
public static void main(String[]args) {
int[][][] data = Perceptron.andData;
double[] weights = Perceptron.INITIAL_WEIGHT;
Driver
driver = new Driver();
Perceptron
perceptron = new Perceptron();
int epochNumber = 0;
boolean errorFlag = true;
double error = 0;
double[]adjustedWeights
= null;
while(errorFlag) {
driver.printHeading(epochNumber++);
errorFlag = false;
error = 0;
for(int x = 0; x < data.length; x++) {
double weightedSum = perceptron.calculateWeightedSum(data[x][0], weights);
int result = perceptron.applyActivationFunction(weightedSum);
error = data[x][1][0] - result;
if(error !=0) errorFlag = true;
adjustedWeights = perceptron.adjustWeights(data[x][0], weights, error);
driver.printVector(data[x], weights, result, error, weightedSum, adjustedWeights);
weights = adjustedWeights;
}
}
}
public void printHeading(int epochNumber) {
System.out.println("\n===Epoch#"+epochNumber+"==========================");
System.out.println(" w1
| w2 | x1| x2|Target Hasil| Hasil | Error | Bobot
Jumlah | adjusted W1 | adjusted W2");
System.out.println("------------------------------------------------------");
}
public void printVector(int[][] data, double[] weights, int result, double error, double weightedSum, double[]adjustedWeights) {
System.out.println(" "+String.format("%.2f", weights[0])+ " | " +String.format("%.2f", weights[1])+ " | "+data[0][0]+ " | " +data[0][1]+
" | " +data[1][0]+ " | "+result+ "
| " +error+ " | "+String.format("%.2f", weightedSum)+
" |
" +String.format("%.2f", adjustedWeights[0])+ " | " +String.format("%.2f", adjustedWeights[1]));}}
Dan apabila di jalankan akan tampil hasil seperti
gambar 1.3 dibawah ini:
Gambar 1.3 Hasil
pembelajaran dengan menggunakan metode perceptron
Demikian
turorial implementasi Jaringan Syaraf Tiruan dengan metode perceptron, semoga
bermanfaat. Jika ada yang kurang jelas silahkan meninggalkan komentar, untuk bisa terhubung dengan penulis silahkan kirim pesan melalui
email : laluallistilo@gmail.com
Download File disini :
0 komentar:
Posting Komentar