개발자의 스터디 노트
지도학습이란? 본문
머신러닝에서 지도 또는 지도학습은 샘플에 대응하는 타깃(예측하는 값)의 정답을 제공하는 방식을 말합니다.
지도학습을 그림으로 그리면 아래 와 같습니다.
샘플
- 샘플은 예측에 사용하는 아이템입니다. 샘플은 x로 표시합니다. 샘플을 입력(input)이라고 부릅니다.
타깃
- 타깃은 샘플에 상응하는 레이블(label)입니다. 일반적으로 예측되는 대상이니다. 머신러닝/딥러닝의 표준적인 표기법에 따라 y로 나타냅니다. 레이블을 정답이라고 부릅니다.
모델
- 모델(model)은 수학식이나 샘플 x를 받아 타깃 레이블값을 예측하는 함수입니다.
파라미터
- 파라미터는 가중치(weight)라고도 부릅니다. 파라미터가 모델을 규정합니다. 기본적으로 가중치를 의미하는 w 또는 w^ 을 사용합니다.
손실함수
- 손실 함수는 훈련 데이터에 대한 예측이 얼마나 멀리 떨어져 있는지 비교하는 함수 입니다. 타깃과 예측이 주어지면 손실 함수는 손실(loss)이라 부르는 실수 스칼라값을 계산합니다. 손실이 낮을수록 타깃 예측을 더 잘하는 모델입니다. 손실 함수는 L로 표기합니다.
(확률적) 경사 하강법을 사용한 훈련
경사하강법(gradient descent)
- 전통적인 경사 하강법에서는 근(파라미터)의 초깃값을 추측한 다음 목적함수(objective function 혹슨 손실함수)의 값이 수용할만한 임계점(수렴 조건) 아래로 내려갈 때까지 파라미터를 반복해서 업데이트합니다. 데이터셋이 크면 메모리 제약 때문에 전체 데이터셋을 사용하는 전통적인 경사하강법을 적용하기 어렵고 계산 비용이 높아 매우 느립니다.
확률적 경사 하강법(stochastic gradient descent(SGD)
- 데이터 포인트(data point)를 하나 또는 일부 랜덤하게 선택하여 그레디언트(gradient)를 계산합니다. 데이터 포인트를 하나 사용하는 방법은 순수 SGD(pure SGD), 여러 개(두개이상) 사용하는 방법은 미니배치 SGD(minibatch SGD)라고 부릅니다.
- 순수 SGD는 업데이트에 잡음이 많아 수렴이 매우 느리므로 실전에서는 거의 사용하지 않습니다.
역전파(backpropagation)
- 파라미터를 반복적으로 업데이트 하는 과정
- 역전파의 각 단계(에포크 epoch)는 정방향 계산(forward pass)과 역방향 계산(backward pass)으로 구성됩니다.
- 정방향 계산은 현재 파라미터값으로 입력을 평가하여 손실 함수를 계산합니다.
- 역방향 계산은 손실의 그레디언트를 사용하여 파라미터를 업데이트 합니다.
https://velog.io/@arittung/DeepLearningStudyDay8
'파이썬 > 파이토치 자연어처리' 카테고리의 다른 글
텐서를 만들어 봅시다. (0) | 2022.02.08 |
---|---|
샘플과 타깃의 인코딩 (0) | 2022.02.08 |
파이토치를 설치 해 봅시다. (0) | 2022.02.07 |
아나콘다 가상환경 생성하고 Jupyter NoteBook 설치 (0) | 2022.02.07 |
아나콘다 설치 (0) | 2022.02.07 |