데이터 분석 및 프로젝트/딥러닝

딥러닝 2일차 - 신경망 학습

막막한 2023. 4. 23. 16:03

input layer-> hidden layer -> output layer -> loss function -> claculate loss 

 

loss weight

 

신경망 과정

1. 데이터 입력- 신경망 각 층에서 가중치 및 활성화 함수 연산 반복 수행

2. 1의 과정을 모든 층에서 반복, 출력층에서 계산된 값 출력

3. 손실 함수사용 예측값과 실제값 차이 계산

4. 경사하강법과 역전파 통해 가중치 갱신

5. 반복

 

 

1~4 과정 = lteration

 

매 이터레인션마다 가중치가 갱신된다 

 

lteration은 순전파(1,2), 손실계산 3, 역전파4 로 나뉜다

 

순전파(예측하기) -> 조건에 맞는 숫차 예측 

손실함수(실제값과의 차이 계산)-> 정답의 근접한지 위 아래인지 알려주기

역전파(가중치 수정)-> 알려준 정보 바탕으로 새로운 숫자 예측

 

<순전파>

입력층에서 입력된 신호가 은닉층 연산( 가중치 - 편향 연산) 거쳐 출력층에서 내보내는 과정

 

 

<손실함수>

신경망은 손실함수 최소화 하는 방향으로 가중치 갱신

 

입력데이터를 신경망에 넣어 순전파 거치고 마지막에 출력층 통과한 값 도출

 출력된 값과 데이터 타겟 값 손실함수에  넣어 손실 계산 

 

회귀 손실함수 = MSE, MAE

이진 분류 손실함수 = binary_crossentropy

다중 분류 손실함수 = categorical_crossentropy, sparse_categorical_crossentropy

 

<역전파>

반대방향으로 손실 정보 전달

주요 메커니즘 - 편미분, 연쇄법칙

 

역전파는 구해진 손실정보를 출력층부터 입력층까지 전달해 가중치 얼마나 업데이트 해야하는지 구하는 알고리즘

 

신경망은 손실 줄이면서 가중치 업데이트 

이때 수정방향 결정하는 것이 경사하강법 (GD)

 

<경사하강법 GD>

매 이터레이션마다 해당 가중치에서 비용함수 도함수 계산해 경사 작아질 수 있도록 가중치 변경

 

기울기가 양수이면 왼쪽(-)로 이동

기울기가 음수이면 오른쪽(+)로 이동

 

<옵티마이저>

경사 내려가는 방법 결정 

<확률적 경사하강법 SGD>

전체 데이터에서 하나 데이터 뽑아 신경망에 입력후 손실 계산 

가중치 빠르게 업데이트 할 수 있음 

 

GD&nbsp; / SGD

이터레이션마다 N개(배치 사이즈) 데이터 사용 

 

미니 배치 경사 하강법 많이 사용함

 

<배치 사이즈>

미니 배치 경사하강법에서 사용하는 미니배치의 크기 

일반적으로 2의 배수 사이즈 설정, 메모리 크가 허락하는 한 큰 배치 사이즈 사용

 

< 데이터, 에폭, 배치 사이즈, 이터레이션 관계>

- 순전파- 역전파 1회(가중치 한 번 수정)  단위 Iteration 

 

데이터 수(# of data)= batch size * iteration

 

1000= 8* 125