Dalam latihan ini, kita akan melatih jaringan neural kecil pertama kita. Jaringan neural akan memberi kita cara untuk mempelajari model non-linear tanpa menggunakan persilangan fitur eksplisit.
Tugas 1: Model seperti yang diberikan menggabungkan dua fitur input kita menjadi satu neuron. Apakah model ini akan mempelajari nonlinearitas? Jalankan untuk mengonfirmasi tebakan Anda.
Tugas 2: Coba tingkatkan jumlah neuron di lapisan tersembunyi dari
1 ke 2, dan coba juga mengubah dari Aktivasi linear ke aktivasi nonlinear
seperti ULT. Dapatkah Anda membuat model yang dapat mempelajari nonlinearitas? Dapatkah model dimodelkan secara efektif?
Tugas 3: Coba tingkatkan jumlah neuron di lapisan tersembunyi dari
2 ke 3, menggunakan aktivasi nonlinear seperti ULT. Dapatkah model dimodelkan secara efektif? Bagaimana kualitas model bervariasi saat dijalankan?
Tugas 4: Terus bereksperimen dengan menambahkan atau menghapus lapisan tersembunyi dan neuron per lapisan. Jangan ragu untuk mengubah kecepatan pembelajaran,
normalisasi, dan setelan pembelajaran lainnya. Berapa jumlah neuron dan lapisan terkecil yang dapat Anda gunakan, sehingga menghasilkan kerugian pengujian 0,177 atau lebih rendah?
Apakah meningkatkan ukuran model akan meningkatkan kecocokan, atau seberapa cepat konverti?
Apakah ini mengubah seberapa sering model tersebut bergabung menjadi model yang baik? Misalnya, coba arsitektur berikut:
Lapisan tersembunyi pertama dengan 3 neuron.
Lapisan kedua kedua dengan 3 neuron.
Lapisan tersembunyi ketiga dengan 2 neuron.
(Jawaban muncul tepat di bawah latihan.)
Klik ikon plus untuk jawaban atas Tugas 1.
Aktivasi disetel ke Linear, sehingga model ini tidak dapat mempelajari nonlinearitas apa pun. Kerugiannya sangat tinggi, dan kami mengatakan bahwa model mengalami kurang aktivitas data.
Klik ikon plus untuk jawaban atas Tugas 2.
Fungsi aktivasi nonlinear dapat mempelajari model nonlinear. Namun, satu lapisan tersembunyi dengan 2 neuron tidak dapat mencerminkan semua nonlinearitas dalam set data ini, dan akan memiliki kehilangan yang tinggi bahkan tanpa derau: lapisan ini tetap mengurangi penggunaan data. Latihan ini bersifat non-deterministik, sehingga beberapa proses tidak akan mempelajari model yang efektif, sementara sesi lainnya akan melakukan pekerjaannya dengan cukup baik.
Model terbaik mungkin tidak memiliki bentuk yang Anda harapkan.
Klik ikon plus untuk jawaban atas Tugas 3.
Sifat nondeterministik taman bermain bersinar dalam latihan ini. Satu lapisan tersembunyi dengan 3 neuron sudah cukup untuk membuat model set data (kebisingan tidak ada), tetapi tidak semua proses akan menyatu dengan model yang baik.
3 neuron sudah cukup karena fungsi XOR dapat dinyatakan sebagai kombinasi dari 3 setengah bidang (aktivasi ULT). Anda dapat melihatnya dengan melihat gambar neuron, yang menunjukkan output setiap neuron. Dalam model yang baik dengan 3 neuron dan aktivasi ULT, akan ada 1 gambar dengan garis yang hampir vertikal, mendeteksi X1 positif (atau negatif; tanda mungkin beralih), 1 gambar dengan garis yang hampir horizontal, mendeteksi tanda X2, dan 1 gambar dengan garis diagonal, mendeteksi interaksinya.
Namun, tidak semua proses menjalankan model yang baik. Beberapa proses tidak akan berfungsi lebih baik daripada model dengan 2 neuron, dan Anda dapat melihat neuron duplikat dalam kasus ini.
Klik ikon plus untuk jawaban atas Tugas 4.
Satu lapisan tersembunyi dengan 3 neuron dapat membuat model data, tetapi tidak ada redundansi. Jadi, pada banyak eksekusi, lapisan ini akan secara efektif kehilangan neuron dan tidak mempelajari model yang baik. Satu lapisan dengan lebih dari 3 neuron memiliki redundansi yang lebih besar, sehingga kemungkinan besar akan menyatu dengan model yang baik.
Seperti yang kita lihat, satu lapisan tersembunyi dengan hanya 2 neuron tidak dapat membuat model data
dengan baik. Jika mencobanya, Anda dapat melihat bahwa semua item di lapisan output
hanya dapat berupa bentuk yang terdiri dari garis dari kedua node tersebut. Dalam hal ini, jaringan yang lebih dalam dapat membuat model set data lebih baik daripada lapisan tersembunyi pertama saja: neuron individual di lapisan kedua dapat memodelkan bentuk yang lebih kompleks, seperti kuadran kanan atas, dengan menggabungkan neuron di lapisan pertama. Meskipun menambahkan
lapisan tersembunyi kedua tersebut masih dapat membuat model set data yang lebih baik daripada lapisan tersembunyi
pertama saja, mungkin akan lebih masuk akal untuk menambahkan lebih banyak node ke lapisan pertama
agar lebih banyak baris menjadi bagian dari kit tempat lapisan kedua membuat
bentuknya.
Namun, model dengan 1 neuron di lapisan tersembunyi pertama tidak dapat mempelajari model yang baik, terlepas dari seberapa dalam. Hal ini karena output lapisan pertama hanya bervariasi di satu dimensi (biasanya garis diagonal), yang tidak cukup untuk memodelkan set data ini dengan baik. Lapisan selanjutnya tidak dapat mengimbangi hal ini, tidak
terpenting seberapa kompleks; informasi dalam data input telah hilang
secara permanen.
Bagaimana jika kita tidak memiliki jaringan kecil, tetapi
kita memiliki banyak lapisan dengan banyak neuron untuk masalah sederhana seperti ini? Seperti yang telah kita lihat, lapisan pertama akan memiliki kemampuan untuk mencoba banyak lereng garis yang berbeda. Dan lapisan kedua akan memiliki kemampuan untuk mengakumulasikan ke dalam banyak bentuk yang berbeda, dengan banyak dan banyak bentuk ke bawah melalui lapisan berikutnya.
Dengan mengizinkan model mempertimbangkan begitu banyak bentuk berbeda melalui banyak
neuron tersembunyi yang berbeda, Anda telah membuat ruang yang cukup bagi model untuk mulai
dengan mudah overfit terhadap derau dalam set pelatihan, sehingga
bentuk yang rumit ini dapat dicocokkan dengan kesalahan data pelatihan, bukan
kebenaran dasar umum. Dalam contoh ini, model yang lebih besar dapat memiliki batas yang rumit untuk dicocokkan dengan titik data yang tepat. Pada kasus ekstrem, model besar
dapat mempelajari pulau di sekitar titik kebisingan tertentu, yang disebut
mengingat data. Dengan mengizinkan model menjadi jauh lebih besar, Anda akan melihat bahwa model sering kali berperforma lebih buruk daripada model yang lebih sederhana dengan neuron yang cukup untuk menyelesaikan masalah.
Inisialisasi Jaringan Neural
Latihan ini menggunakan data XOR lagi, tetapi melihat pengulangan pelatihan Jaringan Neural dan pentingnya inisialisasi.
Tugas 1: Jalankan model seperti yang diberikan empat atau lima kali. Sebelum setiap uji coba, tekan tombol Reset jaringan untuk mendapatkan inisialisasi acak baru.
(Tombol Reset jaringan adalah panah reset lingkaran di sebelah kiri
tombol Play.) Biarkan setiap uji coba berjalan setidaknya 500 langkah untuk memastikan konvergensi. Setiap model akan dikonvergensi ke setiap output?
Apa yang ditunjukkan hal ini tentang peran inisialisasi dalam pengoptimalan non-konveks?
Tugas 2: Coba buat model yang sedikit lebih kompleks dengan menambahkan lapisan dan beberapa node tambahan. Ulangi uji coba dari Tugas 1. Apakah ini menambahkan stabilitas tambahan pada hasil?
(Jawaban muncul tepat di bawah latihan.)
Klik ikon plus untuk jawaban atas Tugas 1.
Model yang dipelajari memiliki bentuk yang berbeda pada setiap sesi. Kerugian pengujian konvergensi bervariasi hampir 2X dari yang terendah hingga yang tertinggi.
Klik ikon plus untuk jawaban atas Tugas 2.
Menambahkan lapisan dan node ekstra akan memberikan hasil yang lebih berulang.
Pada setiap proses, model yang dihasilkan tampak hampir sama. Selain itu, kerugian pengujian konvergen menunjukkan lebih sedikit varians antar-operasi.
Spiral Jaringan Neural
Set data ini adalah spiral yang memiliki derau. Tentu saja, model linear akan gagal di sini, tetapi bahkan persilangan fitur yang ditentukan secara manual mungkin sulit untuk dibuat.
Tugas 1: Latih model terbaik yang bisa Anda buat, hanya menggunakan X1 dan X2. Jangan ragu untuk menambahkan atau menghapus lapisan dan neuron, mengubah setelan pembelajaran seperti kecepatan pembelajaran, kecepatan reguler, dan ukuran tumpukan. Berapa kerugian pengujian terbaik yang bisa Anda dapatkan? Seberapa mulus permukaan output model?
Tugas 2: Meskipun dengan Neural Net, beberapa rekayasa fitur sering diperlukan untuk mencapai performa terbaik. Coba tambahkan fitur produk persilangan tambahan atau transformasi lainnya seperti sin(X1) dan sin(X2). Apakah Anda mendapatkan model yang lebih baik? Apakah permukaan output model lebih halus?
(Jawaban muncul tepat di bawah latihan.)
Klik ikon plus untuk kemungkinan jawaban.
Video berikut membahas cara memilih hyperparameter di Playground untuk melatih model data spiral yang meminimalkan kerugian pengujian.