딥러닝 이해 시작(6) - 신경망과 오차역전파
신경망의 구조, 퍼셉트론, 오차역전파에 대해 알아보기
신경망의 기본 구조
여러 층의 퍼셉트론을 서로 연결시키고 복잡하게 조합하여 주어진 입력 값에 대한 판단을 하게 하는 것
- 퍼셉트론 : 입력 값과 활성화 함수를 사용해 출력 값을 다음으로 넘기는 가장 작은 신경망 기본 단위
- y = ax + b 에서 기울기 a는 퍼셉트론에서는 가중치를 의미하는 w(weight)로 표기
ex) y = ax + b -> y = wx + b ( w는 가중치, b는 바이어스) - 가중 합(weighted sum) : 입력 값 x와 가중치 w의 곱을 모두 더한 다음 바이어스 b를 더한 값
- 활성화 함수(activation function) : 가중합의 결과를 두고 1 또는 0을 출력한 후 다음으로 보낼때 0과 1을 판단하는 함수 ex) sigmoid함수, relu함수, softmax함수 등

다층 퍼셉트론
입력층과 출력층 사이에 은닉층이 숨어있는 형태
- 가운데 숨어있는 은닉층으로 퍼셉트론이 각각 자신의 가중치 w와 바이어스 b값을 보냄
- 이 은닉층에서 모인 값이 시그모이드 함수()를 이용해 최종 값으로 결과를 보냄
- 노드(node) : 은닉층에 모이는 중간 정거장(n1과 n2로 표현)

오차 역전파
임의의 가중치를 선언하고 결과값을 이용해 오차를 구한 뒤 오차가 최소인 지점으로 이동시키는 방법 사용(경사하강법을 사용하여 가중치 구하기)
- 오차 역전파 과정

- 오차 수정 과정

고급 경사 하강법
한번 업데이트할 때마다 전체 데이터를 미분해야 하므로 계산량이 매우 많다는 경사 하강법의 단점을 보완한 방법
- 확률적 경사 하강법(Stochastic Gradient Descent, SGD
- 전체 데이터를 사용하는 것이 아니라, 랜덤하게 추출한 일부 데이터를 사용하므로 더 빨리 그리고 자주 업데이트를 하는 것이 가능해짐(속도 개선) - 모멘텀(momentum)
- 경사 하강법과 마찬가지로 매번 기울기를 구하지만, 이를 통해 오차를 수정하기 전 바로 앞 수정 값과 방향 (+, -)을 참고하여 같은 방향으로 일정한 비율만 수정되게 하는 방법
- 관성의 방향을 고려해 진동과 폭을 줄이는 효과를 가짐(정확도 개선) - 아담(Adam)
- 현재 가장 많이 쓰이는 방법으로 모멘텀과 RMSProp을 합친 방법(정확도와 보폭 크기 개선)
'딥러닝' 카테고리의 다른 글
| 딥러닝 이해 시작(8) - 다중분류_인코딩 (0) | 2022.06.15 |
|---|---|
| 딥러닝 이해 시작(7) - 오차 함수 (0) | 2022.06.13 |
| 딥러닝 이해 시작(5) - 활성화 함수 종류 (0) | 2022.06.12 |
| 딥러닝 이해 시작(4) - 로지스틱 회귀 (0) | 2022.06.12 |
| 딥러닝 이해 시작(3) - 선형회귀_1 (0) | 2022.06.12 |