Deep Learning (3)
지난 시간에 배운 내용을 잠깐 짚고 가자.
Linear System으로는 복잡한 모델을 처리할 수 없어 활성함수를 통해 NonLinear을 도입해서 사용한다.
가중치 W는 Backpropagation을 통해 Gradient Descent를 통해 갱신한다.
이제 활성함수에 어떤 것들이 들어갈 수 있는지에 대해 알아보자.
활성 함수들의 조건으로는 증가함수여야하고, backpropagation이 원활하게 진행될 수 있도록 Gradient 값 (미분값) 이 깔끔하게 나와야 한다. (미분값에 집중하기보다는 미분을 하는 이유에 집중해서 공부해보자.)
우리에게 익숙한 함수인 Sigmoid function이 주로 쓰이다가, 다양한 함수들을 적용해보며 특정 함수가 영상 인식, 자연어처리 등 특정 분야에 훌륭한 결과를 보여주는걸 관찰했고, 이제는 Sigmoid function에 집착하지 않고 다양한 함수들을 필요에 따라 사용할 수 있다.
꼭 한 가지의 함수만 사용할 수 있는건 아니고 여러 함수들을 교차해서 사용할 수 있다. (성능을 보장하진 않음)
ReLU Function
구간으로 정의된 함수이다.
0을 기점으로 왼쪽은 0을 나타내고, 오른쪽은 증가함수처럼 표현돼있다.
활성 함수로 가장 대표적으로 많이 사용하는 함수이다. (Sigmoid는 잘 쓰이지 않는다.)
Tanh Function
하이퍼블릭 tan 함수이다.
위의 함수를 보면 알 수 있듯, x를 무한대로 계속 키우면 1로 수렴, 음의 무한으로 계속 줄이면 -1로 수렴하는 함수이다.
Sigmoid는 0~1를 치역으로 가지는 반면 Tanh함수는 -1~1을 치역으로 가진다.
위의 h1 노드에서 좌측 방향에서는 linear model으로, 우측 방향에서는 활성함수가 표현되어있다.
좀 더 간단히 표현하면
왼쪽 그림처럼 표현될 수 있다.
이제 Loss Function. 오류 함수에 대해 알아보자.
딥러닝 / 머신러닝으로 학습을 진행하는 목적 중 하나는 오류를 줄이는 것이다.
지금까지 Loss Function에 대해 대략적인 형태를 파악하고 어떻게 사용하는지 간단하게 알아보긴 했는데, 지금까지 알아본 Loss Function은 Regression 문제에 대한 Loss Function이였고, Classification 문제에 대해서는 아직 알아보지 않았다. (Softmax는 하나의 layer일 뿐.. )
먼저 조금 알고 있는 Regression문제 부터 살펴보자
Loss 함수가 위와 같이 정의된다.
목표는 모델의 매개변수 / 가중치를 적당히 튜닝해서 예측값이 정답값에 최대한 유사하도록 학습시키는 것이다.
(1/m으로 나누는 건 모델의 크기가 너무 커짐을 방지하기 위함)
Regression 문제에서 사용되는 Loss 함수인 Mean Squared Error를 Classification 문제에 적용한다고 생각해보자.
이미지 인식에서 개인지 개가 아닌지 인식하는 프로그램을 짜고 있다. 이미지가 개 이면 1 개가 아니면 0 이런 식으로 설정하고 학습을 진행할텐데, 여기서 문제가 발생한다.
지금 예시는 개를 인식하는 문제여서 큰 상관 없을 것 같지만, 자율주행자동차가 사람을 인식하는 문제로 바꿔 생각한다면 한 가지의 실수가 엄청난 피해를 일으키게 돼, 학습 과정에서 맞추지 못했을 시 굉장히 큰 패널티를 부여하는 방향으로 학습을 진행해야 한다. (Loss를 늘려서 학습할 수 있도록)
하지만 주어진 값은 1 혹은 0 밖에 없기 때문에 맞추면 맞췄네 ㅇㅋ. 못맞추면 아님말고 식으로 진행된다. 즉, Classification 문제에서 같은 Loss 함수를 사용 시 성능이 좋게 나오지 않는다.
만약 틀렸을 시 페널티를 크게 부여할 수 있다면.. 문제를 해결할 수 있을 것 같다.
로그함수의 성질을 이용해 위의 문제를 해결할 수 있다.
y = - log x 형태는 x축에 대해 대칭이동된 형태의 그래프이다.
만약 정답값이 1 이고 예측값도 1 이라면 별 문제가 발생하지 않는다.
하지만 정답값이 1이고 예측값이 0 이라면 Loss Function이 무한대로 치고 올라가게 되고 학습을 통해 가중치 W를 크게 변화시키게 된다.
이 공식은 인공지능 이전에도 존재했던 공식이고, 정보통신 / 보안 분야에도 자주 사용되는 중요한 공식이다.
이전에 Softmax Classifier로 학습을 진행했던 예제에 Cross Entropy Loss 함수를 적용시켜보자.
학습을 진행할 시 위와 같이 확률값의 차이가 심하게 나게 된다.
지금은 예측한 정답과 정답 레이블이 일치하지 않는 상황이다. 학습을 진행하자.
정답만 카운트해서 학습을 진행한다.
정답인 1 에 대해서만 관심이 있다.
정답과 정답 레이블이 일치하는 상황도 살펴보자.
확실히 CE값이 차이나는걸 확인할 수 있다.
이렇듯 Softmax function과 Cross entropy loss 는 서로 잘 어울린다.
Classification 에서의 Loss function인 Cross Entropy Loss를 정리해 보자.
'Machine Learning > AI Introduction' 카테고리의 다른 글
Advice for Applying ML/DL (1) (0) | 2021.12.04 |
---|---|
Deep Learning (4) (0) | 2021.12.03 |
Deep Learning - Backpropagation (0) | 2021.11.14 |
Deep Learning (2) (0) | 2021.11.14 |
Deep Learning (1) (0) | 2021.11.14 |
댓글
이 글 공유하기
다른 글
-
Advice for Applying ML/DL (1)
Advice for Applying ML/DL (1)
2021.12.04 -
Deep Learning (4)
Deep Learning (4)
2021.12.03 -
Deep Learning - Backpropagation
Deep Learning - Backpropagation
2021.11.14 -
Deep Learning (2)
Deep Learning (2)
2021.11.14