Di artikel ini, Anda akan belajar
-Apa inti dari pembelajaran mendalam -Apa
fungsi aktivasi untuk
-Apa itu FCNN -Tugas apa yang
dapat diselesaikan oleh FCNN -Apa
kelemahan FCNN dan cara mengatasinya
Pengenalan kecil
Ini adalah awal dari serangkaian artikel tentang tugas apa yang ada di DL, jaringan, arsitektur, prinsip kerja, bagaimana tugas tertentu diselesaikan dan mengapa salah satu lebih baik daripada yang lain.
Keterampilan awal apa yang dibutuhkan untuk memahami segalanya? Sulit untuk mengatakannya, tetapi jika Anda tahu cara google atau mengajukan pertanyaan dengan benar, maka saya yakin rangkaian artikel saya akan banyak membantu Anda memahami.
Apa gunanya deep learning?
Intinya adalah membangun beberapa algoritma yang akan mengambil X sebagai masukan dan memprediksi Y. Jika kita menulis algoritma Euclid untuk menemukan GCD, maka kita hanya menulis siklus, kondisi, tugas dan itu saja - kita tahu bagaimana membangun algoritma semacam itu. Dan bagaimana membangun algoritma yang mengambil gambar sebagai input dan mengatakan seekor anjing atau kucing? Atau tidak sama sekali? Dan algoritmanya, pada input yang kami kirimkan teks dan ingin tahu - genre apa itu? Sangat mudah untuk menulis siklus dan kondisi dengan pena - di sini jaringan saraf, pembelajaran mendalam, dan semua kata kunci ini membantu.
Lebih formal dan sedikit tentang fungsi aktivasi
Secara formal, kami ingin membangun sebuah fungsi dari sebuah fungsi dari sebuah fungsi ... dari parameter input X dan bobot jaringan W kami, yang akan memberi kami beberapa hasil. Penting untuk dicatat di sini bahwa kita tidak bisa begitu saja mengambil banyak fungsi linier, karena superposisi fungsi linier - fungsi linier. Kemudian jaringan dalam apa pun dapat dianalogikan dengan jaringan dengan dua lapisan (masukan dan keluaran). Mengapa kita membutuhkan nonlinier? Parameter kami, yang ingin kami pelajari cara memprediksi, mungkin secara non-linear bergantung pada data masukan. Non-linieritas dicapai dengan menggunakan fungsi aktivasi yang berbeda pada setiap lapisan.
Jaringan neural yang terhubung sepenuhnya (FCNN)
Hanya jaringan saraf yang terhubung sepenuhnya. Ini terlihat seperti ini:
Intinya adalah bahwa setiap neuron dari satu lapisan terhubung dengan setiap neuron berikutnya dan yang sebelumnya (jika ada).
Lapisan pertama adalah pintu masuk. Misalnya, jika kita ingin memberi makan gambar 256x256x3 ke input jaringan seperti itu, maka kita membutuhkan tepat 256x256x3 neuron di lapisan masukan (setiap neuron akan menerima 1 komponen (R, G atau B) piksel). Jika kita ingin menunjukkan tinggi seseorang, berat badannya, dan 23 fitur lainnya, maka kita membutuhkan 25 neuron di lapisan masukan. Jumlah neuron pada keluaran adalah banyaknya fitur yang ingin kita prediksi. Bisa berupa 1 fitur atau semua 100. Dalam kasus umum, dengan lapisan keluaran jaringan, Anda hampir pasti dapat mengatakan masalah apa yang dipecahkannya.
Setiap koneksi antar neuron adalah beban yang dilatih oleh algoritma propagasi mundur, yang saya tulis di sini .
Tugas apa yang bisa diselesaikan FCNN?
Masalah -Regresi . Misalnya, memprediksi nilai toko berdasarkan beberapa kriteria input seperti negara, kota, jalan, lalu lintas, dll.
-Masalah klasifikasi . Misalnya, yang klasik adalah klasifikasi MNIST.
-Aku tidak akan membahas tentang tugas segmentasi dan deteksi objek menggunakan FCNN. Mungkin seseorang akan membagikan di komentar :)
Kekurangan FCNN
- Neuron dari satu lapisan tidak memiliki informasi "umum" (semua bobot dalam jaringan itu unik).
- Sejumlah besar parameter terlatih (bobot), jika kita ingin melatih jaringan dalam memotret.
Apa yang harus dilakukan tentang kerugian ini? Convolutional Neural Networks (CNN) baik-baik saja. Ini akan menjadi artikel saya selanjutnya.
Kesimpulan
Saya tidak melihat banyak gunanya memikirkan jaringan saraf yang terhubung sepenuhnya untuk waktu yang sangat lama. Jika ada yang tertarik dengan implementasi jaringan semacam itu, maka di sini Anda dapat melihat dan membaca tentang implementasi saya.