0 __
0 __ 1
x jika
x jika
o
x f
Fungsi step biner sering disebut juga fungsi threshold ambang batas".
3. Fun*&! &!*$#!d
Fungsi sigmoid merupakan fungsi yang sangat berguna dalam fungsi
aktivasi. Fungsi sigmoid sangat berguna dalam training dengan metode
backpropagation dikarenakan kesederhanaan hubungan antara nilai
fungsi pada suatu titik dan nilai derivatif turunan" pada titik tersebut yang
mengurangi beban komputasi selama proses training. Fungsi sigmoid
dinyatakan dengan ;
( )
) exp 1
1
x
x f
+
=
( ) ( ) ( ) [ ] x f x f x f = 1
!
"
fx)
x
Gambar 5. #un$%i &dentita%
x
Gambar 6. #un$%i Step 'iner
1
<. Neu(#n -%-ull#%h0P!''&
Secara umum arsitektur neural $c$ulloch!Pitts menerima sinyal dari
sejumlah neuron. Setiap koneksi bisa mendukung% berat w@)% atau menghalangi%
berat Ap p@)". $isalkan ada sejumlah n input yang beratnya berbilai positif dan
m input yang beratnya bernilai negatif maka fungsi aktivasinya adalah ;
( )
0 _
0 _
0
1
_
=
in jika
in jika
in y f
dimana > yBin C total sinyal input yang diterima
) C adalah ambang batas
#ontoh program sederhana menggunakan matlab $
% Program sederhana kasus !"& dengan "eural "etworks
% tanpa training
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function output(Simple!nd)*+ ,-
% inisialisasi
threshold(,.
w*(*.
w,(*.
% pen/umlahan bobot dan masukan
0(*1w*2,1w,.
% keluaran dari /aringan
if)03(threshold-
output(*.
else
output(4.
(
X1
Xn
Xn+m
Y
)
)
*p
Ga$a( 9. -rsitektur $c$ulloch Pitts
end
+
% Program sederhana kasus "0T dengan "eural "etworks
% tanpa training
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function output(Simple"ot)-
% inisialisasi
threshold(-4.5.
w(-*.
% pen/umlahan bobot dan masukan
0(1w.
% keluaran dari /aringan
if)03(threshold-
output(*.
else
output(4.
end
% Program sederhana kasus 0r dengan "eural "etworks
% tanpa training
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function output(Simple0r)*+ ,-
% inisialisasi
threshold(,.
w*(,.
w,(,.
% pen/umlahan bobot dan masukan
0(*1w*2,1w,.
% keluaran dari /aringan
if)03(threshold-
output(*.
else
output(4.
end
% &eskripsi $ Program untuk menyelesaikan kasus !"& dengan "eural
"etworks
% dengan pembela/aran memakai bias
% 6nput $ input ( input yang akan dites
% contoh input(74 *8
% 0utput $ output ( hasil dari !"&
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
%data input
(74 4.
4 *.
* 4.
* *8.
%data target
t(74 .4 .4 .*8.
% Pembela/aran untuk mendapatkan bobot terbaik
w(get9eights*)+ t+ 4.*+ *4-
% Test dengan input
output(:un""*)input+ w+ t-.
function w(get9eights)input+ target+ ;:+ /umlahiterasi-
10
% &eskripsi $ untuk mencari weight )bobot- pada "eural "etworks
% 6nput $ input ( input pada "eural "etworks
% target ( target pada "eural "etworks
% ;: ( ;earning rate untuk update bobot
% /umlahiterasi ( /umlah iterasi
% 0utput $ w ( bobot yang dihasilkan
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
/umlahpattern(size)input+*-.
/umlahinput(size)input+,-.
/umlahtarget(size)target+,-.
%menambah bias pada /aringan input
for p(*$/umlahpattern
input)p+/umlahinput2*-(*.
end
%inisialisasi bobot
w(78.
for /(*$/umlahinput2*
for i(*$/umlahtarget
w)/+i-(4.*51),1rand-*-.
end
end
%pembela/aran untuk mendapatkan bobot terbaik
for itr(*$/umlahiterasi
error(4.4.
for p(*$/umlahpattern
for i(*$/umlahtarget
0)i-(input)p+$-1w)$+i-.
if)0)i-34.4-
out)i-(*.
else
out)i-(4.
end
<::)i-(target)p+i--out)i-.
error(error2abs)<::)i--.
if)<::)i-'(4-
for /(*$/umlahinput2*
w)/+i-(w)/+i-2;:1input)p+/-1<::)i-.
end
end
end
end
error(error=/umlahpattern.
fprintf)>%,d %.,f?n>+itr+error-.
e)itr-(error.
end
function output(:un"")input+ w+ /umlahoutput-
% &eskripsi $ untuk men/alankan "eural "etworks
% 6nput $ input ( input pada "eural "etworks
% w ( bobot pada "eural "etworks
% /umlahoutput ( /umlah output pada "eural "etworks
% 0utput $ output ( output yang dihasilkan
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
11
%menghitung keluaran /aringan
/umlahinput(size)input+,-.
/umlahtarget(size)/umlahoutput+,-.
input)/umlahinput2*-(*.
output(zeros)/umlahtarget+*-.
for i(*$/umlahtarget
out(input1w)$+i-.
if)out34.4-
output)i-(*.
else
output)i-(4.
end
end
function output(;earn@0:)input-
% &eskripsi $ Program untuk menyelesaikan kasus @0: dengan "eural
"etworks
% dengan memakai bias.
% !rsitektur "" $
% input units ( , )2* bias-
% hidden units ( , )2* bias-
% output units ( *
% 6nput $ input ( input yang akan dites
% contoh input(74 *8
% 0utput $ output ( hasil dari !"&
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
clc
%data input
(74 4.
4 *.
* 4.
* *8.
%data target
t(74 * * 48.
% Pembela/aran untuk mendapatkan bobot terbaik
7w+s8(get9eightsA@0:)+ ,+ t+ 4.*+ ,444-.
%running
output(:un""A@0:)input+w+s-.
function 7w+s8(get9eightsA@0:)input+ /umlahhidden+ target+ ;:+ /umlahiterasi-
% &eskripsi $ untuk mencari weight )bobot- pada "eural "etworks
% yang mempunyai hidden layer pada kasus @0:
% 6nput $ input ( input pada "eural "etworks
% target ( target pada "eural "etworks
% /umlahhidden ( /umlah hidden unit pada "eural "etworks
% ;: ( ;earning rate untuk update bobot
% /umlahiterasi ( /umlah iterasi
% 0utput $ w ( bobot yang dihasilkan dari lapisan input ke lapisan tersembunyi
% s ( bobot yang dihasilkan dari lapisan tersembunyi ke lapisan output
%
12
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
/umlahpattern(size)input+*-.
/umlahpattern
/umlahinput(size)input+,-.
/umlahtarget(size)target+,-.
%menambah bias pada /aringan input
for p(*$/umlahpattern
input)p+/umlahinput2*-(*.
end
y)/umlahhidden2*-(*.
%inisialisasi bobot
for /(*$/umlahhidden
for i(*$/umlahinput2*
w)/+i-(4.*51),1rand-*-.
end
end
for k(*$/umlahhidden2*
s)k-(4.*51),1rand-*-.
end
%pembela/aran untuk mendapatkan bobot terbaik
for l(*$/umlahiterasi
error(4.4.
for p(*$/umlahpattern
0(zeros)*+,-.
for /(*$/umlahhidden
0)/-(input)p+$-1w)/+$->.
y)/-(sigmoid)0)/--.
end
0*(y1s>.
z(sigmoid)0*-.
g*(z1)*-z-.
deltaAo()target)p--z-1g*.
f*(y.1)*-y-.
for /(*$/umlahhidden
deltaAh)/-(f*)/-1deltaAo1s)/-.
end
s(s2;:1deltaAo1y.
for /(*$/umlahhidden
for i(*$/umlahinput2*
w)/+i-(w)/+i-2;:1deltaAh)/-1input)p+i-.
end
end
error(error2))target)p--z-1)target)p--z--=,.
end
error(error=B.
fprintf)>%d %.,f?n>+l+error-
e)l-(error.
end
plot)e-
function output(:un""A@0:)input+w+s-
% &eskripsi $ untuk men/alankan "eural "etworks
% 6nput $ input ( input pada "eural "etworks
% w ( bobot pada unit input ke unit tersembunyi pada "eural "etworks
13
% s ( bobot pada unit tersembunyi ke unit output pada "eural "etworks
% 0utput $ output ( output yang dihasilkan
%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
/umlahinput(size)input+,-.
/umlahinput
/umlahhidden(size)input+,-.
input)/umlahinput2*-(*. % menentukan biasnya
input
0(input1w>.
0
w
for /(*$,.
y)/-(sigmoid)0)/--.
end
y)/umlahhidden2*-(*. % bias hidden layer
0ut(y1s>.
0ut
z(sigmoid)0ut-.
if )zC4.5-
output(4.
else
output(*.
end
14