Artificial Neural Network
인공 신경망(Artificial Neural Network)는 생물학적 뇌의 동작 원리에서 영감을 받아 만들어진 기계학습 모델 중 하나입니다.
인공 신경망은 여러 개의 뉴런(Neuron)으로 구성되어 있으며, 입력값을 받아서 가중치(Weight)와 편향(Bias)을 곱한 값에 활성화 함수(Activation Function)를 적용하여 출력값을 내보내는 과정을 반복하여 학습합니다. 이렇게 여러 개의 뉴런들이 연결되어 있으며, 입력값이 들어왔을 때 연결된 뉴런들을 통과하며 결과를 출력하는 형태를 층(Layer)이라고 합니다.
일반적으로 인공 신경망은 입력층(Input layer), 은닉층(Hidden layer), 출력층(Output layer)로 구성되어 있습니다.
입력층은 데이터를 입력받는 역할을 하며, 은닉층은 입력층과 출력층 사이에서 여러 개의 층으로 이루어 질 수 있으며, 출력층은 학습 결과를 출력합니다.
Linear Neural Networks
입력과 출력 간의 선형 관계를 모델링하는 인공 신경망입니다.
이 네트워크는 하나의 레이어로 구성되며, 각 뉴런은 입력 특징 벡터와 가중치 벡터 간의 선형 조합을 계산한 다음, 바이어스 값을 추가합니다.
가장 간단한 수식(모델)으로는 \(\hat{y} = wx + b\)로 나타낼 수 있습니다.
만약 두 개 이상(d개)의 입력 변수가 사용 되는 경우 다음과 같이 길어질 수 있습니다. \(\hat{y} = w_1 \cdot x_1 + \cdots + w_d \cdot x_d + b\)
여기서 우리가 찾고자 하는 값은 입력 데이터 \(x\)와 이에 대한 예측값인 \(\hat{y}\)를 정답값 \(y\)에 가장 근사시킬 수 있는 \(w\)와 \(b\)의 값을 찾는 것입니다.
Loss
Loss는 정답값과 예측값의 차이를 나타내는 지표이며, 이 값이 작을수록 모델이 더욱 정확하다는 뜻입니다. 따라서, Loss를 최소화 하는 것이 모델을 향상시키는 데에 매우 중요합니다.
Linear Neural Networks에서는 보통 MSE(Mean Squared Error) \(\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y_i})^2\)를 손실 함수(Loss Function)으로 사용합니다. 이 값이 작을수록 모델이 더욱 정확하다는 것을 의미합니다.
Update
이 MSE를 우리가 구하고자하는 w와 b로 미분한 값은 w와 b가 어느 방향으로 값을 조절해야 하는지 결정합니다.
이를 식으로 나타내면 다음과 같습니다.
$$ \frac{\partial loss}{\partial w} = \frac{\partial}{\partial w} \frac{1}{N} \sum_{i=1}^N (y_i - \hat{y}_i)^2 $$
$$ = \frac{\partial}{\partial w} \frac{1}{N} \sum_{i=1}^N (y_i - wx_i - b)^2 $$
$$ = -\frac{2}{N} \sum_{i=1}^N (y_i - wx_i - b)x_i $$
$$ $$
$$ \frac{\partial loss}{\partial b} = \frac{\partial}{\partial b} \frac{1}{N} \sum_{i=1}^N (y_i - \hat{y}_i)^2 $$
$$ = \frac{\partial}{\partial b} \frac{1}{N} \sum_{i=1}^N (y_i - wx_i - b)^2 $$
$$ = -\frac{2}{N} \sum_{i=1}^N (y_i - wx_i - b) $$
이 방향을 기준으로 얼마만큼 조정 할지(Learning rate, \(\eta\))를 정한 뒤 w와 b를 업데이트 합니다.
$$ w = w - \eta \frac{\partial loss}{\partial w}, b = b - \eta \frac{\partial loss}{\partial b} $$
하지만 Linear Neural Network는 입력 데이터와 가중치(weight) 사이의 선형 함수만을 학습할 수 있습니다. 이러한 모델은 간단하고 수학적으로 다루기 쉽지만, 복잡한 패턴을 학습하는데 한계가 있습니다.
가장 간단한 예시로 XOR 문제를 예로 들 수 있습니다.
위 그림과 같이 XOR 문제는 하나의 선형 함수로는 문제를 풀 수 없습니다.
이러한 문제를 해결하기 위해서는 다음과 같이 비선형 함수를 사용해야 합니다.
Activation Functions
Activation Function은 선형 함수를 비선형 함수로 변환해주는 역할을 합니다.
선형 함수를 비선형 함수로 변환함으로써 복잡하고 다양한 패턴을 표현할 수 있습니다.
Multi Layer Perceptron
이하 MLP는 인공 신경망(Artificial Neural Network)의 한 종류로, 여러 개의 은닉층을 가지고 있는 신경망입니다.
MLP는 단순히 선형 함수를 여러개 쌓는 것이 아니라, 선형함수를 비선형함수로 만드는 변형을 거쳐 쌓게 됩니다.
즉 은닉층은 입력값을 받아 처리 후 비선형 함수로 변환하는 하나의 층을 여러개 쌓은 것입니다. 이를 위해 위에서 언급하였던 활성화 함수가 사용되고, 이러한 활성화 함수를 적용하여 출력값을 계산하고, 출력층에서 이 출력값을 바탕으로 예측값을 출력합니다.
'ML & DL > 기초 이론' 카테고리의 다른 글
Probability Model(확률 모형), Random Variable(확률 변수) (0) | 2023.03.22 |
---|---|
Regularization: Overfitting을 해결하는 방법들 (0) | 2023.03.21 |
Overfitting & Underfitting (0) | 2023.03.21 |
Gradient Descent & Optimizer(SGD, Momentum, Adagrad, RMSprop, Adam) (0) | 2023.03.20 |
[CNN] Convolution Neural Network 정리 (0) | 2022.01.27 |