본 게시물은 UDEMY 강좌 '딥러닝의 모든 것 with Python, Tensorflow, Pytorch'를 학습하고 요약한 게시물입니다.
- 강좌 URL : https://www.udemy.com/course/best-artificial-neural-networks/
> 프로그램 수행 방식
1) 하드코딩
- 프로그램에 구체적으로 규칙을 정해주고 원하는 결과를 알려주는 것으로, 프로그램이 처리해야 할 가능성이 있는 모든 옵션들을 설명해주는 것
2) 신경망
- 프로그램이 스스로 무슨 일을 하고 있는지 이해할 수 있는 기반을 만드는 것
→ 우리의 목표는 스스로 학습하는 네트워크를 만드는 것으로, 규칙을 추가하는 일은 최대한 피할 것이다.
> 예시 : 단층 피드포워드 신경망 (퍼셉트론)
- 출력값과 실제값을 비교하고, 이에대한 비용함수를 계산
- 비용함수는 사용할 수 있는 것으로 여러개가 있으나, 가장 흔하게 사용되는 것이 아래 사진들에서의(C) 예이다. (추후 경사하강법 강의에서 왜 이 함수여야하는지 설명 예정)
- 비용함수는 예측한 값에 오류가 있다는 것을 나타내고, 우리의 목표는 비용함수를 최소화하는 것이다.
1) 시험성적 예측 예시 : 한 개의 record로 설명
- 비용함수 산출이 끝나면, 이 정보가 신경망에 다시 주입되어 가중치가 업데이트 된다. → 이를 기반으로 입력데이터 다시 계산/활성화함수 적용 및 예측값 산출 및 비용함수 계산 → 가중치 업데이트 → 입력값 다시 계산 ... 반복
- 우리가 제어할 수 있는 것은 가중치 밖에 없다.
2) 시험성적 예측 예시 : 여러 개의 record로 설명
- 하나의 똑같은 신경망이며, 8번 반복했다고 할 수 있음
- row id 1이 한번 입력되어 예측값이 계산되고, row id 2가 입력되어 예측값이 계산되고, ... 총 8번이 반복이 된 이후에 총 비용함수가 산출되고 가중치 w1, w2, w3가 업데이트 된다. → 이 모든 과정을 반복 → 비용함수의 최소치를 찾는 순간 최종 신경망을 완성 (즉, 최적의 가중치를 찾음) → 이 과정 전체를 역전파라고 한다.
- 이때, 각각의 가중치 w1, w2, w3는 모든 record에 대하여 동일하다.