Neuron adalah unit komputasi terkecil pada jaringan saraf yang mengalikan masukan dengan bobot, menjumlahkannya bersama bias, lalu menerapkan fungsi aktivasi. Topik ini mendefinisikan neuron secara mekanis, menunjukkan peran masing-masing komponennya, dan menghitung satu neuron dengan tangan serta dengan NumPy. Setelah selesai, neuron tidak lagi berupa analogi biologis yang kabur, melainkan rumus yang dapat dihitung ulang kapan saja.
Definisi mekanis neuron#
Sebuah neuron menerima beberapa angka masukan , mengalikan masing-masing dengan bobot , menjumlahkannya bersama satu bias , lalu mengirim hasilnya ke fungsi aktivasi . Keluarannya ditulis:
Tiga istilah di dalamnya memiliki peran berbeda. Bobot menyatakan seberapa kuat setiap masukan memengaruhi keputusan, bias menggeser ambang ketika neuron mulai menyala, dan aktivasi membentuk keluaran ke rentang yang berguna. Diagram berikut memperlihatkan alurnya dari masukan sampai keluaran.
Perhitungan berikut mengerjakan neuron tersebut dengan tangan pada masukan dua dimensi, kemudian mengulanginya dengan NumPy agar keduanya dapat dibandingkan.
import numpy as np
x = np.array([2.0, 1.0])
w = np.array([0.4, -0.7])
b = 0.3
z = float(w @ x + b)
y = max(0.0, z)
print("z = w.x + b =", round(z, 2))
print("y = relu(z) =", y)z = w.x + b = 0.4
y = relu(z) = 0.4000000000000001Angka pada keluaran dapat dihitung ulang dengan tangan dalam dua langkah, yaitu , lalu aktivasi ReLU mempertahankannya karena positif. Seluruh jaringan saraf berukuran apa pun, termasuk model dengan miliaran parameter, tidak pernah keluar dari pola perkalian, penjumlahan, dan aktivasi ini.
Bobot dan bias sebagai ambang keputusan#
Pasangan bobot dan bias dapat dibaca sebagai garis keputusan pada masukan dua dimensi. Neuron di atas menghitung dan menyala apabila hasilnya positif, sehingga batas antara menyala dan mati adalah garis . Mengubah bobot memutar arah garis, sedangkan mengubah bias menggesernya mendekati atau menjauhi titik nol.
Sudut pandang geometris ini menjelaskan istilah yang muncul pada modul-modul berikutnya. Pembelajaran adalah proses menggeser dan memutar garis-garis itu agar sampel positif dan negatif terpisah sebaik mungkin, dan matriks bobot pada sebuah layer hanyalah kumpulan banyak garis semacam itu yang bekerja bersamaan. Apabila masukannya lebih dari dua dimensi, garis berganti menjadi bidang datar, tetapi peran bobot dan bias tidak berubah.
Aktivasi dan kebutuhan akan nonlinieritas#
Tanpa fungsi aktivasi, neuron hanyalah perkalian dan penjumlahan, dan susunan banyak neuron tanpa aktivasi dapat diringkas menjadi satu perkalian matriks tunggal. Jaringan seperti itu mampu mempelajari hubungan garis lurus saja, padahal pola nyata seperti kelas yang saling melingkupi tidak pernah terpisah oleh satu garis. Fungsi aktivasi yang tidak linier memecah keterbatasan tersebut dengan menekuk ruang antara layer satu dan layer berikutnya.
Pemilihan fungsi aktivasi sendiri menuntut pembahasan tersendiri, termasuk mengapa ReLU menjadi bawaan paling umum dan kapan sigmoid masih tepat. Pembahasan lengkapnya berada pada topik Fungsi aktivasi, sedangkan topik ini cukup menetapkan satu fakta strukturalnya, yaitu aktivasi yang menyusun dua layer garis lurus menjadi pemisah yang melengkung.
Batas satu neuron dan kebutuhan layer#
Satu neuron hanya mampu memisahkan data yang dapat dipisah oleh satu garis atau bidang, yang dalam istilah teknis disebut linier terpisah (linearly separable). Masalah klasik yang membuktikan batas ini adalah XOR, di mana titik kelas satu dan kelas dua bersilangan sehingga tidak ada satu garis pun yang memisahkannya. Kegagalan perseptron tunggal pada masalah semacam ini pernah menghentikan minat riset jaringan saraf selama bertahun-tahun pada 1970-an.
Jalan keluarnya bukan neuron yang lebih rumit, melainkan banyak neuron sederhana yang ditumpuk menjadi layer, sehingga garis-garis pertama digabungkan oleh layer kedua menjadi bentuk yang melengkung. Cara menumpuknya beserta perhitungan forward pass penuh adalah isi topik Layer dan MLP. Yang perlu dibawa dari topik ini adalah kesimpulannya, yaitu kekuatan jaringan lahir dari jumlah neuron dan tumpukan layer, bukan dari kerumitan tiap neuron.
Ringkasan#
- Neuron menghitung , yaitu aktivasi atas jumlah berbobot masukan ditambah bias.
- Bobot mengatur arah garis keputusan, bias menggesernya, dan aktivasi menekuk keluaran agar tumpukan layer tidak jatuh kembali menjadi satu garis lurus.
- Satu neuron hanya memisahkan data yang linier terpisah, sehingga penumpukan layer adalah keharusan, bukan pilihan gaya.
- Seluruh operasi neuron dapat dihitung dengan tangan dan dengan NumPy, dan hasilnya identik.
Referensi#
- Neural Networks — CS231n, Stanford — Catatan kuliah yang memodelkan neuron sebagai operasi matriks beserta interpretasi geometrisnya.
- Dive into Deep Learning — Bab pembuka yang memperkenalkan model linier dan bias sebagai elemen pembentuk garis keputusan.
- Deep Learning — MIT Press — Bab Multilayer Perceptrons yang memuat definisi unit tersembunyi dan aktivasi.