Biarkan saya menambahkan baris "pembelajaran mesin" dan "jaringan saraf" ke resume Anda dalam 5-10 menit membaca dan memahami artikel pendek? Bagi mereka yang jauh dari pemrograman, saya akan menghilangkan semua mitos tentang kompleksitas AI dan menunjukkan bahwa sebagian besar dari semua proyek pembelajaran mesin dibangun di atas prinsip yang sangat sederhana. Ayo pergi - kita hanya punya lima menit.
Pertimbangkan contoh paling mendasar dari jaringan saraf - perceptrons; Saya sendiri hanya setelah contoh ini sepenuhnya menyadari bagaimana jaringan saraf bekerja, jadi jika saya tidak mengacaukannya, dan Anda bisa mengerti. Ingat: tidak ada keajaiban di sini, matematika sederhana di tingkat kelas lima sekolah menengah.
Misalkan kita memiliki tiga kondisi biner yang berbeda (ya atau tidak) dan satu solusi biner pada keluaran (ya atau tidak):

Model sederhana dengan tiga input dan satu output. Model ini dapat bekerja dengan sempurna untuk orang yang berbeda dan memberi mereka hasil yang berbeda, tergantung pada bagaimana mereka melatih jaringan saraf. Tapi apa itu jaringan saraf? Ini hanya blok yang terpisah - neuron terhubung di antara mereka sendiri. Mari kita buat neuron sederhana dari tiga neuron:

Apa yang Anda lihat antara input dan output adalah neuron. Sejauh ini mereka tidak terhubung dengan apa pun, tetapi ini juga mencerminkan fitur utama mereka, yang semua orang lupa untuk mengatakan: mereka adalah shnyag yang sepenuhnya abstrak. Artinya, neuron itu sendiri tidak menyelesaikan apa pun, memutuskan dengan tepat apa yang akan kita gambar selanjutnya. Sementara itu, ingat: neuron tidak melakukan apa pun di neuron sama sekali, kecuali untuk merampingkan dan menyederhanakan konsep untuk manusia. Mari kita menggambar bagian paling penting dari neuron - koneksi:

Wow, itu terdengar seperti sesuatu yang sangat keren. Sekarang kita akan menambahkan beberapa sihir, entah bagaimana kita akan melatih neuron dengan tumit kiri kita, memutar di tempatnya, tertawa, melempar merica ke bahu kanan tetangga belakang kita dan semuanya akan bekerja, kan? Ternyata itu masih lebih mudah.
Setiap input di sebelah kiri memiliki nilai: 0 atau 1, ya atau tidak. Mari kita tambahkan nilai-nilai ini ke input, misalkan tidak akan ada vodka di pesta, akan ada teman, biarkan hujan:

Jadi, kami menemukannya. Apa yang akan kita lakukan selanjutnya? Dan di sini ada kesenangan: mari kita gunakan cara tertua untuk mengatur keadaan awal neuron - acak besar:

Angka-angka yang kami tetapkan adalah bobot obligasi. Ingat bahwa neuron itu omong kosong? Jadi, komunikasi persis apa yang terdiri dari jaringan saraf. Tapi apa bobot obligasi itu? Ini adalah hal-hal dimana kita mengalikan nilai input dan menyimpannya sementara di neuron kosong. Kami tidak benar-benar menyimpannya, tetapi untuk kenyamanan kami akan membayangkan bahwa sesuatu dapat dimasukkan ke dalam neuron:

Bagaimana kamu suka matematika? Bisakah berkembang biak? Tunggu, bagian tersulit baru saja dimulai! Selanjutnya, kami menambahkan nilai-nilai (dalam salah satu implementasi perceptron):

Yah, itu dia! Neuron dibuat, dan Anda dapat menggunakannya untuk kebutuhan apa pun. Jika jumlahnya lebih dari 0,5, Anda harus pergi ke pesta. Jika kurang atau sama, Anda tidak perlu pergi ke pesta. Terima kasih atas perhatian anda!
Tentu saja, model di atas memiliki sedikit manfaat praktis, kita perlu melatihnya. Ungkapan menakutkan "melatih neuron" bukan? Tidak seperti itu. Semuanya kikuk dan sesederhana mungkin: Anda mengambil data input acak (seperti yang kami lakukan), menjalankan input melalui tiga neuron ini, lihat jawabannya - biarkan positif (pergi ke pesta) - dan periksa apakah neuron dengan benar memprediksi jawaban atau tidak . Jika benar, jangan lakukan apa pun. Jika itu salah, Anda sedikit menggeser bobot neuron (satu per satu atau sekaligus) ke arah mana pun. Misalnya, seperti ini:

Dan lagi Anda periksa: oh, well, lagi dia mengatakan untuk pergi ke pesta, ketika saya tidak ingin pergi ke sana! Dan Anda sedikit lagi menggeser bobot (ke arah yang sama, kemungkinan besar) sedikit, dan sekali lagi meneruskan data input ini melalui neuron, dan lagi membandingkan hasilnya - dan meninggalkan bobot sendirian atau memindahkannya lagi. Jadi triliunan kali, kuadriliun kali, dan dengan segala macam data input berbeda. Di sini, tentu saja, kami hanya memiliki 8 kombinasi input, tetapi ada tugas yang berbeda (lebih banyak tentang mereka di bawah).
Ini adalah prinsip utama dari pekerjaan jaringan saraf - baik penggandaan diperlukan untuk diferensiasi, dan pemahaman tentang pekerjaan perceptron diperlukan untuk membuat jaringan convolutional, dan neuron rekursif, dan bahkan beberapa permainan eksotis.
Akibatnya, setelah melatih neuron tentang keputusan yang diambil seseorang, setelah menabraknya miliaran kali, melewati semua kemungkinan bobot neuron, Anda akhirnya akan sampai pada emas dan tengah yang optimal sehingga seseorang memasukkan tiga nilai awal - dan mesin menjalankannya melalui sudah stabil dan formula bekerja dengan tiga neuron dan memberikan jawaban.
Tiga yang tidak diketahui di tubuh kami adalah bobot koneksi neuron, dan justru itulah yang kami tuju. Karena itu, saya katakan bahwa neuron adalah tiruan yang tidak menyelesaikan apa pun, dan raja jamuan adalah bobot koneksi.
Kemudian semuanya sederhana: alih-alih satu lapisan neuron, kita melakukan dua dan lagi kita memilah-milah semuanya sesuai dengan prinsip yang persis sama, hanya semua neuron yang sudah memberikan nilai ke neuron lain. Jika pada awalnya kita hanya punya 3 koneksi, sekarang 3 + 9 koneksi dengan bobot. Dan kemudian tiga lapisan, empat, lapisan rekursif, diperbaiki pada diri mereka sendiri dan permainan sejenisnya:

Tapi, tanya saya, kata mereka, apa hasil dari sesuatu yang rumit dalam neuron? Mengapa spesialis pembelajaran mesin dibayar begitu banyak? Dan masalahnya adalah bagaimana menerapkan perceptron di atas: ada begitu banyak nuansa berbeda yang Anda siksa untuk didaftar.
Bagaimana jika di pintu masuk Anda memiliki gambar dan Anda perlu mengkategorikan semua gambar pada anjing dan kucing? Gambar dalam ukuran 512x512, setiap piksel adalah input - jadi berapa banyak nilai yang akan kita kejar sepanjang neuron? Ada neuron konvolusional untuk ini! Ini seperti shnyaga yang mengambil 9 piksel bersebelahan, misalnya, dan rata-rata nilai RGB-nya. Ternyata, kompres gambar untuk pemrosesan lebih cepat. Atau, misalnya, benar-benar menghilangkan warna merah dalam gambar, karena itu tidak penting (kami mencari, misalnya, hanya gaun hijau-biru). Ini adalah jaringan konvolusional - lapisan tambahan "neuron" pada input yang memproses input untuk tampilan yang jelas dan disederhanakan untuk jaringan.
Anda juga perlu memahami seberapa banyak dan ke arah mana harus menggeser bobot - ada segala macam algoritma sederhana untuk memahami yang mempertimbangkan kesalahan dari akhir - dari kanan (dari hasil) ke kiri (ke lapisan neuron pertama) - salah satu algoritma disebut Back Propagation.
Ada segala macam algoritma sederhana untuk nilai normalisasi - sehingga Anda mendapatkan angka bukan dari 0 hingga 500.000, tetapi dari 0 hingga 1 pada output atau di tengah saat menambahkan - ini sangat menyederhanakan perhitungan dan matematika komputasi.
Seperti yang sudah Anda pahami, spesialis yang sangat keren dalam pembelajaran mesin tidak hanya tahu sebagian besar metode yang ada dalam membangun jaringan saraf yang dioptimalkan, tetapi juga menghasilkan pendekatan mereka sendiri, mulai dari pemahaman yang paling sederhana namun paling dalam tentang hubungan sebab dan akibat antara cara membangun perceptron , dan mengapa itu berhasil, dalam hal matematika. Mereka tidak hanya dapat membuat neuron bekerja, mereka dapat mengubah algoritma atau menggunakan algoritma lain untuk tetap berjalan dengan cepat, optimal.
Yah, itu saja - saya memberi Anda dasar untuk memahami apa itu jaringan saraf. Mudah-mudahan saya juga menunjukkan kepada Anda bahwa iblis tidak begitu mengerikan ketika ia dilukis - semuanya ternyata sangat sederhana, pada tingkat penggandaan dan penambahan. Maka saya menyarankan Anda untuk mulai menonton tutorial di YouTube atau Udemy - ada dudes yang luar biasa untuk menjelaskan semuanya keren.
Lain kali, ketika mereka meminta Anda untuk proyek pembelajaran mesin, kocok pengemis dari pengemis dengan garis besar pekerjaan jaringan saraf - lapisan apa, bagaimana mereka diorganisir, mengapa dan mengapa, ini dia, dan itu tidak ada. Semua ini pada level maksimum 11 kelas akan (ini adalah tentang integral dan diferensial) - dan kemudian akan terjadi dalam deskripsi satu kali, mungkin dua. Sementara proyek tidak memiliki model ini (lapisan apa dan bagaimana lokasinya) - proyek tidak memiliki produk, karena struktur ini adalah 2-4 minggu pertama spesialis pembelajaran mesin.
PS, contoh untuk penjelasan, dengan tidak sengaja saya tarik dari
satu video yang luar biasa tentang jaringan saraf. Saya sangat menyarankan Anda untuk melihat - terima kasih kawan! pelanggan membantu memulihkan tautan ke video asli, contoh yang saya coba pulihkan dari memori. Jika ada yang tertarik dengan cara membuat kode tugas di atas, maka saya mengundang Anda untuk menonton video ini di sini. Terima kasih banyak kepada penulis!