2023_Summer_Seminar_2_신경망 모델 학습 과정

Bigjoo·2023년 7월 22일
0

2023_Summer_Seminar

목록 보기
2/3

2차 세미나

2023년 7월 12일에 진행한 세미나에 대해 정리하려고 한다.

2차 세미나에서는 1차 세미나의 교수님의 피드백을 수용하여
교수님께서 진행하셨던 기계학습 수업을 수강하고, 정리한 내용과
추가로 공부한 내용에 대해 발표를 진행했다.

발표 contents는 다음과 같다.
1. 신경망 모델 학습 과정
2. Loss function
3. Optimizer
4. 역전파
(1차 세미나에서도 발표했던 Loss function과 Optimizer에 내용은
역전파 이해를 위해 간략하게만 소개할 예정이다)

1. 신경망 모델 학습 과정

2,3,4번에 나올 주제가 모델 학습 과정에서 필요한 과정이고, 이를 설명하기 위해
모델 학습 과정에 대한 이해가 필요하다고 생각하여
모델 학습 과정에 대한 설명을 1번 주제로 선정하였다.

신경망 모델 학습 과정은 다음과 같다.

1. 신경망 구조의 학습 모델을 정의
2. 데이터 전처리를 수행한 입력값 정의
3. 임의 매개변수를 지정하여 layer 연결
4. 임의 매개변수 값에 따라 순전파를 진행하여 예측값 생성
5. 예측값을 실제값과 손실함수를 통해 오차 생성
6. 손실함수를 옵티마이저와 역전파를 활용하여 매개변수 업데이트
7. 업데이트된 매개변수로 4~6번 반복

위와 같은 과정을 통해 최종적으로 오차가 제일 적은(=손실값이 제일 작은) 매개변수를 업데이트하고, 모델의 성능을 높인다.

2. Loss function

손실함수는 모델이 생성한 예측값과 실제값(=ground truth)의 비교를 통해
모델의 오차를 계산할 때, 어떤 방법으로 오차를 계산할지 정의하는 함수를 말한다.

다양한 손실함수가 존재하지만, 대표적인 2가지 손실함수를 설명한다.

평균 제곱 오차(Mean Squared Error)

회귀 문제에서 많이 사용되는 손실함수이다.
예측값과 실제값(=ground truth)의 차이를 제곱한 값을 평균낸다.
오른쪽 그래프는 다른 손실함수인 평균 절대 오차 이다.
평균 절대 오차는 값의 차이를 절대값을 씌어 양수화하고, 평균을 내는 기법인데,
이는 이후에 나올 역전파 과정에서 손실함수를 미분할 때, 미분이 불가능하여
평균 제곱 오차를 많이 사용한다.

교차 엔트로피(Cross-entropy)

분류 문제에서 많이 사용되는 손실함수이다.
정답class에 해당하는 예측값에만 Loss를 부여한다.
실제 해당 class일 확률과 예측 확률의 곱셈 연산을 수행하기에
실제 정답 class만 해당 class일 확률이 1이므로 나머지 class들의 오차는
0이 곱해져 다 사라지게 된다.

3. Optimizer

손실함수 L(w)가 최소값을 갖는 매개변수 w를 찾아가는 방법
미분을 이용하여 손실함수가 작아지는 방향을 알아내고,
손실함수가 작아지는 방향을 향해 매개변수를 업데이트

배치 경사 하강법(Batch gradient descent)

확률적 경사 하강법(Stochastic gradient descent)

미니배치 경사 하강법(Mini-batch gradient descent)

다양한 Optimizer

4. 역전파

Loss function과 Optimizer를 이용하여 가중치를 업데이트할 때
필요한 계산과정에서 순전파와 역전파를 이용한다.

순전파

각 입력이 입력층에서 은닉층 방향으로 향한다
노드값과 노드에 해당하는 가중치가 곱해져 가중합으로 계산되어 활성함수의 입력값이 됨

순전파 계산 과정(과정을 텍스트로 설명하기 복잡하여 발표자료로 대체)

input값 i1과 i2, 임의 초기화 된 가중치 w1~w8을 이용하여 순전파 계산 진행

Loss함수로 평균제곱오차(MSE)을 정의하여 Loss값 계산

역전파

위와같은 Optimizer를 선택하여 가중치를 업데이트하려고 할 떄, w5에 대한 Loss(w)의 미분 계산이 필요한데, 손실함수는 다양한 가중치들로 이루어져 있어 계산과정이 매우 복잡해진다.
이때, 역전파의 Chaine Rule을 이용하여 w에 대한 Loss(w)의 미분을 쉽게 구할 수 있다.

❓Chaine Rule(연쇄 법칙)이란❓
합성함수의 미분은 합성함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다.
합성함수의 미분을 진행하려면, 이전 함수의 마분값이 필요하고,
이전 함수의 미분값을 구하려면, 그 이전의 미분값이 필요하다.

w5 역전파 과정

w5를 업데이트 한 변수 w5'은 w5에 대한 Loss함수의 미분값을 통해 계산 가능
이때 Loss함수의 변수값들을 모두 넣어서 미분하기에는 너무 복잡하므로 Chain Rule이용

W5에 대한 Loss(w)의 미분값을 구하였다면, 이를 통해 Learning rate =0.5라고 정의하여 w5값을 업데이트하는 역전파 진행

w1 역전파 과정

매개변수 업데이트에 따른 Loss값 비교

마무리


우리는 위의 사진과 같은 신경망 모델의 학습 과정에 대해서 알게 되었다.
모델의 학습 과정은 순전파 계산과 Loss function 정의에 의한 오차 계산과
Optimizer 정의 후 역전파를 이용한 매개변수 업데이트가 있었다.

세미나를 통해 순전파 계산과정과 Loss 개념 및 다양한 Loss function에 대해 알 수 있었고, Optimizer의 개념과 다양한 Optimizer에 대해 알 수 있었다.
마지막으로 Optimizer 계산 시 필요한 역전파의 내용에 대해서 알 수 있었고,
Chain Rule을 활용한 역전파 계산 과정을 확인 할 수 있었다.


참고자료 출처
신경망 모델 ,Loss function - http://dmqm.korea.ac.kr/activity/seminar/326


세미나 리뷰

지도 교수님

신경망 모델 학습 과정에 대한 자료가 신경망 모델 학습 과정을
한눈에 이해할 수 있게 잘 보여주는 것 같다. 이를 서론에 발표함으로써
청강생 입장에서 뒤에 이어갈 주제를 더 잘 이해할 수 있게 된 것 같아 좋았다.
역전파 과정을 직접 손으로 하나하나 계산해보는 과정이 매우 중요하기에
청강생들도 반드시 손으로 계산을 해보길 바라며,
역전파 계산과정을 설명함에 있어 너무 복잡하게 설명했다.
쉽게 설명하는 방법에 대해서 고민해 볼 필요가 있다.

후기

cs231n강의보다 교수님이 진행한 기계학습 수업이 기계학습의 큰 그림을 이해하는데
훨씬 쉬웠던 것 같다. 딥러닝의 개념인 손실함수, 옵티마이저, 역전파 등등
개념은 알고 있었지만, 이에 대해 구조를 보며 공부를 하니 왜 이런 개념이 필요한지
이해할 수 있어서, 만족스러운 세미나 주제였던 것 같다.

profile
ComputerVision 누구냐 넌

0개의 댓글