Hukum polarisasi molekul. Molekul polar. Polarisasi orientasional. Momen dipol molekul

Properti paling penting dari jaringan saraf adalah kemampuannya untuk belajar dari data lingkungan dan meningkatkan kinerjanya sebagai hasil pembelajaran. Peningkatan produktivitas terjadi seiring berjalannya waktu menurut aturan tertentu. Jaringan saraf dilatih melalui proses interaktif dalam menyesuaikan bobot dan ambang sinaptik. Idealnya, jaringan saraf memperoleh pengetahuan tentang lingkungannya pada setiap iterasi proses pembelajaran.

Ada banyak jenis kegiatan yang terkait dengan konsep pembelajaran, sehingga sulit untuk memberikan definisi yang jelas pada proses ini. Apalagi proses pembelajaran tergantung pada sudut pandangnya. Inilah yang membuat hampir mustahil munculnya definisi yang tepat tentang konsep ini. Misalnya, proses belajar dari sudut pandang psikolog pada dasarnya berbeda dengan belajar dari sudut pandang guru sekolah. Dari perspektif jaringan saraf, definisi berikut mungkin dapat digunakan:

Pelatihan adalah proses di mana parameter bebas jaringan saraf disetel dengan mensimulasikan lingkungan di mana jaringan tersebut tertanam. Jenis pelatihan ditentukan oleh cara parameter ini disesuaikan.

Definisi proses pembelajaran jaringan saraf ini mengasumsikan urutan kejadian berikut:

  1. Jaringan saraf menerima rangsangan dari lingkungan eksternal.
  2. Sebagai hasil dari poin pertama, parameter bebas jaringan saraf diubah.
  3. Setelah mengubah struktur internal, jaringan saraf merespons rangsangan dengan cara yang berbeda.

Daftar aturan yang jelas di atas untuk memecahkan masalah pelatihan jaringan saraf disebut algoritma pembelajaran. Mudah ditebak bahwa tidak ada algoritma pembelajaran universal yang cocok untuk semua arsitektur jaringan saraf. Yang ada hanyalah seperangkat alat yang diwakili oleh berbagai algoritma pembelajaran yang masing-masing memiliki kelebihan tersendiri. Algoritme pembelajaran berbeda satu sama lain dalam cara mereka menyesuaikan bobot sinaptik neuron. Ciri khas lainnya adalah cara jaringan saraf terlatih berkomunikasi dengan dunia luar. Dalam konteks ini, kita berbicara tentang paradigma pembelajaran yang terkait dengan model lingkungan di mana jaringan saraf tertentu beroperasi.

Ada dua pendekatan konseptual untuk melatih jaringan saraf: pembelajaran yang diawasi dan pembelajaran tanpa pengawasan.

Pelatihan jaringan saraf yang diawasi mengasumsikan bahwa untuk setiap vektor masukan dari set pelatihan terdapat nilai vektor keluaran yang diperlukan, yang disebut target. Vektor-vektor ini membentuk pasangan pelatihan. Bobot jaringan diubah hingga tingkat deviasi vektor keluaran yang dapat diterima dari target diperoleh untuk setiap vektor masukan.

Pembelajaran jaringan saraf tanpa pengawasan adalah model pembelajaran yang jauh lebih masuk akal dalam kaitannya dengan akar biologis jaringan saraf tiruan. Set pelatihan hanya terdiri dari vektor masukan. Algoritme pelatihan jaringan saraf menyesuaikan bobot jaringan sehingga diperoleh vektor keluaran yang konsisten, yaitu. sehingga penyajian vektor masukan yang cukup dekat memberikan keluaran yang identik.

4. Melatih jaringan saraf.

4.1 Informasi umum tentang jaringan saraf

Jaringan saraf tiruan adalah model yang didasarkan pada gagasan modern tentang struktur otak manusia dan proses pemrosesan informasi yang terjadi di dalamnya. ANN telah banyak digunakan dalam tugas-tugas: kompresi informasi, optimasi, pengenalan pola, membangun sistem pakar, pemrosesan sinyal dan gambar, dll.

Komunikasi antara neuron biologis dan buatan

Gambar 20 – Struktur neuron biologis

Sistem saraf manusia terdiri dari sejumlah besar neuron yang saling berhubungan, sekitar 10 11 ; jumlah sambungan dihitung 10 15.

Mari kita bayangkan secara skematis sepasang neuron biologis (Gambar 20). Sebuah neuron memiliki beberapa proses masukan - dendrit, dan satu proses keluaran - sebuah akson. Dendrit menerima informasi dari neuron lain, dan akson mengirimkannya. Area di mana akson terhubung ke dendrit (area kontak) disebut sinapsis. Sinyal yang diterima oleh sinapsis dibawa ke badan neuron, di mana sinyal tersebut dijumlahkan. Dalam hal ini, satu bagian dari sinyal masukan bersifat rangsang, dan bagian lainnya bersifat penghambatan.

Ketika pengaruh masukan melebihi ambang batas tertentu, neuron memasuki keadaan aktif dan mengirimkan sinyal sepanjang akson ke neuron lain.

Neuron buatan adalah model matematika dari neuron biologis (Gambar 21). Mari kita nyatakan sinyal masukan dengan x, dan himpunan sinyal masukan dengan vektor X = (x1, x2, ..., xN). Sinyal keluaran neuron akan dilambangkan dengan y.

Mari kita menggambar diagram fungsional sebuah neuron.

Gambar 21 – Neuron buatan

Untuk menunjukkan efek rangsang atau penghambatan dari masukan, kami memperkenalkan koefisien w 1, w 1, ..., w N - untuk setiap masukan, yaitu vektor

W = (w 1, w 1, …, w N), w 0 – nilai ambang batas. Pengaruh masukan X, yang ditimbang pada vektor W, dikalikan dengan koefisien w yang sesuai, dijumlahkan dan sinyal g dihasilkan:

Sinyal keluaran adalah beberapa fungsi dari g


,

dimana F adalah fungsi aktivasi. Itu bisa dari berbagai jenis:

1) ambang batas langkah

atau

Umumnya:

2) linier, yang setara dengan tidak adanya elemen ambang batas sama sekali

F(g) = g


3) linier sepotong-sepotong, diperoleh dari linier dengan membatasi rentang perubahannya dalam , yaitu

4) sigmoidal

5) multi-ambang batas

6) garis singgung hiperbolik

F(g) = tanh(g)


Paling sering, nilai input dikonversi ke rentang XÎ. Ketika w i = 1 (i = 1, 2,…, N) maka neuron merupakan elemen mayoritas. Ambang batas dalam hal ini mengambil nilai w 0 = N/2.

Versi lain dari gambar konvensional dari neuron buatan ditunjukkan pada Gambar 22

Gambar 22 – Simbol untuk neuron buatan

Dari sudut pandang geometris, neuron dengan fungsi aktivasi linier menggambarkan persamaan garis jika inputnya memiliki satu nilai x 1

atau bidang, bila inputnya berupa vektor nilai X

Struktur (arsitektur, topologi) jaringan saraf

Ada banyak cara untuk mengatur ANN, tergantung pada: jumlah lapisan, bentuk dan arah koneksi.

Mari kita gambarkan contoh organisasi jaringan saraf (Gambar 23).


Struktur lapisan tunggal Struktur lapisan ganda dengan loop umpan balik

Struktur dua lapis Ikatan lurus Struktur tiga lapis Ikatan lurus

Gambar 23 – Contoh struktur jaringan saraf

Gambar 24 menunjukkan NS tiga lapis dengan sambungan langsung. Lapisan neuron yang langsung menerima informasi dari lingkungan luar disebut lapisan masukan, dan lapisan yang mengirimkan informasi ke lingkungan luar disebut lapisan keluaran. Setiap lapisan yang terletak di antara keduanya dan tidak bersentuhan dengan lingkungan luar disebut lapisan perantara (tersembunyi). Mungkin ada lebih banyak lapisan. Dalam jaringan multilayer, biasanya, neuron pada lapisan yang sama memiliki fungsi aktivasi yang sejenis.


Gambar 24 – Jaringan saraf tiga lapis

Saat membangun jaringan, data awalnya adalah:

– dimensi vektor sinyal masukan, yaitu jumlah masukan;

– dimensi vektor sinyal keluaran. Jumlah neuron pada lapisan keluaran biasanya sama dengan jumlah kelas;

– rumusan masalah yang ingin dipecahkan;

– keakuratan pemecahan masalah.

Misalnya, ketika menyelesaikan masalah pendeteksian sinyal yang berguna, NN mungkin memiliki satu atau dua keluaran.

Pembuatan atau sintesis jaringan saraf merupakan masalah yang saat ini belum terpecahkan secara teoritis. Itu bersifat pribadi.

Pelatihan jaringan saraf

Salah satu sifat paling luar biasa dari jaringan saraf adalah kemampuannya untuk belajar. Terlepas dari kenyataan bahwa proses pelatihan jaringan saraf berbeda dari pelatihan manusia dalam arti biasa, hasil serupa dicapai pada akhir pelatihan tersebut. Tujuan dari pelatihan jaringan saraf adalah untuk mengkonfigurasinya untuk perilaku tertentu.

Pendekatan yang paling umum dalam melatih jaringan saraf adalah koneksionisme. Ini melibatkan pelatihan jaringan dengan menyesuaikan nilai koefisien bobot yang sesuai dengan berbagai koneksi antar neuron. Matriks W koefisien bobot jaringan disebut peta sinaptik. Di sini indeks i adalah nomor urut neuron asal koneksi, yaitu lapisan sebelumnya, dan j adalah nomor neuron lapisan berikutnya.

Ada dua jenis pelatihan NN: pembelajaran terawasi dan pembelajaran tanpa pengawasan.

Pembelajaran yang diawasi terdiri dari penyajian jaringan dengan rangkaian pasangan terlatih (contoh) (Xi, Hi), i = 1, 2, ..., m gambar, yang disebut rangkaian pelatihan. Dalam hal ini, untuk setiap citra masukan Xi, respons jaringan Y i dihitung dan dibandingkan dengan citra target yang sesuai Hi. Ketidakcocokan yang dihasilkan digunakan oleh algoritma pembelajaran untuk menyesuaikan peta sinaptik sedemikian rupa untuk mengurangi kesalahan ketidakcocokan. Adaptasi ini dilakukan dengan menyajikan sampel pelatihan secara siklis hingga kesalahan ketidakcocokan mencapai tingkat yang cukup rendah.

Meskipun proses pembelajaran yang diawasi dapat dipahami dan digunakan secara luas di banyak aplikasi jaringan saraf, namun proses tersebut masih belum sepenuhnya sesuai dengan proses sebenarnya yang terjadi di otak manusia selama proses pembelajaran. Saat belajar, otak kita tidak menggunakan gambar apapun, tetapi menggeneralisasi informasi yang datang dari luar.

Dalam kasus pembelajaran tanpa pengawasan, urutan pelatihan hanya terdiri dari gambar masukan Xi. Algoritme pembelajaran menyesuaikan bobot sehingga vektor masukan yang serupa sesuai dengan vektor keluaran yang identik, yaitu, algoritma ini benar-benar mempartisi ruang gambar masukan ke dalam kelas. Selain itu, sebelum pelatihan, tidak mungkin untuk memprediksi gambar keluaran mana yang akan sesuai dengan kelas gambar masukan. Dimungkinkan untuk membuat korespondensi semacam itu dan memberikan interpretasinya hanya setelah pelatihan.

Pelatihan NN dapat dipandang sebagai proses yang berkesinambungan atau terpisah. Sesuai dengan hal ini, algoritma pembelajaran dapat dijelaskan dengan persamaan diferensial atau persamaan beda hingga. Dalam kasus pertama, NS diimplementasikan pada elemen analog, yang kedua - pada elemen digital. Kami hanya akan berbicara tentang algoritma perbedaan hingga.

Faktanya, jaringan saraf adalah prosesor atau program paralel khusus yang mengemulasi jaringan saraf pada komputer serial.

Kebanyakan algoritma pembelajaran NN (AL) tumbuh dari konsep Hebb. Dia mengusulkan algoritma sederhana tanpa pengawasan di mana nilai bobot w ij yang sesuai dengan koneksi antara neuron ke-i dan ke-j meningkat jika kedua neuron berada dalam keadaan tereksitasi. Dengan kata lain, selama proses pembelajaran, hubungan antar neuron dikoreksi sesuai dengan derajat korelasi keadaannya. Hal ini dapat dinyatakan sebagai persamaan beda hingga berikut:

dimana w ij (t + 1) dan w ij (t) masing-masing adalah nilai bobot koneksi antara neuron i dan neuron j sebelum penyesuaian (pada langkah t+1) dan setelah penyesuaian (pada langkah t); v i (t) – keluaran neuron i dan keluaran neuron j pada langkah t; v j (t) – keluaran neuron j pada langkah t; α adalah parameter kecepatan pembelajaran.

Strategi Pelatihan Jaringan Syaraf Tiruan

Seiring dengan algoritma pelatihan, strategi pelatihan jaringan juga sama pentingnya.

Salah satu pendekatannya adalah dengan melatih jaringan secara berurutan menggunakan serangkaian contoh (Х i , H i) i = 1, 2, …, m yang membentuk set pelatihan. Dalam hal ini, jaringan dilatih untuk merespons dengan benar gambar pertama X 1, lalu gambar kedua X 2, dan seterusnya. Namun, dalam strategi ini terdapat bahaya bahwa jaringan akan kehilangan keterampilan yang diperoleh sebelumnya ketika mempelajari setiap contoh berikutnya, yaitu jaringan mungkin “melupakan” contoh yang disajikan sebelumnya. Untuk mencegah hal ini terjadi, jaringan harus dilatih pada semua contoh set pelatihan sekaligus.

X 1 =(X 11,…, X 1 N) dapat diajarkan 100 c 1

X 2 = (X 21,..., X 2 N) 100 qt 2 100 qt

……………………

X m = (X m 1,…, X mN) 100 c 3

Karena penyelesaian masalah pembelajaran sangat sulit, maka alternatifnya adalah dengan meminimalkan fungsi tujuan dari bentuk:

,

dimana aku adalah parameter yang menentukan persyaratan kualitas untuk melatih jaringan saraf untuk setiap contoh, sehingga λ 1 + λ 2 + … + λ m = 1.

Bagian praktis.

Mari buat set pelatihan:

P_o=cat(1, Gunung, Mf);

Mari kita atur struktur jaringan saraf untuk tugas deteksi:

net = newff (minmax(P_o), , ("logsig", "logsig"), "trainlm", "learngdm");

net.trainParam.epochs = 100;% jumlah siklus pelatihan yang ditentukan

net.trainParam.show = 5;% jumlah siklus untuk menunjukkan hasil antara;

net.trainParam.min_grad = 0;% nilai gradien target

net.trainParam.max_fail = 5;% faktor maksimum yang diizinkan melebihi kesalahan sampel uji dibandingkan dengan nilai minimum yang dicapai;

net.trainParam.searchFcn = "srchcha";% nama algoritma optimasi satu dimensi yang digunakan

net.trainParam.goal = 0;% kesalahan pelatihan target

Fungsi newff dirancang untuk membuat jaringan saraf multilayer “klasik” dengan pelatihan propagasi mundur. Fungsi ini berisi beberapa argumen. Argumen pertama dari fungsi tersebut adalah matriks nilai minimum dan maksimum dari set pelatihan P_o, yang ditentukan menggunakan ekspresi minmax (P_o).

Argumen kedua dari fungsi tersebut ditentukan dalam tanda kurung siku dan menentukan jumlah dan ukuran lapisan. Ekspresi tersebut berarti bahwa jaringan saraf memiliki 2 lapisan. Pada lapisan pertama terdapat npr=10 neuron, dan pada lapisan kedua terdapat 2. Jumlah neuron pada lapisan pertama ditentukan oleh dimensi matriks fitur masukan. Tergantung pada jumlah fitur di lapisan pertama, mungkin terdapat: 5, 7, 12 neuron. Dimensi lapisan kedua (lapisan keluaran) ditentukan oleh masalah yang dipecahkan. Dalam tugas mendeteksi sinyal yang berguna dengan latar belakang mikroseisme, klasifikasi ke dalam kelas pertama dan kedua, 2 neuron ditentukan pada keluaran jaringan saraf.

Argumen ketiga dari fungsi tersebut menentukan jenis fungsi aktivasi di setiap lapisan. Ekspresi ("logsig", "logsig") berarti bahwa setiap lapisan menggunakan fungsi aktivasi logistik sigmoid, yang rentangnya adalah (0, 1).

Argumen keempat menentukan jenis fungsi pelatihan jaringan saraf. Contoh ini menentukan fungsi pelatihan yang menggunakan algoritma optimasi Levenberg-Marquardt - "trainlm".

Paruh pertama vektor matriks T diinisialisasi dengan nilai (1, 0), dan selanjutnya – (0, 1).

net=newff (minmax(P_o), , ("logsig", "logsig"), "trainlm", "learngdm");

net.trainParam.epochs = 1000;

net.trainParam.show = 5;

net.trainParam.min_grad = 0;

net.trainParam.max_fail = 5;

net.trainParam.searchFcn = "srchcha";

net.trainParam.tujuan = 0;

Program untuk menginisialisasi keluaran yang diinginkan dari jaringan saraf T:

n1=panjang(Mt(:, 1));

n2=panjang(Mf(:, 1));

T1=nol ​​(2, n1);

T2=nol (2, n2);

T=kucing(2, T1, T2);

Pelatihan jaringan saraf:

bersih = kereta(bersih, P_o, T);

Gambar 25 – Jadwal pelatihan jaringan saraf.

Mari kita kendalikan jaringan saraf:

Y_k=sim(bersih, P_k);

Perintah sim meneruskan data dari set kontrol P_k ke masukan jaringan saraf, dan hasilnya ditulis ke matriks keluaran Y_k. Banyaknya baris pada matriks P_k dan Y_k adalah sama.

Pb=jumlah (bulat(Y_k (1,1:100)))/100

Estimasi probabilitas deteksi yang benar dari kendaraan yang dilacak Pb=1 alpha = jumlah (bulat(Y_k (1,110:157)))/110

Estimasi probabilitas alarm palsu alpha =0

Kami menentukan kesalahan kontrol kuadrat rata-rata menggunakan keluaran yang diinginkan dan nyata dari jaringan saraf Ek.

Nilai root mean square error of control adalah:

sqe_k = 2,5919e-026

Mari kita uji pengoperasian jaringan saraf. Untuk melakukan ini, kami akan membentuk matriks karakteristik sinyal uji:

h3=tr_t50-rata-rata(tr_t50);

Mh1=MATRPRIZP (h3.500, N1, N2);

Mh1=Mh1 (1:50,:);

Y_t=sim(bersih, P_t);

Pb=jumlah (bulat(Y_t (1,1:100)))/100

Estimasi kemungkinan deteksi yang benar dari kendaraan yang dilacak Pb=1

Kami menemukan perbedaan antara keluaran yang diinginkan dan keluaran sebenarnya dari jaringan saraf E dan menentukan akar rata-rata kesalahan pengujian.

Nilai root mean square error pengujian adalah :

persegi_t = 3.185e-025

Kesimpulan: pada bagian ini dibangun model pendeteksi sinyal seismik menggunakan jaringan syaraf tiruan dengan pelatihan backpropagation. Masalah pendeteksian diselesaikan dengan kesalahan kecil, sehingga tanda-tanda tersebut cocok untuk dideteksi.

Jaringan saraf dua lapis ini dapat digunakan untuk membangun sistem pendeteksi objek.


Kesimpulan

Tujuan dari tugas kursus ini adalah untuk mempelajari metode pemrosesan informasi dan menerapkannya untuk memecahkan masalah deteksi objek.

Selama pengerjaan yang dilakukan dalam empat tahap, diperoleh hasil sebagai berikut:

1) Histogram kepadatan probabilitas sampel amplitudo sinyal dibuat sebagai variabel acak.

Parameter distribusi diperkirakan: ekspektasi matematis, dispersi, deviasi standar.

Kami membuat asumsi tentang hukum distribusi amplitudo dan menguji hipotesis menggunakan uji Kolmogorov-Smirnov dan Pearson pada tingkat signifikansi 0,05. Menurut kriteria Kolmogorov-Smirnov, distribusi dipilih dengan benar. Menurut kriteria Pearson, distribusi dipilih dengan benar hanya untuk sinyal latar belakang. Baginya hipotesis distribusi normal diterima.

Kami mengambil sinyal sebagai realisasi fungsi acak dan membangun fungsi korelasi untuknya. Dengan menggunakan fungsi korelasi, ditentukan bahwa sinyal memiliki sifat osilasi acak.

2) Kami menghasilkan kumpulan data pelatihan dan kontrol (untuk pelatihan dan kontrol jaringan saraf).

3) Untuk matriks pelatihan, parameter distribusi fitur diperkirakan: ekspektasi matematis, dispersi, deviasi standar. Untuk setiap fitur matriks pelatihan kelas tertentu, jarak dihitung dan fitur dengan perbedaan maksimum dipilih. Kami menghitung ambang batas keputusan dan memplot kurva kepadatan probabilitas pada satu grafik. Aturan yang menentukan telah dirumuskan.

4) Kami melatih jaringan saraf dua lapis untuk memecahkan masalah klasifikasi. Kemungkinan deteksi yang benar dan alarm palsu dinilai. Indikator yang sama dinilai menggunakan sinyal uji.

Penyakit akibat kelumpuhan pernafasan. 4. Senjata pembakar Tempat penting dalam sistem senjata konvensional adalah milik senjata pembakar, yang merupakan senjata kompleks yang didasarkan pada penggunaan bahan pembakar. Menurut klasifikasi Amerika, senjata pembakar tergolong senjata pemusnah massal. Kemampuan pembakar...

5. Serangkaian pengamatan berkelanjutan jangka panjang terhadap intensitas fluks dan distribusi azimut VSD atmosfer diperoleh, yang memungkinkan untuk melacak dinamika aktivitas badai petir di pusat badai petir dunia. 5.1. Pemantauan kelautan menunjukkan bahwa kontribusi utama terhadap aktivitas badai petir global berasal dari pusat badai petir di benua dan pulau. Variasi intensitas aliran nadinya bagus...


Sinyal koherensi menghilangkan hasil pengukuran aliran samping yang acak tanpa kehilangan sensitivitas pengukur frekuensi. Penganalisis spektrum Jenis peralatan pemantauan radio yang sudah cukup berkembang namun masih menjanjikan ini dirancang untuk memindai spektrum frekuensi sinyal termodulasi dalam berbagai rentang frekuensi dan menampilkan spektrum ini pada layar tampilan/osiloskop. Jika...

Selamat datang di bagian kedua tutorial Jaringan Neural. Saya ingin segera meminta maaf kepada semua orang yang telah menunggu bagian kedua lebih awal. Karena alasan tertentu saya harus menunda penulisannya. Sebenarnya, saya tidak menyangka artikel pertama akan mendapat permintaan sebanyak itu dan banyak orang akan tertarik dengan topik ini. Dengan mempertimbangkan komentar Anda, saya akan mencoba memberi Anda informasi sebanyak mungkin sekaligus menjaganya sejelas mungkin. Pada artikel ini, saya akan berbicara tentang metode pengajaran/pelatihan jaringan saraf (khususnya, metode propagasi mundur) dan jika, karena alasan tertentu, Anda belum membacanya, saya sangat menyarankan untuk memulainya. Dalam proses penulisan artikel ini, saya juga ingin berbicara tentang jenis jaringan saraf dan metode pelatihan lainnya, namun ketika saya mulai menulis tentangnya, saya menyadari bahwa ini akan bertentangan dengan metode presentasi saya. Saya memahami bahwa Anda sangat ingin mendapatkan informasi sebanyak mungkin, namun topik ini sangat luas dan memerlukan analisis mendetail, dan tujuan utama saya bukanlah menulis artikel lain dengan penjelasan yang dangkal, tetapi untuk menyampaikan kepada Anda setiap aspek dari artikel tersebut. topik dan membuat artikel semudah mungkin dipahami. Saya segera membuat marah mereka yang suka "mengkode", karena saya masih tidak akan menggunakan bahasa pemrograman dan akan menjelaskan semuanya "dengan jari saya". Cukup perkenalannya, sekarang mari kita lanjutkan mempelajari jaringan saraf.

Apa itu neuron perpindahan?


Sebelum kita memulai topik utama kita, kita harus memperkenalkan konsep jenis neuron lain - neuron perpindahan. Neuron perpindahan atau neuron bias adalah jenis neuron ketiga yang digunakan di sebagian besar jaringan saraf. Keunikan neuron jenis ini adalah input dan outputnya selalu sama dengan 1 dan tidak pernah memiliki sinapsis input. Neuron perpindahan dapat hadir dalam jaringan saraf satu per satu per lapisan, atau sama sekali tidak ada; tidak boleh 50/50 (warna merah pada diagram adalah bobot dan neuron yang tidak dapat ditempatkan). Koneksi neuron bias sama dengan koneksi neuron biasa - dengan semua neuron tingkat berikutnya, hanya saja tidak boleh ada sinapsis antara dua neuron bias. Akibatnya, mereka dapat ditempatkan pada lapisan masukan dan semua lapisan tersembunyi, tetapi tidak pada lapisan keluaran, karena mereka tidak memiliki koneksi apa pun.

Untuk apa neuron perpindahan digunakan?



Neuron perpindahan diperlukan agar dapat memperoleh hasil keluaran dengan menggeser grafik fungsi aktivasi ke kanan atau ke kiri. Jika ini terdengar membingungkan, mari kita lihat contoh sederhana di mana terdapat satu neuron masukan dan satu neuron keluaran. Kemudian kita dapat menetapkan bahwa keluaran O2 akan sama dengan masukan H1, dikalikan dengan bobotnya, dan melewati fungsi aktivasi (rumus pada foto di sebelah kiri). Dalam kasus khusus kami, kami akan menggunakan sigmoid.

Dari pelajaran matematika sekolah kita mengetahui bahwa jika kita mengambil fungsi y = ax+b dan mengubah nilai “a” di dalamnya, maka kemiringan fungsi tersebut akan berubah (warna garis pada grafik di kiri), dan jika kita mengubah “b”, maka kita akan menggeser fungsinya ke kanan atau ke kiri (warna garis pada grafik di sebelah kanan). Jadi “a” adalah bobot H1, dan “b” adalah bobot neuron bias B1. Ini adalah contoh kasar, tapi kurang lebih seperti itulah cara kerjanya (jika Anda melihat fungsi aktivasi di sebelah kanan gambar, Anda akan melihat kemiripan yang sangat kuat di antara rumusnya). Artinya, ketika selama pelatihan kita menyesuaikan bobot neuron tersembunyi dan keluaran, kita mengubah kemiringan fungsi aktivasi. Namun, menyesuaikan bobot neuron bias dapat memberi kita peluang untuk menggeser fungsi aktivasi sepanjang sumbu X dan menangkap wilayah baru. Dengan kata lain, jika titik yang bertanggung jawab atas solusi Anda terletak seperti yang ditunjukkan pada grafik di sebelah kiri, maka jaringan saraf Anda tidak akan pernah bisa menyelesaikan masalah tanpa menggunakan neuron bias. Oleh karena itu, Anda jarang akan melihat jaringan saraf tanpa neuron bias.

Selain itu, neuron perpindahan juga membantu jika semua neuron masukan menerima 0 sebagai masukan dan berapa pun bobotnya, semuanya akan meneruskan 0 ke lapisan berikutnya, tetapi tidak jika terdapat neuron perpindahan. Ada tidaknya neuron bias merupakan hyperparameter (akan dibahas lebih lanjut nanti). Singkatnya, Anda harus memutuskan sendiri apakah Anda perlu menggunakan neuron bias atau tidak dengan menjalankan NN dengan dan tanpa neuron bias dan membandingkan hasilnya.

PENTING Perlu diketahui bahwa terkadang neuron perpindahan tidak ditunjukkan pada diagram, tetapi bobotnya hanya diperhitungkan saat menghitung nilai masukan, misalnya:

Masukan = H1*w1+H2*w2+b3
b3 = bias*w3

Karena keluarannya selalu sama dengan 1, kita dapat membayangkan bahwa kita memiliki sinapsis tambahan dengan bobot dan menambahkan bobot ini ke jumlah tersebut tanpa menyebutkan neuron itu sendiri.

Bagaimana caranya agar NS memberikan jawaban yang benar?

Jawabannya sederhana - Anda perlu melatihnya. Namun, betapapun sederhananya jawabannya, penerapannya dalam hal kesederhanaan masih menyisakan banyak hal yang diinginkan. Ada beberapa metode untuk mengajarkan jaringan saraf dan saya akan menyoroti 3, menurut saya, yang paling menarik:
  • Metode propagasi mundur
  • Perbanyakan tangguh atau metode Rprop
  • Algoritma Genetika
Rprop dan GA akan dibahas di artikel lain, tetapi sekarang kita akan melihat dasar dasar – metode backpropagation, yang menggunakan algoritma penurunan gradien.

Apa itu penurunan gradien?

Ini adalah cara mencari nilai minimum atau maksimum lokal suatu fungsi dengan bergerak sepanjang gradien. Jika Anda memahami konsep penurunan gradien, Anda tidak akan memiliki pertanyaan apa pun saat menggunakan metode propagasi mundur. Pertama, mari kita cari tahu apa itu gradien dan di mana letaknya di jaringan saraf kita. Mari kita buat grafik di mana sumbu x akan menunjukkan bobot neuron (w) dan sumbu y akan menunjukkan kesalahan yang sesuai dengan bobot ini (e).


Melihat grafik ini, kita akan memahami bahwa grafik fungsi f(w) adalah ketergantungan error pada bobot yang dipilih. Dalam grafik ini, kita tertarik pada minimum global - titik (w2,e2) atau, dengan kata lain, tempat grafik paling dekat dengan sumbu x. Poin ini berarti bahwa dengan memilih bobot w2 kita akan mendapatkan kesalahan terkecil - e2 dan, sebagai konsekuensinya, hasil terbaik dari semua kemungkinan. Metode penurunan gradien akan membantu kita menemukan titik ini (gradien ditunjukkan dengan warna kuning pada grafik). Oleh karena itu, setiap bobot dalam jaringan saraf akan memiliki grafik dan gradiennya sendiri, dan untuk masing-masing bobot tersebut perlu dicari nilai minimum globalnya.

Jadi apa gradien ini? Gradien adalah vektor yang menentukan kecuraman suatu lereng dan menunjukkan arahnya relatif terhadap titik mana pun pada permukaan atau grafik. Untuk mencari gradien, Anda perlu mengambil turunan grafik pada suatu titik tertentu (seperti yang ditunjukkan pada grafik). Bergerak ke arah gradien ini, kita akan meluncur dengan mulus ke lembah. Sekarang bayangkan kesalahannya adalah pemain ski, dan grafik fungsinya adalah gunung. Jadi, jika kesalahannya 100%, maka pemain ski tersebut berada di puncak gunung, dan jika kesalahannya 0%, maka di bagian paling bawah. Seperti semua pemain ski, kesalahan berusaha untuk turun secepat mungkin dan mengurangi nilainya. Pada akhirnya, kita akan mendapatkan hasil berikut:


Bayangkan seorang pemain ski dilempar menggunakan helikopter ke atas gunung. Seberapa tinggi atau rendahnya bergantung pada kasusnya (mirip dengan bagaimana di jaringan saraf, saat inisialisasi, bobot ditempatkan dalam urutan acak). Katakanlah errornya 90% dan ini adalah titik awal kita. Sekarang pemain ski harus turun menggunakan gradien. Dalam perjalanan turun, di setiap titik kita akan menghitung gradien, yang akan menunjukkan arah penurunan dan, ketika kemiringan berubah, memperbaikinya. Jika kemiringannya lurus, maka setelah tindakan ke-n kita akan sampai di dataran rendah. Namun dalam banyak kasus, kemiringan (grafik fungsi) akan bergelombang dan pemain ski kita akan menghadapi masalah yang sangat serius - minimum lokal. Saya rasa semua orang tahu apa fungsi minimum lokal dan global, untuk menyegarkan ingatan Anda, berikut adalah contohnya. Masuk ke minimum lokal penuh dengan kenyataan bahwa pemain ski kita akan selamanya berada di dataran rendah ini dan tidak pernah meluncur menuruni gunung, oleh karena itu kita tidak akan pernah bisa mendapatkan jawaban yang benar. Tapi kita bisa menghindarinya dengan melengkapi pemain ski kita dengan jetpack yang disebut momentum. Berikut ilustrasi singkat momen tersebut:

Seperti yang mungkin sudah Anda duga, tas punggung ini akan memberi pemain ski akselerasi yang diperlukan untuk mengatasi bukit yang membuat kita tetap berada di minimum lokal, tapi ada satu TAPI di sini. Bayangkan kita menetapkan nilai tertentu untuk parameter momen dan mampu dengan mudah mengatasi semua minimum lokal dan mencapai minimum global. Karena kita tidak bisa mematikan jetpack begitu saja, kita bisa melewati nilai minimum global jika masih ada nilai terendah di dekatnya. Dalam kasus terakhir, hal ini tidak begitu penting, karena cepat atau lambat kita masih akan kembali ke minimum global, namun perlu diingat bahwa semakin besar momennya, semakin besar cakupan pemain ski yang akan bermain ski di dataran rendah. Seiring dengan itu, metode backpropagation juga menggunakan parameter seperti learning rate. Seperti yang mungkin dipikirkan banyak orang, semakin cepat kecepatan pembelajaran, semakin cepat kita melatih jaringan saraf. TIDAK. Kecepatan pembelajaran, serta torsi, adalah hyperparameter - nilai yang dipilih melalui coba-coba. Kecepatan belajar dapat berhubungan langsung dengan kecepatan pemain ski dan kita dapat mengatakan dengan yakin bahwa semakin jauh Anda melangkah, semakin tenang Anda melaju. Namun, ada juga aspek-aspek tertentu di sini, karena jika kita tidak memberikan kecepatan sama sekali kepada pemain ski, dia tidak akan pergi ke mana pun, dan jika kita memberinya kecepatan rendah, waktu tempuh dapat memakan waktu yang sangat lama. jangka waktu yang sangat lama. Lalu apa yang terjadi jika kita memberi kecepatan terlalu tinggi?


Seperti yang Anda lihat, tidak ada yang bagus. Pemain ski akan mulai meluncur ke jalur yang salah dan bahkan mungkin ke arah lain, yang, seperti yang Anda pahami, hanya akan menjauhkan kita dari menemukan jawaban yang benar. Oleh karena itu, dalam semua parameter ini perlu dicari jalan tengah untuk menghindari non-konvergensi NS (lebih lanjut tentang ini nanti).

Apa itu Metode Propagasi Balik (BPM)?

Sekarang kita telah mencapai titik di mana kita dapat mendiskusikan bagaimana memastikan NS Anda dapat belajar dengan benar dan memberikan keputusan yang tepat. KKP divisualisasikan dengan sangat baik dalam GIF ini:


Sekarang mari kita lihat setiap tahap secara detail. Jika Anda ingat, pada artikel sebelumnya kami menghitung output NS. Dengan kata lain, ini disebut forward pass, yaitu kita mentransfer informasi secara berurutan dari neuron masukan ke neuron keluaran. Setelah itu kami menghitung kesalahannya dan, berdasarkan itu, melakukan transmisi terbalik, yang terdiri dari perubahan bobot jaringan saraf secara berurutan, dimulai dengan bobot neuron keluaran. Nilai timbangan akan berubah ke arah yang memberikan kita hasil terbaik. Dalam perhitungan saya, saya akan menggunakan metode mencari delta, karena ini adalah metode yang paling sederhana dan paling mudah dipahami. Saya juga akan menggunakan metode stokastik untuk memperbarui bobot (lebih lanjut tentang itu nanti).

Sekarang mari kita lanjutkan perhitungan yang kita tinggalkan di artikel sebelumnya.

Data tugas dari artikel sebelumnya


Data: I1=1, I2=0, w1=0,45, w2=0,78,w3=-0,12,w4=0,13,w5=1,5,w6=-2,3.

Masukan H1 = 1*0,45+0*-0,12=0,45
Keluaran H1 = sigmoid(0,45)=0,61

Masukan H2 = 1*0,78+0*0,13=0,78
Keluaran H2 = sigmoid(0,78)=0,69

O1masukan = 0,61*1,5+0,69*-2,3=-0,672
Keluaran O1 = sigmoid(-0,672)=0,33

O1ideal = 1 (0xor1=1)

Kesalahan = ((1-0,33)^2)/1=0,45

Hasil - 0,33, kesalahan - 45%.


Karena kita sudah menghitung hasil NN dan errornya, kita bisa langsung melanjutkan ke MOR. Seperti yang saya sebutkan sebelumnya, algoritma selalu dimulai dengan neuron keluaran. Dalam hal ini, mari kita hitung nilai δ (delta) menggunakan rumus 1.

Karena neuron keluaran tidak memiliki sinapsis keluar maka kita akan menggunakan rumus pertama (δ keluaran), oleh karena itu untuk neuron tersembunyi kita sudah menggunakan rumus kedua (δ tersembunyi). Semuanya cukup sederhana di sini: kita menghitung selisih antara hasil yang diinginkan dan hasil yang diperoleh dan mengalikannya dengan turunan fungsi aktivasi dari nilai masukan neuron tertentu. Sebelum kita memulai perhitungan, saya ingin menarik perhatian Anda pada turunannya. Pertama, seperti yang mungkin sudah jelas, dengan MOR, hanya fungsi aktivasi yang dapat dibedakan yang perlu digunakan. Kedua, untuk menghindari perhitungan yang tidak perlu, rumus turunan dapat diganti dengan rumus yang lebih ramah dan sederhana yang bentuknya:


Jadi perhitungan kita untuk titik O1 akan terlihat seperti ini.

Larutan

Keluaran O1 = 0,33
O1ideal = 1
Kesalahan = 0,45

δO1 = (1 - 0,33) * ((1 - 0,33) * 0,33) = 0,148


Ini menyelesaikan perhitungan untuk neuron O1. Ingatlah bahwa setelah menghitung delta suatu neuron, kita harus segera mengupdate bobot semua sinapsis keluar dari neuron tersebut. Karena dalam kasus O1 tidak ada, kita beralih ke neuron tingkat tersembunyi dan melakukan hal yang sama, kecuali sekarang kita memiliki rumus kedua untuk menghitung delta dan intinya adalah mengalikan turunan dari fungsi aktivasi. dari nilai masukan dengan jumlah produk dari semua bobot keluar dan delta neuron yang terhubung dengan sinapsis ini. Tapi kenapa rumusnya berbeda? Faktanya adalah bahwa inti dari MOR adalah untuk menyebarkan kesalahan neuron keluaran ke semua bobot NN. Kesalahan hanya dapat dihitung pada tingkat keluaran, seperti yang telah kami lakukan, kami juga menghitung delta di mana kesalahan ini sudah ada. Oleh karena itu, sekarang kita akan menggunakan delta sebagai pengganti kesalahan, yang akan ditransmisikan dari neuron ke neuron. Dalam hal ini, carilah delta untuk H1:

Larutan

Keluaran H1 = 0,61
w5 = 1,5
δO1 = 0,148

δH1 = ((1 - 0,61) * 0,61) * (1,5 * 0,148) = 0,053


Sekarang kita perlu mencari gradien untuk setiap sinapsis keluar. Di sini mereka biasanya memasukkan pecahan 3 tingkat dengan sekumpulan turunan dan matematika lainnya, tetapi inilah kelebihan menggunakan metode penghitungan delta, karena pada akhirnya rumus Anda untuk mencari gradien akan terlihat seperti ini:

Disini titik A adalah titik awal sinapsis, dan titik B adalah titik akhir sinapsis. Jadi kita bisa menghitung gradien w5 seperti ini:

Larutan

Keluaran H1 = 0,61
δO1 = 0,148

GRADw5 = 0,61 * 0,148 = 0,09


Sekarang kami memiliki semua data yang diperlukan untuk memperbarui bobot w5 dan kami akan melakukan ini berkat fungsi MOP, yang menghitung jumlah perubahan bobot tertentu dan tampilannya seperti ini:


Saya sangat menyarankan agar Anda tidak mengabaikan bagian kedua dari ekspresi dan menggunakan momen tersebut, karena ini akan menghindari masalah dengan minimum lokal.

Di sini kita melihat 2 konstanta yang telah kita bicarakan ketika kita melihat algoritma penurunan gradien: E (epsilon) adalah kecepatan pemelajaran, α (alpha) adalah momen. Menerjemahkan rumus ke dalam kata-kata, kita mendapatkan: perubahan bobot sinapsis sama dengan koefisien kecepatan pembelajaran dikalikan gradien bobot ini, tambahkan momen dikalikan dengan perubahan bobot sebelumnya (pada iterasi pertama adalah 0). Dalam hal ini, mari kita hitung perubahan bobot w5 dan perbarui nilainya dengan menambahkan Δw5 ke dalamnya.

Larutan

E = 0,7
= 0,3
w5 = 1,5
GRADw5 = 0,09
Δw5(i-1) = 0

Δw5 = 0,7 * 0,09 + 0 * 0,3 = 0,063
w5 = w5 + Δw5 = 1,563


Jadi, setelah menerapkan algoritme, bobot kami meningkat sebesar 0,063. Sekarang saya sarankan Anda melakukan hal yang sama untuk H2.

Larutan

Keluaran H2 = 0,69
w6 = -2,3
δO1 = 0,148
E = 0,7
= 0,3
Δw6(i-1) = 0

δH2 = ((1 - 0,69) * 0,69) * (-2,3 * 0,148) = -0,07

GRADw6 = 0,69 * 0,148 = 0,1

Δw6 = 0,7 * 0,1 + 0 * 0,3 = 0,07

W6 = w6 + Δw6 = -2.2


Dan tentunya jangan lupakan I1 dan I2 karena keduanya juga memiliki sinapsis yang bobotnya juga perlu kita perbarui. Namun, ingatlah bahwa kita tidak perlu mencari delta untuk neuron masukan karena mereka tidak memiliki sinapsis masukan.

Larutan

w1 = 0,45, Δw1(i-1) = 0
w2 = 0,78, Δw2(i-1) = 0
w3 = -0,12, Δw3(i-1) = 0
w4 = 0,13, Δw4(i-1) = 0
δH1 = 0,053
δH2 = -0,07
E = 0,7
= 0,3

GRADw1 = 1 * 0,053 = 0,053
GRADw2 = 1 * -0,07 = -0,07
GRADw3 = 0 * 0,053 = 0
GRADw4 = 0 * -0,07 = 0

Δw1 = 0,7 * 0,053 + 0 * 0,3 = 0,04
Δw2 = 0,7 * -0,07 + 0 * 0,3 = -0,05
Δw3 = 0,7 * 0 + 0 * 0,3 = 0
Δw4 = 0,7 * 0 + 0 * 0,3 = 0

W1 = w1 + Δw1 = 0,5
w2 = w2 + Δw2 = 0,73
w3 = w3 + Δw3 = -0,12
w4 = w4 + Δw4 = 0,13


Sekarang mari kita pastikan bahwa kita melakukan semuanya dengan benar dan menghitung lagi keluaran jaringan saraf hanya dengan bobot yang diperbarui.

Larutan

Saya1 = 1
Saya2 = 0
w1 = 0,5
w2 = 0,73
w3 = -0,12
w4 = 0,13
w5 = 1,563
w6 = -2.2

Masukan H1 = 1 * 0,5 + 0 * -0,12 = 0,5
Keluaran H1 = sigmoid(0,5) = 0,62

Masukan H2 = 1 * 0,73 + 0 * 0,124 = 0,73
Keluaran H2 = sigmoid(0,73) = 0,675

Masukan O1 = 0,62* 1,563 + 0,675 * -2,2 = -0,51
Keluaran O1 = sigmoid(-0,51) = 0,37

O1ideal = 1 (0xor1=1)

Kesalahan = ((1-0,37)^2)/1=0,39

Hasil - 0,37, kesalahan - 39%.


Seperti yang bisa kita lihat setelah satu kali iterasi MOP, kita berhasil mengurangi error sebesar 0,04 (6%). Sekarang Anda perlu mengulanginya berulang kali sampai kesalahan Anda cukup kecil.

Apa lagi yang perlu Anda ketahui tentang proses pembelajaran?

Jaringan saraf dapat dilatih dengan atau tanpa guru (pembelajaran yang diawasi dan tidak diawasi).

Pelatihan yang dibimbing- ini adalah jenis pelatihan yang melekat pada masalah seperti regresi dan klasifikasi (kami menggunakannya dalam contoh yang diberikan di atas). Dengan kata lain, di sini Anda berperan sebagai guru dan NS sebagai murid. Anda memberikan data masukan dan hasil yang diinginkan, yaitu siswa, dengan melihat data masukan, akan memahami bahwa dia perlu mengupayakan hasil yang Anda berikan kepadanya.

Pembelajaran tanpa pengawasan- jenis pelatihan ini tidak terlalu sering terjadi. Tidak ada guru di sini, sehingga jaringan tidak mendapatkan hasil yang diinginkan atau jumlahnya sangat sedikit. Pada dasarnya, jenis pelatihan ini melekat pada jaringan saraf yang tugasnya mengelompokkan data menurut parameter tertentu. Katakanlah Anda mengirimkan 10.000 artikel di Habré dan setelah menganalisis semua artikel ini, NS akan dapat mendistribusikannya ke dalam kategori berdasarkan, misalnya, kata-kata yang sering muncul. Artikel yang menyebutkan bahasa pemrograman, hingga pemrograman, dan dimana ada kata seperti photoshop, hingga desain.

Ada juga metode yang menarik seperti pembelajaran penguatan(pembelajaran penguatan). Metode ini layak mendapat artikel terpisah, tetapi saya akan mencoba menjelaskan secara singkat esensinya. Cara ini bisa diterapkan bila kita bisa, berdasarkan hasil yang diterima dari NS, memberikan penilaian. Misal kita ingin mengajari NS bermain PAC-MAN, maka setiap NS mendapat poin banyak kita akan menyemangatinya. Dengan kata lain, kita memberikan hak kepada NS untuk mencari cara apapun untuk mencapai tujuan tersebut, asalkan memberikan hasil yang baik. Dengan cara ini, jaringan mulai memahami apa yang ingin mereka capai darinya dan mencoba menemukan cara terbaik untuk mencapai tujuan tersebut tanpa terus-menerus memberikan data dari “guru”.

Pelatihan juga dapat dilakukan dengan tiga metode: metode stokastik, metode batch, dan metode mini-batch. Ada begitu banyak artikel dan penelitian tentang metode mana yang terbaik dan tidak ada yang bisa memberikan jawaban umum. Saya adalah pendukung metode stokastik, namun saya tidak memungkiri fakta bahwa setiap metode memiliki kelebihan dan kekurangannya masing-masing.

Secara singkat tentang setiap metode:

Stokastik(kadang-kadang juga disebut online) metode ini bekerja berdasarkan prinsip berikut - temukan Δw, segera perbarui bobot yang sesuai.

Metode batch cara kerjanya berbeda. Kami menjumlahkan Δw semua bobot pada iterasi saat ini dan baru kemudian memperbarui semua bobot menggunakan jumlah ini. Salah satu keuntungan terpenting dari pendekatan ini adalah penghematan waktu penghitungan yang signifikan, namun keakuratan dalam hal ini dapat sangat terpengaruh.

Metode batch mini adalah jalan terbaik dan mencoba menggabungkan keunggulan kedua metode. Prinsipnya begini: kita dengan bebas mendistribusikan bobot antar kelompok dan mengubah bobotnya dengan jumlah Δw semua bobot dalam grup tertentu.

Apa itu hyperparameter?

Hyperparameter adalah nilai yang harus dipilih secara manual dan seringkali melalui trial and error. Diantara nilai-nilai tersebut adalah:
  • Momen dan kecepatan belajar
  • Jumlah lapisan tersembunyi
  • Jumlah neuron di setiap lapisan
  • Ada atau tidaknya neuron perpindahan
Jenis jaringan saraf lainnya berisi hyperparameter tambahan, tetapi kami tidak akan membicarakannya. Memilih hyperparameter yang tepat sangatlah penting dan secara langsung akan mempengaruhi konvergensi NN Anda. Memahami apakah layak menggunakan neuron perpindahan atau tidak cukup sederhana. Jumlah lapisan tersembunyi dan neuron di dalamnya dapat dihitung dengan kekerasan berdasarkan satu aturan sederhana - semakin banyak neuron, semakin akurat hasilnya dan semakin lama waktu yang Anda habiskan untuk melatihnya secara eksponensial. Namun, perlu diingat bahwa Anda tidak boleh membuat jaringan saraf dengan 1000 neuron untuk menyelesaikan masalah sederhana. Namun dengan pilihan momen dan kecepatan belajar, semuanya menjadi sedikit lebih rumit. Hyperparameter ini akan bervariasi bergantung pada tugas yang ada dan arsitektur jaringan saraf. Misalnya, untuk menyelesaikan XOR, kecepatan pembelajaran dapat berada di kisaran 0,3 - 0,7, namun dalam jaringan saraf yang menganalisis dan memprediksi harga saham, kecepatan pembelajaran di atas 0,00001 menyebabkan konvergensi jaringan saraf yang buruk. Anda tidak boleh memusatkan perhatian Anda pada hyperparameter sekarang dan mencoba memahami secara menyeluruh cara memilihnya. Ini akan datang dengan pengalaman, tetapi untuk saat ini saya menyarankan Anda untuk bereksperimen dan mencari contoh penyelesaian masalah tertentu di Internet.

Apa itu konvergensi?



Konvergensi menunjukkan apakah arsitektur NN sudah benar dan apakah hyperparameter dipilih dengan benar sesuai dengan tugasnya. Katakanlah program kita menampilkan kesalahan NS pada setiap iterasi di log. Jika kesalahan berkurang pada setiap iterasi, maka kita berada di jalur yang benar dan NN kita konvergen. Jika error melonjak naik turun atau terhenti pada level tertentu, maka NN tidak konvergen. Dalam 99% kasus, masalah ini diselesaikan dengan mengubah hyperparameter. 1% sisanya berarti Anda mengalami kesalahan dalam arsitektur jaringan saraf. Konvergensi juga dipengaruhi oleh pelatihan ulang jaringan saraf.

Apa itu pelatihan ulang?

Overfitting, seperti namanya, adalah keadaan jaringan saraf ketika jaringan tersebut terlalu jenuh dengan data. Masalah ini terjadi jika Anda terlalu lama melatih jaringan pada data yang sama. Dengan kata lain, jaringan tidak akan mulai belajar dari data, namun mengingat dan “menjejalkannya”. Oleh karena itu, saat Anda mengirimkan data baru ke masukan jaringan saraf ini, noise mungkin muncul pada data yang diterima, yang akan memengaruhi keakuratan hasilnya. Misalnya, jika kita menunjukkan NS foto apel yang berbeda (hanya yang berwarna merah) dan mengatakan bahwa ini adalah apel. Kemudian, ketika NN melihat apel berwarna kuning atau hijau, dia tidak dapat menentukan apakah itu apel, karena dia ingat bahwa semua apel pasti berwarna merah. Sebaliknya, ketika NN melihat sesuatu yang berwarna merah dan bentuknya seperti apel, misalnya buah persik, dia akan mengatakan bahwa itu adalah apel. Ini adalah kebisingan. Pada grafik, noise akan terlihat seperti ini.


Terlihat grafik fungsinya sangat berfluktuasi dari titik ke titik yang merupakan data keluaran (hasil) NN kita. Idealnya, grafik ini tidak terlalu bergelombang dan lurus. Untuk menghindari pelatihan berlebihan, Anda sebaiknya tidak melatih jaringan saraf dalam waktu lama pada data yang sama atau sangat mirip. Selain itu, overfitting dapat disebabkan oleh sejumlah besar parameter yang Anda berikan ke masukan jaringan saraf atau oleh arsitektur yang terlalu rumit. Jadi, ketika Anda melihat kesalahan (noise) pada output setelah fase pelatihan, Anda harus menggunakan salah satu metode regularisasi, tetapi dalam banyak kasus hal ini tidak diperlukan.

Kesimpulan

Saya harap artikel ini dapat memperjelas poin-poin penting dari subjek sulit seperti Jaringan Syaraf Tiruan. Namun, saya yakin tidak peduli berapa banyak artikel yang Anda baca, mustahil menguasai topik rumit seperti itu tanpa latihan. Oleh karena itu, jika Anda baru memulai perjalanan dan ingin menjelajahi industri yang menjanjikan dan berkembang ini, maka saya menyarankan Anda untuk mulai berlatih dengan menulis jaringan saraf Anda sendiri, dan baru kemudian menggunakan bantuan berbagai kerangka kerja dan perpustakaan. Selain itu, jika Anda tertarik dengan metode saya dalam menyajikan informasi dan ingin saya menulis artikel tentang topik lain terkait Pembelajaran Mesin, pilih topik yang Anda minati dalam jajak pendapat di bawah. Sampai jumpa di artikel selanjutnya :)

Hanya pengguna terdaftar yang dapat berpartisipasi dalam survei ini. Silakan masuk.

Pelatihan jaringan saraf

Jaringan saraf digunakan untuk mewakili pengetahuan. Tidak seperti komputasi konvensional, representasi pengetahuan dalam jaringan saraf mencari berdasarkan konten, bukan berdasarkan alamat data yang disimpan. Selain itu, representasi pengetahuan dalam jaringan saraf dilakukan melalui perkiraan, bukan korespondensi yang benar-benar tepat. Representasi pengetahuan dalam jaringan saraf terdiri dari jaringan, bobot koneksi, dan interpretasi semantik yang melekat pada aktivasi node. Misalnya, dalam konteks klasifikasi manajerial, dengan menggunakan jaringan saraf terlatih, dimungkinkan untuk memprediksi apakah pelanggan akan memilih produk baru berdasarkan data numerik tentang pelanggan, seperti merek terakhir yang dibeli, minat pada pra-paparan, peluang untuk paparan tambahan, dan minat terhadapnya. Pengukur atribut ini adalah masukan ke jaringan saraf terlatih. Aktivasi “+1” yang diterima dari jaringan saraf mungkin menunjukkan bahwa pelanggan akan memilih produk baru, dan “-1” - sebaliknya.

Generalisasi pengetahuan dalam jaringan saraf dicapai melalui pelatihan. Proses pembelajaran di jaringan saraf merangsang pola aktivasi yang diinginkan dan memblokir pola aktivasi yang tidak diinginkan berdasarkan data yang tersedia. Untuk mencapai generalisasi pengetahuan tertentu dalam jaringan saraf, algoritma pembelajaran dikembangkan. Fungsi kesalahan yang ditentukan pada keluaran jaringan saraf, atau fungsi energi yang ditentukan saat elemen jaringan diaktifkan, mencirikan kualitas jaringan saraf dalam menggeneralisasi pengetahuan. Kumpulan data pelatihan dalam hal ini harus terdiri dari sampel representasi pengetahuan yang seharusnya dilatih di jaringan saraf. Algoritme pembelajaran beroperasi dengan mengubah bobot (yaitu, kekuatan koneksi antar node), keluaran jaringan saraf, atau struktur jaringan saraf, yang bertujuan untuk meminimalkan kesalahan atau energi berdasarkan data pelatihan.

Ada banyak paradigma pembelajaran dalam sistem jaringan saraf. Pembelajaran yang diawasi (supervised learning) dan pembelajaran tanpa pengawasan (unsupervised learning atau self-learning) merupakan dua paradigma utama yang biasa digunakan dalam perancangan algoritma pembelajaran. Ada juga paradigma campuran.

Dalam paradigma pembelajaran dengan guru jaringan saraf memiliki jawaban yang benar (output jaringan) untuk setiap contoh masukan. Proses pelatihan berupaya meminimalkan "jarak" antara keluaran jaringan saraf aktual dan yang diinginkan. Bobotnya disesuaikan agar jaringan menghasilkan jawaban yang sedekat mungkin dengan jawaban benar yang diketahui. Versi pembelajaran yang diawasi yang disempurnakan mengasumsikan bahwa hanya perkiraan kritis dari kebenaran keluaran jaringan saraf yang diketahui, tetapi bukan nilai keluaran yang benar itu sendiri.

Kebalikan dari pembelajaran yang diawasi adalah pengajaran tanpa guru. Berbeda dengan pembelajaran yang diawasi, tidak ada kumpulan nilai keluaran yang diinginkan secara apriori dan tidak diperlukan pengetahuan tentang jawaban yang benar untuk setiap contoh rangkaian pelatihan. Ketika paradigma seperti itu digunakan, tersirat pola masukan ganda. Diasumsikan bahwa selama proses pelatihan, jaringan saraf mendeteksi fitur-fitur penting dari masukan (struktur internal data atau korelasi antara sampel dalam sistem data terungkap, yang memungkinkan untuk mendistribusikan sampel ke dalam kategori). Jaringan saraf harus mengembangkan representasi rangsangan masukannya sendiri tanpa bantuan guru.

Pada campur aduk Dalam pelatihan, sebagian bobot ditentukan melalui pembelajaran yang diawasi, sedangkan sisanya diperoleh melalui pembelajaran mandiri.

Teori pembelajaran mempertimbangkan tiga sifat mendasar yang terkait dengan pembelajaran melalui contoh: kapasitas, kompleksitas sampel dan kompleksitas komputasi.

Kapasitas mengacu pada berapa banyak sampel yang dapat diingat oleh jaringan, dan fungsi serta batasan keputusan apa yang dapat dibentuk di dalamnya.

Kompleksitas sampel menentukan jumlah contoh pelatihan yang diperlukan untuk mencapai kemampuan generalisasi jaringan. Contoh yang terlalu sedikit dapat menyebabkan jaringan menjadi “terlalu terlatih”, yaitu jaringan berkinerja baik pada contoh dari set pelatihan, namun buruk pada contoh pengujian yang tunduk pada distribusi statistik yang sama.

Ada 4 jenis aturan pembelajaran utama: koreksi kesalahan, mesin Boltzmann, aturan Hebb, dan pembelajaran kompetitif.

Aturan koreksi kesalahan. Dalam pembelajaran terawasi, setiap contoh masukan diberikan keluaran yang diinginkan d. Output jaringan sebenarnya y mungkin tidak sesuai dengan yang diinginkan. Prinsip koreksi kesalahan selama pelatihan adalah dengan menggunakan sinyal (d-y) untuk memodifikasi bobot, memastikan pengurangan kesalahan secara bertahap. Pembelajaran hanya terjadi ketika perceptron melakukan kesalahan. Berbagai modifikasi algoritma pembelajaran ini telah diketahui.

Pelatihan Boltzmann. Merupakan aturan pembelajaran stokastik yang mengikuti prinsip teori informasi dan termodinamika. Tujuan dari pelatihan Boltzmann adalah untuk menyesuaikan bobot sedemikian rupa sehingga keadaan neuron yang terlihat memenuhi distribusi probabilitas yang diinginkan. Pembelajaran Boltzmann dapat dianggap sebagai kasus khusus koreksi kesalahan, di mana kesalahan dipahami sebagai perbedaan korelasi keadaan dalam dua mode.

aturan Hebb. Aturan pembelajaran tertua adalah postulat pembelajaran Hebbian. Hebb mengandalkan pengamatan neurofisiologis berikut: jika neuron di kedua sisi sinapsis menyala secara bersamaan dan teratur, kekuatan koneksi sinaptik meningkat. Ciri penting dari aturan ini adalah bahwa perubahan bobot sinaptik hanya bergantung pada aktivitas neuron yang dihubungkan oleh sinapsis tertentu. Hal ini sangat menyederhanakan rantai pembelajaran dalam implementasi VLSI.

Pelatihan melalui kompetisi. Berbeda dengan pembelajaran Hebbian, yang mana banyak neuron keluaran dapat diaktifkan secara bersamaan, dalam pembelajaran kompetitif, neuron keluaran bersaing satu sama lain untuk menembak. Fenomena ini dikenal sebagai aturan pemenang mengambil segalanya. Pembelajaran serupa terjadi di jaringan saraf biologis. Pembelajaran melalui kompetisi memungkinkan pengelompokan data masukan: contoh serupa dikelompokkan berdasarkan jaringan berdasarkan korelasi dan direpresentasikan sebagai satu elemen.

Selama pelatihan, hanya bobot neuron “pemenang” yang dimodifikasi. Efek dari aturan ini dicapai dengan mengubah sampel yang disimpan dalam jaringan (vektor bobot koneksi dari neuron pemenang), yang menjadi sedikit lebih dekat dengan contoh masukan. Pada Gambar. Gambar 3 memberikan ilustrasi geometri latihan dengan metode kompetisi. Vektor masukan dinormalisasi dan diwakili oleh titik-titik pada permukaan bola. Vektor bobot untuk ketiga neuron diinisialisasi dengan nilai acak. Nilai awal dan akhir setelah pelatihan ditandai dengan X pada Gambar. 3a dan 3b masing-masing. Masing-masing dari tiga kelompok contoh dideteksi oleh salah satu neuron keluaran, yang vektor bobotnya disesuaikan dengan pusat gravitasi kelompok yang terdeteksi.


Beras. N.
Contoh pelatihan dengan metode kompetitif: (a) sebelum pelatihan; (b) setelah pelatihan

Dapat diamati bahwa jaringan tidak pernah berhenti belajar kecuali parameter kecepatan pembelajarannya adalah 0. Beberapa sampel masukan mungkin mengaktifkan neuron keluaran lain pada iterasi berikutnya selama proses pembelajaran. Hal ini menimbulkan pertanyaan mengenai keberlanjutan sistem pelatihan. Sistem dianggap stabil jika tidak ada satu pun contoh dalam sampel pelatihan yang mengubah keanggotaan kategorinya setelah sejumlah iterasi proses pelatihan yang terbatas. Salah satu cara untuk mencapai stabilitas adalah dengan menurunkan parameter kecepatan pembelajaran secara bertahap ke 0. Namun, penghambatan pembelajaran buatan ini menyebabkan masalah lain yang disebut plastisitas, yang berkaitan dengan kemampuan beradaptasi dengan data baru. Ciri-ciri pembelajaran kompetitif ini dikenal sebagai dilema stabilitas-plastisitas Grossberg.

Tabel 2 menyajikan berbagai algoritma pembelajaran dan arsitektur jaringan terkait (daftar ini tidak lengkap). Kolom terakhir mencantumkan tugas-tugas di mana setiap algoritma dapat diterapkan. Setiap algoritma pembelajaran difokuskan pada jaringan dengan arsitektur tertentu dan ditujukan untuk kelas tugas terbatas. Selain yang dibahas, beberapa algoritma lain harus disebutkan:

Adaline dan Madaline,

analisis diskriminan linier], proyeksi Sammon,

metode/analisis komponen utama.

Tabel 2. Algoritma pembelajaran yang diketahui.

Paradigma Aturan Pembelajaran Arsitektur Algoritma pembelajaran Tugas
Dengan guru Koreksi Kesalahan Perceptron satu lapis dan multi lapis Pelatihan Perceptron Algoritma Backpropagation Adaline dan Madaline
Boltzmann Berulang Algoritma pembelajaran Boltzmann Klasifikasi gambar
Ibr Analisis diskriminan linier Klasifikasi Pola Analisis Data
Kompetisi Kompetisi Kuantisasi vektor Kategorisasi dalam kelas Kompresi data
Rangkaian SENI Peta SENI Klasifikasi gambar
Tanpa seorang guru Koreksi Kesalahan Propagasi langsung multilayer proyeksi Sammon Kategorisasi dalam kelas Analisis data
Ibr Distribusi atau kompetisi langsung Analisis Komponen Utama Analisis Data Kompresi Data
jaringan Hopfield Pelatihan memori asosiatif Memori asosiatif
Kompetisi Kompetisi Kuantisasi vektor Kategorisasi Kompresi data
SOM Kohonen SOM Kohonen Analisis Data Kategorisasi
jaringan SENI SENI1, SENI2 Kategorisasi
Campur aduk Koreksi kesalahan dan persaingan jaringan RBF Algoritma pembelajaran RBF Klasifikasi gambar Fungsi perkiraan Prediksi, kontrol