Jaringan neural: Latihan interaktif

Dalam latihan interaktif di bawah ini, Anda akan mengeksplorasi lebih lanjut cara kerja neural buatan. Pertama, Anda akan melihat perubahan parameter dan hyperparameter mempengaruhi prediksi jaringan. Kemudian Anda akan menggunakan apa yang telah Anda pelajari untuk melatih neural agar sesuai dengan data nonlinear.

Latihan 1

Widget berikut menyiapkan jaringan neural dengan konfigurasi berikut:

  • Lapisan input dengan 3 neuron yang berisi nilai 0.00, 0.00, dan 0.00
  • Lapisan tersembunyi dengan 4 neuron
  • Lapisan output dengan 1 neuron
  • Fungsi aktivasi ReLU diterapkan ke semua node lapisan tersembunyi dan node output

Tinjau penyiapan awal jaringan (catatan: jangan klik ▶️ atau >|), lalu selesaikan tugas di bawah widget.

Tugas 1

Nilai untuk tiga fitur input ke model jaringan neural 0.00. Klik setiap node di jaringan untuk melihat semua node yang diinisialisasi masing-masing. Sebelum menekan tombol Putar (▶️), jawab pertanyaan ini:

Nilai output seperti apa yang Anda akan dihasilkan: positif, negatif, atau 0?
Nilai output positif
Nilai output negatif
Nilai output 0

Sekarang klik tombol Putar (▶️) di atas jaringan, dan tonton semua lapisan tersembunyi dan nilai node output terisi. Apakah jawaban Anda di atas benar?

Klik di sini untuk mendapatkan penjelasan

Nilai output yang tepat yang Anda dapatkan akan bervariasi berdasarkan bobot dan parameter bias diinisialisasi secara acak. Namun, karena setiap neuron di lapisan input memiliki nilai 0, bobot yang digunakan untuk menghitung semua nilai simpul lapisan tersembunyi akan disetel ke nol. Misalnya, yang pertama penghitungan node lapisan tersembunyi adalah:

y = UL(w11* 0,00 + w21* 0,00 + w31* 0,00 + b)

y = ULT(b)

Jadi nilai setiap simpul lapisan tersembunyi akan sama dengan nilai ULT bias (b), yang akan menjadi 0 jika b negatif dan b itu sendiri jika b adalah 0 atau positif.

Nilai node output kemudian akan dihitung sebagai berikut:

y = ULT(w11* x11 + w21* x21 + w31* x31 + w41* x41 + b)

Tugas 2

Sebelum memodifikasi jaringan neural, jawab pertanyaan berikut:

Jika Anda menambahkan lapisan tersembunyi lainnya ke jaringan neural setelah lapisan tersembunyi pertama, dan berikan 3 simpul ke lapisan baru ini, sehingga parameter input dan bobot/bias yang sama, yang mana node lain penghitungan akan terpengaruh?
Semua node dalam jaringan, kecuali node input
Hanya node di lapisan tersembunyi pertama
Hanya node output

Sekarang, modifikasi jaringan neural untuk menambahkan lapisan tersembunyi baru dengan 3 node sebagai berikut:

  1. Klik tombol + di sebelah kiri teks 1 lapisan tersembunyi untuk menambahkan yang baru {i>hidden layer<i} sebelum lapisan {i>output<i}.
  2. Klik tombol + di atas lapisan tersembunyi baru dua kali untuk menambahkan 2 node lagi ke lapisan ini.

Apakah jawaban Anda di atas benar?

Klik di sini untuk mendapatkan penjelasan

Hanya node output yang berubah. Karena inferensi untuk jaringan neural ini, adalah "feed-forward" (perhitungan kemajuan dari awal hingga akhir), penambahan lapisan baru ke jaringan hanya akan memengaruhi node setelah {i>layer<i}, bukan yang mendahuluinya.

Tugas 3

Klik simpul kedua (dari atas) di lapisan tersembunyi pertama pada jaringan. grafik. Sebelum melakukan perubahan apa pun pada konfigurasi jaringan, jawab pertanyaan berikut:

Jika Anda mengubah nilai bobot w12 (ditampilkan di bawah node input pertama, x1), {i>node <i}lain mana penghitungan dapat terpengaruh untuk beberapa input nilai-nilai tersebut?
Tidak ada
Node kedua di lapisan tersembunyi pertama, semua {i>node<i} di lapisan tersembunyi kedua, dan node output.
Semua {i>node<i} di {i>layer <i}tersembunyi pertama, lapisan tersembunyi kedua, dan lapisan {i>output<i}.

Sekarang, klik bidang teks untuk bobot w12 (ditampilkan di bawah node input pertama, x1), ubah nilainya menjadi 5.00, lalu tekan Enter. Amati perubahan pada grafik.

Apakah jawaban Anda benar? Hati-hati saat memverifikasi jawaban Anda: jika sebuah {i>node<i} nilai tidak berubah, apakah itu berarti kalkulasi yang mendasarinya tidak berubah?

Klik di sini untuk mendapatkan penjelasan

Satu-satunya {i>node<i} yang terpengaruh pada lapisan tersembunyi pertama adalah {i>node<i} kedua ({i>node<i} yang Anda klik). Perhitungan nilai untuk node lain pada node pertama lapisan tersembunyi tidak berisi w12 sebagai parameter, sehingga terdampak. Semua {i>node<i} di lapisan tersembunyi kedua terpengaruh, karena kalkulasinya bergantung pada nilai simpul kedua di node pertama, {i>hidden layer<i}. Demikian pula, nilai node output terpengaruh karena perhitungan tergantung pada nilai {i>node<i} di lapisan tersembunyi kedua.

Apa Anda pikir jawabannya "tidak ada" karena tidak ada satu pun nilai {i>node<i} pada jaringan berubah saat Anda mengubah nilai bobot? Perhatikan bahwa lapisan kalkulasi untuk node dapat berubah tanpa mengubah nilai node (mis., UL(0) dan ULT(–5) keduanya menghasilkan {i>output<i} 0). Jangan membuat asumsi tentang bagaimana jaringan terpengaruh hanya oleh dengan melihat nilai {i>node<i}; pastikan untuk meninjau kalkulasinya juga.

Latihan 2

Dalam Latihan persilangan fitur di Modul data kategoris, Anda membuat persilangan fitur secara manual agar sesuai dengan data nonlinier. Sekarang, Anda akan melihat apakah Anda dapat membangun jaringan neural yang dapat otomatis belajar cara menyesuaikan data nonlinier selama pelatihan.

Tugas Anda: mengonfigurasi jaringan neural yang dapat memisahkan titik oranye dari titik biru pada diagram di bawah, yang mencapai nilai kerugian kurang dari 0,2 pada keduanya data pelatihan dan pengujian.

Instructions:

Di widget interaktif di bawah:

  1. Ubah hyperparameter jaringan neural dengan bereksperimen menggunakan beberapa dari pengaturan konfigurasi berikut:
    • Tambahkan atau hapus lapisan tersembunyi dengan mengklik tombol + dan - pada di sebelah kiri judul LAYER TERSEMBUNYIKAN di diagram jaringan.
    • Tambahkan atau hapus neuron dari lapisan tersembunyi dengan mengklik + dan - di atas kolom lapisan tersembunyi.
    • Mengubah kecepatan pembelajaran dengan memilih nilai baru dari Kecepatan pembelajaran di atas diagram.
    • Ubah fungsi aktivasi dengan memilih nilai baru dari Menu drop-down Aktivasi di atas diagram.
  2. Klik tombol Putar (▶️) di atas diagram untuk melatih jaringan neural menggunakan parameter yang ditetapkan.
  3. Amati visualisasi model yang menyesuaikan data sebagai pelatihan kemajuan proyek, serta Kerugian pengujian dan Nilai kerugian pelatihan dalam bagian Output.
  4. Jika model tidak mencapai kerugian di bawah 0,2 pada data pengujian dan pelatihan, klik {i>reset<i}, dan ulangi langkah 1–3 dengan rangkaian konfigurasi yang berbeda setelan. Ulangi proses ini sampai Anda mendapatkan hasil yang diinginkan.

Klik di sini untuk mendapatkan solusi kami

Kami dapat mencapai kerugian pengujian dan pelatihan di bawah 0,2 dengan:

  • Menambahkan 1 lapisan tersembunyi yang berisi 3 neuron.
  • Memilih kecepatan pemelajaran 0,01.
  • Memilih fungsi aktivasi ULT.