SOM merupakan salah neural network yang sering digunakan untuk menganalisis data yang berdimensi tinggi. SOM bekerja dengan melakukan kompresi dari dimensi tinggi ke dalam dimensi rendah yang pada umumnya 1-3D.Som termasuk jenis pembelajaran yang tidak diawasi (unsupervised) artinya som tidak memerlukan data training untuk proses pemebelajan. tapi langsung menggunakan data input sebagai pembelajarannya. som banyak digunakan untuk melakukan clustering maupun clasifikasi. pada penulisan berikutnya akan saya coba memberi contoh penerapan som untuk clustering.
jika inputan memiliki n dimensi maka outputnya m-dimensi dimana n>m. untuk melakukan som pertama kali yang ditentukan adalah ukuran dari mapnya dan topologi dimensi yang dipakai. untuk contoh mapnya dapat dilihat seperti digambar output dibawah ini. map yang dicontohkan memiliki ukuran 2D. setiap titik map akan mengandung neuron/node/codebook dimana ukuran tersebut harus sama dengan ukuran dimensi input.
Tiga tahap utama dalam melakukan SOM Training:
1. Competition
2. Coorperation
3. Adaptative Process
Competition
Untuk memasukkan suatu input ke dalam map, maka akan dicari mc (winning Neuron )yang paling mirip atau paling dekat dengan x.
Untuk menghitung kedekatan antara x dan mi digunakan rumus d(x,mi). Perhitungan nilai distance pada umumnya menggunakan rumus Euclidian distance
nilai c diperoleh dari jarak d yang paling kecil dari perhitungan x dengan semua mi .
c = arg min {d(x,mi) }.
nilai c yang dipilih sebagai mc .
Cooperation
Semua neuron yang berada didekat winning neuron mungkin akan mengalami adaptasi isi codebook vector-nya. Fungsi yang digunakan untuk menentukan besarnya pengaruh neighborhood neuron terhadap winning neuron adalah fungsi gaussian :
Pc adalah lokasi winning neuron dalam map
Pi adalah lokasi neuroni dalam map
Besarnya radius neighborhood yang akan beradaptasi ditentukan oleh fungsi dibawah ini. nilai tersebut akan berkurang secara konstinue untuk tiap iterasi (bernilai antara 0 samapai 0.99 ). penurunan dilakukan secara eksponensial.
Adaptive process
kemampuan adapatasi tiap neuron akan menurun secara konstan seiring dengan berjalannya waktu. fungsi waktu tersebut dinotasikan sebagai α(t) yang juga sebagai learning rate. Fungsi yang digunakan untuk mengupdate codebook vektor neuron terhadap winning neuron.
mi(t+1) = mi(t) + α(t)hci(t) [ x(t) - mi(t) ]
fungsi ini digunakan pada semua codebook vektor. α merupakan learning rate yang akan menurun secara konstan. penurunan bisa dilakukan secara linear. nilai learning rate ini berkisar antar 0 sampai 0.99. jadi dapat terlihat sering berjalannya iterasi kemapuan pembelajaran semakin menurun. dan semkin jauh dari winning neuron semkain kecil pengaruhnya(hci).