인공신경망(Artificial Neural Network)
인공신경망은 인간의 뇌에서 영감을 받아 설계된 컴퓨팅 시스템으로, 인식, 분류, 회귀 드으이 문제를 해결하는데 사용된다. 신경망을 통해서 데이터의 비선형적인 관계를 학습하고, 예측 또는 결정을 할 수도 있다.
Single-Layer Neural Network (Perceptron)
단일 계층 신경망(Single Layer Neural Network)은 인공 신경망의 가장 기본적인 형태로, 입력 계층과 출력 계층으로만 구성된다.
단일 계층 신경망은 다음과 같은 구성 요소로 이루어진다.
입력 벡터
- $$ \mathbf{x} = [x_1, x_2, \ldots, x_d]^T $$
- 입력 벡터는 신경망에 들어가는 피처(feature)들의 집합이다. 여기서 d는 입력 벡터의 차원을 나타낸다.
가중치 벡터
- $$ \mathbf{w} = [w_1, w_2, \ldots, w_d]^T $$
- 가중치 벡터는 각 입력에 곱해지는 값으로, 신경망이 학습하는 과정에서 조정된다.
편향 (Bias)
- 신경망의 출력값을 조정하는 추가적인 상수로, 선형 결합의 편향을 조절한다.
출력
- 입력 벡터에 가중치와 편향을 적용한 결과이다.
Activation Function
활성화 함수는 선형 결합 결과에 비선형성을 부여하여, 신경망이 더 복잡한 패턴을 학습할 수 있도록 한다. 대표적인 활성화 함수로는 시그모이드 함수(Sigmoid Function), 렐루 함수 (ReLU, Rectified Linear Unit) 등이 있다.
ReLU 함수
$$ f(z)=max(0,z) $$
입력 값 z가 0보다 작으면 출력은 0이고, 0보다 크면 출력은 z와 같다.
- 입력 값이 0 이하일 때 출력을 0으로 고정시킴으로써, 네트워크의 일부 뉴런을 비활성화시킨다.
- 입력 값이 0 이상일 때는 출력이 입력 값과 같은 선형 관계를 유지한다.
Sigmoid 함수
$$ \sigma (z) = \frac{1}{1+e^{-z}} $$
시그모이드 함수는 입력 값이 작거나 클 때 출력 값을 0 또는 1에 가깝게 만든다. 즉, 미세한 입력 변화에도 불구하고 출력 값의 변화가 제한적이다.
- 작은 입력 값의 변화가 큰 출력 변화로 이어질 수 없게 만듦으로써, 데이터를 부드럽게 비선형적으로 분리한다.
- 입력 값이 커질수록 출력 값은 포화(saturation) 상태에 이르러 변화가 제한된다.
비선형성(non-linearity)이 필요한 이유?
단일 계층 신경망에서 활성화 함수가 없는 경우, 출력은 입력의 선형 결합으로 표현된다. 이러한 선형 모델은 입력과 출력 사이의 선형 관계만 학습할 수 있다. 따라서 신경망이 비선형 관계를 학습하고, 다양한 문제를 해결할 수 있도록 활성화 함수가 필요하다.
Training Perceptron
평균 제곱 오차 (Mean Squared Error)
$$ {MSE} = \frac{1}{2}\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^{2} $$
평균 제곱 오차는 회귀 분석에서 모델의 예측값과 실제 값 간의 차이를 측정하는 대표적인 손실 함수이다. 각 데이터 포인트의 예측 값과 실제 값 간의 오차를 제곱하여 평균을 내어 계산한다.
경사 하강법 (Gradient Descent)
경사 하강법은 손실 함수를 최소화하기 위해 사용되는 최적화 알고리즘이다. 이 방법은 모델의 파라미터(가중치, 편향)을 반복적으로 업데이트 하여 손실 함수의 기울기를 따라 가장 낮은 값에 도달하도록 한다. 즉, 학습의 목적이 예측 값과 실제 값의 차이인 E를 줄여야하는데, 입력으로 들어오는 값들은 수정할 수 없음으로 E를 벡터 w에 관한 함수로 본다.
- w : 현재 파라미터 벡터
- epsilon : 학습률 (Learning Rate) : 한번의 업데이트에서 파라미터가 이동하는 거리의 크기를 결정
- 기울기는 손실 함수가 가장 빠르게 변하는 방향을 나타내며, 이 방향으로 이동하면서 손실(Loss)을 최소화한다.
기울기의 계산 (Gradient Computation)
*chain rule
*quotient rule
Gradient descent algorithm
학습률 (Learning Rate)
학습률은 경사 하강법의 중요한 파라미터이다. 학습률이 너무 크면 최솟 값을 지나칠 수 있고, 너무 작으면 수렴 속도가 느려진다. 따라서 적절한 학습률을 찾는 것이 중요하다.
경사 하강법의 종류
배치 경사 하강법 (Batch Gradient Descent)
$$ \theta \leftarrow \theta - \eta \bigtriangledown_{\theta}{L}(\theta;) $$
- 모든 데이터 샘플에 대해서 기울기를 계산하고 업데이트한다.
- 정확한 기울기를 계산하지만, 데이터가 많을 경우 계산 시간이 크다.
확률적 경사 하강법 (Stochastic Gradient Descent, SGD)
$$ \theta \leftarrow \theta - \eta \bigtriangledown_{\theta}{L}(\theta;(x_{i}-y_{i})) $$
- 매 반복마다 하나의 데이터 샘플에 대해 기울기를 계산하고 업데이트한다.
- 매 반복마다 빠르게 업데이트 되지만, 노이즈가 있어 수렴이 불안정할 수 있다.
미니배치 경사 하강법 (Mini-batch Gradient Descent)
$$ \theta \leftarrow \theta - \eta \bigtriangledown_{\theta}{L}(\theta;{minibatch}) $$
- 미니배치에 대해 기울기를 계산하고 업데이트한다.
- 배치 경사 하강법과 SGD의 절충안으로, 속도와 안정성의 균형을 맞춘다.
'Deep Learning > Deep Learning Basics' 카테고리의 다른 글
Neural Network Basics - Multi-Layer Neural Net (Multi layer Perceptron) (3) | 2024.09.19 |
---|