본문 바로가기
개발/PyTorch

[PyTorch] PyTorch로 시작하는 딥 러닝 입문(공부 메모) (03)

by 나만의방식 2022. 3. 22.

ㅍ소스 : https://wikidocs.net/book/2788

 

PyTorch로 시작하는 딥 러닝 입문

이 책은 딥 러닝 프레임워크 PyTorch를 사용하여 딥 러닝에 입문하는 것을 목표로 합니다. 이 책은 2019년에 작성된 책으로 비영리적 목적으로 작성되어 출판 ...

wikidocs.net

 

03. 선형 회귀(Liner Regression)

샘플의 다양한 속성 정보로 샘플에 대한 특정 정보를 예측하는 경우 등에 적용 가능하다.

예를 들어서 몇 시간 공부 했을 때 몇 점을 받을지 예측하는 경우,

공부한 시간별 받은 점수의 실 데이터로 학습된 모델을 만든다.

모델은 공부한 시간을 입력으로 주면 몇 점을 받을지 예측 점수를 알려준다.

 

데이터 분석을 통해서 선형 회귀 모델을 만드는 경우.

 

(구현 방법:Start)

 

0.1. 가설 수립 : H(x) = Wx + b (x:값, H(x):결과값, W:가중치, b:편향)

     속성정보로 결과값 예측

     가중치 : 직선의 기울기

     편향 : y절편 값

0.2. 비용함수 수립 : 평균제곱오차(MSE:Mean Squared Error)

     예측값들과 실제값들을 비교하여 그 차이를 계산한다.

0.3. 옵티마이저 선택 : 경사하강법(GD:Gradient Descent), lr(Learning-Rate)

     비용을 최소화 하기 위해 W와  b를 lr 만큼 조정한다.

 

04. 학습 횟수 : epochs

 

1. 데이터 준비 : 훈련용 Data, 검증용 Data, 테스트용 Data

    x_train : 샘플의 속성들로 구성

    y_train : 결과의 실제 값

 

2. 가설 변수 초기화

   W, b, lr, epochs

 

3. 학습 횟수 만큼 반복 학습

3.1. 가설에의해 결과값 예상 : x_train, W, b -> hypothesis

3.2. 비용함수로 비용 계산 : hypothesis, y_train -> cost

3.3. 옵티마이저로 학습 : cost, lr, W, b -> (new)W, b

 

4. 학습 결과 : W, b

 

5. 검증 : 검증용 Data 사용

5.1. 학습 결과의 W, b를 적용한 가설 함수로 결과값 예측

5.2. 검증용 Data의 실제값과 비교

5.3. 비교 결과 추가 학습 여부 판단.

 

6. 테스트 : 테스트용 Data 사용

6.1. 검증된 W, b를 적용한 가설 함수로 결과값 예측

6.2. 테스트용 Data의 실제값과 비교

6.3. 성공 여부 판단

 

(구현 방법:End)

 

(용어)

Hypothesis : 가설 : 머신 러닝에서 예측값을 구하기 위해 작성하는 수학 식.

Cost function : 비용 함수 : 가설에 의해 예측한 예측값과 실제값과의 차이를 계산하는 식.

   Loss function(손실 함수), Error function(오차 함수), Object function(목적 함수) 라고도 한다.

   비용을 최소화 하는 가설(식)을 구하는 것을 학습이라고 한다.

Optimizer algorithm : 옵티마이저 알고리즘: 비용을 최소화 하는 가설(식)을 구하는 최적화 알고리즘.

Weight, Bias : 가중치, 편향 : 가설(식)에서 사용되는 값.

Epoch : 에포크 : 훈련용 Data 전체가 1회 학습에 사용되는 것.

 

(참고)

https://tutorials.pytorch.kr/beginner/blitz/tensor_tutorial.html

 

텐서(Tensor) — PyTorch Tutorials 1.10.2+cu102 documentation

Note Click here to download the full example code 텐서(Tensor) 텐서(tensor)는 배열(array)이나 행렬(matrix)과 매우 유사한 특수한 자료구조입니다. PyTorch에서는 텐서를 사용하여 모델의 입력과 출력뿐만 아니라

tutorials.pytorch.kr