본문 바로가기

LinearRegression4

[PyTorchZeroToAll] 5. Linear Regression in the PyTorch way 이번 시간에는 파이토치를 사용하여 선형 회귀를 구현해보도록 하겠다. 파이토치를 사용하는 법은 위와 같다. 먼저 모델을 클래스와 Variable을 사용해서 만든다. 그 다음 손실함수를 정의하고, 최적화한다. 세번째는 forward, backward, update과정을 거쳐 모델을 제대로 학습한다. 먼저 torch를 import한 뒤 Variable을 import한다. 그 후 입력 데이터와 정답 데이터들을 정의한다. 그 다음 위와 같이 model class를 만든다. class에 반드시 들어가야할 함수는 모델을 초기화하는 함수와 forward를 수행하는 함수이다. 초기화함수 __init__에서는 super을 통해 호출하고, 입력과 출력의 개수를 결정해준다. forward함수는 x를 입력으로 받아서 y를 출력.. 2020. 1. 22.
[PyTorchZeroToAll] 3. Gradient Descent 이번 시간에는 손실 함수의 최소값을 알기 위해서 사용하는 gradient descent 알고리즘에 대해 알아보도록 하겠다. 저번 시간에 배웠듯이 가중치값을 달리하면서 에러의 평균값들을 알아내서 손실 그래프를 그릴 수 있었다. 우리는 손실 함수의 값을 최소로 하는 가중치를 사용하여 모델을 훈련시키고 싶은 것이다. 그렇다면 이번에는 Linear Regression Error에 대해 알아보도록 하겠다. 위 예에서는 파란 선이 맞는 weight을 사용한 것이므로 우리는 주황색이든 초록색이든 선에서 시작해서 파란선으로 가까이 가게 해야한다. 우리가 해야할 것은 손실 함수를 최소로 하게 하는 가중치 weight을 찾는 것이고, 이것을 pytorch에서는 argmin 함수로 알아낼 수 있다. 위의 arg_w_minl.. 2020. 1. 21.
[DLBasic] Lecture 4. Multi-variable Linear Regression 저번 시간에 hypothesis, cost function, gradient descent algorithm에 대해 배웠다. 또 input이 하나일 때는 위와 같은 data가 나오고 x 하나로 y 하나를 예측하면 된다. 오늘 배울 것은 여러 개의 input으로 결과 하나를 예측하는 multi-variable linear regression이다. 위와 같은 경우에는 input이 3개이다. 이런 경우에는 변수가 3개나 있어서 이전의 방법과는 다른 방법을 써야한다. 입력이 3개일 때 가설과 cost function은 위와 같은 모양이 될 것이다. variable이 더 많은 경우도 위와 같이 설정할 수 있다. 그런데 이렇게 나열하다보니 매우 불편해진다. 그래서 matrix를 사용하려고 한다. 위와 같이 우리의 .. 2020. 1. 15.
[DLBasic]Lecture 2. Linear Regression Linear Regression은 Machine Learning에서 실제로 많이 사용된다. 저번 시간에 설명했던 것과 같이 어떤 학생의 공부한 시간별 시험 성적이 0~100점까지의 연속적인 넓은 범위 안에서의 한 값이라고 한다면 Regression을 사용한다. 이것은 이미 주어진 데이터들로 학습을 하는 것이니 Supervised Learning에 속한다. 데이터를 가지고 학습을 하는 과정은 Training이라고 하고, regression으로 모델을 하나 만들고 나서 regression을 사용해서 공부 시간을 주고 시험 점수를 예측하게 할 수 있다. 위의 표는 Training Data의 예이고, Regression Model을 만들어보자. x는 예측하기 위한 기본적인 자료, Feature이라고 하고, y는.. 2020. 1. 15.