Amadea K. Nastiti


just an exquisite cat lady around

Model Neural Network

Otak manusia pada dasarnya adalah jaringan saraf besar dan sulit dibayangkan kerumitannya. Kita juga bisa berpikir dari otak sebagai serangkaian terorganisir dari subbagian yang saling berhubungan dari Neural Networks. Artificial Neural Network dibentuk sebagai generalisasi model matematika dari jaringan saraf otak manusia, dengan asumsi bahwa:

  • Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron)
  • Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung
  • Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal
  • Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi yang dikenakan pada jumlah output yang diterima. Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang.


Artificial Neural Network dipengaruhi oleh:
1. Pola hubungan antar neuron (arsitektur/model jaringan)
2. Metode untuk menentukan bobot penghubung (metode training/learning/algoritma)
3. Fungsi aktivasi

Elemen dasar komputasi kami (model neuron) sering disebut node atau unit. Ini menerima masukan dari beberapa unit lain, atau mungkin dari sumber eksternal. Setiap masukan memiliki berat w yang terkait, yang dapat dimodifikasi sehingga model pembelajaran sinaptik. Unit ini menghitung beberapa fungsi f dari jumlah tertimbang inputnya:

y_i = f (Sum_j w_ij * y_j)

Output-nya, pada gilirannya, dapat berfungsi sebagai input ke unit lainnya. Sehingga jika digambarkan, sebuah node berbentuk sebagai berikut:

Artificial Neuron

Formula matematis dari Neuron

Jumlah tertimbang Sum_j w_ij * y_j disebut net input ke unit i, sering ditulis net i. Perhatikan bahwa wij mengacu pada berat dari satuan j ke unit i (bukan sebaliknya). Fungsi f adalah fungsi aktivasi unit. Dalam kasus yang paling sederhana, f adalah fungsi identitas, dan output unit hanya net input. Hal ini disebut linier unit.

Secara umum, terdapat tiga jenis neural network yang sering digunakan berdasarkan jenis network, yaitu :

  • Single-Layer Neural Network

Neural network jenis ini memiliki koneksi pada inputnya secara langsung ke jaringan output. 
Jenis neural network ini sangatlah terbatas, hanya digunakan pada kasus-kasus yang sederhana

y = w1x + w0

Ini adalah model linear: di plot xy, persamaan 1 menggambarkan sebuah garis lurus dengan gradien w1 dan w0 yang bersinggungan dengan sumbu y. Terdiri dari unit bias, unit input dan unit output linier. Unit input membuat x input eksternal yang tersedia untuk jaringan, sedangkan unit bias yang selalu memiliki output konstan 1. Unit keluaran menghitung jumlahnya:

y2 = y1 w21 + 1,0w20

Sangat mudah untuk melihat bahwa persamaan baru ini setara dengan persamaan pertama di atas, dengan w21 menerapkan gradien garis lurus, dan w20 bersinggungan dengan sumbu y. Sehingga persamaan ini dengan mudah dapat dikerjakan oleh model neural seperti di bawah ini:

single

Single Layer Neural Network

Misalkan sekarang kita juga diberi satu atau lebih variabel tambahan yang dapat berguna sebagai prediktor. Model jaringan sederhana saraf kita dengan mudah dapat diperluas untuk kasus ini dengan menambahkan unit masukan lebih. Demikian pula, kita mungkin ingin untuk memprediksi lebih dari satu variabel dari data yang kami diberikan. Ini dengan mudah dapat diakomodasi dengan menambahkan unit lebih banyak output. Fungsi kerugian untuk jaringan dengan beberapa output diperoleh hanya dengan menambahkan kerugian untuk setiap unit output bersama-sama. Jaringan ini sekarang memiliki struktur berlapis khas: lapisan unit masukan (dan bias), dihubungkan dengan lapisan beban untuk lapisan unit output.

linear

Contoh aplikasinya dalam menghitung gradien:

The Gradient Descent Algorithm

  1. Initialize all weights to small random values.
  2. REPEAT until done
  3. For each weight wij set 
  4. For each data point (x, t)p
  • set input units to x
  • compute value of output units
  • For each weight wij set 

5. For each weight wij set 

The algorithm terminates once we are at, or sufficiently near to, the minimum of the error function, where G = 0. We say then that the algorithm has converged. In summary:

Algoritma Gradien

  • Recurrent Neural Network

Neural network jenis ini memiliki ciri, yaitu adanya koneksi umpan balik dari output ke input.
Kelemahan dari jenis ini adalah Time Delay akibat proses umpan balik dari
output ke titik input

  • Multilayer Perceptron Neural Network

Pada tahun 1949, Donald Hebb mengusulkan sebuah neuron buatan yang lebih dekat menirukan neuron biologis, di mana setiap neuron akan memiliki banyak interkoneksi dengan neuron lainnya. Masing-masing interkoneksi akan memiliki 'berat' pengali yang terkait dengannya. Belajar akan dicapai dengan mengubah pengganda berat dari masing-masing interkoneksi. Pada tahun 1957, Frank Rosenblatt menerapkan neuron Hebb, yang disebut Perceptron.

Model Perceptron pertama kali


Pada tahun 1974, Werbos Paulus dalam tesis PhD-nya pertama kali dijelaskan proses pelatihan jaringan syaraf tiruan melalui proses yang disebut "Backpropagation From Errors".

Feed-Forward Multi-Layered Perceptron


Apa yang membuat Feed-forward Multi-Layered Perceptron adalah bahwa pada dasarnya mengajarkan itu sendiri pada ANN dengan menggunakan algoritma Backpropagation.  Berikut di bawah ini adalah beberapa contoh penggunaan Multi-Layered Perceptron.

NASA: Sebuah Prediksi Pertumbuhan Tanaman di Ruang Angkasa


Jelas, apapun yang dilakukan di ruang angkasa harus melakukan seefisien mungkin. Untuk mengoptimalkan pertumbuhan tanaman, NASA menciptakan Perceptron ini, diajarkan dengan data yang sebenarnya, untuk mensimulasikan lingkungan pertumbuhan yang berbeda.

Mayo Clinic: Sebuah Classifier Tumor


Para perceptron atas adalah explanitory diri. Sebuah perceptron tidak perlu rumit untuk menjadi berguna.

Papnet: Assisted Screening dari Pap Smear


Papnet adalah saraf komersial berbasis jaringan program komputer untuk skrining dibantu smear (leher rahim) tercoreng. Tes Pap smear memeriksa sel-sel yang diambil dari serviks uterus tanda-tanda perubahan prakanker dan kanker. Pap smear diambil dan dianalisa dengan baik dapat mendeteksi perubahan prakanker sangat dini. Sel-sel prakanker maka dapat dihilangkan, biasanya di kantor yang relatif sederhana atau prosedur rawat jalan.

Type This Character: Aplikasi anti-NeuralNet


Anda mungkin telah melihat jenis-jenis yang ditunjukkan di atas saat log on ke beberapa situs web. Tujuannya adalah untuk menyamarkan urutan huruf sehingga Bersih Syaraf tidak bisa membacanya. Dengan perlindungan dibaca-hanya-dengan-a-manusia, situs web dilindungi dari komputer lain memasuki situs tersebut melalui upaya yang melelahkan di password.

Para individu Nodes dari Perceptron Multi-Layered

Sejak Perceptron modern adalah Jaringan Syaraf dalam dirinya sendiri, untuk memahaminya kita perlu kembali ke blok bangunan dasar, neuron buatan. Seperti yang telah dinyatakan, perceptron asli menjabat sebagai neuron buatan. Kita akan menyebut apa yang berfungsi saat ini sebagai neuron buatan Threshold Logic Unit, atau TLU.

Para neuron Hebb akan merangkum semua inputnya. Setiap masukan pada gilirannya adalah produk dari sebuah kali input eksternal bahwa pengganda berat cooresponding masukan eksternal. Logika Ambang Unit, atau TLU, menambahkan fitur signifikan ke neuron Hebb asli, Fungsi Aktivasi. Fungsi Aktivasi mengambil sebagai masukan jumlah dari apa yang sekarang disebut Fungsi Input, yang pada dasarnya neuron Hebb, dan skala ke nilai antara 0 dan 1.

Pemilihan fungsi matematika yang mengimplementasikan Fungsi Aktivasi adalah keputusan desain penting. Tidak hanya mengontrol pemetaan jika jumlah Fungsi input untuk nilai antara 0 dan 1, pemilihan secara langsung mempengaruhi perkembangan kemampuan Perceptron untuk mengajar itu sendiri, seperti yang akan kita lihat segera. Sebuah Fungsi Aktivasi umum yang akan kita gunakan adalah fungsi sigmoid.


Dengan Fungsi aktivasi sigmoid, masing-masing TLU sekarang akan menampilkan nilai antara 0 dan 1. Output ini 0-1 dihargai, ditambah dengan multiplier berat badan dengan nilai antara -1 dan +1, akan menjaga nilai-nilai dalam jaringan ke tingkat yang dikelola. Dengan Fungsi Aktivasi, TLU semakin erat meniru pengoperasian neuron.

Mengajarkan Perceptron Menggunakan Backpropagation

Mari kita mulai dengan perceptron sangat sederhana dengan 2 Masukan dan 2 output, seperti yang ditunjukkan di bawah ini. Sebagai perceptron kami menerima Input 1 dan Input 2 menanggapi dengan nilai-nilai ouputs nya, Output 1 dan Output 2.



Proses mengajar perceptron ini terdiri dari memberikan serangkaian pasangan masukan, kemudian membandingkan nilai output aktual yang dihasilkan dengan nilai-nilai output yang diinginkan yang sesuai dengan setiap pasangan input. Berdasarkan perbedaan antara nilai output aktual dan nilai-nilai output yang diinginkan, penyesuaian dilakukan.

Satu-satunya hal yang berubah selama pelatihan adalah pengganda berat badan. Akibatnya, proses pengajaran perceptron adalah soal mengubah pengganda berat sampai output aktual sedekat mungkin dengan output yang diinginkan. Dan seperti disebutkan sebelumnya, perceptron menggunakan proses Backpropagation untuk mengubah pengganda beratnya, dan dengan demikian mengajarkan itu sendiri.

 


Kami sekarang dapat menyesuaikan keluar matematis beban untuk output 1 dengan persamaan berikut:

Tingkat Belajar η konstan adalah pengali fraksional digunakan untuk membatasi ukuran penyesuaian tertentu. Dengan komputer perceptron dapat pergi melalui urutan belajar yang sama berulang-ulang. Jadi penyesuaian masing-masing dapat menjadi kecil. Jika penyesuaian terlalu besar, penyesuaian mungkin overcompensate dan bobot hanya akan berosilasi bolak-balik.

Wah! Hal yang sekarang jauh lebih baik sekarang daripada mereka dengan derivatif parsial di hyperspace, namun masih ada masalah turunan dari fungsi sigmoid, yang merupakan fungsi Aktivasi TLU kita. Seperti yang dinyatakan sebelumnya, menggunakan fungsi sigmoid adalah keputusan desain penting. Dengan melihat turunannya, kita dapat melihat mengapa:

Akibatnya, turunan dari fungsi sigmoid, atau fungsi aktivasi, menjadi ekspresi aljabar sederhana dari nilai fungsi itu sendiri. Karena nilai dari fungsi aktivasi, yang kita sebut y, harus dihitung pula untuk menentukan nilai output dari setiap TLU, istilah derivatif menjadi sepele.

Dengan istilah turunan sederhana, setelah kita menghitung y, penyesuaian untuk wo21 menjadi ekspresi aljabar sederhana:

Feed-Forward Perceptron dengan Backpropagation

Artikel ini menjelaskan proses belajar 3-lapisan Perceptron Neural Network menggunakan algoritma backpropagation. Untuk menggambarkan proses ini kita akan menggunakan jaringan tiga lapisan saraf dengan 3 node input, 2 node tersembunyi dan 1 output node, yang ditunjukkan dalam gambar di bawah:



Setiap node, atau neuron buatan (Threshold Logic Unit), terdiri dari dua bagian. Bagian pertama menghasilkan sejumlah produk-produk dari pengali bobot dan sinyal input. Bagian Kedua mengambil hasil dari bagian pertama dan meletakkannya melalui fungsi aktivasi, dengan skala input untuk nilai antara 0 dan 1.

Sinyal e adalah output dari bagian Pertama, dan y = f (e) adalah output dari bagian Kedua. Sinyal y juga merupakan sinyal output dari sebuah neuron buatan.



Kerja Perceptron

Feed Forward - Processing a Result from Inputs

Perceptron memproses informasi dengan mengambil input, x 1, x 2 dan x 3, dan menyebarkan InflowNet setiap neuron dari lapisan satu perceptron per satu:

Ada jelas sudah tidak menjumlahkan pada Layer Input, tetapi fungsi Aktivasi mungkin masih diperlukan untuk skala input antara 0 dan 1. Dengan demikian output dari layer input adalah y 1, y 2 dan y 3. Kemudian output dari setiap lapisan input dikalikan dengan bobot interkoneksi masing-masing seperti yang dikirim ke setiap neuron lapisan berikutnya, Hidden Layer.

 
#define sigmoid(x)    1/(1 + exp(-(double)x))
              // For Each Hidden node:
 for(h=0; h// Sum of XnWn
   y5 = sigmoid(sumInput);  // y5 is actually hiddenValue[h]
 }

Pada setiap neuron dari Layer Tersembunyi, masukan ke setiap node layer tersembunyi, yang merupakan produk dari sinyal y 1, y 2 dan y 3 dengan pengganda berhubungan badan, diproses. Hasil dari pengolahan Lapisan Tersembunyi adalah output layer Tersembunyi y 4 dan y 5. Maka y 4 dan y adalah 5 pada gilirannya dikalikan dengan bobot interkoneksi masing-masing seperti yang dikirim ke setiap neuron pada layer output (perceptron kami dikonfigurasi dengan satu node output):

  // For Each Output node:
 for(o=0; o// Sum of XnWn
   y = sigmoid(sumInput);  // y is actually outputValue[h]
 }

Mengajarkan Perceptron Menggunakan Backpropagation

Mendefinisikan Output Delta (s)

Untuk mengajarkan Perceptron kita perlu satu set data pelatihan. Pelatihan Data set terdiri dari sinyal input (x 1, x 2 dan x 3) ditetapkan dengan nilai target yang sesuai (output yang diinginkan) dari z. Pelatihan perceptron adalah proses berulang-ulang. Dalam setiap iterasi pengganda berat dari interkoneksi yang dimodifikasi dengan menggunakan satu set input dan output mereka terkait diharapkan (s) dari file data pelatihan. Modifikasi dihitung dengan menggunakan algoritma yang kita sebut Backpropagation.

Sisa dari artikel ini adalah deskripsi dari satu iterasi dari proses Backpropagation.

Kami memulai proses Backpropagation dengan memproduksi delta untuk setiap output. Delta Setiap perbedaan output aktual, y, dengan output yang diinginkan, z:

  // Find d (deltas) for Each Output node
 for(o=0; o // For Each Output:
  deltaOutput[o] =              //  (Target value - Actual value)
   ((float)targetOutputs[TrainingVectorNum][o] - outputValue[o])
  dxOutput[o] = outputValue[o] * (1 - outputValue[o]); // Derivative
  } 

Mengubah Bobot HiddenToOutput

Setelah kita memiliki delta untuk setiap output, kita dapat menggunakan delta setiap memodifikasi bobot yang terkait dengan setiap masukan untuk setiap output masing-masing dengan menggunakan rumus yang dijelaskan di bagian sebelumnya:


// Update Wts of Hidden to Output nodes
 for(h=0; h// For Each Hidden node h:
  for(o=0; o//  For Each Output node o:
   WtChange = learnRate * deltaOutput[o] * dxOutput[o] * hiddenValue[h];
   hiddenOutputWt[h][o] = hiddenOutputWt[h][o] + WtChange;
   }

Mendefinisikan Delta Tersembunyi

Setelah kami telah disesuaikan bobot HiddenToOutput, kita backpropagate untuk bobot InputToHidden. Sejak Layer Tersembunyi tersembunyi, tidak ada cara untuk memiliki nilai-nilai yang diharapkan untuk setiap layer Tersembunyi pada training set data. Dengan demikian, setiap delta Lapisan Tersembunyi diproduksi oleh jumlah produk setiap delta Produksi menurut berat interkoneksi antara yang Output dan neuron layer masing Tersembunyi. Perceptron kami awalnya ditunjukkan dengan 1 output. Namun, di sini kita bayangkan output lain untuk menggambarkan bagaimana delta Tersembunyi dibentuk oleh jumlah dari produk masing-masing delta output dengan multiplier beratnya:

  
 sum = 0.0;       // Comput deltaHidden[h] for Input Wt modification
 for(h=0;  h// For Each Hidden node h:
   for(o=0; o//   For Each Output node o:
                                  //     SUM( Who * d[o])
     sum = sum + deltaOutput[o] * hiddenOutputWt[h][o];
   deltaHidden[h] = sum;
   dxHidden[h] = hiddenValue[h] * (1 - hiddenValue[h]); // Derivative
   }

Ubah Bobot InputToHidden

Dengan delta Tersembunyi didefinisikan, kita dapat menyelesaikan iterasi belajar dengan mengubah pengganda berat InputToHidden. Bobot InputToHidden dimodifikasi dengan menerapkan rumus yang sama yang digunakan untuk mengubah pengganda berat HiddenToOutput.

  // Update Wts of Input to Hidden nodes
 for(i=0; i// For Each Input node i:
  for(h=0; h//  For Each Hidden node h:
   WtChange = learnRate * deltaHidden[h] * dxHidden * inputValue[i];
   inputHiddenWt[i][h] = inputHiddenWt[i][h] + WtChange;
   }  



Sumber:

lowercolumbia(dot)edu/students/academics/facultyPages/rhode-cary/intro-neural-net.htm

ulcar.uml(dot)edu/~iag/CS/Intro-to-ANN.html

www.willamette(dot)edu/~gorr/classes/cs449/intro.html

Tinggalkan Komentar

Nama :
E-mail :
Web : tanpa http://
Komentar :
Verification Code :