딥러닝 2일차 - 신경망 학습
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>
전체 데이터에서 하나 데이터 뽑아 신경망에 입력후 손실 계산
가중치 빠르게 업데이트 할 수 있음
이터레이션마다 N개(배치 사이즈) 데이터 사용
미니 배치 경사 하강법 많이 사용함
<배치 사이즈>
미니 배치 경사하강법에서 사용하는 미니배치의 크기
일반적으로 2의 배수 사이즈 설정, 메모리 크가 허락하는 한 큰 배치 사이즈 사용
< 데이터, 에폭, 배치 사이즈, 이터레이션 관계>
- 순전파- 역전파 1회(가중치 한 번 수정) 단위 Iteration
데이터 수(# of data)= batch size * iteration
1000= 8* 125