Hidden Layer Pada Jaringan Syaraf Tiruan

Dari dua jenis cara membuat Jaringan Syaraf Tiruan (JST), cara pembuatan dengan command window sebaiknya dilakukan jika Anda ingin membuat JST dengan beberapa hidden layer karea cara GUI (dengan nntool) tidak menyertakan hidden layer di dalamnya.

    Sesuai dengan namanya, JST bermaksud membuat sistem yang mirip syaraf biologis dengan suatu algoritma (ingat, syaraf tiruan dengan “y”, bukan saraf, itu lain lagi artinya J ). Jika kita punya data masukan dengan keluaran tertentu maka kita dapat mengajarkan ke JST sehingga apabila ada masukan yang berbeda, sistem akan mampu memprediksi keluarannya berdasarkan aturan yang dipelajari lewat mekanisme learning/training.

    Misal kita ingin mengajari JST pemangkatan. Tentu saja jika pemangkatan tidak perlu dengan JST, hard computing pun bisa. Tapi ini kita jadikan percobaan karena mudah dalam memverifikasikan hasilnya. Kenyataan di lapangan terkadang kita tidak menjumpai kasus yang memiliki formula matematis dalam menghitungnya misalnya tanda tangan, kita tidak dapat membuat formula matematis suatu tanda tangan.

    Buat suatu input = [1 2 3 4 5 6 7 8 9 10]; dan output = [1 4 9 16 25 36 49 64 81 100]; yang merupakan pangkat dari input. Untuk membuat JST dengan katakanlah dua hidden layer dengan masing-masing layer memiliki 30 neuron. Banyak istilah asing ya .. emang bikin pusing, neuron itu merupakan analogi yang dalam hal ini fungsi alih yang fungsinya meneruskan sinyal atau sebaliknya mematikan sinyal. Saatnya meramu JST, misal kita butuh neuron input sebanyak data masukan, 10 buah dan keluaran 10 buah.


Sengaja nih saya gunakan image, biar Anda belajar dengan mengetik langsung (tidak copy – paste). Baris pertama bermaksud mendefinisikan matriks masukan, dilanjutkan dengan keluarannya. Karena keluaran (diistilahkan dengan target) didefinisikan maka JST yang kita buat masuk kategori Supervised Learning (pembelajaran terpandu). Baris ketiga bermaksud membuat suatu jaringan syaraf tiruan dengan dua buah hidden layer, masing-masing 30 neurons dan input dengan 10 neurons. Sebenarnya parameternya ada banyak (lihat baris keempat), goal, epoch, dan lain-lain. Sebaiknya lihat help pada matlab dengan mengetik help newff. Di akhir script, JST yang kita buat akan melakukan proses learning.


Perhatikan gambar di atas, tampak dua buah hidden layer. Apakah hasilnya akurat? Tentu saja tidak, saya dan siswa-siswa saya terkadang berkali-kali meramu JST sehingga dihasilkan hasil yang optimal. Untuk mengujinya, lakukan perintah “sim”.


Lihat simulasi yang terakhir, ngaco kan? Masak 3 kwadrat = 61? Tambahkan jumlah Neuron di lapis tersembunyi (Hidden Layer). Menurut riset di jurnal-jurnal, hidden layer yang optimal itu satu saja, perlu diingat, makin banyak hidden layer, proses menjadi sangat lambat dan terkadang komputer Anda tidak sanggup memprosesnya sehingga muncul pesan “Out of Memory “. Coba ramu lagi, Cao ..


Rahmadya Trias Handayanto

Update: 26 Nov 2015

Ada yg bertanya jumlah hidden yang terbaik, apa patokannya. Referensi yg jelas-jelas mengatakan bahwa jumlah hidden optimal satu saja cukup adalah karangan Laurent Fausett judulnya: Fundamental of Neural Network: Architecture, Algorithms, and Applications, hal 299.
one hidden layer

Sementara kalo mau tau alasan detilnya mengapa harus ada hidden layer, baca bukunya Hagan (Neural network Design). Katanya untuk mengatasi problem logika XOR yang bikin JST sempat mengalami masa suram krn ga bisa menyelesaikannya.

Update: 31 Juli 2018

Berkembangnya piranti hardware saat ini memungkinkan JST untuk memproses jumlah neuron dan hidden layer yang lebih banyak. Akibatnya, dalam perkembangannya JST dioptimalkan dengan menambah jumlah neuron dan hidden layer. Istilah JST dengan jumlah hidden layer yang banyak dikategorikan sebagai deep learning. Saat ini deep learning banyak diriset. Jadi JST dengan jumlah hidden layer lebih dari satu belum tentu tidak optimal. Beberapa trik diperlukan, salah satunya adalah memodifikasi fungsi transfer.

Iklan

134 respons untuk ‘Hidden Layer Pada Jaringan Syaraf Tiruan

    1. kalo memisahkan dua kelas yang terpisah secara garis lurus prinsipnya ga perlu hidden layer. tetapi jika tidak bisa dilakukan dengan garis lurus mau tidak mau harus menambah hidden layer. hidden layer secara logika fungsinya menambah instruksi logika. misalnya logika xor jika dibentuk pemisah dengan sebuah garis lurus kan tidak bisa (ini yg menyebabkan riset jst terhenti tahun 60-an) maka diperlukan satu tahap lagi and/or untuk menambah satu garis pemisah lagi.

      1. maksudnya “memisahkan dua kelas yang terpisah secara garis lurus” itu maksudnya apa yah pak? apakah itu seperti ingin memisahkan dua kelas antara perempuan atau laki-laki?

      2. ya, tetapi kalau ada kelas lain selain laki dan perempuan sepertinya garisnya tidak lurus lagi

  1. sudah saya coba Pak, listing code diatas dengan menggunakan Matlab 2013, tapi malah keluar tulisan seperti ini
    >> input = [1 2 3 4 5 6 7 8 9 10];
    >> output = [1 4 9 16 25 36 49 64 81 100];
    >> net=newff(input,output,[10 30 30]);
    Attempt to execute SCRIPT newff as a function:
    C:\Users\MATERIAL\Documents\MATLAB\newff.m

    >> net.trainParam.goal=0.001;
    >> net=train(net,input,output);
    Undefined function ‘train’ for input arguments of type ‘struct’.

    apa yang salah Pak? mohon sekali pencerahannya..
    thx a lot n best regards

    1. saya copas script anda, jalan kok di matlab saya (R2008b). mungkin matlabnya barangkali.

      >> input = [1 2 3 4 5 6 7 8 9 10];
      >> output = [1 4 9 16 25 36 49 64 81 100];
      >> net=newff(input,output,[10 30 30]);
      >> net.trainParam.goal=0.001;
      >> net=train(net,input,output);

      trus keluar jendela training seperti biasa ..

      1. sudah sya coba lagi di matlab 2012, ternyata bisa Pak… trimakasih bxk..

        Pak, paragraf kedua dari bawah bapak berkata :
        “Perhatikan gambar di atas, tampak dua buah hidden layer. Apakah hasilnya akurat? Tentu saja tidak, saya dan siswa-siswa saya terkadang berkali-kali meramu JST sehingga dihasilkan hasil yang optimal.”

        tapi kalau saya hitung hiden layernya ada kok ada 4 pak?

        lalu dengan melakukan pengujian menggunakan “sim” darimana kita bisa tahu kalau hasilnya akurat atau tidak? untuk contoh soal diatas kan gampang, fungsi kuadrat, jadi kita bisa tahu kalau tidak akurat,,, kalau nanti sudah menggunakan permasalahan yang jauh lebih rumit dari fungsi kuadrat bagaimana kita bisa tahu itu akurat atau tidak Pak?

        thank you very much and best regards

  2. asslammualaikum pak, mau tanya mengenai JST..
    saya kebetulan sedang mengerjakan tugas akhir berkaitan dengan jst. menggunakan 3 buah neuron input, 5 neuron hidden layer, dan 5 neuron output layer. saat dilakukan pembelajaran grafik sudah konvergen. akan tetapi ketika dilakukan identifikasi, hasilnya jauh dr harapan, selalu menghasilkan nilai yang tak sesuai target. dari 18 macam target, hanya 3 yang tepat. kira-kira setau bapak letak kesalahannya ada dimana ya?
    sebelumnya terima kasih banyak

    1. 3 input menghasilkan 5 output sepertinya sulit kalau datanya kurang bagus. coba matlab 2007 siapa tahu bagus .. soalnya pernah saya coba matlab 2007 lebih baik dari 2008 hasilnya

      1. kebetulan saya tidak menggunakan matlab pak.. ngedevelop sendiri programnya untuk tugas akhir..
        data yang bagus itu seperti apa ya pak?
        terimakasih

    1. Nntool lebih mudah, hasilnya sepertinya sama. Terkadang permintaan dosen untuk membuat training dengan gui sendiri, mau tidak mau menggunakan fungsi command window

    1. Coba jalankan instruksi di bawah ini (cek lagi simbol petik ketika di command window)
      :> Epoch tampak dengan perintah betitik (50 kali iterasi/epoch)
      :> matriks bobot hidden dan output serta bias (iw, lw dan bias b)
      :> kalo sigmoid backpropagation biasanya dengan sigmoid karena jika diturunkan hasilnya sederhana (-1)

      >> p = [-2:0.1:2]
      >> t = 1+sin(pi*p/4)
      >> plot(p, t)
      >> sample = newff([-2 2], [2 1], {‘logsig’, ‘purelin’})
      >> sample.iw{1,1}
      >> sample.lw{2,1}
      >> sample.b{1,1}
      >> sample.b{2,1}
      >> y = sim(sample,p)
      >> plot(p,t,p,y,’o’)
      >> sample.trainParam.epochs = 50;
      >> sample = train(sample,p,t)
      >> sample.iw{1,1}
      >> sample.lw{2,1}
      >> sample.b{1,1}
      >> sample.b{2,1}
      >> y1 = sim(sample,p)
      >> plot(p,t,p,y1,’o’)

    1. penjelasan gampangnya, misal kita ingin misahin jenis kelamin cowok apa cewek dengan variabel/ciri tertentu, neuron itu fungsi memisahkan jika ada sinyal cewek masuk maka diperkuat jika cewek kita label 1. sementara jika ada sinyal bercirikan cowok diperlemah krn kita label 0. kalo cirinya banyak dan kelamin lebih dari 2 (di thailand kabarnya ada 7), maka butuh lebih dari satu neuron dan hidden layer (non linear, garisnya belak belok)

  3. Pak, mohon bantuannya.. saya ingin analisis dgn Backpropagation neural network dengan input node=6, output node=6, hidden node=12.. aq run script aq tapi selalu muncul error tentang output size.. kesalahan nya ada dimana y pak?

    p=[I1 I2 I3 I4 I5 I6];
    t=[T1 T2 T3 T4 T5 T6];

    net=newff(p,t,[6,12,6],{‘logsig’ ‘logsig’},’trainlm’);
    net.trainParam.show = 50;
    net.trainParam.lr = 0.05;
    net.trainParam.epochs =1e+6;
    net.trainParam.goal = 1e-3;
    net1=train(net,p,t);

      1. satu hidden layer kok pak,, jumlah node di hidden layernya 12..
        kok aq run error y Pak?
        6 node input dan 6 node output..
        Help me, please.. terima kasih

        >> p=[I1 I2 I3 I4 I5 I6];
        t=[T1 T2 T3 T4 T5 T6];

        net=newff(p,t,[6,12,6],{‘logsig’ ‘logsig’},’trainlm’);
        net.trainParam.show = 50;
        net.trainParam.lr = 0.05;
        net.trainParam.epochs =1e+6;
        net.trainParam.goal = 1e-3;
        net1=train(net,p,t);
        net=newff(p,t,[6,12,6],{‘logsig’ ‘logsig’},’trainlm’);
        |
        Error: The input character is not valid in MATLAB statements or
        expressions.

  4. pak saya kan sedang TA tentang JST kohonen pak, bisa minta bantuan manual nya untuk membangun arsitekturnya ?? variabel yang saya gunakan 4 variabel pak. Terimakasih

  5. bagaimana menentukan jumlah hidden layer, apakah ada ketentuan yang optimum dalam menentukan hidden layer agar mendapatkan presentase yang optimal.

  6. terima kasih pak. saya mau tanya lagi, dalam JST ada output layer. kalau saya punya 2 kelas, apakah outputnya harus 2 atau bisa cukup satu saja.

  7. kalau untuk jumlah neuron hidden ada referensinya gak pak berapa jumlah neuron terbaik. apakah tergantung jumlah input neuronnya, terus dilakukan sesuai dg optimasi.

  8. Pak saya mau tanya kan kalo pakai nntool bisa d lihat nilai bias di training nah kalo klo pakai command window gimana caranya?
    Trus kalo pakai nntool cara buat nambahin hidden layer nya gmn?

    1. nntool hidden layer hanya satu tetapi jumlah neuron dapat diubah. nah command window lebih lengkap dengan pilihan berapa jumlah hidden layernya (hasil riset kebanyakan menunjukan > satu hidden tidak berpengaruh signifikan terhadap kinerja JST). tiap versi sepertinya berbeda format command window untuk JST, ikuti saja dengan mengetik di command window > help newff (atau liat help)

  9. Assalamualaikum. Mau bertanya, apakah pemilihan nilai layer hidden tergantung dari jumlah data atau bagaimana? Terimakasih

    1. sudah ada yang melakukan riset (lihat JST: faucett), hidden layer satu saja sudah mencukupi. hidden layer muncul dulu untuk menyelesaikan problem XOR yang jika tanpa hidden layer tidak bisa dikerjakan. biasanya makin banyak klasifikasi, butuh neuron yang banyak di hidden.

      1. Terikamaksih atas jawabnnya sangat membantu. saya kan menggunakan traincgb kenapa hasil dari outputnya itu tidak liniear? apakah kalau menggunakan JST memang hasil outputnya tidak liniear?

      2. JST memang untuk kasus-kasus nonlinear. kalau misal memisahkan dua kelas tidak berupa garis lurus, bisa meliuk-liuk. maksudnya tidak linear kayak itu apa bagaimana? (output tidak linear?)

  10. assalamualaikum pak, saya sedang malakukan tugas akhir dengan judul Jaringan Syaraf Tiruan untuk prediksi jumlah produksi dengan algoritma bckpropogation. disini saya menggunakan x1,x2, x3, dan x4. kemuadian saya mempunyai data sebanyak 10 buah. saya sudah membagi data menjadi dua yaitu data pelatihan dan pengujian , data tersebut juga sudah saya normalisasikan. saya menggunakan 5 input, 2 hidden, dan 1 output. yang ingin saya tanyakan bagaimana cara menentukan neuron pada hidden layer, momentum, learing rate, maximal epoch, dan toleransi error? mohon bantuannya pak. terima kasih

  11. assalamualaikum, pak bila boleh tahu, sebenarnya bagaimana cara dalam menentukan target keluran pda jst? apakah boleh random ?

  12. assalamualaikum pak, saya ingin tanya, sebenarnya bagaimana cara menentukan jumlah iterasi (epoch) yang akan digunakan? hanya kita tebak-tebak saja atau ada cara perhitungannya? terimakasih

  13. Selamat sore pak, saya mahasiswi dari Institut Teknologi Del ingin menanyakan bagaimana cara menentukan jumlah hidden layer, target error dan learning rate untuk prediksi nilai akhir mahasiswa dengan 15 inputan pak ? dan apa kegunaan dari ketiganya pak ? terimakasih pak

    1. Hidden layer berdasatkan buku yg optimal satu.target error utk stop condition, learning rate utk kecepatan training (lambat akurat atau cepat tapi kadang miss)

  14. Selamat siang pak. Saya mau bertanya, perbedaannya antara Feed forward Neural Network dan Backpropagation Neural Network apa ya pak? Lalu untuk akurasi lebih besar mana antara Feed forward dengan Backpropagation? Lalu program di halaman ini termasuk jenis backpropagation atau feed forward ? Terima kasih pak.

    1. ga bisa dibandingkan. feedforward itu jenis network sementara backpropagation itu jenis learning. mungkin feedforward bisa dibandingkan dengan cascade-feedforward atau dengan LVQ, RBF, dll

  15. Malam Pak.
    Saya mau tanya soal ini :
    net = newff(minmax(data_latih),[100 100 1],{‘tansig’,’tansig’,’purelin’},’traingdx’);

    saya udah baca blog bpk.

    Apakah benar arti yang saya buat ini :

    Untuk pelatihan, dirancang sebuah jaringan syaraf tiruan terdiri dari 100 neuron pada lapisan tersembunyi dan 1 neuron pada lapisan output. Fungsi aktivasi yang digunakan adalah fungsi aktivasi tansig untuk lapisan input dan fungsi aktivasi purelin untuk lapisan output serta traindx untuk fungsi pelatihan jaringan.

    Terima kasih sebelumnya pak.

    YuYu

      1. berarti benar ya pak dari syntax ini : net = newff(minmax(data_latih),[100 100 1], artinya :
        terdapat 100 nueron pada input layer dan 100 neuron pada hidden layer dan 1 neuron pada output layer
        makasih atas penjelasannya pak

      2. takut salah jawab, bisa dilihat di help (ketik help newff di command window). Sepertinya ya.

  16. assalammualaikum, mas rahmadya
    saya ada permasalahan dalam menghitung jarak antara data referensi dengan data kueri. dimana data kueri bisa berubah-rubah matriknya . Ini formulanya
    jarak = jarak + sqrt(ZRef{j,1:8}) – ZQuery({j,1:8}).^2;

    dimana ZRef = 36×9 tapi data yang diambil hanya 1:8 saja, sementara ZQuery= 3×8.
    Pesan kesalahannya pada saat di running adalah : Cell contents reference from a non-cell array object.

    Solusinya gimana ya mas untuk pemencahan masalah saya ini
    makasih sebelumnya

    wassalam
    dolly indra

  17. Pak, saya mencoba pakai Backpropagation JST untuk klasifikasi citra. Pada saat pelatihan saya deklarasikan 4 kelas target yaitu “1”,”2″,”3″,”4″. Tapi kenapa ketika pengujian, muncul kelas “0” pada hasil klasifikasi salah satu data ? Padahal saya ga deklarasikan kelas tsb. Bagaimana solusinya ya pak ? Terima kasih banyak pak.

      1. Sepertinya beda pak. Jadi kalo saya itu sedang membuat klasifikasi citra berdasarkan ciri teksturnya. Jadi masukan kedalam jstnya berupa ciri tekstur masing2 citra. 1 citra diambil 10 ciri tekstur. Jumlah dataset ada 90. Jadi pas pelatihan dibuat matriks 10×90. Pas pelatihan normal aja, semua citra masuk kedalam kelas target yang udh ditentukan sebelumnya. Hanya pas pengujian saja, ada beberapa data yg masuk kedalam kelas yg tidak ditentukan, jadi misalnya saya punya 4 kelas terdiri dari kelas 1 2 3 4 tapi ternyata ada data yg masuk ke kelas 0 bahkan ada data yg masuk ke kelas -1. Padahal saya ga pernah deklarasikan kelas 0 dan -1 sebelumnya. 😦 Bagaimana ya pak kira-kira solusinya.? Mohon sarannya pak. Makasih pak Rahmadya

      2. selama dia JST biasa, backpropagation, bisanya ada error. makanya data training harus bagus, sebisa mungkin mewakili seluruh kelas yang dispesifikasikan. misalnya data persetujuan kredit, tentu harus ada yang ditolak dan diterima ketika training. selain itu, rentangnya juga melingkupi kemungkinan yang ada. karena kalau jangkauannya tidak seluruh kemungkinan, saat testing, hasilnya kurang akurat bahkan bisa minus. biasanya backpropagation tidak pas dengan kelas di target, kecuali tipe LVQ. Oiya, beberapa literatur menyarankan untuk menormalisasi data (euclidean) ketika training dan testing.

  18. Pak, bapak bilang diatas bahwa “Kenyataan di lapangan terkadang kita tidak menjumpai kasus yang memiliki formula matematis dalam menghitungnya misalnya tanda tangan, kita tidak dapat membuat formula matematis suatu tanda tangan”, berarti kalau kita mau klasifikasi tanda tangan, matriks targetnya diisi apa ya pak ? Karna kan kita ga tau nilai pasti untuk tanda tangan. Makasih pak

      1. Oh berarti angka targetnya hanya formalitas ya pak ? Jadi kalo saya kasih targetnya 100 ga masalah ya ?

  19. Pak Rahmadya, sebenarnya apa ada paper/buku yg bilang untuk jenis fungsi aktivasi yg terbaik digunakan untuk backpropagation NN itu apa ? Soalnya saya baca di internet dan termasuk di forum Mathworks, katanya fungsi aktivasi terbaik di Hidden Layer adalah Tansig sementara di Output Layer adalah Purelin. Kalo memang benar begitu, saya butuh bukti sumber berupa buku/paper untuk dicantumkan di tugas akhir saya. Terima kasih pak.

    1. pertanyaan yang menarik. harusnya ada buku yang menyebutkan itu. biasanya saya buka help matlab dan di bawah ada buku referensi / jurnal yang dijadikan rujukan matlab.Sebenarnya dari logika saja, hidden layer itu mengarahkan input ke output dengan besar tertentu, aktif atau tidak aktif, jadi yg paling masuk akal adalah tansig (dari nol hingga jenuh satu), walaupun ada yg lain yg kurang akurat yaitu tangga (nol atau satu). sementara output harus sesuai dengan angka real, yang logis adalah purelin krn kalo tansig nanti mentok di satu.

      1. Pak, yg range 0-1 itu logsig, kalo tansig -1 sampai 1, hehe.. Sebenarnya di dokumentasi resmi Matlabnya juga bilang kalo yang paling sering dipakai itu logsig di hidden layer, tapi di forum tanya jawab Mathworks banyak juga yg bilang tansig. Hmm tapi logika yg bapak berikan benar juga ya hehe. Terima kasih pak jawabannya

    1. Makin banyak training lama. Biasanya sih lebih dari jlh input. Saat ini banyak yg riset optimasinya dgn GA

  20. Pak, saya mau tanya, maksudnya “gradient” di algoritma backpropagation itu apa ya pak ? Karena yg saya baca untuk algoritma backpropagation itu memakai prinsip gradient descent. Saya masih kurang paham di teorinya. Makasih pak.

    1. kemiringan. maksudnya garis antara hasil saat ini dengan sebelumnya, jika sudah tidak miring dan cenderung datar/horizontal berarti tidak ada perubahan signifikan dan sistem menganggap training sudah cukup.

      1. Oh begitu pak. Kalau gradient nya makin besar, itu semakin miring atau semakin datar ya pak ? Soalnya setelah training di matlab ada keterangan nilai gradient yg didapat seberapa besar

  21. malam pak, saya mau tanya, program saya outputnya ada 21×20312, tapi kok hasilnya dari baris pertama hinggah akhir sama semua ? makasih sebelumnya pak

  22. Assalammualaikm pak, saya kebetulan sedang mengerjakan skripsi tentang deteksi wajah menggunakan extreme learning machine (ELM), tetapi deteksinya masih belum pas, saya dpt saran dr dosen pembimbing untuk menambahkan hidden layer, tp saya belum tau hidden layer penempatan nya dimana, dan apakah hidden layer dpt ditambahkan pada metode extreme learning machine (ELM) itu sendiri? mohon penjelasannya ya pak, terimakasih

    1. kalau extreme learning masuk kategori JST ya bisa aja. hidden layer fungsinya menambah akurasi ketika memisahkan antar satu kelas dgn kelas yg lain

  23. Pak Rahmadya, saya mau bertanya tentang output layer di neural network. Kalau misalnya saya mau melakukan klasifikasi ke dalam 4 kelas, apa saya harus mempunyai 4 neuron output ? Atau bisa pakai 1 neuron output aja ?

      1. Maksudnya gimana ya pak ? Soalnya saya baca di beberapa buku kalo untuk klasifikasi lebih dari 2 kelas, output neuronnya harus lebih dari 1. Kalo neuron output cuma 1 berarti jadinya regresi. Tapinya contoh koding di internet untuk klasifikasi pada make 1 output neuron saja. Heheu bingung saya jadinya. Terima kasih pak atas responnya

      2. masukan/input itu variabel. variabel bisa banyak, output hasil olah neuron, biasa banyak tapi biasanya satu. kelas itu keluaran hasil olahnya. contoh 2 kelas: lulus, tidak lulus, 3 penjurusan: ipa, ips, bahasa, dll. jadi istilahnya sepakat dulu

      3. Assalamu’alaikum pak.
        Bolehkan saya meminta jurnal atau buku untuk rujukan dalam menentukan klasifikasi yg lebih dari 1 tetapi kita menggunakan 1 outlet neuron. Seperti yg di tanyakan di atas.

      4. wa’alaikum salam w.w
        klasifikasi minimal dua kelas: ya/tidak, lulus/tidak, ok/tdk ok, dll. kalau lebih dari 2 kelas biasanya orang SVM nyebutnya multi-class: lulus/tdk-lulus/cadangan, baik/cukup/kurang, dll. Tetap satu kanal keluaran. Untuk yg lebih dari satu kanal keluaran, hasil bukan hanya satu variabel (lulus/tidak lulus) ada variabel lainnya. Jarang jurnal yg outputnya lebih dari satu kanal, kebanyakan ada di bidang kontroler/mekatronika (misal output: arah, speed, dan percepatan). (Mudah2an bidang mas mechantronic).

  24. Pak Rahmadya, bapak bilang istilah yang benar pada jaringan syaraf tiruan (pakai “y”), tapi saya cari di internet, istilah yang sesuai EYD itu “saraf” bukan “syaraf”. Jadi istilah indonesia yang baku untuk ANN apa ya pak? Soalnya untuk keperluan penulisan skripsi harus pakai bahasa indonesia yg baku hehe. Terima kasih pak.

    1. iya, ikuti saja EYD. soalnya dulu waktu sma kalau nulis saraf ditegur guru biologi, katanya itu artinya otaknya kongslet

  25. selamat pagi pak..
    saya mau tanya..bagaimna menentukan atau langkah2 penyelesaian untuk mencari nilai bobot awal lapisan input ke lapisan tersembunyi??

    1. bobot awal ya dengan random number. berikutnya di-adjust lewat mekanisme backpropagation (perambatan balik) pada training, hingga diperoleh output sama dengan target pembelajaran.

  26. Maaf pak mau tanya, kalo inisialisasi bobot itu dengan acak ya, itu langkahnya gimana ya pak pake sig biner. Apa dengan nguyen widrow. Enak mana pak? Terimakasih

      1. kalau bobot dan bias sudah ketemu dari pelatihan, tinggal makai saja. saya pernah nulis masalah itu (coba search hitung manual jst). pakai yg biasa aja 1 layer input, 1 layer hidden, 1 layer output. jumlah neuron input=jlh input, jumlah neuron output satu (kalau satu keluaran), hidden sesuaikan aja (minimal = jlh input)

    1. jumlah neuron input=jumlah input, jumlah neuron output= jumlah berapa yg ingin dikeluarkan. [5 10 1] berarti 5 neuron input, 10 neuron hidden, 1 neuron output.

    1. bisa saja, tapi riset biasanya membandingkan MLP dengan metode lain atau setingan tertentu (optimasi). MLP biasanya untuk standar awal yg cukup.

      1. saya sedang melaksanakan tugas akhir pak, melihat kebohongan seseorang dari mata nya.

        nah yang saya gunakan hanya 1 parameter seperti gerakkan bola mata.

        yang saya ingin tanyakan. apakah 1 parameter saja bisa menghasilkan output yang baik dengan metode JST?

        karena yang saya baca dari banyak jurnal kebanyakan mereka memakai 2 parameter seperti misalnya gerakkan dan kedipan mata !

  27. dibolehkan sih pak tapi saat kami ditanya alasan kenapa 1 kenapa gak 2 atau 3. alasannya apa jika 1 lebih baik dari 2. saya tak bisa jawab.

    dari video real time pak.

    berarti dengan MLP bisa mendeteksi objek berupa lingkaran yah pak. tanpa harus ada CHT?

    1. kalau ditanya kenapa tidak 2 dan 3 repot kalo ga punya referensi yang pernah riset sebelumnya, terpaksa pakai 1 dan 2 terus dibandingkan

  28. Assalamualaikum.. perkenalkan pak saya novia kumala sari salah satu mahasiswa yang sedang mengerjakan tugas akhir.. pak saya ingin bertanya tentang codingnya pak..

    sebelumnya alhamdulillah codingan yang bapak publish bisa di matlab saya.. yang ingin saya tanyakan, bagaimana pak kalau kita memasukkan data trainingnya sekali banyak dengan 7 kolom pak?? karena saat saya mencoba otak atik dengan codingan bapak langsung error pak dan keluar komentar “you have must 7 columns”..

    mohon bantuan dan sarannya pak.. terimakasih atas waktu yang bapak berikan.. wassalamualaikum…

    1. 7 kolom itu variabel input kan? jadi di Matlab untuk command window, 7 kolom dirubah menjadi 7 baris, misal masing2 data ada 10 yg dilatih, matrix input 7 baris 10 kolom dan target satu baris 10 kolom.

  29. selamat pagi bapak, saya ingin bertanya. saya sedang mengerjakan program terkait dengan prediksi, dengan tipe data input yg berbeda beda seperti ratusan, puluhan, angka koma, jutaan, dll. fungsi aktivasi yg sebaiknya saya gunakan pada hidden layer dan output layer apakah ya? terimakasih

    1. fungsi aktivasi yg biasanya dipakai, tansig/logsig. sepertinya krn range data yg besar, masalahnya di situ. gunakan saja normalisasi (euclidean atau minmax) supaya JST tidak terlalu sulit saat training.

      1. selamat malam bapak, saya ingin bertanya, yg mana lebih bagus, antara RMSE atau MSE ? dan alasannnya apa ya pak? karena saya baca+ tidak ada yg menjelaskan terkait kenapa menggunakan rmse atau mse. terimakasih

      2. bedanya cuma R, alias di akar kwadrat. kalo MSE misal 0.04 RMSE ya 0.2, 0.09 RMSE jadi 0.3. lihat aja sendiri enak yang mana. Makin ke 0 baik RMSE dan MSE makin bagus performa

  30. Pak Rahmadya,, saya membuat jst…tetapi waktu di coba sim kok keluar nya seperti ini ya…
    Error using network/sim (line 266)
    Input data sizes do not match net.inputs{1}.size.

    Error in Pengujian (line 98)
    output = round(sim(net,data_uji));

    Mohon Petunjuknya
    Terimakasih

      1. waktu pelatihan ukuran matriks input dan target latih = 20 baris x 7 kolom.
        ukuran data uji dan target uji = 10 baris x 7 kolom.

        saya menggunakan pelatihan berikut source code nya :

        % performance goal (MSE)
        error_goal = 1e-6;

        % choose a spread constant
        spread = 1;

        % choose max number of neurons
        K = 5;

        % number of neurons to add between displays
        Ki = 20;

        % create a neural network
        net = newrb(data_latih,target_latih,error_goal,spread,K,Ki);

        % Proses training
        net.trainFcn = ‘traingdx’;
        [net,tr,~,E] = train(net,data_latih,target_latih);

        save net net

  31. pagi pak. saya dita sedang membuat tugas akhir
    pengolahan citra digital deteksi karies pada gigi menggunakan jst
    untuk prosessnya citra untuk mendeteksi agar kebaca kariesnya menggunakan ekstraksi apa ya? normalisasi atau menghilangkan noise atau apa ya? terimakasih

  32. pak saya kan sedang TA tentang JST Learning Vektor Kuantisasi , boleh minta bantuan manual nya untuk membangun arsitekturnya ?? variabel yang saya gunakan 13 variabel pak. Terimakasih

      1. kan disana ada nilai hidden layernya, nah cara nentuin nilai hidden layernya itu bagaiman yapak? ada aturan atau kita yang tentuin sendiri. mohon bantuannya pak..

  33. selamat sore. mohon pencerahannya. saya sedang mengerjakan program prediksi dengan backpropagation. hasil trening nya cukup bagus. tapi hasil testing nya tidak memuaskan. mohon pencerahannnya itu penyebab nya apa dan bagaimana solusinya. terimakasih

    1. data training harus bagus, kalau tidak maka akurasi ketika testing jatuh. gunakan pre-processing yg tepat. Terkadang fiture reduction perlu, mengingat JST harus bisa menggeneralisasi. Saat ini sudah mulai bisa diterapkan “deep learning” dengan hidden layer yang banyak karena laptop sudah pada kencang.

  34. siang pak, saya disuruh buat struktur backpropagation neural network untuk deteksi website phising, datanya didapat dari uci machine learning. tapi sebelumnya saya blm prnh diajarin NN. belum masuk ke aplikasinya, baru diminta buat strukturnya saja, untuk nentuin input layer, hidden layer, dan output layer itu gmn ya pak? makasih

    1. input dan output(target) harus tepat, berdasarkan variabel2 deteksi. nah kalo hidden fleksibel (biasanya dicari yg optimal – tidak berat tetapi masih akurat). coba ketik “jst” di search pada blog ini

  35. pak, mau tanya, kalo output saya hanya positif atau negatif, berarti diganti angka 0=negatif 1=positif kan? lalu fungsi transfer nya apa pak? purelin atau logsig?

    1. di bagian mana? kalau di output ya harus ada + dan – (purelin atau tansig), kalau di hidden bisa tansig. oiya, output purelin cocok untuk peramalan (nilai di luar range yang dilatih karena membesar terus atau mengecil terus).

      1. jadi output nya harus ada positif dan negatif pak? misal saya prediksi penyakit kan nanti kelas nya positif dan negatif, nanti ubahnya jadi positif dan negatif, gitu pak? kalau fungsi training apa yang cocok pak?

    1. net itu jaringan yang sudah diramu, trainParam itu parameter-parameter training seperti berapa iterasi max, stop condition, dll, sementara show berarti menampilkan (biasanya berupa tabel-tabel)

  36. maaf mas, sya mau tanya coding program matlab untuk struktur jaringan dengan hiden layer lebih dari 1 tetapi tidak menggunakan nntool, karna sya ingin menetapkan bobotnya tidak random. terima kasih

  37. kak, izin bertanya, saya lagi mengerjakan PKL tentang prediksi curah hujan menggunakan neural network pada python.. nah pertanyaannya, saya tidak paham kak menentukan input, output, hidden layernya. itu asal dibuat atau ada ketentuannya kak? btw, data saya itu curah hujan bulanan dalam rentang 10 tahun. jadi data yang diperoleh itu 120 data. terimakasih kak.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.