Jaringan Neural: Struktur

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

Cartesian plot. 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.

"Non-linear" berarti Anda tidak dapat memprediksi secara akurat label dengan model bentuk \(b + w_1x_1 + w_2x_2\) Dengan kata lain, "permukaan keputusan" bukanlah garis. Sebelumnya, kita melihat persilangan fitur sebagai satu pendekatan yang memungkinkan ke masalah non-linear model.

Sekarang pertimbangkan kumpulan data berikut:

Kumpulan data berisi banyak titik oranye dan banyak titik biru. Sulit untuk menentukan pola koheren, namun titik oranye secara samar membentuk spiral dam titik biru mungkin membentuk spiral yang berbeda.

Gambar 2. Masalah kualifikasi non-linear yang lebih sulit.

Kumpulan data yang ditampilkan di Gambar 2 tidak dapat dipecahkan dengan mode linear.

Untuk melihat cara jaringan neural dapat membantu masalah non-linear, mari kita mulai dengan menunjukkan model linear sebagai grafik:

Tiga lingkaran biru dalam sederet dihubungkan oleh panah ke lingkaran hijau di atasnya

Gambar 3. Model linear sebagai grafik.

Setiap lingkaran biru mewakili fitur masukan, dan lingkaran hijau mewakili jumlah masukan bobot.

Bagaimana cara mengubah model ini untuk meningkatkan kemampuannya dalam menangani masalah non-linear?

Lapisan Tersembunyi

Dalam model yang ditunjukkan oleh grafik berikut, kita telah menambahkan "lapisan tersembunyi" nilai perantara. Setiap simpul kuning di lapisan tersembunyi adalah jumlah bobot nilai simpul masukan berwarna biru. Keluarannya adalah jumlah bobot simpul berwarna kuning.

Tiga lingkaran biru dalam sederet yang berlabel "Masukan" dihubungkan oleh panah ke deretan lingkaran kuning berlabel "Lapisan Tersembunyi" di atasnya, yang kemudian dihubungkan ke lingkaran hijau berlabel "Keluaran" di bagian atas.

Gambar 4. Grafik model dua lapis.

Apakah model ini linear? Ya—keluarannya tetap merupakan kombinasi linear dari masukannya.

Dalam model yang ditunjukkan oleh grafik berikut, kita telah menambahkan lapisan tersembunyi jumlah bobot sekunder.

Tiga lingkaran biru dalam sederet yang berlabel "Masukan" dihubungkan oleh panah ke deretan lingkaran kuning berlabel "Lapisan Tersembunyi" di atasnya, yang dihubungkan oleh panah ke deretan lingkungan kuning kedua berlabel "Lapisan Tersembunyi", yang kemudian dihubungkan ke lingkaran hijau berlabel "Keluaran" di bagian atas.

Gambar 5. Grafik model tiga lapis.

Apakah model ini masih linear? Ya. Saat mengekspresikan keluaran sebagai fungsi masukan dan menyederhanakannya, Anda mendapatkan jumlah masukan bobot lain. Jumlah ini tidak akan memperagakan masalah di Gambar 2 secara efektif.

Fungsi Aktivasi

Untuk memperagakan masalah non-linear, kita bisa langsung memperkenalkan non-liniearitas. Kita bisa menyalurkan setiap simpul lapisan tersembunyi melalui fungsi non-linear.

Dalam model yang ditunjukkan oleh grafik berikut, nilai setiap simpul di Lapisan Tersembunyi 1 ditranformasikan oleh fungsi non-linear sebelum diterusakan ke jumlah bobot lapisan berikutnya. Fungsi non-linear ini disebut fungsi aktivasi.

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

Gambar 6. Grafik model tiga lapis dengan fungsi aktivasi.

Kini kita telah menambahkan fungsi aktivasi, menambahkan lapisan yang memiliki dampak lebih besar. Dengan menyusun non-linearitas di atas non-linearitas memungkinkan kita memperagakan hubungan yang sangat rumit antara masukan dan keluaran yang diprediksi. Singkatnya, setiap lapisan secara efektif mempelajari fungsi dengan level yang lebih tinggi dan yang lebih kompleks daripada masukan mentah. Jika ingin mengembangkan lebih banyak intuisi tentang cara kerja hal ini, lihat entri blog yang menarik dari Chris Olah.

Fungsi Aktivasi Umum

Fungsi aktivasi sigmoid berikut mengubah jumlah bobot 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 singkatnya 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 adalah berdasarkan temuan emperis, yang mungkin didorong oleh ULT yang memiliki rentang responsivitas yang lebih bermanfaaat. Responsivitas sigmoid jatuh cukup cepat di kedua sisi.

Fungsi aktivasi ULT

Gambar 8. Fungsi Aktivasi ULT.

Bahkan, fungsi matematika dapat digunakan sebagai fungsi aktivasi. Anggap \(\sigma\) mewakili fungsi aktivasi kita (ULT, Sigmoid, atau apa pun). Akibatnya, nilai simpul di jaringan diberikan oleh formula berikut:

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

TensorFlow memberikan dukungan terbaik untuk berbagai variasi fungsi aktivasi. Dengan begitu, sebaiknya tetap memulai dengan ULT.

Ringkasan

Kini model kita memiliki semua komponen standar dari apa yang umumnya dimaksud orang dengan "jaringan neural":

  • Satu set simpul, dapat dianalogikan dengan neuron, tersusun di dalam lapisan.
  • Satu set bobot yang mewakili koneksi antara setiap lapisan jaringan neural dan lapisan di bawahnya. Lapisan di bawahnya mungkin adalah lapisan jaringan neural lainnya atau beberapa jenis lapisan lainnya.
  • Satu set bias, satu untuk setiap simpul.
  • Fungsi aktivasi yang mengubah keluaran setiap simpul di sebuah lapisan. Lapisan yang berbeda dapat memiliki fungsi aktivasi yang berbeda.

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