-
TESIS
RANCANG BANGUN SISTEM PREDIKSI NILAI TUKAR VALUTA ASING
MENGGUNAKAN JARINGAN SYARAF TIRUAN
DESIGN AND DEVELOPMENT OF FOREIGN EXCHANGE RATE PREDICTION
SYSTEM USING ARTIFICIAL NEURAL NETWORK
Diajukan untuk memenuhi salah satu syarat memperoleh derajat
Master of Computer Science Ilmu Komputer
HASAN MUROD
09/291952/PPA/02996
PROGRAM STUDI S2 ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU
PENGETAHUAN ALAM UNIVERSITAS GADJAH
MADA YOGYAKARTA2015
-
PRAKATA
Puji syukur kami panjatkan ke hadirat Tuhan Yang Maha Esa, yang
telah
melimpahkan rahmat dan karunia-Nya kepada kita semua, yang
telah
mengajarkan kepada Adam nama-nama, yang telah memerintahkan
kepada
Muhammad (shalawat dan salam padanya) untuk membaca, dan yang
telah
menganugerahkan alam semesta sebagai ayat-ayat yang harus
dibaca.
Terima kasih penulis ucapkan untuk Prof. Drs. Subanar, Ph.D.,
yang telah
membuat penelitian tugas akhir ini menjadi mudah dengan segala
bentuk
dukungan dan bimbingannya. Untuk para penguji tesis dan
pra-tesis, Prof. Dra.
Sri Hartati, M.Sc, Ph.D, Dr.-Ing. MHD. Reza M.I. Pulungan,
S.Si., M.Sc., Drs.
Agus Harjoko, M.Sc, Ph.D, dan Drs. Retantyo Wardoyo, M.Sc, Ph.D,
yang telah
memberikan kritik dan juga saran yang membangun, seluruh
pengurus dan
pengelola program studi yang telah membantu kelancaran semua
urusan, hanya
ucapan terima kasih yang bisa penulis sampaikan, semoga segala
kebaikan
mendapat balasan dari Tuhan melalui segenap alam. Tidak lupa
untuk istriku
tercinta, Upik Rasi Siti Rahayu, S.TP, yang selalu mendukung dan
memberi
semangat demi selesainya penelitian ini, juga kepada semua
teman-teman yang
telah berbagi ide dan motivasi, penulis menyampaikan terimakasih
yang setulus-
tulusnya, karena tanpa dukungan itu tentulah perjuangan akan
terasa berat.
Akhir kata, tiada gading yang tak retak, meski tidak terbebas
dari segala
bentuk kekurangan, penulis berharap semoga penelitian ini
bermanfaat untuk
kebaikan umat manusia, dan menjadi pendorong bagi penulis dan
para pembaca
untuk terus berkarya mengembangkan penelitian-penelitian
kelanjutannya.
Yogyakarta, 9 April 2015
Penulis
-
DAFTAR ISI
PRAKATA ivDAFTAR ISI vDAFTAR GAMBAR ixDAFTAR TABEL xiINTISARI
xiiABSTRACT xiii
BAB I. PENDAHULUAN 1 1.1 Latar Belakang 1 1.2 Rumusan Masalah 3
1.3 Batasan Masalah 4 1.4 Tujuan Penelitian 5 1.5 Manfaat
Penelitian 5 1.6 Keaslian Penelitian 5 1.7 Metodologi Penelitian 6
1.8 Sistematika Penulisan 9
BAB II. TINJAUAN PUSTAKA 11
BAB III. LANDASAN TEORI 19 3.1 Perdagangan Valuta Asing 19 3.1.1
Nilai tukar valas dan faktor fundamental yang
mempengaruhinya19
3.1.2 Analisa fundamental dalam prediksi nilai tukar valas 20
3.1.3 Analisa teknikal dalam prediksi nilai tukar valas 20 3.1.4
Perdagangan valuta asing dan pengukuran unjuk kerjanya 22 3.2
Jaringan Syaraf Tiruan 24 3.2.1 Neuron tunggal dan fungsi aktifasi
25 3.2.2 Multi-layer feed forward neural network 26 3.2.3 Konsep
pembelajaran/pelatihan pada jaringan syaraf tiruan 28 3.2.4
Algoritma pelatihan rambat balik 29
Laju pembelajaran dan momentum 32 3.2.5 Metode pelatihan
resilient back-propagation 33 3.2.4 Minimum lokal 35 3.2.5
Overfitting 36 3.2.6 Pengukuran unjuk kerja jaringan syaraf tiruan
38
Mean square error (MSE) 38Normalized mean square error (NMSE)
38Correct sign statistics (CS) 40Correct directional change
statistics (CD) 40
-
3.3 Algoritma Genetik 41 3.3.1 Algoritma genetik kontinyu 43
3.3.2 Pengkodean kromosom kontinyu 43 3.3.3 Pindah-silang
(crossover) 44 3.3.4 Mutasi 46 3.3.5 Seleksi 47 3.3.6 Prosedur
evolusi 47
BAB IV. ANALISA DAN PERANCANGAN SISTEM 49 4.1 Sistem dan
Komponen-Komponen Penyusunya 49 4.2 Data, Pemroses Awal, Pemroses
Akhir, dan Pembangkit Sinyal Dagang
50
4.2.1 Pengumpulan data 50Pembagian (partisi) data 51
4.2.2 Pemrosesan awal, pemrosesan akhir, dan pembangkitan sinyal
dagang
52
Pemrosesan awal masukan dan target keluaran jaringan syaraf
tiruan
52
Pemrosesan akhir 53Pembangkitan sinyal dagang 54
4.3 Jaringan Syaraf Tiruan, Pelatihan Rambat Balik Standard, dan
Pelatihan Resilient
54
4.3.1 Jaringan syaraf tiruan 54Jumlah neuron tiap lapisan
55Fungsi aktivasi 56Simpul bias 57
4.3.2 Pelatihan rambat balik standard 57 4.3.3 Pelatihan
resilient back-propagation dengan implementasi finite
difference
61
4.4 Pelatihan Hibrida Gradient-Descent Algoritma Genetik 63
4.4.1 Prosedur pelatihan hibrida 63 4.4.2 Analisa perubahan galat
pada pelatihan hibrida 64 4.4.3 Pemotongan iterasi pelatihan
gradient-descent, tingkat
hibrida, moda pelatihan gradient-descent murni, dan moda
pelatihan algortma genetik murni
66
Tingkat hibrida 66Moda pelatihan gradient-descent murni dan moda
pelatihan algoritma genetik murni
66
Fungsi fitness 66 4.5 Simulator Perdagangan 67 4.5.1 Penggunaan
modal sebagai jaminan 67 4.5.2 Jenis-jenis transaksi dan
mekanismenya 68
Transaksi membuka posisi beli 68Transaksi membuka posisi jual
68
-
Transaksi menutup posisi 69Manajemen modal 69
4.5.3 Penggunaan sinyal dagang 70 4.6 Rancangan Pengujian 70
4.6.1 Pemilihan laju pembelajaran dan momentum 70 4.6.2 Pengujian
unjuk kerja pelatihan rambat balik 70 4.6.3 Pengujian unjuk kerja
pelatihan resilient 70 4.6.4 Pengujian unjuk kerja pelatihan
algoritma genetik 71 4.6.5 Pengujian unjuk kerja pelatihan hibrida
rambat balik dan
algoritma genetik71
4.6.6 Pengujian unjuk kerja pelatihan hibrida resilient dan
algoritma genetik
71
4.6.7 Pengujian unjuk kerja simulasi perdagangan jangka
panjangdengan pelatihan ulang
72
BAB V. IMPLEMENTASI 73 5.1 Perangkat Pengembangan dan Kode
Program 73 5.2 Data Cache, Pemrosesan Awal, Pemrosesan Akhir, dan
Pembangkitan Sinyal Dagang
74
5.2.1 Data ache 76 5.2.2 Pemrosesan awal 78 5.2.3 Pemrosesan
akhir dan pembangkitan sinyal perdagangan 78 5.3 Jaringan Syaraf
Tiruan dan Pelatihan Gradient-Descent 81 5.3.1 Bobot-bobot dan
simpul-simpul 82 5.3.2 Fungsi prediksi 82 5.3.3 Implementasi
pelatihan rambat balik standard dan resilient 84 5.3.4 Proses
pelatihan dan pengukuran unjuk kerja pelatihan 89
Iterasi pelatihan 90Pengukuran mean square error (MSE)
91Pengukuran correct sign statistics (CS) dan skor Sortino (SS)
91
5.3.6 Fungsi fitness 93 5.4 Algoritma Genetik 93 5.4.1
Pembentukan populasi baru 93 5.4.2 Seleksi 94 5.4.3 Proses
reproduksi 96 5.4.4 Proses regenerasi 98 5.4.4 Proses evolusi 99
5.5 Simulasi Perdagangan 102 5.6 Pengukuran Unjuk Kerja Return dan
Risk-Adjusted Return Rasio Sortino
104
BAB VI. HASIL PENELITIAN DAN PEMBAHASAN 106 6.1 Laju
Pembelajaran dan Momentum 106
-
6.2 Unjuk Kerja Pelatihan Rambat Balik 106 6.3 Unjuk Kerja
Pelatihan Resilient 107 6.4 Unjuk Kerja Pelatihan Algoritma Genetik
108 6.5 Unjuk Kerja Pelatihan Hibrida Rambat Balik-Algoritma
Genetik 108 6.6 Unjuk Kerja Pelatihan Hibrida Resilient-Algoritma
Genetik 108 6.7 Perbandingan Unjuk Rerata Pelatihan Algoritma
Genetik, Rambat Balik, Resilient, Hibrida Rambat Balik-Algoritma
Genetik, dan Hibrida Resilient-Algoritma Genetik
109
6.8 Simulasi Perdagangan Jangka Panjang 110 6.9 Perbandingan
dengan Penelitian Lain 112
BAB VII. KESIMPULAN DAN SARAN 113 7.1 Kesimpulan 113 7.2 Saran
Penelitian 113
DAFTAR PUSTAKA 114
-
DAFTAR GAMBAR
Gambar 3.1 Drawdown dan recovery time 23Gambar 3.2 Perkembangan
ekuitas dengan berbagai nilai Sortino ratio 23Gambar 3.3
Perbandingan sel syaraf tunggal dengan unit tunggal jaringan syaraf
buatan
24
Gamabr 3.4 Model sel syaraf tunggal (neuron) sebagai elemen
dasar komputasi jaringan syaraf tiruan
25
Gambar 3.5 Multi-layer feed-forward neural network dengan satu
layer tersembunyi
27
Gambar 3.6 Multi-layer feed-forward neural network dengan dua
layer tersembunyi (simpul-simpul bias tidak ditunjukkan)
27
Gambar 3.7 Sebuah neuron lapisan tersembunyi A dan hubungannya
dengan neuron-neuron lapisan keluaran B dan C
30
Gambar 3.8 Galat sebagai fungsi dari bobot 35Gambar 3.9
Penghentian dini (early-stopping) pada jaringan syaraf tiruan
37Gambar 3.10 Struktur DNA, gen, dan kromosom di dalam sel 41Gambar
3.11 Contoh model kromosom yang memuat 2 variabel dengan
pengkodean biner42
Gambar 3.12 Representasi visual kromosom di dalam komputer per
bit (A) dan per variabel (B)
44
Gambar 4.1 Diagram blok sistem dengan komponen-komponen sub-
sistem penyusunnya
49
Gambar 4.2 Arsitektur jaringan syaraf tiruan 55Gambar 4.3
Struktur jaringan syaraf tiruan dengan bobot-bobot yang telah
diinisialisasi serta diberi masukan dan target keluaran
58
Gambar 4.4 Perubaha bobot pelatihan hibrida gradient-descent
algoritma genetik
65
Gambar 5.1 Deklarasi kelas FXPrep (berkas mat/mat.h, baris
56-83) 74Gambar 5.2 Deklarasi struktur TFDATA dan PREPDATA
(mfann/mfann.h, baris 127-144)
75
Gambar 5.3 Deklarasi struktur dan fungsi-fungsi pemrosesan dalam
dynamic link library (berkas fprep_multidiffma4.h)
77
Gambar 5.4 Implementasi fungsi-fungsi dynamic link
library(fprep_multidiffma4.cpp, baris 37-73)
79
Gambar 5.5 Deklarasi kelas TForexANN seksi public (berkas
mfann/mfann.h, baris 146-199)
80
Gambar 5.6 Deklarasi kelas TForexANN seksi private (berkas
mfann/mfann.h, baris 201-247)
81
Gambar 5.7 Fungsi predict() dalam berkas mfann/main.cpp baris
819-865 83Gambar 5.8 Definisi fungsi BackPropagate bagian ke-1,
berkas
mfann/main.cpp, baris 868-89684
-
Gambar 5.9 Definisi fungsi BackPropagate bagian ke-2, berkas
mfann/main.cpp, baris 897-948
86
Gambar 5.10 Definisi fungsi BackPropagate bagian ke-3, berkas
mfann/main.cpp, baris 950-993
87
Gambar 5.11 Definisi fungsi BackPropagate bagian ke-4, berkas
mfann/main.cpp, baris 995-1019
88
Gambar 5.12 Implementasi penghitungan turunan parsial dengan
finite difference dalam berkas mfann/main.cpp baris 1050-1070
89
Gambar 5.13 Iterasi pelatihan 90Gambar 5.14 Pengukuran mean
square error (MSE), correct sign statistic
(CS), dan skor Sortino (SS) di dalam fungsi RunTrainThread dalam
berkas mfann/main.cpp
92
Gambar 5.15 Implementasi fungsi fitness (mfann/main.cpp, baris
497-503) 93Gambar 5.16 Deklarasi kelas TPopulation (mfann/mfann.h,
baris 249-287) 94Gambar 5.17 Definisi fungsi Create, mfann/main.cpp
(baris 3-38) 95Gambar 5.18 Implementasi metode seleksi
(mfann/main.cpp, baris
279-297)96
Gambar 5.19 Definisi fungsi Reproduce (mfann/main.cpp, baris
304-372) 97Gambar 5.20 Definisi fungsi ProduceNewGeneration, berkas
mfann/main.cpp baris 194-215
98
Gambar 5.21 Implementasi fungsi evolutionloop bagian-1 (berkas
mat/main.cpp, baris 2719-2785)
100
Gambar 5.22 Implementasi fungsi evolutionloop bagian-2 (berkas
mat/main.cpp, baris 2768-2812)
101
Gambar 5.23 Implementasi state trading_run (berkas mat/main.cpp,
baris 2580-2656)
103
Gambar 5.24 Implementasi fungsi GetSortino, berkas mat/main.cpp,
baris 2209-2261
105
Gambar 6.1 Perkembangan ekuitas simulasi perdagangan dengan
pelatihan ulang mode retstart pada model 5-6-1/RGA
101
Gambar 6.2 Hasil simulasi perdagangan EUR/USD dalam penelitian
Hedman (2012)
102
-
DAFTAR TABEL
Tabel 2.1 Perbandingan beberapa penelitian sejenis 17Tabel 6.1
Tabel 6.1 Nilai MSE untuk berbagai variasi laju pembelajaran
(LR) dan momentum106
Tabel 6.2 Unjuk kerja pelatihan rambatbalik 107Tabel 6.3 Unjuk
kerja pelatihan resilient 107Tabel 6.4 Unjuk kerja pelatihan
algoritma genetik 108Tabel 6.5 Unjuk kerja pelatihan hibrida
rambatbalik-algoritma genetik 109Tabel 6.6 Unjuk kerja pelatihan
hibrida resilient-algoritma genetik 109Tabel 6.7 Perbandingan
rerata MSE (AMSE), rerata CS (ACS), dan rerata
return (AR) untuk periode data latih dan 6 bulan
setelahnya110
Tabel 6.8 Perbandingan rerata MSE (AMSE), rerata CS (ACS), dan
rerata return (AR) untuk periode 1 dan 2 tahun
110
Tabel 6.9 Hasil simulasi perdagangan jangka panjang dengan
pelatihan ulang
111
-
INTISARI
RANCANG BANGUN SISTEM PREDIKSI NILAI TUKAR VALUTA
ASING MENGGUNAKAN JARINGAN SYARAF TIRUAN
oleh
HASAN MUROD
09/291952/PPA/02996
Potensi keuntungan dari volume perdagangan yang besar pada pasar
valuta asing mendorong pengembangan sistem prediksi untuk
memprediksi pergerakan nilai tukar berbagai mata uang yang
diperdagangkan. Jaringan syaraf tiruan merupakan salah satu model
yang banyak diteliti dalam bidang ini karena kemampuannya dalam
mempelajari pola data time-series dengan menggunakan sampel data
historis tanpa perlu mengetahui faktor-faktor yang menyebabkan
pergerakannya.
Masalah utama pada sistem seperti ini adalah sulitnya memperoleh
unjuk kerja yang konsisten dalam menghasilkan keuntungan untuk
jangka panjang. Untuk mengatasi hal ini, sistem prediksi berbasis
jaringan syaraf tiruan dengan pelatihan hibrida gradient descent
dan algoritma genetik telah dibangun. Metode hibrida memungkinkan
digunakannya skor Sortino dalam fungsi fitness sebagai usaha untuk
meningkatkan unjuk kerja jangka panjangnya.
Dengan pelatihan hibrida gradient descent-algoritma genetik,
hasil eksperimen menunjukkan bahwa sistem yang dibangun berhasil
menampilkan unjuk kerja yang baik pada simulasi perdagangan
Euro-U.S. Dollar jangka panjang (sekitar 5 tahun). Dengan
pengukuran unjuk kerja risk-adjusted-return untuk periode yang
cukup panjang, investor atau manajer investasi akan mendapatkan
keyakinan yang lebih tinggi dalam mempertimbangkan suatu sistem
sebagai pilihan investasi.
-
ABSTRACT
DESIGN AND DEVELOPMENT OF FOREIGN EXCHANGE RATE
PREDICTION SYSTEM USING ARTIFICIAL NEURAL NETWORK
by
HASAN MUROD
09/291952/PPA/02996
Potential profit coming from high trading volume in
foreign-exchange market motivates the development of prediction
system to predict the movement of the traded currencies's rate.
Artificial neural network is one of the model which is largely
researched in this field because its ability to predict time-series
pattern by learning only from the historical sample data without
prior knowledge about the cause or the rule of the moves.
The main problem of such system is the difficulty of obtaining
consistent performance in making profit for the long term. To
overcome this isue, a prediction system based on artificial neural
network with hybrid training of gradient descent-genetic algorithm
was built. The method of hybrid training enable the use of Sortino
score in the fitness function as an effort to enhance the long term
performance.
With hybrid training of gradient descent-genetic algorithm,
experiment result shows that the developed system performs well in
a long term Euro-U.S. Dolar trading simulation (about 5-year
period). With long term risk-adjusted-return performance
measurement, an investor or investment manager would have a higher
confidence in considering the system as an investment choice.
-
1BAB I PENDAHULUAN
1.1 Latar BelakangPotensi keuntungan dari volume perdagangan
yang besar pada pasar valuta
asing merupakan faktor yang mendorong berkembangnya usaha
untuk
memprediksi pergerakan nilai tukar berbagai mata uang yang
diperdagangkan.
Sebagai ilustrasi, volume perdagangan U.S. Dollar pada April
2013 mencapai 5,3
trilyun Dollar per hari (Rime dan Schrimpf, 2013). Salah satu
model yang banyak
diteliti sebagai basis dari sistem prediksi perubahan nilai
tukar valuta asing adalah
jaringan syaraf tiruan (JST). Model ini banyak digunakan karena
kemampuannya
dalam mempelajari pola data time-series dengan hanya berdasarkan
pada
informasi dari sampel data historis tanpa perlu mengetahui
faktor-faktor
fundamental yang menyebabkan pergerakannya.
Metode penelitian pada perancangan sistem prediksi berbasis
jaringan
syaraf tiruan biasanya menggunakan sejumlah sampel data historis
terbaru yang
dibagi menjadi tiga bagian, yaitu himpunan data pelatihan,
validasi, dan pengujian
(Kaastra dan Boyd, 1996). Metode seperti ini banyak digunakan
oleh banyak
peneliti seperti misalnya Ouyang dan Yin (2014), Evans dkk.
(2013), Fathian dan
Kia (2012), Lahmiri (2011), Philip dkk. (2011), Yu dkk. (2005),
serta
Kamruzzaman dan Sarker (2004). Pembagian data menjadi himpunan
data
pelatihan, validasi, dan pengujian dilakukan dengan membagi data
historis dengan
proporsi sekitar 70%, 20%, dan 10% (Yao dan Tan, 2001). Dengan
metode ini,
percobaan dilakukan pada sistem dengan beberapa variasi
konfigurasi parameter,
kemudian unjuk kerjanya dibandingkan untuk memilih konfigurasi
yang
menghasilkan unjuk kerja terbaik pada himpunan data uji (out-of
training
sample). Sebagai contoh, jika sampel data historis tersedia dari
tahun 2001-2010
(periode 10 tahun), maka himpunan data uji diambil dari 10%
segmen terakhir,
yaitu sampel dari tahun 2010. Dengan partisi data seperti itu,
sebuah sistem
-
2kemudian diujicoba dengan beberapa konfigurasi, misal
konfigurasi A, B, dan C.
Sistem tersebut kemudian dilatih dengan data dari tahun
2001-2007, divalidasi
dengan data tahun 2008-2009, dan diuji unjuk kerjanya dengan
data 2010. Jika
kemudian terpilih konfigurasi B sebagai konfigurasi terbaiknya,
maka kemudian
disimpulkan bahwa sistem yang diteliti berhasil memberikan unjuk
kerja sesuai
dengan unjuk kerja sistem dengan konfigurasi terbaiknya
(konfigurasi B).
Metode seperti mempunyai masalah, misalnya ketika sistem akan
digunakan
secara nyata (real-time) pada tahun 2011, maka konfigurasi
terbaiknya (apakah itu
A, B, atau C) tidak diketahui karena pengujian dengan data
periode tahun 2011
untuk memperbandingkannya tidak dapat dilakukan karena datanya
tidak tersedia
(karena belum terjadi). Jika untuk penggunaannya secara nyata
(real-time) pada
tahun 2011 digunakan konfigurasi B yang ditentukan dengan
pengujian
menggunakan data historis tahun 2010, maka metode tersebut
mengasumsikan
bahwa unjuk kerja selama satu tahun tertentu (2010) memiliki
kemiripan dengan
tahun berikutnya (2011), yang pada kenyataanya tidak selalu
demikian.
Dari sudut pandang manajemen investasi, memproyeksikan unjuk
kerja 1
tahun ke depan berdasarkan unjuk kerja 1 tahun sebelumnya boleh
saja dilakukan,
tetapi sebagai dasar pengambilan keputusan apakah suatu
investasi akan dipilih
sebagai opsi untuk diversifikasi atau tidak akan lebih
meyakinkan jika proyeksi
tersebut dilakukan berdasarkan tren perkembangan ekuitas dalam
jangka waktu
yang lebih panjang (lebih dari 3 tahun). Kaastra dan Boyd (1996)
menyarankan
agar simulasi perdagangan dilakukan untuk mengukur parameter
risk-adjusted
return sebagai dasar untuk memilih jaringan terbaik, bukan
berdasarkan galat
terkecil dari pelatihan jaringan syaraf tiruan.
Karena jaringan tidak dipilih secara langsung berdasarkan galat
terkecil
pada pelatihan, maka ada satu pertanyaan yang muncul, yaitu
adakah suatu
metode pelatihan yang secara khusus dirancang untuk meningkatkan
unjuk kerja
risk-adjusted-return? Untuk menjawab pertanyaan ini penulis
mencoba
membangun sebuah metode pelatihan yang menggabungkan metode
pelatihan
-
3gradient-descent dan algoritma genetik (hibrida
gradient-descent algoritma
genetik). Pelatihan gradient-descent dilakukan pada sejumlah
jaringan syaraf
tiruan. Sejumlah jaringan tersebut kemudian dilihat dari sudut
pandang algoritma
genetik sebagai sebuah populasi, sehingga kemudian pelatihannya
dilanjutkan
dengan regenerasi melalui seleksi, pindah-silang, dan mutasi.
Generasi baru yang
dihasilkan kemudian dilatih kembali dengan metode
gradient-descent, dan
dihitung nilai fitness-nya. Proses regenerasi yang diikuti
dengan pelatihan
gradient-descent ini dilakukan secara berulang-ulang dari satu
generasi ke
generasi selanjutnya hingga nilai fitness antar generasinya
tidak lagi menunjukkan
peningkatan yang signifikan. Sebagai upaya untuk meningkatkan
unjuk kerja risk-
adjusted return, maka nilai fitness yang digunakan pada proses
seleksi
dirumuskan menggunakan skor Sortino sebagai salah satu unsurnya.
Skor Sortino
diperkenalkan dalam penelitian ini sebagai modifikasi dari rasio
Sortino, yaitu
parameter risk-adjusted return yang hanya menggunakan deviasi
negatif
(penurunan ekuitas) sebagai pengukur resiko. Dengan metode
pelatihan hibrida
pada sistem prediksi ini, keuntungan (return) dari perdagangan
yang dilakukan
berdasarkan hasil prediksinya diharapkan akan meningkat tidak
hanya pada
sampel data latih tetapi juga pada penggunaanya secara real-time
atau
simulasinya menggunakan sampel data uji di luar sampel data
latih.
1.2 Rumusan MasalahSesuai dengan latar belakang permasalahan
yang telah dipaparkan,
masalah dalam penelitian ini dapat dirumuskan sebagai
pertanyaan-pertanyaan
berikut:
Bagimana metode pelatihan hibrida gradient-descent algoritma
genetik
dirancang dan diimplementasikan pada jaringan syaraf tiruan
untuk
aplikasi prediksi nilai tukar valuta asing?
Apakah metode pelatihan hibrida tersebut dapat menaikkan
tingkat
keberhasilan prediksi perubahan nilai tukar valuta asing, jika
dibandingkan
-
4dengan metode pelatihan gradient-descent murni atau algoritma
genetik
murni?
Apakah metode pelatihan hibrida tersebut dapat meningkatkan
keuntungan
(return) pada simulasi perdagangan valuta asing, jika
dibandingkan dengan
metode pelatihan gradient-descent murni atau algoritma genetik
murni?
1.3 Batasan MasalahDengan judul Rancang Bangun Sistem Prediksi
Nilai Tukar Valuta Asing
menggunakan Jaringan Syaraf Tiruan, batasan masalah yang
diteliti adalah:
1. Variabel yang diprediksi dibatasi pada perubahan nilai tukar
satu hari ke
depan pada mata uang Euro-U.S. Dollar.
2. Topologi jaringan syaraf tiruan syaraf tiruan dibatasi pada
multi-layer
perceptron dengan 3 lapisan, yaitu 1 lapisan masukan, 1
lapisan
tersembunyi, dan 1 lapisan keluaran.
3. Algoritma pelatihan jaringan syaraf tiruan dibatasi pada
metode yang
diteliti secara khusus dalam penelitian ini, yaitu gabungan atau
hibrida
antara gradient-descent dan algoritma genetik.
4. Algoritma gradient-descent yang diujicoba sebaga sebagai
elemen hibrida
dibatasi pada algoritma standard back-propagation dan
resilient.
5. Pengukuran tingkat keberhasilan prediksi dibatasi pada
pengukuran
parameter correct sign statistic, yaitu prosentase hasil
prediksi yang arah
perubahannya benar, tanpa memperhatikan besarnya kenaikan
atau
penurunannya.
6. Untuk uji coba sistem sebagai pengambil keputusan dalam
perdagangan,
simulasi perdagangan harian dilakukan untuk periode yang
dibatasi pada 6
bulan, 1 tahun, dan 2 tahun untuk sistem tanpa pelatihan ulang,
dan 4,8
tahun untuk sistem dengan pelatihan ulang setiap 16 minggu
sekali.
-
51.4 Tujuan PenelitianPenelitian dengan judul Rancang Bangun
Sistem Prediksi Nilai Tukar
Valuta Asing Menggunakan Jaringan Syaraf Tiruan ini bertujuan
untuk:
1. Merancang dan membangun sistem prediksi nilai tukar valuta
asing
menggunakan jaringan syaraf tiruan yang dilatih dengan metode
pelatihan
hibrida gradient-descent algoritma genetik
2. Membandingkan parameter-parameter unjuk kerja mean square
error,
correct sign statistic, dan return (keuntungan pada simulasi
perdagangan)
antara metode pelatihan hibrida gradient-descent algoritma
genetik,
gradient-descent murni, dan algoritma genetik murni.
3. Mengujicoba sistem dengan melakukan simulasi perdagangan
harian
dengan pelatihan ulang secara periodik untuk mendapatkan
gambaran
potensi keuntungan dan resikonya dalam penggunaan jangka
panjang.
1.5 Manfaat PenelitianPenelitian ini bermanfaat baik dilihat
dari segi pengembangan sistem
maupun dari segi penerapannya, yaitu:
1. Dari segi pengembangan sistem, penelitian ini memberikan
alternatif
metode pelatihan jaringan syaraf tiruan yang mungkin bisa
diterapkan
pada kasus lain (selain aplikasi sistem prediksi nilai tukar
valuta asing).
2. Dari segi aplikasi, penelitian ini menghasilkan suatu sistem
yang unjuk
kerjanya lebih meyakinkan (dari sudut pandang manajemen
investasi)
karena diukur dengan ukuran risk-adjusted-return dalam
simulasi
perdagangan harian dalam periode yang cukup panjang.
1.6 Keaslian PenelitianSejauh yang diketahui penulis dari studi
pustaka yang telah dilakukan,
algoritma pelatihan yang menggabungkan algoritma pelatihan
gradient-descent
dan algoritma genetik dalam langkah-langkah bergantian yang
terintegrasi di
-
6dalam proses evolusi belum pernah diteliti dalam
penelitian-penelitian yang telah
dipublikasi. Istilah hibrida gradient-descent algoritma genetik
telah
diperkenalkan oleh Castro dkk. (1998), tetapi dalam penelitian
tersebut kedua
metode (gradient-descent dan algoritma genetik) dilakukan secara
terpisah, yaitu
dilakukan pelatihan dengan algoritma genetik terlebih dahulu
hingga konvergen
kemudian dilanjutkan dengan gradient-descent hingga konvergen,
tidak dilakukan
secara terintegrasi seperti dalam penelitian ini. Penelitian ini
menjadi lebih unik
lagi karena unsur algoritma genetik dalam hibridanya menggunakan
fungsi fitness
yang mengandung elemen skor Sortino, yang secara khusus
diperkenalkan di
dalam penelitian ini sebagai parameter pengukur
risk-adjusted-return yang
dirumuskan dengan memodifikasi rasio Sortino.
1.7 Metodologi PenelitianUntuk mencapai tujuan penelitian
seperti yang telah diuraikaan, penulis
menggunakan metode studi pustaka, merancang sistem,
mengimplementasikan
rancanga sistem, dan melakukan pengujian untuk mengetahui unjuk
kerjanya.
Berikut uraian langkah-langkahnya:
1. Studi pustaka digunakan untuk mengkaji teori-teori yang
berkaitan dengan
jaringan syaraf tiruan dan algoritma genetik sebagai dasar
untuk
melakukan perancangan dan mengimplementasikan sistemnya,
kemudian
mengkaji penelitian-penelitian sejenis untuk mendapatkan ide
yang dapat
dikembangkan dalam penelitian ini, sekaligus untuk memastikan
bahwa
solusi yang diteliti merupakan hal baru yang belum pernah
diteliti
sebelumnya.
2. Perancangan sistem prediksi dilakukan dengan menentukan
variabel
masukan dan keluaran, pemrosesan awal, pembagian (partisi)
data,
arsitekstur jaringan syaraf tiruan, dan metode pelatihan, yang
diuraikan
sebagai berikut:
a) Nilai tukar harian pada harga penutupan pasar hari ini, 1
hari
-
7sebelumnya, 2 hari sebelumnya, 3 hari sebelumnya, dan
seterusnya
sampai 32 hari sebelumnya digunakan sebagai variabel
masukan,
kemudian perubahan nilai tukar pada penutupan 1 hari ke
depan
digunakan sebagai variabel yang akan diprediksi.
b) Pemrosesan awal dilakukan dengan menghitung terlebih
dahulu
perubahan nilai tukar tiap hari. Rerata perubahan 2 hari
terakhir (p1),
rerata perubahan 4 hari terakhir (p2), rerata perubahan 8 hari
terakhir
(p3), rerata perubahan 16 hari terakhir (p4), dan rerata
perubahan 32
hari terakhir (p5) kemudian dihitung untuk mendapatkan indikator
atau
fitur yang akan digunakan sebagai masukan jaringan syaraf
tiruan
bersama-sama dengan perubahan nilai tukar hari terakhir
(p0).
c) Partisi data dilakukan dengan membagi data historis
menjadi
himpunan data latih dan data uji. Himpunan data latih diambil
dari data
nilai tukar penutupan harian periode 1 Januari 2008 sampai
dengan 31
Desember 2009 (2 tahun), dan himpunan data uji dari periode 1
Januari
2010 sampai dengan 31 Oktober 2014 (4,8 tahun).
d) Arsitektur jaringan syaraf tiruan dirancang sesuai batasan
yang
ditetapkan yaitu dengan topologi multi-layer perceptron dengan
3
lapisan (1 lapisan masukan, 1 lapisan tersembunyi, dan 1
lapisan
keluaran). Fungsi sigmoid digunakan sebagai fungsi aktivasi
pada
semua neuron lapisan tersembunyi dan fungsi linear digunakan
sebagai
fungsi aktivasi pada lapisan keluaran. Jumlah neuron pada
lapisan
keluaran adalah 1 buah sesuai dengan rancangan jumlah
variabel
keluaran sistem prediksi. Jumlah neuron pada lapisan
tersembunyi
divariasikan dari 3-6 neuron, sementara jumlah neuron
masukan
divariasikan dari 4-6 untuk mengujicoba manakah jaringan yang
lebih
efektif, apakah yang menggunakan 6, 5, atau 4 variabel masukan
saja.
Untuk 6 masukan digunakan variabel-variabel mulai dari
perubahan
nilai tukar hari ini (p0) hingga rerata perubahan 32 hari
terakhir (p5),
-
8sementara untuk 5 dan 4 masukan masing-masing hanya sampai
pada
variabel rerata perubahan 16 dan 8 hari terakhir (p4 dan
p3).
e) Pelatihan jaringan syaraf tiruan dirancang menggunakan metode
yang
secara khusus diperkenalkan dalam penelitian ini, yaitu metode
hibrida
gradient-descent algoritma genetik. Metode pelatihan
gradient-
descent murni (rambat balik standard dan resilient) dan
algoritma
genetik murni juga digunakan sebagai pembanding terhadap
metode
hibrida yang dirancang berdasarkan gabungan keduanya.
3. Rancangan sistem diimplementasikan dengan menulis kode-kode
program
menggunakan bahasa C++ dengan pengembang perangkat lunak
Ultimate++, yang menyediakan perancangan antarmuka pengguna
secara
visual dan menyediakan pustaka kode untuk bermacam-macam
fungsi.
4. Pengujian sistem dilakukan dengan mengujicoba proses
pelatihan,
kemudian menjalankan simulasi perdagangan harian, baik tanpa
pelatihan
ulang maupun dengan pelatihan ulang.
a) Metode pelatihan gradient-descent, algoritma genetik, dan
hibrida
gradient-descent algoritma genetik diujicobakan pada semua
variasi
struktur jaringan syaraf tiruan yang telah ditentukan. Data
pelatihan
yang digunakan diambil dari data historis periode 1 Januari 2008
31
Desember 2009.
b) Setelah jaringan syaraf tiruan dilatih, sistem diujicoba
dengan simulasi
perdagangan harian tanpa pelatihan ulang selama 2 tahun (1
Januari
2010 31 Desember 2011). Simulasi perdagangan dilakukan
dengan
melihat apakah hasil prediksi jaringan syaraf tiruan untuk satu
hari
kedepan bernilai positif atau negatif. Jika nilainya positif
maka aksi
beli akan dilakukan, sedangkan jika nilainya negatif maka aksi
jual
yang akan dilakukan. Keuntungan perdagangannya akan diukur
untuk
periode 6 bulan pertama, 1 tahun pertama, dan 2 tahun
seluruhnya.
-
9c) Beberapa struktur jaringan syaraf tiruan dengan
keuntungan
perdagangan terbesar pada simulasi tanpa pelatihan ulang
dalam
periode 2 tahun akan dipilih untuk diujicoba dengan simulasi
perdagangan harian untuk masa yang lebih panjang (1 Januari
2010
30 Oktober 2014) dengan pelatihan ulang setiap 16 minggu
sekali.
1.8 Sistematika PenulisanLaporan penelitian ini disusun dalam 7
bab, yaitu pendahuluan, tinjauan
pustaka, landasan teori, analisa dan perancangan sistem,
implementasi, hasil dan
pembahasan, serta kesimpulan dan saran, dengan sistematika
sebagai berikut:
BAB I PENDAHULUAN
Berisi latar belakang, rumusan masalah, batasan masalah,
tujuan
penelitian, manfaat penelitian, keaslian penelitian,
metodologi
penelitian, dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Berisi rangkuman studi pustaka yang dilakukan dalam menelaah
penelitian-penelitian tentang perancangan sistem prediksi nilai
tukar
valuta asing menggunakan jaringan syaraf tiruan yang telah
dilakukan
oleh orang lain, yang menjadi ide dari permasalahan dan solusi
yang
akan diujicoba dalam penelitian ini.
BAB III LANDASAN TEORI
Berisi uraian teori-teori dasar yang bersifat pokok tentang
perdagangan
dan prediksi nilai tukar valuta asing, jaringan syaraf tiruan,
dan
algoritma genetik, yang menjadi landasan utama dalam
menguraikan
permasalahan dan mencari solusinya.
BAB IV ANALISA DAN PERANCANGAN SISTEM
Berisi rincian analisa bagian-bagian sistem yang perlu dirancang
untuk
membangun sistem prediksi menggunakan jaringan syaraf tiruan
dan
mengujicoba unjuk kerjanya.
-
10
BAB V IMPLEMENTASI
Berisi uraian kode-kode program yang digunakan untuk
mengimplementasikan sistem sesuai dengan rancangannya.
BAB VI HASIL DAN PEMBAHASAN
Berisi pembahasan hasil pengujian sistem dan analisanya,
berdasarkan
uji coba menggunakan data nilai tukar Euro U.S. Dollar.
BAB VII KESIMPULAN DAN SARAN
Berisi kesimpulan hasil penelitian dan saran untuk
penelitian
selanjutnya, sesuai dengan hasil pengujian dan analisanya
dalam
hubungannya dengan tujuan penelitian.
-
11
BAB II TINJAUAN PUSTAKA
Metode untuk merancang sistem prediksi pada aplikasi
finansial
menggunakan jaringan syaraf tiruan telah diuraikan oleh Kaastra
dan Boyd
(1996). Dalam makalah tersebut diuraikan secara sistematis
prosedur atau
langkah-langkah yang harus dilakukan dalam perancangan sistem,
yang meliputi
penentuan variabel masukan dan keluaran, pengumpulan data,
pemrosesan awal,
pembagian atau partisi data, perancangan jaringan syaraf tiruan,
dan pelatihan.
Pembagian atau partisi data dilakukan dengan cara membagi data
historis yang
tersedia menjadi 3 bagian, yaitu himpunan data latih, himpunan
data uji, dan
himpunan data validasi. Dalam panduan peramalan finansial dengan
jaringan
syaraf tiruan yang ditulis oleh Yao dan Tan (2001), pembagian
data menjadi
himpunan data latih, validasi, dan data uji disarankan
menggunakan proporsi
70%, 20% dan 10% dari total data historis yang tersedia. Bagian
data yang
terkahir, yaitu himpunan data uji dengan proporsi 10% merupakan
himpunan data
yang sama sekali tidak digunakan dalam proses pelatihan (out of
training sample),
sehingga hasil prediksi pada himpunan data ini dapat dianggap
sebagai simulasi
penggunaannya secara nyata (real time). Metode partisi/pembagian
data yang
hanya menggunakan sebagian kecil sampel diluar data latih
(10%-30% dari total
data historis yang tersedia) untuk pengujian sistem seperti ini
banyak digunakan
dalam penelitian-penelitian prediksi finansial, seperti dalam
mayoritas penelitian-
penelitian yang disurvey oleh Yu dkk. (2007), juga dalam
penelitian-penelitian
setelahnya seperti dalam penelitian oleh Lahmiri (2011), Philip
dkk. (2011),
Fathian dan Kia (2012), Evans dkk. (2013), serta Ouyang dan Yin
(2014).
Lahmiri (2011) melakukan studi perbandingan atas beberapa
algoritma
pelatihan back-propagation dalam prediksi finansial. Data yang
digunakan adalah
nilai tukar harian indeks S&P500 dari Oktober 2003 sampai
dengan Januari 2008,
dengan 80% data digunakan untuk pelatihan dan 20% untuk
pengujian. Dari
-
12
sepuluh macam algoritma pelatihan yang diperbandingkan,
penelitian ini
menemukan bahwa metode quasi newton
(Broyden-Fletcher-Goldfarb-Shanno),
Levenberg-Marquadt, dan standard back-propagation merupakan tiga
metode
terbaik pada pengukuran mean square error, dengan waktu
pelatihan tercepat
didapatkan pada metode Levenberg-Marquadt.
Philip dkk. (2011) meneliti sistem prediksi nilai tukar mata
uang Nigeria
(NAIRA) terhadap beberapa mata uang asing (USD, JPY, GBP,
EUR)
menggunakan jaringan syaraf tiruan. Dalam penelitian ini
digunakan multi-layer
feed forward network, dengan pelatihan back-propagation (dengan
learning rate,
tanpa momentum). Data historis nilai tukar harian antara tahun
2003-2005
sejumlah 800 titik dibagi menjadi data latih (500 titik),
validasi (200 titik) dan
pengujian (100 titik). Unjuk kerja sistem prediksi diukur dalam
akurasi dan galat
(mean square error) dan dibandingkan dengan HMM (hidden markov
model),
hasilnya menunjukkan bahwa model jaringan syaraf tiruan pada
berbagai mata
uang secara konsisten menunjukkan unjuk kerja yang jauh lebih
baik.
Fathian dan Kia (2012) menambahkan faktor eksternal berupa harga
emas
dalam tiap mata uang yang dipertukarkan (5 hari terakhir).
Terhadap sistem yang
hanya menggunakan nilai tukar lima hari terakhir sebagai masukan
jaringan syaraf
tiruan, penambahan faktor eksternal ini berhasil meningkatkan
akurasi ketepatan
arah (naik atau turun) sekitar 1,2% sampai 2,3% dari ketepatan
sebelumnya yang
berkisar antara 60%-62%. Dalam penelitian ini digunakan data
nilai tukar GBP-
USD, USD-JPY, dan EUR-USD, dari tahun 2001-2010 dengan pembagian
7:2:1
untuk himpunan data latih, validasi, dan pengujian.
Evans dkk (2013) menggunakan algoritma genetik untuk
menentukan
jumlah neuron pada dua lapisan tersembunyi, dengan neuron
lapisan masukan
sejumlah 20 titik. Data yang digunakan adalah nilai tukar
GBP-USD, EUR-USD,
dan EUR-GBP dari 1 Oktober 2010 hingga 28 Februari 2012. Tiap
sampel berupa
himpunan 20 titik data masukan dan 1 titik target keluaran.
Himpunan masukan
didapat dari 20 titik nilai tukar dari suatu hari antara jam
22:00 12:36 (interval
-
13
40 menit), dan satu titik target keluaran didapat dari nilai
tukar 6 jam berikutnya
(dari titik masukan terakhir) yaitu nilai pada jam 18:36.
Sejumlah 300 sampel
pertama digunakan untuk pelatihan dan pengujian dengan data
latih (in-sample
testing), kemudian 40 sampel sisanya untuk out-of-sample
testing. Hasil pengujian
menunjukkan keberhasilan sistem dalam memperoleh keuntungan
tahunan 23,3%.
Pengukuran risk-adjusted-return juga dilakukan dalam penelitian
ini, yaitu
menggunakan parameter rasio Sharpe dan berada pada kisaran
0,54-0,7.
Sayangnya, data pengujian (out of sample) yang hanya berjumlah
40 sampel data
harian (sekitar 2 bulan masa aktif perdagangan) menjadikan
pengukurannya
kurang meyakinkan jika dilihat dari sudut pandang manajemen
investasi.
Ouyang dan Yin (2014) meneliti model neural gas mixture
autoregressive
(NGMAR) neural network untuk prediksi nilai tukar harian GBP
terhadap USD,
EUR, dan JPY. Data yang digunakan adalah data dari tahun 2001
2012, dengan
total 3000 titik data, 2700 titik digunakan untuk pelatihan dan
300 titik untuk
pengujian. Sepuluh titik data digunakan sebagai masukan JST.
Jika dibandingkan
dengan metode self-organizing mixture auto regressive (SOMAR),
multi-lyer
perceptron (MLP), maupun recurrent neural network (RNN), metode
NGMAR
memberikan performa terbaik dengan normalized root mean square
(NRMSE)
sebesar 0,0752 dan correct-predicted percentage (CPP) 57,58%
pada nilai tukar
dengan USD, NRMSE 0,0387 CPP 54,95% pada EUR, NRMSE 0,0375
CPP
54,55% pada JPY.
Dari uraian penelitian-penelitian sejenis yang telah dipaparkan,
pengujian
menggunakan sampel di luar data latih banyak dilakukan pada
periode yang relatif
pendek, yang berkisar antara 10-30% dari total periode historis
yang tersedia.
Pengujian dengan sejumlah kecil data (periode kurang dari 3
tahun) di luar sampel
pelatihan tanpa melalui simulasi penggunaannya dalam jangka
panjang seperti ini
cukup bermanfaat untuk membandingkan dan mengembangkan metode
pelatihan
jaringan syaraf tiruan, tetapi belum cukup untuk digunakan
sebagai dasar
pertimbangan bagi investor dalam mengambil keputusan apakah
sistem yang
-
14
dibangun bisa menjadi satu pilihan diversifikasi investasi atau
tidak. Meskipun
sedikit, beberapa peneliti lain seperti Yao dan Tan (2000), dan
juga Hedman
(2012) melakukan pengujian sistem simulasi perdagangan harian
dalam jangka
panjang untuk memberikan hasil pengukuran unjuk kerja yang lebih
meyakinkan
atas potensi kegunaannya dalam perdagangan nyata.
Yao dan Tan (2000) menerapkan metode partisi data dalam
simulasi
jendela waktu berjalan, dengan membagi data historis dari
Januari 1984 sampai
dengan November 1995 menjadi 12 segmen yang tumpang tindih.
Segmen
pertama diambil dari periode 6,5 tahun pertama (338 titik nilai
tukar mingguan).
Dari segmen tersebut, data dari periode 6 tahun pertama (312
titik) digunakan
sebagai himpunan data pelatihan (260 titik) dan validasi (52
titik), kemudian data
setengah tahun terakhir (26 titik) digunakan sebagai himpunan
data pengujian.
Segmen kedua merupakan periode 6,5 tahun yang didapat dari
jendela waktu
segmen pertama yang digeser sejauh 0,5 tahun; sehingga himpunan
data latih dan
validasi segmen kedua akan tumpang tindih dengan segmen pertama,
tetapi
himpunan data ujinya (setengah tahun terakhirnya) tidak. Segmen
ke-3 dan
seterusnya hingga segmen ke-12 masing-masing didapat dengan
penggeseran
jendela waktu sejauh 0.5 tahun dari segmen sebelumnya. Hasil
simulasi dalam
penelitian ini menunjukkan perolehan tahunan rata-rata sebesar
28,62%.
Meskipun menunjukkan rerata nilai perolehan tahunan yang cukup
baik, namun
sayangnya nilai ini diperoleh dengan memilih unjuk kerja terbaik
dari beberapa
konfigurasi yang diujicobakan pada masing-masing segmen periode
simulasi.
Sistem yang dicoba menggunakan 6 neuron pada lapisan masukan,
2-4 neuron
pada lapisan tersembunyi, dan 1 neuron pada lapisan keluaran.
Dari 12 segmen
periode yang diujicoba, 7 segmen menunjukkan hasil terbaiknya
pada sistem
dengan 2 neuron pada lapisan tersembunyi, 4 segmen menunjukkan
hasil
terbaiknya pada sistem dengan 3 neuron pada lapisan tersembunyi,
dan 2 segmen
menunjukkan hasil terbaiknya pada sistem dengan 4 neuron pada
lapisan
tersembunyi. Pemilihan hasil terbaik pada percobaan dengan data
historis seperti
-
15
ini memang dapat dilakukan untuk menghasilkan unjuk kerja yang
sangat baik
pada keseluruhan periode waktu, akan tetapi metode seperti ini
tidak dapat
diterapkan pada keadaan sesungguhnya dalam perdagangan secara
real-time. Hal
ini dikarenakan keputusan untuk memilih konfigurasi mana yang
akan digunakan
dalam perdagangan pada setengah tahun ke depan harus dilakukan
saat itu juga
(secara real time), tidak dapat diputuskan berdasarkan hasil
terbaik dengan
menjalankan semua sistem dengan semua variasi konfigurasi untuk
menjalankan
perdagangan saat itu.
Hedman (2012) melakukan simulasi perdagangan dan pengukuran
risk-
adjusted-return untuk mengevaluasi unjuk kerja sistem prediksi
menggunakan
jaringan syaraf tiruan dalam simulasi perdagangan valuta asing.
Dalam penelitian
tersebut, sistem dengan arsitektur feed-forwad neural network
(FFNN) dan
probabilistic neural network (PNN) dibangun, diujicoba, dan
dibandingkan
hasilnya. Pengujian dilakukan baik menggunakan sampel data
harian untuk
prediksi satu hari ke depan maupun menggunakan sampel data
mingguan untuk
prediksi satu minggu ke depan. Masukan jaringan menggunakan 5
titik log-return
dari nilai tukar mata uang yang diperdagangkan, 5 titik selisih
log-return dari
indeks saham gabungan negara atau wilayah yang mempengaruhinya,
5 titik
selisih perubahan tingkat suku bunga, dan 5 titik log-return
dari harga minyak.
Untuk perdagangan harian, jumlah sampel nilai tukar harian yang
digunakan
sebagai himpunan data latih (dengan porsi 70%) dan validasi
(dengan porsi 30%)
adalah 200 titik untuk PNN dan 250 titik untuk FFNN. Simulasi
pada sistem
FFNN dilakukan dengan melakukan pelatihan dan validasi dengan
250 titik data
(x1..x250), kemudian digunakan untuk melakukan prediksi titik
data berikutnya
(x251). Hasil prediksi kemudian digunakan untuk mengambil
keputusan transaksi
dagang. Selanjutnya jaringan dilatih ulang dengan data
x2...x251, kemudian
digunakan untuk melakukan prediksi titik ke-252 (x252) dan
hasilnya digunakan
untuk mengambil keputusan transaksi perdagangan, begitu
seterusnya hingga data
hari terakhir simulasi digunakan. Jumlah hari perdagangan
sebanyak 2897 dan
-
16
2947 hari masing-masing digunakan dalam simulasi perdagangan
pada model
FFNN (25 Desember 2000 1 Februari 2012) dan PNN (16 Oktober 2000
1
Februari 2012). Untuk periode sampling 1 mingguan, data yang
digunakan adalah
nilai tukar mingguan (yang diambil nilainya pada hari Rabu) dan
jumlah hari
perdagangannya sejumlah 500 (3 Juli 2002 1 Februari 2012),
dengan jendela
waktu untuk himpunan data pelatihan dan validasi sebanyak 125
titik sampel.
Pengukuran unjuk kerja risk-adjusted-return dilakukan dengan
menghitung
parameter information ratio, yang merupakan perbandingan antara
perolehan
(return) yang disetahunkan dengan volatilitas yang disetahunkan.
Dari
keseluruhan pasangan mata uang yang dicoba, yaitu 45 pasang mata
uang negara-
negara G10, secara rata-rata menunjukkan keuntungan tahunan yang
sangat kecil,
yaitu 0,68%; 0,37%; -1,01%; dan 0,2% masing-masing pada model
prediksi
harian FFNN, prediksi mingguan FFNN, prediksi harian PNN, dan
prediksi
mingguan PNN. Perdagangan pada EUR-USD mengalami kerugian pada
semua
model keculai prediksi harian FFNN, yang menghasilkan keuntungan
tahunan
0,36%, dengan information ratio sebesar 0,0339. Unjuk kerja yang
cukup baik
hanya dicapai pada perdagangan mingguan CHF-JPY, dengan
keuntungan tahunan
sebesar 10,54% dan information ratio sebesar 0,9235.
Perbandingan beberapa penelitian sejenis ditampilkan dalam Tabel
2.1,
menampilkan berberapa penelitian tentang sistem prediksi nilai
tukar valuta asing
menggunakan jaringan syaraf tiruan. Terlihat dalam tabel, hanya
2 dari 7
penelitian yang menggunakan parameter risk-adjusted return dalam
mengukur
unjuk kerjanya. Meski kurang mendapat perhatian dalam
penelitian-penelitian
sejenis yang telah dipaparkan, Kaastra dan Boyd (1996) telah
menyampaikan
pentingnya pengukuran unjuk kerja sistem menggunakan parameter
risk-adjusted-
return melalui simulasi perdagangan sebagai dasar bagi pemilihan
konfigurasi
sistem yang paling optimal, bukan berdasarkan galat terkecil
pada proses
pelatihan. Ide untuk menggunakan pengukuran risk-adjusted-return
menimbulkan
-
17
Tabel 2.1 Perbandingan beberapa penelitian sejenis
Peneliti Metode Pengukuran Risk-adjusted-return
Periode pengujian di luar sampel
Ouyang dan Yin (2014)
Membangun dan mengujicoba metode neural gas mixture of
autoregressive (NGMAR) untuk prediksi nilai tukar GBP dengan
beberapa mata uang lain
Tidak 1,15 tahun
Evans dkk. (2013)
Menggunakan algoritma genetik untuk menentukan jumlah neuron 2
lapisan tersembunyi dalam jaringan multi-layer perceptron.
Ya 0,15 tahun
Fathian dan Kia (2012)
Menambahkan harga emas 5 hari terakhir dalam kedua nilai mata
uang yang dipertukarkan sebagai masukan jaringan multi-layer
perceptron bersama-sama dengan nilai tukarnya dalam 5 hari
terakhir.
Tidak 1 tahun
Hedman (2012)
Membandingkan unjuk kerja feed-forwad neural network dan
probabilistic neural network
Ya 11 tahun
Philip dkk. (2011)
Membandingkan model jaringan syaraf tiruan dengan pelatihan
back-propagation tanpa momentum dan model hidden markov untuk
memprediksi nilai tukar mata uang Nigeria (NAIRA) dengan beberapa
mata uang lain.
Tidak 0,4 tahun
Lahmiri (2011)
Membandingkan bermacam-macam algoritma pelatihan
back-propagation untuk memprediksi pergerakan harian index
S&P500
Tidak 1 tahun
Yao dan Tan (2000)
Mengujicoba jaringan syaraf tiruan dengan indikator moving
average beberapa periode untuk prediksi nilai tukar mata uang satu
minggu ke depan
Tidak 6 tahun
suatu pertanyaan menarik, yaitu jika pengukuran unjuk kerja
risk-adjusted-return
pada penggunaan sistem dalam simulasi perdagangan di luar sampel
data latih
digunakan sebagai dasar pemilihan model atau konfigurasi yang
paling optimal,
maka apakah kemudian unjuk kerja tersebut bisa ditingkatkan
dengan melakukan
optimasi parameter risk-adjusted-return di dalam proses
pelatihannya? Untuk
menjawab pertanyaan inilah, penulis mencoba membuat sebuah
sistem prediksi
-
18
menggunakan jaringan syaraf tiruan yang dilatih dengan metode
hibrida, yaitu
pelatihan yang menggabungkan metode gradient-descent dan
algoritma genetik
secara terintegrasi, yang memungkinkan optimasi parameter
risk-adjusted-return
dilakukan dalam proses pembelajarannya. Dengan metode ini, unjuk
kerja sistem
yang diukur dengan menghitung keuntungan pada simulasi
perdagangan
diharapkan akan meningkat tidak hanya pada simulasi menggunakan
himpunan
sampel data latih tetapi juga pada simulasi menggunakan himpunan
data di luar
himpunan sampel data latihnya.
-
19
BAB III LANDASAN TEORI
3.1 Perdagangan Valuta AsingPerdagangan valuta asing (valas)
terjadi karena adanya perdagangan antar
negara yang menggunakan mata uang yang berbeda. Karena volume
perdagangan
dunia yang begitu besar, maka dengan sendirinya transaksi
perdagangan valuta
asing juga sangat besar. Pada April 2013, perdagangan pasar
valuta asing
mencapai 5,3 trilyun dollar (United States Dollar) per hari,
meningkat 35%
dibanding volume perdagangan pada 2010 (Rime dan Schrimpf,
2013). Pasar
valuta asing bisa dipandang sebagai pasar dua tingkat (two-tier
market), yang
mana tingkatan pertama adalah tingkatan grosir (antar bank), dan
tingkatan
lainnya adalah tingkatan pengecer. Peserta dalam pasar valuta
asing bisa
dikategorikan dalam lima kelompok: bank internasional, nasabah
bank, dealer
non-bank, broker valas, dan bank sentral (Eun dan Resnick,
2012).
3.1.1 Nilai tukar valas dan faktor fundamental yang
mempengaruhinyaSebagai sesuatu yang diperdagangkan di pasar bebas,
nilai tukar valas
tidak terlepas dari hukum penawaran-permintaan. Meskipun nilai
tukar ditentukan
oleh total dari penawaran dan permintaan, pengetahuan ini saja
tidak cukup untuk
membantu manajer finansial untuk memahami dan memprediksi
perubahan nilai
tukar. Faktor-faktor fundamental, seperti inflasi, suku bunga,
keseimbangan
ekspor-impor, dan kebijakan pemerintah merupakan faktor yang
penting dalam
menjelaskan fluktuasi nilai tukar valas baik jangka pendek
maupun jangka
panjang (Block dan Hirth, 2008). Naiknya laju inflasi, turunnya
suku bunga, dan
peningkatan impor dibanding ekspor merupakan faktor yang bisa
menyebabkan
turunnya nilai tukar mata uang. Kebijakan pemerintah juga bisa
secara langsung
maupun tidak langsung mempengaruhi nilai tukar. Kebijakan secara
langsung
-
20
misalnya intervensi bank sentral dalam pasar valas, dan
kebijakan tidak langsung
contohnya adalah pembiayaan anggaran belanja negara yang terlalu
besar
sehingga bisa meningkatkan laju inflasi.
3.1.2 Analisa fundamental dalam prediksi nilai tukar
valasAnalisa fundamental dalam prediksi nilai tukar valas adalah
metode
prediksi menggunakan model yang disusun berdasarkan teori-teori
makro
ekonomi pembentukan harga pasar. Sebagai contoh, sebuah model
dari nilai tukar
mungkin berupa fungsi dengan parameter-parameter laju inflasi,
perbandingan
ekspor impor, pertumbuhan domestik bruto, suku bunga, dan
sebagainya.
Pendekatan fundamental dalam prediksi nilai tukar valas memiliki
tiga kesulitan
utama (Eun dan Resnick, 2012). Kesulitan yang pertama adalah
bahwa parameter
yang digunakan dalam model harus diprediksi terlebih dahulu,
seperti misalnya
untuk memprediksi nilai tukar Euro dan Dollar tiga bulan ke
depan dengan model
fundamental yang melibatkan laju inflasi maka laju inflasi untuk
tiga bulan ke
depan untuk Euro dan Dollar harus diprediksi terlebih dahulu.
Kesulitan yang ke
dua, adalah bahwa parameter-parameter model yang berupa
konstanta, yang
didapatkan dengan optimasi atau pencocokan dengan data historis
bisa saja
ternyata berubah menurut waktu karena adanya perubahan kebijakan
pemerintah
dan atau perubahan struktur ekonomi yang mendasarinya. Kesulitan
yang ke tiga
adalah bahwa model yang disusun bisa saja salah, meskipun dalam
pengujian bisa
mencocoki sebagian besar data historis.
3.1.3 Analisa teknikal dalam prediksi nilai tukar valasAnalisa
teknikal dalam prediksi nilai tukar valas adalah metode
prediksi
nilai tukar dengan hanya berdasarkan data historis nilai tukar
itu sendiri. Neely
dan Weller (2011), merangkum dan menjelaskan kembali apa yang
telah
dipaparkan oleh Murphy (1986) dan Pring (1991), bahwa ada tiga
prinsip yang
mendasari analisa teknikal yaitu bahwa aksi pasar mengalahkan
segalanya, harga
bergerak dalam tren, dan sejarah mengulang dirinya sendiri.
Prinsip-prinsip
-
21
tersebut dapat diuraikan sebagai berikut:
1. Aksi pasar (yang berupa berubahnya harga dan volume
transaksi) adalah
fakta yang mengalahkan segalanya. Ini berarti bahwa semua
faktor
penyebab perubahan harga sudah tercermin dalam perubahan harga
itu
sendiri. Dengan kata lain, data historis dari harga nilai tukar
telah
mengandung semua informasi, sehingga tidak perlu memprediksi
atau
meneliti fundamentalnya.
2. Harga bergerak dalam tren. Ini merupakan prinsip dasar yang
merupakan
pengingkaran terhadap pernyataan bahwa harga bergerak secara
acak.
Dengan prinsip ini maka kita bisa mengatakan bahwa tren harga
sedang
naik atau turun, meskipun sepertinya terlihat acak. Tanpa
prinsip ini maka
tidak ada landasan logis bagi pedagang untuk mendapatkan
keuntungan
secara konsisten.
3. Sejarah akan mengulang dirinya sendiri. Fenomena ini terjadi
karena para
pedagang atau pemain pasar mempunyai kecenderungan bereaksi
dengan
cara yang sama jika dihadapkan pada situasi yang mirip. Prinsip
inilah
yang menjelaskan mengapa pola tertentu bisa terjadi secara
periodik dalam
data historis harga-harga komoditas, nilai tukar valas, atau
harga saham.
Dengan prinsip-prinsip tersebut, para pedagang yang menggunakan
analisa
teknikal secara murni berusaha memprediksi arah tren maupun
perubahannya
untuk masa yang akan datang hanya berdasarkan data harga-harga
saat ini dan
masa lalu. Sebagai contoh, beberapa pedagang menggunakan dua
rerata bergerak
yang masing-masing menggunakan perioda yang panjangnya berbeda.
Jika rerata
bergerak 5 hari terakhir adalah MA5 dan rerata bergerak 10 hari
terakhir adalah
MA10, maka tren dikatakan sedang naik jika MA5 lebih besar dari
MA10, sedang
turun jika MA5 lebih kecil dari MA10, akan berbalik naik MA5
saat ini lebih
besar tetapi sebelumnya lebih kecil dari MA10, dan akan berbalik
turun jika saat
-
22
ini lebih kecil tetapi hari sebelumnya lebih besar dari MA10.
Dalam contoh ini,
parameter rerata bergerak adalah "indikator" yang digunakan
dalam analisa
teknikal dalam prediksi tren harga. Para analis teknikal
menggunakan banyak
sekali indikator-indikator teknikal, yaitu parameter-parameter
tertentu yang
digunakan untuk membantu mengidektifikasi tren dari pergerakan
harga, seperti
misalnya average direction index (ADX), average true range
(ATR), deviasi
standard, dsb.
3.1.4 Perdagangan valuta asing dan pengukuran unjuk
kerjanyaAnalisa teknikal menghasilkan prediksi pergerakan harga
yang dapat
digunakan untuk menyusun strategi pembelian atau penjualan mata
uang secara
otomatis. Unjuk kerja dari sistem perdagangan seperti ini
biasanya dinilai
sebagaimana sebuah aset atau investasi. Return adalah perolehan
atau keuntungan
dari suatu perdagangan. Dalam satu periode perdagangan, ekuitas
(modal
ditambah keuntungan atau dikurangi kerugian) dapat mengalami
kenaikan atau
penurunan, dan return dapat dihitung sebagai berikut:
Return=E tE0
E0100% , (3.1)
dengan Et adalah nilai ekuitas pada akhir periode dan E0 adalah
ekuitas pada awal
periode. Bersama-sama dengan return, parameter maximum drawdown
juga
merupakan parameter yang selalu digunakan untuk mengukur unjuk
kerja suatu
perdagangan. Maximum drawdawn adalah penurunan ekuitas terbesar
yang
dialami dalam suatu periode tertentu. Dalam gambar 3.1
ditunjukkan penurunan
ekuitas yang pertama terjadi pada drawdown DD1, yang berhasil
pulih dengan
waktu pemulihan (recovery time) t1, dan yang kedua terjadi pada
DD2, yang
berhasil pulih dengan waktu t2. Karena DD2 lebih besar dari DD1
maka maximum
drawdown dari asset tersebut adalah DD2. Sama seperti
perhitungan return,
maximum drawdown juga dikonversi ke dalam prosentase. Drawdown
dapat
dipandang sebagai ukuran resiko atau potensi kerugian dari suatu
asset,
perdagangan, atau investasi.
-
23
Gambar 3.1 Drawdown dan recovery time
Pengukuran return dan maximum drawdown secara bersama-sama
memberikan
informasi yang berimbang antara keuntungan dan resikonya.
Gambar 3.2 Perkembangan ekuitas dengan berbagai nilai Sortino
ratio
Pengukuran risk-adjusted-return yang memberikan gambaran secara
lebih merata
dilakukan dengan menggunakan Sortino ratio, yang dirumuskan
sebagai
SR= Rtn
, (3.2)
dengan R adalah keuntungan rata-rata yang didapat, t adalah
target keuntungan
rata-rata minimal yang seharusnya bisa diterima tanpa resiko
(seperti tingkat suku
-
24
bunga deposito atau acuan lainnya), dan n adalah deviasi negatif
dari return
ekuitas bulanan. Gambar 3.2 menunjukkan beberapa contoh
perkembangan
ekuitas dan nilai Sortino ratio-nya.
3.2 Jaringan Syaraf TiruanJaringan syaraf tiruan adalah sebuah
model komputasi yang fungsi,
struktur, dan cara kerjanya dibangun dengan menirukan model
jaringan sel-sel
syaraf otak makhluk hidup. Wallace (2008) menggambarkan
perbandingan antara
sel syaraf tunggal biologis dengan unit tunggal syaraf tiruan
untuk menonjolkan
kemiripannya seperti dalam Gambar 3.3 Cell body digambarkan
sebagai inti dari
pemroses yang berfungsi menghasilkan sinyal keluaran ketika
jumlahan dari
sinyal masukan mencapai taraf tertentu, yaitu ketika sel syaraf
dikatakan dalam
keadaan teraktivasi. Sinyal listrik keluaran dari sel syaraf ini
disalurkan melalui
axon. Dendrite berfungsi sebagai peraba listrik (electrical
probe) dan bertindak
sebagai gerbang masukan yang menerima rangsangan listrik dari
sel syaraf yang
lain. Jaringan syaraf biologis terdiri dari banyak sel yang
saling terhubung.
Keluaran dari satu sel syaraf (axon) terhubung ke sel syaraf
yang lain melalui
antarmuka yang disebut synapse yang menempel pada dendrite sel
syaraf yang
lain. Synapse mempunyai karakteristik berupa pengaturan kuat
lemahnya sinyal
yang diteruskan dari sumber masukan ke dalam sel syaraf yang
menjalankan
fungsi keputusan apakah akan dihasilkan sinyal keluaran atau
tidak.
Gambar 3.3 Perbandingan sel syaraf tunggal dengan unit tunggal
jaringan syaraf buatan (Wallace, 2008)
-
25
Dalam jaringan syaraf tiruan, synapse dimodelkan sebagai elemen
pengali
dengan bobot tertentu. Bobot atau faktor pengali ini yang
nantinya akan diatur
nilainya melalui proses pelatihan sehingga jaringan syaraf
tiruan bisa
menghasilkan fungsi seperti yang diinginkan. Bagaimana unit-unit
tunggal syaraf
tiruan saling terhubung untuk menghasilkan sistem jaringan
dengan konfigurasi
tertentu telah dieksplorasi oleh banyak peneliti dan
menghasilkan bermacam-
macam struktur jaringan syaraf tiruan, seperti misalnya
multi-layer feed forwad
neural network dan recurrent neural network.
3.2.1 Neuron tunggal dan fungsi aktivasiModel sel syaraf
(neuron) tunggal sebagai elemen penyusun jaringan
syaraf tiruan ditampilkan dalam bentuk diagram blok dalam Gambar
3.4, yang
menggambarkan unit neuron tunggal sebagai sistem pemrosesan.
Gambar 3.4 Model sel syaraf tunggal (neuron) sebagai elemen
dasar komputasi jaringan syaraf tiruan
Dengan masukan-masukan u1..un , bias B, bobot-bobot w1..wn, dan
fungsi aktivasi
f(), maka keluaran (aktivasi) dari sel syaraf z dapat dituliskan
dalam formula
sebagai berikut:
-
26
z= f (i=i
n
w i ui+B) (3.3)
Fungsi aktivasi f() adalah fungsi yang mengubah nilai tertentu
menjadi nilai yang
lain dengan karakteristik transfer yang dapat dipilih sesuai
dengan kebutuhan.
Beberapa fungsi aktivasi yang lazim digunakan adalah:
Threshold f (x )= 1 x01 x
-
27
banyak neuron dengan struktur tertentu guna menghasilkan fungsi
komputasi
untuk aplikasi tertentu. Salah satu struktur yang populer untuk
jaringan syaraf
tiruan adalah multi-layer feed-forward neural network, yang
dilukiskan dalam
Gambar 3.5 dan Gambar 3.6.
Gambar 3.5 Multi-layer feed-forward neural network dengan satu
lapisan tersembunyi
Gambar 3.6 Multi-layer feed-forwad neural network dengan dua
lapisan tersembunyi (simpul-simpul bias tidak ditunjukkan)
-
28
Multi-layer feed-forward neural network merupakan jaringan
dengan
banyak lapisan, yang terdiri dari lapisan masukan, lapisan
tersembunyi, dan
lapisan keluaran. Lapisan masukan hanya mempunyai satu masukan,
tidak
memiliki bobot, dan juga tidak memiliki fungsi aktivasi selain
fungsi identitas.
Lapisan ini hanya merupakan simpul-simpul yang berfungsi
menerima data dan
meneruskannya ke neuron pada lapisan tersembunyi. Lapisan
tersembunyi
merupakan lapisan neuron yang tidak terhubung secara langsung
baik ke masukan
maupun keluaran. Lapisan tersembunyi bisa terdiri dari satu
lapis (Gambar 3.5)
atau lebih (Gambar 3.6). Terakhir, lapisan keluaran merupakan
lapisan neuron
yang keluarannya menjadi keluaran dari jaringan. Jumlah neuron
tiap lapisan juga
bisa divariasikan sesuai dengan kebutuhan komputasi. Pada Gambar
3.5, simpul
bias digambarkan sama seperti neuron yang lain tetapi dia tidak
memiliki
masukan, dan keluarannya dibuat konstan sebesar 1. Dengan
memperlakukan bias
sama seperti neuron yang lain, maka kemudian bobotnya pun bisa
ditentukan
dengan cara yang sama seperti bobot-bobot yang lain. Meskipun
tidak
diperlihatkan dalam Gambar 3.6, simpul-simpul bias pada jaringan
syaraf tiruan
dengan jumlah lapisan yang lebih banyak juga diimplementasikan
dengan cara
yang sama.
3.2.3 Konsep pembelajaran atau pelatihan pada jaringan syaraf
tiruanKonsep belajar atau berlatih merupakan konsep yang dikenal
oleh
makhluk hidup, yaitu bagaimana makhluk hidup mencoba bereaksi
terhadap
masukan dari lingkungan dengan mengeluarkan respon tertentu,
secara terus
menerus berusaha memperbaiki responnya untuk mencaapai tujuan
tertentu.
Proses belajar seperti ini tampak seperti misalnya pada anak
ayam yang baru
menetas, bagaimana dia belajar berdiri, jatuh-bangun
berkali-kali, hingga sampai
akhirnya bisa berdiri dan bahkan berjalan.
Jika kita analisa struktur multi-layer feed-forward neural
network sebagai
elemen-elemen tunggal yang saling berhubungan, maka formula dari
hubungan
-
29
masukan-masukan dan keluarannya juga bisa dengan mudah kita
turunkan
formulanya. Sebagai contoh, jika kita tuliskan formula keluaran
pada sistem yang
dilukiskan pada Gambar 3.5, maka kita akan mendapati sebuah
fungsi dengan 3
parameter masukan dan mengandung 13 konstanta yang merupakan
nilai-nilai
semua bobot. Sejauh ini bisa dikatakan bahwa kita memiliki
sebuah "komputer"
atau "mesin" dengan 3 buah masukan dan 1 keluaran, dan fungsi
atau mekanisme
kerjanya bisa kita program dengan mengatur atau memprogram 13
konstanta di
dalamnya. Jika dikehendaki agar mesin tersebut menjalankan
fungsi tertentu,
misalnya menampilkan nilai volume sebuah balok pada keluarannya
jika
masukan-masukannya diumpani nilai-nilai panjang dari ketiga
sisinya, maka yang
disebut sebagai proses belajar bagi mesin tersebut adalah proses
atau prosedur
yang harus dijalani untuk menyesuaikan nilai bobot-bobot di
dalamnya
berdasarkan contoh-contoh data yang ada sehingga mesin tersebut
bisa
menghasilkan fungsi atau tanggapan yang diharapkan. Sebagaimana
makhluk
hidup yang belajar dari pengalaman (informasi/data) masa lalu,
maka
pembelajaran atau pelatihan pada jaringan syaraf tiruan juga
merupakan metode
yang memanfaatkan data-data di dalam prosesnya hingga sistem
bisa menemukan
sendiri rumusannya (nilai-nilai yang sesuai untuk semua
bobotnya). Kemampuan
untuk menemukan sendiri model atau rumusan sebuah fungsi yang
sangat
kompleks (sesuai kompleksitas struktur jaringan dan fungsi
aktivasinya) hanya
berdasarkan data-data atau pengalaman masa lalu inilah yang
membuat sistem
jaringan syaraf tiruan menjadi menarik, terutama untuk
memodelkan hubungan
antar variabel yang model analitiknya belum diketahui secara
pasti.
3.2.4 Algoritma pelatihan rambat balikPertanyaan yang harus
dijawab oleh sebuah algoritma pelatihan jaringan
syaraf tiruan adalah, jika kita memiliki sejumlah sampel data
berupa sejumlah
vektor masukan x1,x2,...,xn dan sejumlah target keluaran
t1,t2,..tn, maka
bagaimanakah cara mengatur nilai-nilai bobot pada jaringan
syaraf tiruan agar
jaringan tersebut memberikan respon berupa keluaran t1 ketika
diberi masukan
-
30
vektor x1, memberikan respon keluaran t2 ketika diberi masukan
t2, dan
memberikan respon keluaran tn ketika diberi masukan tn?
Prinsip dasar dari algoritma pelatihan jaringan syaraf tiruan
adalah
mengubah nilai bobot-bobot sedikit demi sedikit untuk
memperkecil galat.
Metode yang menggunakan informasi perubahan galat relatif
terhadap bobot
untuk mengubah bobot tersebut sedikit demi sedikit disebut
metode gradient-
descent, atau disebut juga dengan steepest-descent. Pada awalnya
akan terdapat
galat keluaran yang besar ketika sampel data diaplikasikan pada
masukan jaringan
karena bobot-bobotnya diberi nilai awal secara acak, tetapi
kemudian informasi
nilai galat ini digunakan untuk sebagai dasar untuk mengubah
bobot-bobotnya
dengan rumusan tertentu untuk memperkecil galatnya. Percobaan
mengubah nilai
bobot-bobotnya ini dilakukan berulang-ulang sampai diperoleh
galat yang
minimal.
Untuk tiap sampel data, langkah pertama adalah mengaplikasikan
nilai
masukan pada jaringan dan menghitung responnya (nilai aktivasi)
pada setiap
neuron di dalamnya. Pada lapisan keluaran, galat bisa dihitung
langsung dari
selisih antara aktivasi neuron keluarannya dengan target yang
diinginkan. Untuk
lapisan tersembunyi, galat pada tiap neuronnya dihitung dengan
merambatkan
balik galat neuron lapisan setelahnya.
Gambar 3.7 Sebuah neuron lapisan tersembunyi A dan hubungannya
dengan neuron-neuron lapisan keluaran B dan C
-
31
Untuk menunjukkan bagaimana algoritma pelatihan rambat balik
bekerja,
pada gambar 3.7 ditunjukkan hubungan sebuah neuron (A) yang ada
pada lapisan
tersembunyi dengan neuron-neuron (B dan C) yang berada pada
lapisan keluaran.
Neuron A terhubung dengan B melalui bobot WAB dan terhubung
dengan C
melalui bobot WAC, dan algoritma pembelajarannya akan berjalan
seperti berikut:
1. Data masukan diterapkan dan nilai aktivasi semua neuronnya
dihitung, ini
akan menghasilkan nilai keluaran yang bisa jadi sangat jauh dari
target
yang diharapkan karena pada awalnya bobot-bobot ditentukan
secara acak.
2. Galat pada neuron lapisan keluaran dihitung sebagai
berikut:
E = Target aktivasi.
Pada contoh neuron B, maka
EB = Target AktivasiB.
3. Bobot pada semua hubungan yang menuju neuron lapisan keluaran
diubah.
Untuk neuron B, dengan W+AB adalah bobot yang baru dan WAB
adalah
bobot awal, maka
W+AB=WAB + EB * AktivasiA .
Perlu diperhatikan bahwa faktor aktivasi yang mempengaruhi
perubahan
bobot WAB adalah aktivasi dari neuron A (bukan neuron B).
4. Galat pada semua neuron lapisan tersembunyi dihitung. Untuk
lapisan
tersembunyi, karena tidak terhubung secara langsung dengan
target
keluaran, maka galatnya dirambatkan dari galat semua neuron
yang
terhubung dengannya pada lapisan setelahnya. Untuk neuron A,
galatnya
adalah
EA =0,5(AktivasiA+1)(1-AktivasiA)(EBWAB+ECWAC).
Faktor 0,5(AktivasiA+1)(1-AktivasiA) adalah turunan dari fungsi
transfer
(fungsi aktivasi) sigmoid dua kutub pada titik di mana suatu
neuron
-
32
mengeluarkan nilai aktivasinya.
5. Setelah mendapatkan galat pada neuron lapisan tersembunyi,
maka
kemudian bobot-bobotnya bisa diperbarui dengan cara yang sama
seperti
pada langkah 3.
Dengan mengulangi metode perambatan galat seperti pada langkah 4
maka
proses pelatihan atau pembaruan bobot dapat dilakukan untuk
jaringan dengan
berapapun jumlah lapisan tersembunyi.
Laju pembelajaran dan momentumDengan melihat bahwa perubahan
bobot besarnya tergantung dari besarnya
galat, maka bisa disimpulkan bahwa pergerakan nilai bobot menuju
nilai akhir
mempunyai kecepatan yang sebanding dengan galatnya. Semakin
mendekati nilai
yang dituju maka pergerakannya semakin lambat. Jika pergerakan
terlalu lambat
maka pelatihan akan membutuhkan waktu yang lama, tetapi jika
pergerakan
terlalu cepat maka ada kemungkinan titik galat minimum yang
dituju justru
terlewati sehingga arah pencarian akan berbalik. Jika
berbaliknya ini tidak
menghasilkan galat yang lebih kecil maka bisa jadi pencarian
hanya akan bolak-
balik atau berosilasi di sekitar titik optimalnya dan selalu
menghasilkan galat
tertentu yang hanya berubah menjadi positif atau negatif jika
pelatihan diteruskan.
Untuk mengoptimasi antara kecepatan dan ketepatan (galat yang
kecil) dalam
pembelajran, maka ditambahkan faktor "laju pembelajaran" yang
merupakan
faktor pengali pada perubahan bobot. Untuk neuron A dengan
aktivasi OA yang
terhubung melalui bobot WAB ke neuron B dengan galat EB, tanpa
faktor "laju
pembelajaran" pembaruan bobotnya adalah
W = EBOA (3.7)
W+AB = WAB + W (3.8)
dengan W adalah perubahan bobot, W+AB adalah bobot yang baru,
dan WAB
adalah bobot sebelumnya. Jika ditambahkan faktor laju
pembelajaran L maka
pembaruan bobotnya menjadi
-
33
W = LEBOA (3.9)
W+AB = WAB + W (3.10)
Dengan mengatur laju pembelajarannya, kini antara kecepatan dan
akurasi
pembelajarannya bisa dioptimasi. Masalah yang kemudian muncul
adalah ketika
laju pembelajarannya diperkecil agar bisa dicapai galat yang
lebih kecil ternyata
perubahan bobotnya menjadi sangat lambat bahkan ketika galatnya
masih besar.
Untuk memperbaiki kecepatan pelatihan pada kondisi seperti ini
kemudian
ditambahkan lagi faktor momentum, yang akan memperbesar lebih
lanjut
perubahan suatu bobot dengan faktor yang sebanding dengan
perubahan bobot
tersebut pada pelatihan sebelumnya. Jika faktor perubahan bobot
pada iterasi
sebelumnya adalah W-, maka pembaruan bobot dengan momentum M dan
laju
pembelajaran L pada satu iterasi bisa dituliskan sebagai
W=LEBOA +MW- (3.11)
W+ =W+ W
W- = W
3.2.5 Metode pelatihan resilient back-propagationAlgoritma
resilient back-propagation tidak menggunakan informasi
besaran gradien tetapi hanya arahnya saja. Algoritma ini
diperkenalkan pertama
kali oleh Riedmiller dan Braun (1993), yang kemudian
dikembangkan lagi oleh
Igel dan Husken (2000). Pada prinsipnya, algoritma ini
memperbarui bobot
dengan menambah atau mengurangi sebesar ukuran langkah
(step-size). Arah
gradien hanya digunakan untuk menentukan apakah bobot harus
ditambah atau
dikurangi. Besarnya ukuran langkah disesuaikan secara dinamis
dengan melihat
apakah arah gradien masih sama atau telah berbalik setelah
pembaruan bobot. Jika
arahnya sama maka ukuran langkah diperbesar dengan faktor
penguat yang
nilainya lebih dari 1, jika berbeda maka ukuran langkah
diperkecil dengan faktor
pelemah yang nilainya kurang dari 1 dan bobot dikembalikan ke
nilai sebelumnya
sebelum mengalami pembalikan gradien. Proses pengembalian nilai
bobot ke nilai
-
34
sebelumnya ini disebut weight-backtracking. Igel dan Husken
(2000)
memperbaiki proses weight-backtraking dengan melihat terlebih
dahulu besarnya
galat, sehingga pengembalian nilai bobot hanya dilakukan jika
arah gradien
berubah dan besarnya galat lebih besar dari iterasi
sebelumnya.
Jika wi,j adalah bobot dari neuron j ke neuron i, dan E adalah
galat yang
mempunyai turunan terhadap bobot, dan superscript (t) menyatakan
urutan iterasi,
maka algoritma resilient dilakukan mengikuti posedur
berikut:
Untuk setiap wi,j lakukan {
jika ( Ew i,j
(t1)
Ew i,j
(t)
)>0 maka
{ i,j(t )=min(i,j
(t1). + ,max)
w i,j(t)=sign( E
w i,j
(t)
)i,j(t )
w i,j(t+1)=w i,j
(t )+w i,j(t )
} jika tidak maka {
jika ( Ew i,j
(t1)
Ew i,j
(t)
)E (t1)maka w i,j
(t+1 )=w i,j(t )(t1) (3.12)
Ew i,j
(t )
=0
}jika tidak maka{
jika ( Ew i,j
( t1)
Ew i,j
(t)
)=0 maka
{
w i,j(t)=sign( E
w i,j
(t)
) i,j(t )
w i,j(t+1)=w i,j
(t )+w i,j(t )
}}
}
-
35
}
dengan min adalah ukuran langkah minimum, max adalah ukuran
langkah
maksimum, - adalah faktor pelemah langkah (nilainya kurang dari
1, dan +
adalah faktor penguat langkah (nilainya lebih dari 1).
3.2.6 Minimum LokalPada pelatihan jaringan syaraf tiruan dengan
sejumlah sampel data latih,
galat keluaran untuk semua sampel masing-masing dikuadratkan,
dijumlahkan,
dan kemudian diambil nilai reratanya sebagai rerata galat
kuadrat (mean square
error). Galat ini mempunyai nilai tertentu untuk kombinasi
nilai-nilai bobot
tertentu, sehingga sehingga galat ini bisa dipandang sebagai
fungsi bobot E(W)
seperti dilukiskan pada Gambar 3.8. Gambar tersebut melukiskan
profil
permukaan galat pada jaringan dengan bobot tunggal, sehingga
galat untuk semua
variasi bobotnya bisa digambarkan sebagai garis dalam koordinat
W,E(W). Jika
jaringan memiliki dua bobot W1 dan W2, maka profil permukaan
galat bisa
digambarkan sebagai bidang dalam koordinat ruang W1,W2,E(W1,W2),
begitu
juga dengan jumlah bobot berapapun, galat bisa dinyatakan
sebagai "permukaan"
dalam ruang berdimensi sesuai dengan jumlah bobot.
Gambar 3.8 Galat sebagai fungsi dari bobot
-
36
Salah satu masalah pada pelatihan dengan metode gradient descent
ini
adalah bahwa solusi yang didapat belum tentu merupakan solusi
terbaik. Pada
sistem dengan profil permukaan galat yang memiliki banyak
lembah, titik pada
dasar lembah disebut minimum lokal (local minima), sementara
titik terendah di
antara semua dasar lembah disebut minimum global (global
minima). Pada contoh
Gambar 3.8, jika bobot awal diinisialisasi dengan nilai Wa, maka
proses pelatihan
akan menggeser bobot sedikit-demi sedikit menuju bobot akhir Wb
(terjebak
dalam minimum lokal), sementara jika bobot diinisialisasi dengan
nilai Wc maka
akan didapat bobot akhir Wd (mencapai minimum global). Semakin
kompleks
pola data yang harus dipelajari dan semakin kompleks jaringan
syaraf tiruannya
(semakin banyak jumlah lapisan atau neuronnya) maka jumlah
lembah-lembah
minimum lokal kemungkinan akan semakin besar. Sebagai usaha
untuk mencapai
minimum global, jaringan syaraf tiruan biasanya dilatih
menggunakan beberapa
kali percobaan dengan inisialisasi bobot yang berbeda-beda
secara acak, namun
sayangnya tidak ada jaminan bahwa minimum global akan
tercapai.
3.2.7 OverfittingOverfitting adalah fenomena gagalnya JST dalam
melakukan generalisasi,
yaitu keadaan dimana JST lebih bersifat mengingat titik-titik
individual daripada
mempelajari pola-pola umum. Fenomena overfitting teramati ketika
jaringan bisa
menunjukkan galat yang cukup kecil pada sample data yang
dilatihkan, tetapi
mempunyai galat yang jauh lebih besar jika diujicobakan pada
sampel data yang
tidak dilatihkan (out of training sample). Data yang tidak
dilatihkan bisa saja
berupa sampel yang seharusnya dapat diinterpolasi maupun
diekstrapolasi oleh
jaringan. Overfitting ini bisa terjadi karena jumlah bobot yang
terlalu banyak
(yang berhubungan eraat dengan banyaknya neuron dan lapisan
tersembunyi), dan
juga jumlah data latih yang terlalu sedikit (Kaastra dan Boyd,
1996). Semakin
banyak jumlah bobot-bobot dalam bandingannya dengan jumlah
himpunan data
latih, maka potensi terjadinya overfitting akan semakin besar.
Solusi dengan
mengurangi kompleksitas jaringan sepertinya merupakan solusi
yang mudah dan
-
37
sederhana, akan tetapi Yu dan Wilamowski (2011) melaporkan bahwa
melatih
struktur feed forward multilayer perceptron yang sederhana
ternyata lebih sulit
daripada struktur yang memuat lebih banyak neuron, dan algoritma
pelatihan
tertentu bahkan mengalami kegagalan ketika jumlah neuron
diturunkan dari
jumlah tertentu sementara algoritma pelatihan yang lain
tidak.
Salah satu solusi mengatasi masalah overfitting ini adalah
dengan
menghentikan training secara dini (early-stop training), pada
tingkat dimana JST
cukup baik melakukan generalisasi, tidak sampai tingkat dimana
JST mengingat
titik-titik individual. Cara ini menuntut pembagian data latih
menjadi setidaknya
dua kelompok, yaitu himpunan data latih dan himpunan data uji.
Data latih berisi
sampel-sampel yang dilatihkan dengan algoritma pelatihan,
sementara himpunan
data uji digunakan untuk hanya untuk pengujian saja. Jika
jaringan syaraf tiruan
mampu memberikan respon dengan benar pada sampel-sampel data
yang tidak
dilatihkan berarti jaringan syaraf tiruan dianggap mampu
melakukan generalisasi.
Pelatihan dilakukan dengan menggunakan himpunan data latih dan
dihentikan
sementara secara berkala tiap satu atau beberapa epoch untuk
melakukan
pengujian galat pada himpunan data uji. Proses pelatihan seperti
ini diilustrasikan
dalam Gambar 3.9
Gambar 3.9 Penghentian dini (early-stopping) pada pelatihan
jaringan syaraf tiruan
-
38
Dengan metode ini pelatihan akan dihentikan secara dini jika
pengujian pada data
uji menunjukan kenaikan galat, meskipun pada data latih masih
menunjukkan
penurunan. Kenaikan galat pada data uji dianggap sebagai
menurunnya
kemampuan generalisasi dari JST.
3.2.8 Pengukuran unjuk kerja jaringan syaraf tiruanUntuk
mengukur unjuk kerja suatu jaringan syaraf tiruan, beberapa
parameter pengukuran yang sering digunakan diantaranya adalah:
mean square
error (MSE), normalized mean square error (NMSE), correct sign
statistic (CS),
dan correct directional statistic (CD).
Mean square error (MSE) MSE (mean square error) adalah rerata
dari jumlahan galat kuadrat. Untuk
jaringan syaraf tiruan dengan satu neuron keluaran dengan
himpunan sampel
masukan x1,x2,x3,...,xn; target y1,y2,y3,...,y; dan tanggapan
keluaran o1,o2,o3,...,on;
maka mean square error yang dihasilkan adalah
MSE=1ni=1
n
(oi y i)2 (3.13)
Tidak seperti rerata galat absolut atau rerata akar jumlahan
kuadrat galat
yang secara langsung bisa menggambarkan besaran galatnya secara
rata-rata,
rerata galat kuadrat ini lebih ditujukan untuk memilih atau
mengurutkan unjuk
kerja beberapa jaringan secara lebih baik dengan memberikan
pinalti yang
semakin besar untuk galat yang makin besar karena nilainya
dikuadratkan.
Dibandingkan dengan parameter unjuk kerja yang secara langsung
menunjukkan
besaran rerata galatnya, pengukuran MSE akan menilai sistem
sebagai "jauh lebih
buruk" jika ada satu atau beberapa sampel yang menghasilkan
galat yang besar
meskipun kebanyakan sampel lainnya sangat kecil galatnya.
Normalized mean square error (NMSE) NMSE (normalized mean square
error) adalah parameter galat yang
-
39
dinormalkan agar nilainya menjadi menjadi relatif terhadap
variansi target yang
diprediksi atau dihitung nilainya oleh jaringan syaraf tiruan.
Dengan normalisasi
ini, maka berbagai sistem prediksi atau pengukur bisa
diperbandingkan unjuk
kerjanya, bahkan untuk sistem-sistem dengan aplikasi data yang
berbeda. Untuk
jaringan syaraf tiruan dengan satu neuron keluaran dengan
himpunan target
pelatihan y1,y2,y3,...,yn dan tanggapan keluaran
o1,o2,o3,...,on; maka mean square
error yang dihasilkan adalah
NMSE=1ni=1
n (o i y i)2
( y i y )2 (3.14)
dengan y adalah rerata target (y1+y2+y3+...+yn)/n sehingga dapat
dituliskan pula
sebagai
NMSE= 12
1ni=1
n
(oi y i)2=MSE
2(3.15)
dengan 2 adalah variansi dari target. Jika kita membandingkan
pengukuran unjuk
kerja dari sistem-sistem prediksi dengan data yang sama persis
maka parameter
MSE sudah cukup untuk membedakan sistem mana yang lebih baik. Di
sisi lain,
jika diinginkan gambaran unjuk kerja secara umum dari suatu
sistem, maka
menyatakan besarnya galat secara absolut tanpa memberikan
informasi deviasi
atau variansi dari rentang tanggapan yang mungkin terjadi
merupakan hal yang
sia-sia karena parameter tersebut tidak dapat menggambarkan
resolusi atau
akurasinya. Sebagai contoh, jika suatu termometer dikatakan
memiliki galat rata-
rata sebesar 1 derajat celsius, kita belum bisa membayangkan
seteliti termometer
tersebut jika belum mengetahui rentang pengukuran yang
diharapkan. Jika
termometer tersebut digunakan untuk mengukur suhu tungku
peleburan logam
yang rentang pengukurannya 25oC sampai dengan 2000oC maka bisa
dikatakan
bahwa resolusi dan presisinya cukup baik, tetapi jika termometer
tersebut
seharusnya digunakan untuk mengukur suhu badan yang
kebolehjadiannya paling
sering berada diantara 35oC-40oC maka bisa dikatakan bahwa
resolusi dan
presisinya buruk.
-
40
Correct sign statistic (CS) CS (correct sign statistic)
merupakan ukuran yang sering digunakan dalam
sistem prediksi, terutama pada prediksi variabel yang nilainya
dirancang untuk
menunjukkan nilai positif atau negatif dengan titik nol sebagai
batas pembeda dari
dua kelas nilai yang perlu diklasifikasi. Sebagai contoh, pada
sistem prediksi nilai
tukar valuta asing, sistem seringkali diprioritaskan untuk dapat
memprediksi arah
perubahannya (apakah naik ataukah turun) dengan lebih tepat,
tanpa
mempermasalahkan ketepatan prediksi seberapa besar kenaikan
atau
penurunannya. Untuk menghitung CS, nilai target maupun nilai
keluaran sistem
prediksi diberi tanda. Jika nilainya sama dengan atau lebih
besar dari 0 maka
diberi tanda positif, jika tidak maka diberi tanda negatif. CS
merupakan
prosentase hasil prediksi yang menujukka