Traffine I/O

Bahasa Indonesia

2022-10-23

Jenis fungsi aktivasi

Apa itu fungsi aktivasi?

Fungsi aktivasi dalam neural networks adalah fungsi yang mengubah nilai input menjadi nilai lain untuk output dari satu neuron ke neuron berikutnya. Nilai yang terintegrasi, yang merupakan jumlah dari input ke neuron dan produk bobot ditambah bias, diubah menjadi sinyal yang mewakili keadaan tereksitasi neuron. Tanpa fungsi aktivasi, operasi neuron hanya akan menjadi jumlah produk, dan kekuatan ekspresif dari jaringan saraf akan hilang.

Fungsi step

Fungsi step adalah fungsi tangga. Ini diwakili oleh persamaan berikut.

y = \left\{ \begin{array}{ll} 0 & (x \leqq 0)\\ 1 & (x > 0) \end{array} \right.

Fungsi step, ketika dieksekusi dalam Python, terlihat seperti kode berikut ini

import numpy as np
import matplotlib.pyplot as plt

def step_function(x):
    return np.where(x<=0, 0, 1)

x = np.linspace(-5, 5)
y = step_function(x)

plt.plot(x, y)
plt.show()

Step function

Sementara fungsi dapat dengan mudah merepresentasikan keadaan tereksitasi dari neuron sebagai 0 atau 1, fungsi ini memiliki kelemahan karena tidak dapat merepresentasikan keadaan antara 0$ dan 1$.

Fungsi sigmoid

Fungsi sigmoid adalah fungsi yang bervariasi dengan lancar antara 0 dan 1. Ini diwakili oleh persamaan berikut

y = \frac{1}{1+\exp(-x)}

Fungsi sigmoid, ketika dieksekusi dalam Python, terlihat seperti kode berikut.

import numpy as np
import matplotlib.pylab as plt

def sigmoid_function(x):
    return 1/(1+np.exp(-x))

x = np.linspace(-5, 5)
y = sigmoid_function(x)

plt.plot(x, y)
plt.show()

Sigmoid function

Fungsi sigmoid lebih halus daripada fungsi langkah dan dapat mengekspresikan perantara antara 0 dan 1. Selain itu, fungsi sigmoid dicirikan oleh turunannya yang mudah ditangani.

Fungsi tanh

Fungsi tanh adalah fungsi yang bervariasi dengan lancar antara -1 dan 1. Bentuk kurva mirip dengan fungsi sigmoid, tetapi fungsi tanh simetris sekitar 0.

y = \frac{\exp(x)-\exp(-x)}{\exp(x)+\exp(-x)}

Fungsi tanh, ketika dijalankan dalam Python, terlihat seperti kode berikut

import numpy as np
import matplotlib.pylab as plt

x = np.linspace(-5, 5)
y = np.tanh(x

plt.plot(x, y)
plt.show()

tanh function

Fungsi ReLU

Fungsi ReLU adalah fungsi yang outputnya $ y $ adalah 0 jika input $ x $ negatif dan $ y $ adalah $ x $ jika $ x $ positif. Fungsi ReLU diwakili oleh persamaan berikut.

y = \left\{ \begin{array}{ll} 0 & (x \leqq 0)\\ x & (x > 0) \end{array} \right.

Fungsi ReLU, ketika dijalankan dalam Python, terlihat seperti kode berikut

import numpy as np
import matplotlib.pylab as plt

x = np.linspace(-5, 5)
y = np.where(x <= 0, 0, x)

plt.plot(x, y)
plt.show()

ReLU function

Fungsi ReLU sering digunakan sebagai fungsi aktivasi selain lapisan output karena kesederhanaannya dan pembelajaran yang stabil bahkan ketika jumlah lapisan meningkat.

Fungsi Identitas

Fungsi identitas adalah fungsi yang mengembalikan input sebagaimana adanya sebagai output. Hal ini diwakili oleh persamaan berikut.

y = x

Kode Python untuk fungsi identitas adalah sebagai berikut

import numpy as np
import matplotlib.pylab as plt

x = np.linspace(-5, 5)
y = x

plt.plot(x, y)
plt.show()

Identity function

Fungsi identitas sering digunakan dalam masalah regresi karena jangkauan outputnya tidak terbatas dan kontinu, membuatnya cocok untuk memprediksi angka kontinu.

Fungsi softmax

Fungsi softmax adalah fungsi aktivasi yang cocok untuk masalah klasifikasi. Jika output dari fungsi aktivasi adalah y, inputnya adalah x, dan jumlah neuron dalam lapisan yang sama adalah n, fungsi softmax diwakili oleh persamaan berikut.

y = \frac{\exp(x)}{\sum\limits_{k=1}^n\exp(x_k)}

Ini juga memiliki sifat-sifat fungsi softmax berikut.

  • Jumlah output dari lapisan yang sama berjumlah 1
  • Nilai 0<y<1 adalah output

Karena sifat-sifat ini, fungsi softmax digunakan sebagai lapisan output untuk klasifikasi multikelas.

Fungsi softmax dapat diimplementasikan dengan kode berikut

import numpy as np

def softmax_function(x):
    return np.exp(x)/np.sum(np.exp(x))

y = softmax_function(np.array([1,2,3]))
print(y)
[0.09003057 0.24472847 0.66524096]

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!