Jumat, 08 November 2013

Membuat Neural Network di Excel


Membuat Neural Network di Excel

Adalah sebuah impian penulis untuk bisa membuat pelatihan Neural Network (NN) dalam file excel, setelah mencari-cari ternyata ada beberapa hal yang disyaratkan:
1. Harus memahami konfigurasi NN
2. Harus memahami bagaimana relasi antara semua input dan output sehingga memudahkan kita untuk menuliskan formula dalam excel
3. Harus memahami kriteria pelatihan NN, misal mencari nilai minimum dari kesalahan absolute, kesalahan kuadrat rata-rata atau parameter lainnya.
4. Harus memiliki solver add-on di excel yang sesuai, misal xlpert, genehunter dan lain-lain
5. Harus bisa mengkonversi balik dari nilai weight dan bias yang diperoleh menjadi bahasa pemrograman C atau mq4 agar bisa diimplementasikan ke dalam MT4 chart berupa indicator.

Adapun langkah-langkah yang harus dilakukan secara ringkas adalah sebagai berikut (anda bisa melihat secara detail pada buku saya "ANALISIS SAHAM MENGGUNAKAN METATRADER" berikut file excelnya:
1. Menyiapkan data untuk training NN
   a. Mengidentifikasi apa yang menjadi input dan output
   b. Berapa banyak input dan output?
   c. Berapa banyak patterns(pola baris data)?
   d. Melakukan pengskalaan/normalisasi data menjadi [0,1], [-1,1], dan lain-lain
2. Mendefinisikan konfigurasi NN
    a. Berapa banyak Slab?
    b. Berapa banyak neurons tersembunyi pada masing-masing slab?
    c. Mendefinisikan fungsi transfer, misal tanh=1/exp(-x))
    d. Menginisiasi nilai-nilai weight and bias
    e. Memasukkan formula pada masing-masing neuron-neuron tersembunyi
    f. Menasukkan formula untuk neuron-neuron output
    g. Memasukkan formula untuk  error^2  and MSE
3. Menjalankan add-in Solver
    a. Kriteria pencarian bisa berupa pencarian nilai minimum MSE atau maximum R2
    b. Memasukkan gambar  output dan output prediksi
4. Pemrosesan data pasca training
    a. Mengembalikan skala dari output prediksi
    b. Mencatat nilai final dari weight dan bias
5. Menerapkan jaringan hasil training
    a. Mengkonversi formula antara input dan output ke dalam kode C atau MQ4
    b. Membuat file dll mengunakan kompiler C atau MT4
    c. Membuat indicator MT4 berbasis jaringan hasil training.


Berikut beberapa contoh tampilan dalam sheet excel
1. Normalisasi (pengskalaan data), saya memiliki 4 input dan 1 output
2. Konfigurasi NN: backpropagation NN, 3 slabs, 4 input dan 1 output, 29 hidden neuron pada slab 2, 29 weight, 29 bias maka kita memiliki 29 x 4 koneksi dari slab 1 ke slab 2, ada 29 weight dan 1 bias untuk koneksi slab 2 ke slab 3

3. Membuat konfigurasi dan memasukkan formula di sheet excel
Formulasi dalam sheet excel


Input: X, X1, X2, X3
Perhitungan pada Slab 2:
Weight:
w(1,1), w(1,2), w(1,3), w(1,4) untuk hidden neuron (1,1)
w(2,1), w(2,2), w(2,3), w(2,4) untuk hidden neuron (1,2)
               ……………………..
w(1,1), w(1,2), w(1,3), w(1,4) untuk hidden neuron (1,29)
Bias:
b(1,1) untuk hidden neuron (1,1)
b(1,2) untuk hidden neuron (1,2)
………………….
b(1,29) untuk hidden neuron (1,9)



Formula:
Hidden Neuron(1,1) = 1/(1+(EXP(-(X*w(1,1) + X1*w(1,2)+X2*w(1,3)+X3*w(1,4)+b(1,1) )
Hidden Neuron(1,2) = 1/(1+(EXP(-(X*w(2,1) + X1*w(2,2)+X2*w(2,3)+X3*w(2,4)+b(1,2) )
……………….
Hidden Neuron(1,29) = 1/(1+(EXP(-(X*w(29,1) + X1*w(29,2)+X2*w(29,3)+X3*w(29,4)+b(1,29) )

Perhitungan pada Slab 3:
Weight:
w(2,1), w(2,2), w(2,3), w(2,4) , w(2,5)…., w(2,29)
Bias:
b(2,1)
Formula:
Output Neuron = 1/(1+(EXP(-(h(1,1)*w(2,1) + h(1,2)*w(1,2)+h(1,3)*w(1,3)+ …. h(1,29)*w(29,4)+b(2,1) )


4. Menjalankan add-in solver 
Optimisasi:Calculate Error^2, MSE

 5. Menghitung prediksi output
6. Membandingkan prediksi dan actual dalam grafik
7. Menerapkan hasil formulasi ke dalam Mq4 atau bahasa C jika perlu


Kamis, 22 Agustus 2013

Neural Network Trend Predictor NNEA NET PRO

Jika anda tertarik dengan prediksi NN, anda bisa melihat salah satu contoh bagaimana NN digunakan untuk memprediksi arah pergerakan harga ke depan berdasarkan data historis.

Salah satu produk yang menarik adalah NN Trend Predictor Pro, seperti yang bisa anda lihat di youtube berikut:

http://www.youtube.com/watch?v=zrnflYShDFo


Saya mencoba membongkar isi dalam aplikasi tersebut, ternyata NNEA menggunakan Neurosolutions,salah satu aplikasi komersial untuk membuat jaringan NN dalam bentuk dll, kemudian di import ke dalam MT4.

Menggunakan function approximation, mendefinisikan input-output, melakukan training dan menyimpan hasil training ke dalam file dll.

Berikut hasilnya saat diterapkan ke dalam IDX-MT4 chart
Indicator ini akan termasuk dalam paket instalasi IDX-MT4 sebagai bagian dari buku yang dibuat penulis.