Neural Network
인간의 뇌를 모방했다.
인간의 뇌를 모방했기 때문에 딥러닝 성능이 우수하다?
-> 꼭 그렇다고 보기는 어렵다.
예를 들어, 딥러닝의 핵심인 Backpropagation이 인간의 뇌에서 일어나는 일인가?
-> 그렇게 보기 어렵다.
즉, Neural Network는 인간의 뇌를 모방하는 방법으로 시작했지만, 지금은 꼭 그렇다고 볼 필요는 없다!
-> "애매하게 인간의 뇌를 모방한 컴퓨팅 시스템" 으로 정의 내리는 것도 괜찮음
Linear Neural Network
- 가장 간단한 NN 모델
- 선형 회귀 - Input 1차원, Output 1차원
- 기울기와 절편을 가지고 있음
$$ \hat{y} = wx + b $$
그럼 $ w $와 $ b $는 어떻게 찾을까?
- Backpropagation
- Loss를 정의하고, 각각의 파라미터로 편미분
$$ w \leftarrow w - \eta \frac{\partial loss}{\partial w} $$
$$ b \leftarrow b - \eta \frac{\partial loss}{\partial b} $$
여기서 $ \eta $가 중요함!
Gradient는 Local한 정보이기 때문에, 너무 일반화하지 않도록 적당하게 조절해야 함!
다만, 우리가 사는 세상에 위처럼 1차원 -> 1차원으로 표현하는 것은 거의 없음
n차원 -> m차원을 표현하기 위해 행렬을 사용한다.
$$ \boldsymbol{y} = \boldsymbol{W}^T \boldsymbol{x} + \boldsymbol{b} $$
<참고>
행렬을 찾겠다 -> 두 개의 Vector Space (벡터 공간) 에서 Linear Transform (선형 변환) 을 찾겠다.
Activation Function
딥러닝을 단순히 행렬들의 곱으로 쌓게 되면 그건 1 Layer 모델이나 다름이 없음!
- 그래서 중간에 Non-Linear Transform을 추가하는 것
- 그것이 Activation Function
- ReLU, Sigmoid, Hyperbolic Tangent, ...
- 어떻게 가장 좋은 지는 상황에 따라 다르지만, 보통 ReLU를 많이 사용하는 듯?
$$ \text{ReLU} = max(0, x) $$
Loss Function
Regression Task일 경우, $MSE$ 를 예로 들 수 있다.
- 단, Regression이라고 절대적으로 MSE를 사용해야하는 건 아님
- MAE, RMSE, ... 등 Regression을 위한 다른 Loss Function도 있다.
이 지표들은 특정 상황에서 작용 하는 게 달라짐
- 예를 들면 극단적인 Outlier가 있을 때 RMSE나 MSE에 비해 MAE는 상대적으로 크게 영향을 받지 않음
- 이렇게 여러 상황을 고려해서 Loss Function을 지정하는 것이 중요함
'boostcamp AI Tech > 기타 정리' 카테고리의 다른 글
[DL Basic] Generative Models - Autoregressive Models (0) | 2023.03.26 |
---|---|
[DL Basic] Optimization (0) | 2023.03.21 |
[DL Basic] 딥러닝의 개념과 역사 (0) | 2023.03.20 |
[torchtext, sklearn] get_tokenizer(), vocab(), get_stoi(), get_itos(), CountVectorizer() (0) | 2023.03.17 |