Lensa ML

Cara Kerja Activation Function

Langkah 1 dari 6: Kenapa Tidak Linear Saja?

Tanpa aktivasi, semua layer menyatu menjadi satu

-22-11Layer 1: y = 2x + 1Layer 2: y = 3x − 1
Layer 1
y = 2x + 1
→
Layer 2
y = 3x − 1

Dua layer linear yang terpisah: Layer 1 dan Layer 2. Tekan Gabungkan layer untuk memasukkan output Layer 1 ke Layer 2.

Tekan Gabungkan layer dan bandingkan kedua persamaan dengan persamaan gabungannya. Hal yang sama terjadi pada matriks: W_2(W_1·x + b_1) + b_2 sama dengan (W_2·W_1)·x + (W_2·b_1 + b_2), yaitu satu matriks weight dan satu bias. Kedalaman menambah parameter, tetapi tidak menambah kemampuan ekspresi. Sisipkan fungsi non-linear apa pun di antara layer, dan penyatuan itu berhenti. Teorema universal approximation (Cybenko, 1989; Hornik, 1991) menunjukkan bahwa satu hidden layer dengan aktivasi non-linear dan unit yang cukup bisa mendekati fungsi kontinu apa pun pada daerah yang terbatas.

Langkah 2 dari 6: Sigmoid

Memampatkan semua nilai ke antara 0 dan 1

-4-2241saturasisaturasi10σ(0.0) = 0.500σ(x) = 1/(1+e⁻ˣ)
Geser untuk mencobax = 0.00
Output
0.5000
Gradient
0.2500

Sigmoid memampatkan input apa pun ke (0, 1). Namun di daerah saturasi (ujung kiri dan kanan), gradient nyaris hilang, sehingga proses belajar melambat sampai hampir berhenti.

Geser slider dari x = −6 ke 6 dan baca kartu output dan gradient. Sigmoid adalah σ(x) = 1/(1 + e^(−x)), dan turunannya bisa ditulis dari output-nya sendiri sebagai σ(x)(1 − σ(x)), yang membuat backprop murah. Ada dua kekurangan lain di hidden layer. Output-nya selalu positif, jadi tidak berpusat di nol, dan setiap neuron butuh satu perhitungan eksponensial. Sigmoid tetap pilihan yang tepat untuk output yang harus berupa probabilitas, seperti binary classifier atau gate LSTM.

Langkah 3 dari 6: ReLU: Sederhana Saja

Nol kalau negatif, diteruskan kalau positif

-4-224-11zona matigradient = 0ReLU(1.0) = 1.0f'(x) = 1ReLU(x) = max(0, x)
Geser melewati tekukanx = 1.00
Output
1.00
Gradient
1

ReLU meneruskan nilai positif dan mengubah nilai negatif menjadi nol. Gradient-nya tepat 0 atau 1, jadi unit yang aktif tidak pernah mengecilkannya. Neuron yang input-nya selalu negatif tidak mendapat gradient dan tetap mati.

Geser slider melewati tekukan di x = 0 dan lihat kartu gradient berganti antara 0 dan 1. ReLU adalah max(0, x). Turunannya tidak terdefinisi tepat di 0, dan framework cukup memakai 0 di titik itu. Karena sekitar separuh unit menghasilkan nol untuk input yang umum, aktivasi ReLU bersifat sparse, dan fungsinya hanya butuh satu perbandingan. Krizhevsky et al. (2012) melaporkan bahwa network ReLU mencapai training error 25% pada CIFAR-10 sekitar enam kali lebih cepat daripada network tanh yang setara. Layer ReLU biasanya dipasangkan dengan inisialisasi He, yang menskalakan weight sebesar √(2/n_in).

Langkah 4 dari 6: Tanh: Sigmoid yang Terpusat

Output berpusat di nol supaya belajar lebih cepat

-4-224-11+1−1tanh = 0.000σ = 0.500
tanh(x), rentang [−1, 1]σ(x), rentang [0, 1]
Bandingkan kedua outputx = 0.00
Output tanh
0.0000
Output sigmoid
0.5000

Tanh adalah sigmoid yang berpusat di nol dan diskalakan ulang, dengan rentang −1 sampai +1. Rata-rata output-nya mendekati nol, sehingga pembaruan weight di layer berikutnya tidak semuanya terdorong ke arah yang sama, dan training sering jadi lebih cepat.

Geser x dan bandingkan kedua kartu output. Tanh adalah sigmoid yang diskalakan ulang: tanh(x) = 2σ(2x) − 1. Turunannya 1 − tanh²(x), dengan puncak 1 di x = 0, empat kali puncak sigmoid yang 0,25. Tanh tetap mengalami saturasi untuk |x| besar, sama seperti sigmoid. LeCun et al. merekomendasikan tanh daripada sigmoid untuk hidden layer dalam "Efficient BackProp" (1998), karena input dengan rata-rata nol di tiap layer mempercepat gradient descent. Tanh masih menjadi standar di dalam sel LSTM dan GRU, tempat output yang terbatas dan bertanda berguna.

Langkah 5 dari 6: Ragam Aktivasi

Leaky ReLU, ELU, Swish, dan lainnya

Leaky ReLU
ELU
Swish
GELU
Leaky ReLU
Rentang(−∞, ∞)
Bisa diturunkanYa (kecuali 0)
Berpusat di nolTidak

Leaky ReLU mempertahankan kemiringan 0,01 untuk nilai negatif, jadi tidak ada neuron yang mati. Swish dan GELU halus di sekitar nol dan sedikit turun di bawahnya.GELU adalah pilihan standar di BERT dan GPT.

Klik tiap plot kecil untuk melihat rentang dan sifatnya. Rumusnya: Leaky ReLU bernilai x untuk x ≥ 0 dan 0.01x untuk lainnya. ELU bernilai α(e^x − 1) untuk nilai negatif, dengan α = 0.5 di plot ini (α = 1 adalah nilai bawaan yang umum). Swish, yang juga disebut SiLU, adalah x·σ(x). GELU adalah x·Φ(x), dengan Φ sebagai CDF normal standar, yang biasanya dihitung dengan aproksimasi tanh. Swish dan GELU tidak monoton: keduanya sedikit turun di bawah nol untuk input negatif yang kecil. Dalam praktiknya, selisih antarvarian ini kecil, dan ReLU tetap menjadi baseline yang kuat.

Langkah 6 dari 6: Aktivasi dalam Praktik

Lihat sifat non-linear membentuk decision boundary

Boundary linearDalam (A)Luar (B)
Activation function:
Jenis boundary
Linear
Akurasi
27/60 (45%)
Salah klasifikasi
33 ✕

Tanpa aktivasi, network hanya bisa menarik garis lurus sebagai decision boundary. Ada 33 titik yang salah klasifikasi (bertanda ✕). Nyalakan aktivasi untuk melihat boundary melengkung memisahkan kedua kelompok.

Ubah aktivasi dan bandingkan kartu akurasinya. Data cincin ini punya 60 titik, 30 di kelompok dalam dan 30 di cincin luar, jadi tidak ada garis lurus yang bisa memisahkannya. Boundary melengkung di sini adalah lingkaran berjari-jari 1,1. Network yang sudah dilatih tidak menggambar lingkaran secara langsung. Setiap unit ReLU atau tanh di hidden layer menyumbang potongan yang menekuk atau jenuh, dan output layer menjumlahkan potongan itu menjadi kurva tertutup. Masalah dua kelas seperti ini adalah ujian pertama yang umum untuk melihat apakah sebuah model punya sifat non-linear.

Apa itu activation function pada neural network?

Activation function adalah fungsi non-linear yang diterapkan pada weighted sum tiap neuron sebelum hasilnya diteruskan ke layer berikutnya. Tanpa fungsi ini, neural network sedalam apa pun hanya menghitung fungsi linear dari input-nya. Pilihan yang umum adalah sigmoid, tanh, ReLU, dan varian ReLU yang halus seperti GELU dan Swish.

Pilihan aktivasi memengaruhi apa yang bisa direpresentasikan network dan seberapa lancar gradient mengalir saat training. ReLU membuat deep convolutional network jadi praktis sekitar 2012. GELU adalah pilihan bawaan di BERT dan transformer bergaya GPT, sedangkan gated unit berbasis Swish (SwiGLU) dipakai di feed-forward layer LLaMA. Sigmoid masih bertahan di output layer untuk binary classification dan di gate LSTM.

Ide utama

  • Tanpa aktivasi non-linear, tumpukan layer menyatu menjadi satu layer linear.
  • Sigmoid dan tanh mengalami saturasi pada input besar, tempat gradient-nya mendekati nol.
  • Tanh adalah sigmoid yang digeser dan diskalakan ulang, dengan output yang berpusat di nol.
  • ReLU murah, tidak mengalami saturasi untuk input positif, dan menjadi pilihan bawaan banyak hidden layer.
  • Leaky ReLU, ELU, Swish, dan GELU tetap memberi respons bukan nol untuk input negatif.
  • Output layer memakai aktivasi sesuai tugas: sigmoid untuk biner, softmax untuk multikelas, dan tanpa aktivasi untuk regresi.

Pertanyaan umum

Activation function mana yang sebaiknya dipakai?

Untuk hidden layer, mulai dengan ReLU pada convolutional network dan feed-forward network biasa, serta GELU atau SwiGLU pada transformer. Untuk output layer, pilihannya mengikuti tugas: sigmoid untuk satu probabilitas, softmax untuk beberapa kelas yang saling meniadakan, dan output linear untuk regresi.

Apa bedanya activation function dan softmax?

Sebagian besar activation function bekerja pada tiap neuron secara terpisah. Softmax bekerja pada seluruh vector: setiap elemen dieksponensialkan lalu dibagi dengan jumlahnya, sehingga output-nya positif dan berjumlah 1. Softmax dipakai di output classifier untuk mengubah skor menjadi probabilitas kelas.

Apakah activation function harus bisa diturunkan?

Fungsi ini perlu punya gradient yang bisa dipakai di hampir semua titik, karena training mengandalkan backpropagation. ReLU tidak bisa diturunkan di 0, tetapi satu titik itu tidak berpengaruh dalam praktik, dan framework memberinya turunan 0. Sebaliknya, step function punya gradient nol di semua titik yang terdefinisi, jadi gradient descent tidak bisa melatih network melewatinya.

Kenapa GELU dipakai di transformer?

GELU memberi bobot pada tiap input sesuai probabilitas variabel normal standar jatuh di bawah nilai itu, sehingga kurvanya halus, bukan bersudut tajam seperti ReLU. Penulisnya melaporkan peningkatan kecil dibanding ReLU pada tugas visi dan bahasa, lalu BERT dan GPT mengadopsinya. Model yang lebih baru seperti LLaMA beralih ke SwiGLU, gated unit yang dibangun di atas Swish.

Penjelasan terkait

Referensi

  1. Hendrycks & Gimpel (2016), "Gaussian Error Linear Units (GELUs)"
  2. Ramachandran, Zoph & Le (2017), "Searching for Activation Functions"
  3. Clevert, Unterthiner & Hochreiter (2015), "Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)"
  4. He et al. (2015), "Delving Deep into Rectifiers"
  5. Goodfellow, Bengio & Courville (2016), "Deep Learning", section 6.3: Hidden Units

Terakhir diperbarui