Dalam pemrograman klasik, pengembang menjelaskan dalam bahasa pemrograman tertentu seperangkat aturan tertentu yang ditentukan secara kaku, yang ditentukan berdasarkan pengetahuannya dalam bidang subjek tertentu dan yang, sebagai perkiraan pertama, menggambarkan proses yang terjadi di otak manusia ketika memecahkan masalah serupa.
Misalnya, strategi untuk bermain tic-tac-toe, catur, dan lainnya dapat diprogram (Gambar 1).
Gambar 1 - Pendekatan klasik untuk menyelesaikan masalah
Sedangkan algoritma pembelajaran mesin dapat mendefinisikan seperangkat aturan untuk menyelesaikan masalah tanpa partisipasi pengembang, tetapi hanya berdasarkan ketersediaan set data pelatihan.
Satu set pelatihan adalah sekumpulan masukan yang terkait dengan serangkaian hasil yang diharapkan (tanggapan, keluaran). Pada setiap langkah pelatihan, model, dengan mengubah keadaan internal, akan mengoptimalkan dan mengurangi kesalahan antara keluaran aktual model dan hasil yang diharapkan (Gambar 2).
Gambar 2 - Pembelajaran mesin
Jaringan saraf
Untuk waktu yang lama, para ilmuwan, yang terinspirasi oleh proses yang terjadi di otak kita, mencoba merekayasa balik sistem saraf pusat dan mencoba meniru kerja otak manusia. Berkat ini, seluruh arah dalam pembelajaran mesin lahir - jaringan saraf.
Pada Gambar 3, Anda dapat melihat persamaan antara desain neuron biologis dan representasi matematis dari neuron yang digunakan dalam pembelajaran mesin.
Gambar 3 - Representasi matematis neuron
Dalam neuron biologis, neuron menerima sinyal listrik dari dendrit, memodulasi sinyal listrik dengan kekuatan berbeda, yang dapat menggairahkan neuron ketika nilai ambang tertentu tercapai, yang pada gilirannya akan mengarah pada transmisi sinyal listrik ke neuron lain melalui sinapsis.
Perceptron
Model matematika jaringan saraf, terdiri dari satu neuron, yang melakukan dua operasi berurutan (Gambar 4):
- menghitung jumlah sinyal input dengan mempertimbangkan bobotnya (konduktansi atau resistansi) koneksi
- menerapkan fungsi aktivasi ke jumlah total sinyal input.

Gambar 4 - Model matematika perceptron
Setiap fungsi yang dapat dibedakan dapat digunakan sebagai fungsi aktivasi, yang paling umum digunakan ditunjukkan pada Tabel 1. Pilihan fungsi aktivasi terletak di pundak insinyur, dan biasanya pilihan ini didasarkan pada pengalaman yang ada dalam memecahkan masalah serupa, baik, atau hanya dengan metode pilihan.
Catatan
Namun, ada rekomendasi bahwa jika nonlinier diperlukan dalam jaringan saraf, maka fungsi ULT paling cocok sebagai fungsi aktivasi, yang memiliki tingkat konvergensi model terbaik selama proses pelatihan.
Tabel 1 - Fungsi aktivasi umum
| Linear function | .
|
|
| Sigmoid function |
|
|
| Softmax function | ( 2) |
|
| Hyperbolic Tangent function | |
[-1, 1]. , , |
| Rectified Linear Unit (ReLU) | |
, , sigmoid tanh |
| Leaky ReLU | |
ReLU , 0 |
Proses pembelajaran Perceptron
Proses pembelajaran terdiri dari beberapa tahap. Untuk lebih jelasnya, kami akan mempertimbangkan masalah fiksi tertentu yang akan kami selesaikan dengan jaringan saraf yang terdiri dari satu neuron dengan fungsi aktivasi linier (ini pada dasarnya adalah perceptron tanpa fungsi aktivasi sama sekali), dan untuk menyederhanakan tugas, kami akan mengecualikan node perpindahan b di neuron (Gambar 5) ...
Gambar 5 - Dataset pelatihan dan keadaan jaringan saraf pada langkah pelatihan sebelumnya
Pada tahap ini, kita memiliki jaringan saraf dalam keadaan tertentu dengan bobot koneksi tertentu yang dihitung pada tahap pelatihan model sebelumnya, atau jika ini adalah iterasi pelatihan pertama, maka nilai bobot koneksi dipilih di pesanan acak.
Jadi, mari kita bayangkan bahwa kita memiliki beberapa set data latih, nilai setiap elemen dari himpunan tersebut diwakili oleh vektor data masukan (data masukan), yang berisi 2 parameter (fitur) ... Dibawahdalam model, tergantung pada domain yang bersangkutan, apa pun dapat tersirat: jumlah kamar di rumah, jarak rumah dari laut, baik, atau kami hanya mencoba untuk melatih jaringan saraf operasi logis AND, atau OR.
Setiap vektor masukan dalam set pelatihan dipetakan ke vektor keluaran yang diharapkan. Dalam hal ini, vektor data keluaran hanya berisi satu parameter, yang, sekali lagi, bergantung pada area subjek yang dipilih, dapat berarti apa saja - harga rumah, hasil dari melakukan operasi logika AND atau OR.
LANGKAH 1 - Proses penerusan umpan
Pada langkah ini, kami menghitung jumlah sinyal input dengan mempertimbangkan bobot setiap ikatan dan menerapkan fungsi aktivasi (dalam kasus kami, tidak ada fungsi aktivasi). Mari kita lakukan kalkulasi untuk elemen pertama dalam set pelatihan:
Gambar 6 - Perambatan maju kesalahan
Perhatikan bahwa rumus di atas adalah persamaan matematika yang disederhanakan untuk kasus khusus operasi tensor.
Tensor pada dasarnya adalah wadah data yang dapat memiliki sumbu N dan jumlah elemen yang berubah-ubah di sepanjang masing-masing sumbu. Kebanyakan tensor akrab dengan matematika - vektor (tensor dengan satu sumbu), matriks (tensor dengan dua sumbu - baris, kolom).
Rumusnya dapat dituliskan dalam bentuk berikut, di mana Anda akan melihat matriks familiar (tensor) dan perkaliannya, dan juga memahami jenis penyederhanaan yang dibahas di atas:
LANGKAH 2 - Hitung
fungsi kesalahan Fungsi kesalahan adalah metrik yang mencerminkan perbedaan antara keluaran yang diharapkan dan yang diterima. Fungsi kesalahan berikut biasanya digunakan:
- Mean Squared Error (MSE) - fungsi kesalahan ini sangat sensitif terhadap pencilan dalam set pelatihan, karena ini menggunakan kuadrat selisih antara nilai aktual dan yang diharapkan (pencilan adalah nilai yang jauh dari nilai lain di kumpulan data, yang terkadang muncul karena kesalahan data, seperti mencampurkan data dengan unit ukuran yang berbeda atau pembacaan sensor yang buruk):
- root mean square deviation (Root MSE) - sebenarnya, ini sama dengan root mean square error dalam konteks jaringan saraf, tetapi dapat mencerminkan unit pengukuran fisik yang sebenarnya, misalnya, jika dalam jaringan saraf parameter keluaran jaringan saraf adalah harga rumah dalam dolar, maka satuan pengukuran kesalahan kuadrat rata-rata adalah dolar persegi (), dan untuk deviasi standar adalah dolar ($), yang secara alami sedikit menyederhanakan tugas analisis manusia:
- deviasi rata - rata (Mean Absolute Error, MAE) - berbeda dengan dua nilai di atas, tidak begitu sensitif terhadap emisi:
- entropi silang - penggunaan untuk tugas klasifikasi:
Dimana
- jumlah salinan di set pelatihan
- jumlah kelas saat menyelesaikan masalah klasifikasi
- nilai keluaran yang diharapkan
- nilai keluaran aktual dari model yang dilatih
Untuk kasus khusus kami, kami akan menggunakan MSE:
LANGKAH 3 - Propagasi mundur
Tujuan pelatihan jaringan saraf sederhana - ini untuk meminimalkan fungsi kesalahan:
Salah satu cara untuk menemukan nilai minimum suatu fungsi adalah dengan mengubah bobot koneksi ke arah yang berlawanan dengan vektor gradien pada setiap langkah pembelajaran berikutnya - metode penurunan gradien, dan secara matematis akan terlihat seperti ini:
Dimana - iterasi ke-k pelatihan jaringan saraf;
- kecepatan pembelajaran ditetapkan oleh teknisi, biasanya dapat 0,1; 0.01 (tentang bagaimana langkah pembelajaran mempengaruhi proses konvergensi pembelajaran, perhatikan sedikit kemudian)
- gradien dari fungsi kesalahan
Untuk menemukan gradien, kami menggunakan turunan parsial sehubungan dengan argumen khusus:
Dalam kasus khusus kami, dengan mempertimbangkan semua penyederhanaan, fungsi kesalahan mengambil bentuk:
Memo rumus turunan
,
Mari cari turunan parsial berikut ini:
Kemudian proses perambatan balik yang error adalah pergerakan sepanjang model dari keluaran menuju masukan dengan modifikasi bobot model ke arah yang berlawanan dengan vektor gradien. Setting langkah pembelajaran 0.1 (learning rate) yang kita miliki (Gambar 7):
Gambar 7 - Backpropagation of the error
Jadi, kami telah menyelesaikan langkah-langkah pelatihan k + 1 untuk memastikan bahwa kesalahan telah berkurang, dan output dari model dengan bobot baru menjadi lebih dekat dengan yang diharapkan, kami akan melakukan proses propagasi maju kesalahan sepanjang model dengan bobot baru (lihat LANGKAH 1) :
Seperti yang Anda lihat, nilai output meningkat 0,2 unit ke arah yang benar menuju hasil yang diharapkan - satu (1). Kesalahannya kemudian akan menjadi:
Seperti yang Anda lihat, pada langkah pelatihan sebelumnya, kesalahannya adalah 0,64, dan dengan bobot baru - 0,36, oleh karena itu, kami menyesuaikan model ke arah yang benar.
Bagian selanjutnya dari artikel:
Pembelajaran Mesin. Jaringan saraf (bagian 2): ATAU pemodelan; XOR dengan Machine Learning TensorFlow.js
. Jaringan Saraf (Bagian 3) - Jaringan Konvolusional di bawah mikroskop. Menjelajahi API Tensorflow.js
.