본문 바로가기

Machine Learning/Deep Learning3

Non zero-centered activation function과 학습 비효율 CS231n 강의에서 나온 Sigmoid의 non zero-centered한 성질로 인한 학습 비효율에 대해 정확하게 이해하기 위해 정리한다.  Sigmoid function의 특징으로는 non zero-centered 라는 점이고, 출력이 항상 양수로 나온다는 점이다. Sigmoid function을 activation function으로 사용했을 때, 학습에 어떤 영향을 끼칠까? 다음과 같은 단순한 형태의 네트워크가 있다고 하자.그리고 위 그림 1에서 색칠한 영역을 자세히 살펴보면 아래와 같다.입력 $x_{1}과 x_{2}$는 앞 layer의 Sigmoid 출력이기 때문에 항상 양의 값을 갖게된다. 그리고 경사 하강을 이용한 weight의 update 수식은 아래와 같다.$$ W \leftarr.. 2024. 5. 1.
ReLU의 활성 함수으로써의 사용과 미분 가능성 ReLU는 여러 딥러닝 모델에서 activation function으로써 쓰이고 있다. (ReLU에서 생기는 문제를 해결하기 위한 다양한 variation들이 있긴 하지만) $$ ReLU(x) = max(0, x) $$ 더보기 import numpy as np import matplotlib.pyplot as plt x = np.linspace(-5, 5, 100) y = np.maximum(0, x) plt.plot(x, y) plt.grid(True) plt.xlabel("x") plt.ylabel("ReLU(x)") 딥러닝에서는 모델 훈련 시 Gradient descent를 통해 Loss를 최소화하는 파라미터를 계산하는데, Gradient descent를 위해서는 미분값을 필요로 한다. 하지만 ac.. 2024. 4. 23.
Perceptron perceptron은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다. 아래는 2개의 입력을 받는 perceptron이다. $ x $ : 입력 $ w $ : 가중치(weight)로 말 그대로 해당 입력이 얼마나 중요한지를 나타낸 값이다. 이 값이 크면 출력에 영향을 더 크게 미친다. $ b $ : 편향(bias)으로 해당 뉴런이 얼마나 쉽게 활성화될 수 있느냐를 조절하는 값이다. 이 값이 크면 입력이 작더라도 활성화될 수 있다. $ y $ : 출력 출력의 경우 노드에 전달된 값의 합이 0을 넘을 때 1을 출력하며, 0을 넘지 않으면 0을 출력한다. 그러면 이 임계값에 대해서는 아래와 같이 나타낼 수 있다. $ y = \begin{cases} 0 & \text{if } w_1x_1 + w_2x_2 +.. 2024. 3. 3.