Adore__

[BoostCourse DL] 2. Neural Network, MLP 본문

AI Learner/DL

[BoostCourse DL] 2. Neural Network, MLP

3_GreenHeart 2023. 4. 3. 18:02
728x90

함수 근사 모델

비선형 연산이 반복적으로 일어나는 모델

GoogLeNet , ResNet 과 같이 어떤 함수(이미지 분류, 이미지 생성)를 모방하는 방법

 

 

 

Linear Neural Networks

 

간단한 회귀 문제에서 선형 네트워크를 사용했을 때, 우리는 손실함수를 최소화할 수 있는 parameter를 찾아야 한다.

이를 효율적으로 하기 위해 손실함수가 줄어드는 방향으로 backc propagation을 실행하여 최적의 parameter 값을 찾는다.

즉, 어느 방향으로 이동해야 손실함수가 줄어드는지 확인한 후, 손실함수를 각각의 parameter로 미분한 방향에 대한 음수 방향으로(편미분한 값 빼주기) 파라미터를 업데이트 한다면 손실함수의 최저점을 찾을 수 있다.

 

gradient descent

 

여기서 적절한 stepsize를 찾는 것이 매우 중요하다.

그 위치에서 움직이는 정도를 말하는데, 이를 너무 키우거나 0에 가깝게 하면 학습이 아예 되지 않는다. adaptive learning rate이 이를 자동으로 바꾸어주는 방법이다.

 

 

 

Multi-Layer Perception

 

행렬을 사용한다는 것은,

서로 다른 차원 사이의 선형 변환을 찾는 다는 것이다.

 

네트워크를 여러개 쌓으려면?

각 층에서 나온 행렬들을 곱하면 된다. 하지만 이는 한단짜리 nn과 다를 게 없다. 따라서 이때 필요한 것이 Nonlinear transform이다.

이 네트워크가 표현할 수 있는 표현력을 극대화하기 위해서는 한번 선형 결합 이후에 활성화 함수를 이용하여 nonlinear로 변환 시키는 것을 반복해야 한다.

이때 어떤 Nonlinear function을 사용하냐는 여러가지 방법이 있다.

ReLU, Sigmoid (0~1사이로 제한), Hyperbolic Tangent (-1~1) 등이 있는데, 어떤 것을 사용하냐는 내가 해결하고자 하는 문제마다 다르다. 하지만 이러한 nonlinear이 있어야지만 네트워크를 깊게 쌓았을 때 의미가 있는 것이다.

 

이처럼 입력층이 주어져 있고, 들어가는 벡터가 nonlinear 변환을 거쳐서 나오는 hidden layer가 한 층 이상 있는 구조를 MLP 라고 한다.

 

 

* Loss function

1) Regression Task (MSE / 절댓값)

 1주차에서 한번 언급했듯이, 제곱으로 loss function을 사용할 때와, 절대값으로 사용할 때 성능이 달라질 수 있다.

만약 데이터에서 outlier들이 만들어내는 오류 gap이 상당히 크다면, 이를 제곱할 경우 전체 네트워크의 성능을 완전히 망가트릴 수 있다. 따라서 이 경우에는 절대값을 손실함수로 사용하는 것이 바람직하다

 

2) Classification Task (Cross Entropy)

분류 문제에서는 회귀와 달리 log함수를 사용한다. 왜 그럴까? 

분류 task에서 얻고자 하는 것은 값이 아니라 10가지 카테고리가 있다고 할 때, 이 데이터가 속할 확률이 가장 높은 카테고리 1개만을 예측한다. 따라서 one-hot encoding을 사용한다. 가장 적합한 class 1개를 제외하고 나머지는 모두 0 값을 갖게 만드는 것이다. 이때 관심 있는 것은 정답 class의 값이 100이든 100만이든, 다른 나머지 class에 비해 높기만 하면 된다는 것이다.

이를 수학적으로 표현할 수 있는 적합한 방법이 log함수를 이용한 Cross Entropy이다.

 

3) Prababilistic Task (MLE)

확률론적 문제에서는 결과를 어떤 특정한 값으로 얻어내기 보다는 3가지 후보가 있다고 가정할 때, 각각에 속할 확률값을 도출하는 것이다.

 

'AI Learner > DL' 카테고리의 다른 글

[BoostCourse DL] 3.2 Optimization_Regularization  (0) 2023.04.06
[BootCourse DL] 3. Optimization_Gradient Descent Methods  (0) 2023.04.06
[BoostCourse DL] 1. Start  (0) 2023.04.03
[Keras] VGG16 implementation  (0) 2023.04.03
[CNN] VGG16 model  (0) 2023.04.03
Comments