PyTorch를 공부하면서 참고한 NeoWizard(박성호)님의 YouTube영상을 토대로 내용을 정리함.
실제 영상 강의를 보고 싶은 분들은 아래 링크로 ㄱㄱ!
출처: https://www.youtube.com/@NeoWizard
NeoWizard
강의실 - 머신러닝, 딥러닝 - 텐서플로우 1.x, 텐서플로우 2.x - PyTorch, 파이토치 - YOLO - 프로그래밍 - 데이터분석, 판다스
www.youtube.com
✔️ 손실함수는 오차의 평균값을 나타내기 때문에 손실함수가 최소값을 갖는다는 것은 실제 정답과 오차가 최소가 되어, 미지의 데이터에 대해서 결과를 더 잘 예측 할 수 있다는 것을 의미함.
✔️ 이런 손실함수는 W, b 에 영향을 받기 때문에, 손실함수가 최소가 되는 가중치 W와 바이어스 b를 찾는 것이 regression을 구현하는 최종 목표임.
💡손실함수(loss function) 계산
✔️ 바이어스 b가 0이라고 가정할 때 W 변화에 따른 손실 값은 위의 표와 같은데, 이를 그래프로 나타내면 아래와 같다.
✔️ 다음과 같이 손실함수는 포물선 형태로 그려지며, 가중치 1일때 손실 최소값은 0임.
✔️ 이런 손실함수에서의 최소값을 가지는 가중치 W를 찾는 것이 우리가 구현하고자 하는 regression 최종목표임.
💡경사하강법 원리
✔️ 1️⃣ 임의의 가중치 W 선택 -> 2️⃣ 그 W 에서 직선의 기울기를 나타내는 미분 값(해당 W에서의 미분값을 구함) -> 3️⃣ 그 미분값이 작아지는 방향으로 W 감소(또는 증가) 시켜 나가면 -> 4️⃣ 최종적으로 기울기가 더 이상 작아지지 않는 곳을 찾을 수있음. 그곳이 손실함수 E(W) 최소값임을 알 수 있음.
✔️ 이 W에서의 직선의 기울기인 미분 값을 이용하여, 그 값이 작아지는 방향으로 진행하여 손실함수 최소값을 찾는 방법을 경사하강법(Gradient decent algorithm) 이라고 함.
- Ex) W = 2.5 일 때, 기울기는 양수(+) 이기 때문에 W를 왼쪽으로 이동하며 감소시켜 최종적으로 W = 1에서 멈추도록 해야함.
- Ex) W = -0.5 일 때, 기울기는 음수(-) 이기 때문에 W를 오른쪽으로 이동하며 증가시켜 최종적으로 W = 1에서 멈추도록 해야함.
- W = W - (α * E(W, b) / W)
- 편미분 E(W, b) / W 해당 W 에서 기울기(slope)를 나타냄.
- E(W, b) / W 가 양수(+)라면 W는 왼쪽으로(감소) 이동시켜야 손실함수 E(W) 최소값 찾음.
- 반대로 E(W, b) / W 가 음수(-)라면 W는 오른쪽으로(증가) 이동시켜야 손실함수 E(W) 최소값 찾음.
- α는 학습률(learning rate)이라고 부르며, W 값의 감소 또는 증가 되는 비율을 나타냄.
'스터디-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] 선형회귀(Linear Regression), 손실함수 (0) | 2024.10.15 |
[PyTorch] 모델 구조 (0) | 2024.10.15 |
[PyTorch] 텐서(Tensor) (0) | 2024.10.11 |