Jaringan Neural: Struktur

Jika Anda masih ingat dari unit Persilangan Fitur, masalah klasifikasi berikut adalah non-linear:

Plot kartesius. Sumbu x tradisional diberi label 'x1'. Sumbu y tradisional diberi label 'x2'. Titik biru menempati kuadran barat laut dan tenggara; titik kuning menempati kuadran barat daya dan timur laut.

Gambar 1. Masalah klasifikasi non-linear.

"Nonlinear" berarti Anda tidak dapat memprediksi label secara akurat dengan model formulir \(b + w_1x_1 + w_2x_2\) Dengan kata lain, "permukaan keputusan" bukan garis. Sebelumnya, kita melihat persilangan fitur sebagai satu pendekatan yang memungkinkan untuk pemodelan masalah nonlinear.

Sekarang pertimbangkan set data berikut:

Set data berisi banyak titik oranye dan banyak titik biru. Sulit untuk menentukan pola koheren, tetapi titik oranye secara tidak jelas membentuk spiral dan titik biru mungkin membentuk spiral yang berbeda.

Gambar 2. Masalah klasifikasi nonlinear yang lebih sulit.

Set data yang ditunjukkan pada Gambar 2 tidak dapat diselesaikan dengan model linear.

Untuk melihat bagaimana jaringan neural dapat membantu masalah nonlinear, mari kita mulai dengan merepresentasikan model linear sebagai grafik:

Tiga lingkaran biru dalam satu baris dihubungkan oleh panah ke lingkaran hijau di atasnya

Gambar 3. Model linear sebagai grafik.

Setiap lingkaran biru mewakili fitur input, dan lingkaran hijau mewakili jumlah input berbobot.

Bagaimana cara mengubah model ini untuk meningkatkan kemampuannya dalam menangani masalah nonlinear?

Lapisan Tersembunyi

Pada model yang ditunjukkan oleh grafik berikut, kami telah menambahkan "lapisan tersembunyi" dari nilai perantara. Setiap node kuning di lapisan tersembunyi adalah jumlah bobot dari nilai node input biru. Output-nya adalah jumlah bobot node kuning.

Tiga lingkaran biru dalam baris berlabel

Gambar 4. Grafik model dua lapis.

Apakah model ini linear? Ya—outputnya masih merupakan kombinasi linear inputnya.

Dalam model yang ditunjukkan oleh grafik berikut, kami telah menambahkan lapisan tersembunyi kedua dari jumlah berbobot.

Tiga lingkaran biru dalam baris berlabel

Gambar 5. Grafik model tiga lapis.

Apakah model ini masih linear? Ya. Ya, saat menyatakan output sebagai fungsi input dan menyederhanakannya, Anda hanya mendapatkan jumlah input tertimbang lainnya. Jumlah ini tidak akan memodelkan masalah non-linear secara efektif pada Gambar 2.

Fungsi Aktivasi

Untuk membuat model masalah non-linear, kita dapat langsung memperkenalkan non-linearitas. Kita bisa menyalurkan setiap node lapisan tersembunyi melalui fungsi non-linear.

Pada model yang direpresentasikan oleh grafik berikut, nilai setiap node di Hidden Layer 1 diubah oleh fungsi nonlinear sebelum diteruskan ke jumlah berbobot pada lapisan berikutnya. Fungsi non-linear ini disebut fungsi aktivasi.

Sama seperti gambar sebelumnya, kecuali bahwa baris lingkaran merah muda berlabel 'Lapisan Transformasi Non-Linear' telah ditambahkan di antara dua lapisan tersembunyi.

Gambar 6. Grafik model tiga lapis dengan fungsi aktivasi.

Sekarang setelah kita menambahkan fungsi aktivasi, menambahkan lapisan memiliki dampak lebih besar. Dengan penumpukan nonlinearitas di nonlinearitas, kita dapat memodelkan hubungan yang sangat rumit antara input dan output yang diprediksi. Singkatnya, setiap lapisan secara efektif mempelajari fungsi yang lebih kompleks dan lebih tinggi pada input mentah. Jika Anda ingin mengembangkan lebih banyak intuisi tentang cara kerja hal ini, lihat postingan blog Chris Olah' yang sangat baik.

Fungsi Aktivasi Umum

Fungsi aktivasi sigmoid berikut mengonversi jumlah berbobot menjadi nilai antara 0 dan 1.

$$F(x)=\frac{1} {1+e^{-x}}$$

Berikut plotnya:

Fungsi sigmoid

Gambar 7. Fungsi aktivasi sigmoid.

Fungsi aktivasi unit linear terarah berikut (atau disingkat ULT) sering berfungsi sedikit lebih baik daripada fungsi mulus seperti sigmoid, dan juga secara signifikan lebih mudah untuk dihitung.

$$F(x)=max(0,x)$$

Keunggulan ULT didasarkan pada temuan empiris, yang mungkin didorong oleh ULT yang memiliki rentang responsivitas yang lebih berguna. Responsivitas sigmoid jatuh relatif cepat di kedua sisi.

Fungsi aktivasi ULT

Gambar 8. Fungsi aktivasi ULT.

Bahkan, setiap fungsi matematika dapat berfungsi sebagai fungsi aktivasi. Misalnya \(\sigma\) merepresentasikan fungsi aktivasi kita (Relu, Sigmoid, atau apa pun). Akibatnya, nilai node dalam jaringan diberikan oleh formula berikut:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

TensorFlow memberikan dukungan siap pakai untuk banyak fungsi aktivasi. Anda dapat menemukan fungsi aktivasi ini dalam daftar pembungkus TensorFlow untuk operasi jaringan neural primitif. Meskipun demikian, sebaiknya tetap mulai dengan ULT.

Ringkasan

Kini model kita memiliki semua komponen standar dari apa yang biasanya dimaksud orang dengan "quot;jaringan neural"

  • Sekumpulan node, sejalan dengan neuron, diatur dalam lapisan.
  • Sekumpulan bobot yang mewakili koneksi antara setiap lapisan jaringan neural dan lapisan di bawahnya. Lapisan di bawahnya mungkin adalah lapisan jaringan neural lainnya, atau lapisan lapisan lainnya.
  • Serangkaian bias, satu untuk setiap node.
  • Fungsi aktivasi yang mengubah output dari setiap node dalam sebuah lapisan. Lapisan yang berbeda mungkin memiliki fungsi aktivasi yang berbeda.

Peringatan: jaringan neural tidak selalu lebih baik daripada persilangan fitur, tetapi jaringan neural menawarkan alternatif fleksibel yang berfungsi dengan baik dalam banyak kasus.