Jaringan Saraf Tiruan (JST) adalah model komputasi yang terinspirasi oleh struktur dan fungsi otak manusia. JST terdiri dari unit-unit pemrosesan sederhana yang disebut neuron, yang saling terhubung membentuk jaringan. Setiap neuron menerima input, memprosesnya, dan menghasilkan output. Bayangkan JST sebagai rantai pekerja, di mana setiap pekerja (neuron) menerima informasi, mengolahnya sedikit, dan meneruskannya ke pekerja berikutnya. Nah, di sinilah fungsi aktivasi berperan sangat krusial. Fungsi ini bertindak seperti “gerbang” atau “filter” yang menentukan apakah seorang pekerja harus meneruskan informasi atau tidak, dan seberapa kuat informasi tersebut harus diteruskan. Tanpa fungsi aktivasi, JST hanya akan menjadi serangkaian operasi linear yang tidak mampu memodelkan masalah kompleks.
Baca juga: Jaringan Saraf Tiruan Panduan Lengkap untuk Pemula (2025)
Apa itu Fungsi Aktivasi?
Fungsi aktivasi adalah fungsi matematika yang diterapkan pada output dari setiap neuron dalam Jaringan Saraf Tiruan (JST). Secara formal, fungsi aktivasi mengambil weighted sum dari input yang diterima neuron (ditambah bias), dan mengubahnya menjadi output.
Rumus umum: output = fungsi_aktivasi( (input * bobot) + bias )
Fungsi aktivasi memperkenalkan non-linearitas ke dalam model. Ini sangat penting karena sebagian besar data dunia nyata bersifat non-linear. Tanpa non-linearitas, JST hanya akan mampu mempelajari fungsi linear, yang sangat membatasi kemampuannya untuk menyelesaikan masalah-masalah kompleks seperti pengenalan gambar, pemrosesan bahasa alami, dan lainnya. Dengan adanya non-linearitas, jaringan saraf dapat mempelajari pola-pola yang jauh lebih rumit dalam data.
Jenis-jenis Fungsi Aktivasi
ReLU (Rectified Linear Unit)
ReLU adalah salah satu fungsi aktivasi yang paling populer saat ini. Fungsi ini sangat sederhana; jika input positif, outputnya sama dengan input; jika input negatif, outputnya nol.
-
Rumus:
f(x) = max(0, x)
-
Cara Kerja: ReLU mengubah semua nilai negatif menjadi nol dan mempertahankan nilai positif apa adanya.
-
Kapan Digunakan: ReLU sering digunakan di hidden layer jaringan saraf, terutama dalam deep learning.
-
Kode python
import numpy as np def relu(x): return np.maximum(0, x) # Contoh penggunaan input_data = np.array([-5, -2, 0, 3, 7]) output_data = relu(input_data) print(output_data) # Output: [0 0 0 3 7]
Sigmoid
Fungsi sigmoid menghasilkan output antara 0 dan 1, yang dapat diinterpretasikan sebagai probabilitas.
-
Rumus:
f(x) = 1 / (1 + exp(-x))
-
Cara Kerja: Sigmoid “memampatkan” input ke dalam rentang 0 hingga 1. Nilai input yang sangat besar akan mendekati 1, dan nilai input yang sangat kecil akan mendekati 0.
-
Kapan Digunakan: Sigmoid sering digunakan pada output layer untuk masalah klasifikasi biner (dua kelas), di mana output perlu diinterpretasikan sebagai probabilitas.
-
Kode python
import numpy as np def sigmoid(x): return 1 / (1 + np.exp(-x)) # Contoh penggunaan input_data = np.array([-5, -2, 0, 3, 7]) output_data = sigmoid(input_data) print(output_data)
Tanh (Hyperbolic Tangent)
Tanh mirip dengan sigmoid, tetapi menghasilkan output antara -1 dan 1.
-
Rumus:
f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))
Atau
f(x) = 2 * sigmoid(2x) - 1
-
Cara Kerja: Tanh “memampatkan” input ke dalam rentang -1 hingga 1.
-
Kapan Digunakan: Tanh kadang-kadang digunakan di hidden layer, dan bisa menjadi alternatif untuk sigmoid.
-
Kode python
import numpy as np def tanh(x): return np.tanh(x) # Contoh penggunaan input_data = np.array([-5, -2, 0, 3, 7]) output_data = tanh(input_data) print(output_data)
Leaky ReLU
Leaky ReLU adalah variasi dari ReLU yang mencoba mengatasi masalah “dying ReLU” (di mana neuron ReLU menjadi tidak aktif dan selalu menghasilkan output nol). Leaky ReLU memberikan sedikit kemiringan (slope) untuk input negatif.
-
Rumus:
f(x) = max(ax, x)
di mana
a
adalah konstanta kecil (misalnya, 0.01). -
Cara Kerja: Untuk nilai x positif, perilakunya sama dengan ReLU. Untuk x negatif, outputnya adalah
ax
, bukan 0. -
Kapan Digunakan: Leaky ReLU digunakan sebagai alternatif ReLU untuk menghindari masalah dying ReLU.
-
Kode python
import numpy as np def leaky_relu(x, alpha=0.01): return np.maximum(alpha * x, x) # Contoh penggunaan input_data = np.array([-5, -2, 0, 3, 7]) output_data = leaky_relu(input_data) print(output_data)
ELU (Exponential Linear Unit)
ELU mirip dengan Leaky ReLU, tetapi menggunakan fungsi eksponensial untuk input negatif.
-
Rumus:
f(x) = x, jika x > 0 f(x) = a(exp(x) - 1), jika x <= 0
di mana
a
adalah konstanta positif. -
Cara Kerja: Untuk x positif, sama dengan ReLU. Untuk x negatif, mendekati -a secara eksponensial.
-
Kapan Digunakan: ELU juga merupakan alternatif untuk ReLU, dan dalam beberapa kasus dapat memberikan performa yang lebih baik daripada Leaky ReLU.
-
Kode Python
import numpy as np def elu(x, alpha=1.0): return np.where(x > 0, x, alpha * (np.exp(x) - 1)) # Contoh penggunaan input_data = np.array([-5, -2, 0, 3, 7]) output_data = elu(input_data) print(output_data)
Softmax
Softmax digunakan untuk menghasilkan distribusi probabilitas dari sejumlah output. Ini sangat umum digunakan pada output layer untuk masalah klasifikasi multi-class.
-
Rumus:
f(x_i) = exp(x_i) / sum(exp(x_j)) untuk semua j
di mana
x_i
adalah elemen ke-i dari vektor input, danx_j
adalah semua elemen dalam vektor input. -
Cara Kerja: Softmax mengubah setiap nilai input menjadi nilai antara 0 dan 1, dan memastikan bahwa jumlah semua output adalah 1. Ini memungkinkan kita untuk menginterpretasikan output sebagai probabilitas dari setiap kelas.
-
Kapan Digunakan: Output layer untuk masalah klasifikasi multi-class.
-
Kode Python
import numpy as np def softmax(x): e_x = np.exp(x - np.max(x)) # untuk stabilitas numerik return e_x / e_x.sum() # Contoh penggunaan input_data = np.array([1.0, 2.0, 3.0, 4.0]) output_data = softmax(input_data) print(output_data) # Output akan menjadi array probabilitas print(np.sum(output_data)) #jumlah harus 1
Fungsi Aktivasi Lainnya
Ada beberapa fungsi aktivasi lain yang digunakan dalam kasus-kasus tertentu, seperti:
-
Swish:
f(x) = x * sigmoid(x)
. Swish dikembangkan oleh Google, dan dalam beberapa kasus, performanya dilaporkan lebih baik dari ReLU. -
Maxout: Maxout mengambil nilai maksimum dari sejumlah neuron linear.
Perbandingan Fungsi Aktivasi
Nama Fungsi Aktivasi | Rumus | Kelebihan | Kekurangan | Kasus Penggunaan |
---|---|---|---|---|
ReLU | f(x) = max(0, x) |
Sederhana, komputasi cepat, mengurangi vanishing gradient. | Dapat mengalami “dying ReLU” (neuron menjadi tidak aktif). | Hidden layer pada umumnya, terutama untuk deep learning. |
Sigmoid | f(x) = 1 / (1 + exp(-x)) |
Output antara 0 dan 1 (interpretasi probabilitas). | Vanishing gradient untuk nilai input yang sangat besar atau kecil, tidak zero-centered. | Output layer untuk klasifikasi biner. |
Tanh | f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x)) |
Output antara -1 dan 1 (zero-centered). | Vanishing gradient untuk nilai input yang sangat besar atau kecil. | Hidden layer (alternatif untuk sigmoid). |
Leaky ReLU | f(x) = max(ax, x) |
Mengurangi masalah dying ReLU. | Pilihan nilai a mungkin memerlukan tuning. |
Hidden layer (alternatif untuk ReLU). |
ELU | f(x) = x jika x > 0 , a(exp(x)-1) jika x <= 0 |
Mengurangi masalah dying ReLU, output mendekati zero-centered. | Komputasi lebih kompleks dari ReLU. | Hidden layer (alternatif untuk ReLU dan Leaky ReLU). |
Softmax | f(x_i) = exp(x_i) / sum(exp(x_j)) |
Menghasilkan distribusi probabilitas. | Hanya cocok untuk output layer. | Output layer untuk klasifikasi multi-class. |
Ringkasan: ReLU dan variannya (Leaky ReLU, ELU) adalah pilihan yang baik untuk hidden layer karena kesederhanaannya dan kemampuannya untuk mengurangi masalah vanishing gradient. Sigmoid dan Tanh, meskipun memiliki masalah vanishing gradient, masih berguna dalam situasi tertentu, terutama sigmoid untuk klasifikasi biner. Softmax adalah pilihan standar untuk output layer pada masalah klasifikasi multi-class.
Memilih Fungsi Aktivasi yang Tepat
Memilih fungsi aktivasi yang tepat adalah langkah penting dalam merancang jaringan saraf tiruan. Berikut adalah beberapa faktor yang perlu dipertimbangkan:
-
Jenis Masalah:
- Klasifikasi Biner: Gunakan sigmoid pada output layer.
- Klasifikasi Multi-class: Gunakan softmax pada output layer.
- Regresi: Biasanya tidak menggunakan fungsi aktivasi pada output layer (atau gunakan fungsi linear).
- Untuk hidden layer, ReLU dan variannya sering menjadi pilihan yang baik untuk semua jenis masalah.
-
Kedalaman Jaringan:
- Jaringan yang lebih dalam (deep networks) lebih rentan terhadap masalah vanishing/exploding gradient. ReLU dan variannya dapat membantu mengurangi masalah ini. Hindari sigmoid dan Tanh untuk jaringan yang sangat dalam.
-
Vanishing/Exploding Gradient:
-
Vanishing Gradient Terjadi ketika gradient menjadi sangat kecil saat backpropagation, membuat update bobot menjadi sangat lambat atau bahkan berhenti. Ini sering terjadi dengan fungsi aktivasi sigmoid dan tanh.
Baca juga: Panduan Lengkap Backpropagation Jaringan Saraf Tiruan untuk Pemula
-
Exploding Gradient Terjadi ketika gradient menjadi sangat besar saat backpropagation, membuat update bobot menjadi tidak stabil.
-
-
Kompleksitas Komputasi: Jika kecepatan komputasi menjadi perhatian, ReLU adalah pilihan yang sangat baik karena sangat sederhana dan cepat untuk dihitung.
Contoh Skenario:
-
Klasifikasi Gambar (misalnya, mengidentifikasi objek dalam gambar): Gunakan ReLU atau variannya (Leaky ReLU, ELU) di hidden layer, dan softmax di output layer.
Baca juga: Panduan Lengkap Convolutional Neural Networks (CNN) untuk Pemula
-
Prediksi Harga Saham (regresi): Gunakan ReLU atau variannya di hidden layer, dan tidak ada fungsi aktivasi (atau fungsi linear) di output layer.
-
Klasifikasi Sentimen (misalnya, menentukan apakah ulasan film positif atau negatif): Gunakan ReLU atau variannya di hidden layer, dan sigmoid di output layer (jika hanya ada dua kelas: positif dan negatif).
Kesimpulan
Fungsi aktivasi adalah komponen kunci dalam jaringan saraf tiruan, yang memungkinkan model untuk mempelajari pola non-linear yang kompleks dalam data. Memilih fungsi aktivasi yang tepat sangat penting untuk kinerja model. ReLU dan variannya adalah pilihan populer untuk hidden layer, sedangkan sigmoid dan softmax digunakan pada output layer tergantung pada jenis masalahnya. Memahami karakteristik, kelebihan, dan kekurangan dari setiap fungsi aktivasi, serta mempertimbangkan faktor-faktor seperti jenis masalah dan risiko vanishing/exploding gradient, akan membantu Anda membuat pilihan yang tepat. Seiring perkembangan deep learning, penelitian tentang fungsi aktivasi baru terus berlanjut, dan mungkin akan ada fungsi aktivasi yang lebih baik lagi di masa depan.
Jika Anda baru dalam dunia AI dan ingin mengimplementasikan solusi AI untuk bisnis Anda, Kirim.ai menyediakan platform yang komprehensif. Platform ini menyediakan berbagai alat AI, termasuk untuk pengolahan teks, suara, gambar dan video. Selain itu, Kirim.ai juga menawarkan pengembangan aplikasi seluler (iOS & Android) dan website. Pelajari lebih lanjut.
Tanggapan (0 )