PyTorch를 공부하면서 참고한 NeoWizard(박성호)님의 YouTube영상을 토대로 내용을 정리함.
실제 영상 강의를 보고 싶은 분들은 아래 링크로 ㄱㄱ!
출처: https://www.youtube.com/@NeoWizard
회귀(Regression)
회귀(Regression)
✔️ Training Data를 이용해 데이터의 특성과 상관관계 등을 파악하고, 그 결과를 바탕으로 Training Data에 없는 미지의 데이터가 주어졌을 경우에, 그 결과를 연속적인(숫자) 값으로 예측하는것
- Ex) 공부시간과 시험성적 관계, 집 평수와 집 가격 관계 등
✔️ 입력으로 공부시간(x)과 그에 대응되는 시험성적(y)인 training data를 이용하여(1️⃣) 특성과 상관관계를 파악한 후(2️⃣), 그 결과를 바탕으로 trainig data에 없는 값 55, 60, 78 으로(3️⃣) 예측값(t)을 도출함(4️⃣)
학습(learning)
✔️ 트레이닝 데이터를 먼저 분석하고 그 데이터의 분포를 가장잘 나타내는 1차함수의 기울기 W와 b를 찾는 과정
✔️ 입력값 트레이닝 데이터인 공부시간(x)에 비례해 출력값 시험성적(t)도 증가하는 경향이 있음, 즉 입력(x)과 출력(y)는 y = Wx+b로 나타낼 수 있음
✔️ [step2] 1, 2, 3 그래프 중, 트레이닝 데이터의 특석을 가장 잘 표현할 수 있는 가중치 W(기울기), 바이어스b(y절편)을 찾는 것이 학습(learning) 개념임
오차(error), 가중치(weight) W, 바이어스(bias) b
✔️ 트레이닝 데이터의 정답(t)과 직선 y = Wx+b 값의 차이인 오차(error)는
오차(error) = t-y = t-(Wx+b) 로 계산되며,
오차가 크다면 우리가 임의로 설정한 직선의 가중치와 바이어스 값이 잘못된 것이고, 오차가 작다면 직선의 가중치와 바이어스 값이 잘
된것이기 때문에 미래 값 예측도 정확할 수 있다고 예상할 수 있음.
✔️ 머신러닝의 회귀(regression) 시스템은, 모든 데이터의 오차(error) = t-y = t-(Wx+b) 의 합이 최소가 되서, 미래 값을 잘 예측할 수 있는 가중치 W와 바이어스 b 값을 찾아야 함.
손실함수(loss function)
✔️손실함수(loss function 또는 cost function)는, 트레이닝 데이터의 정답(t)와 입력(x)에 대한 계산 값 y의 차이를 모두 더해 수식으로 나타낸 것
✔️ 각가의 오차인 (t-y) fmf ahen ejgo thstlfgkatn(loss function)을 구하면 가가의 오차가 (+), (-) 등이 동시에 존재하기 때문에 오차의 합이 0이 나올 수도 있음. 즉, 0이라는 것이 최소 오차 값인지 아닌지 판별하는 것이 어려움.
✔️ 그래서 손실함수에서 오차(error) 를 계산할 때는 (t-y)^2 = (t-[Wx+b])^2 을 사용함. 즉, 오차는 언제나 양수이며, 제곱을 하기때문에 정답과 계산값 차이가 크다면, 제곱에 의해 오차는 더 큰 값을 가지게 되어 머신러닝 학습에 있어 장점을 가짐.
✔️ 각각의 정답 t에서 계산값 y를 빼서 제곱을 한 뒤, 그런 제곱값들을 모두 더한 뒤에 트레이닝 데이터의 개수로 나눔. 즉 손실함수는 모든 데이터에 대한 평균 오차값을 나타낸다고 볼 수 있음.
✔️ x와 t는 트레이닝 데이터에서 주어지는 값이므로, 손실함수(loss function)인 E(W, b)는 결국 W와 b에 영향을 받는 함수임.
✔️ E(W, b) 값이 작다는 것은 정답(t, target)과 y = Wx+b 에 의해 계산된 값의 평균 오차가 작다는 의미
✔️ 평균 오차가 작다는 것은 미지의 데이터 x가 주어질 경우, 확률적으로 미래의 결과값도 오차가 작을 것이라고 추측할 수 있음.
✔️ 이처럼 트레이닝 데이터를 바탕으로 손실 함수 E(W, b)가 최소값을 갖도록 (W, b) 를 구하는 것이 (linear) regression model의 최종 목적임.
'스터디-ing > AI' 카테고리의 다른 글
[PyTorch] PIDNet 논문 리뷰(PIDNet: A Real-time Semantic Segmentation Network Inspired by PIDControllers) (0) | 2025.01.18 |
---|---|
[PyTorch] 로지스틱 회귀(Logistic Regression) (0) | 2024.10.28 |
[PyTorch] 경사하강법(Gradient decent algorithm) (0) | 2024.10.15 |
[PyTorch] 모델 구조 (0) | 2024.10.15 |
[PyTorch] 텐서(Tensor) (0) | 2024.10.11 |