IT의 기반, 반도체 하드웨어/소프트웨어 Software AI

머신러닝 선형회귀 경사하강법에서의 편미분과 체인 룰 | AI Linear Regression Gradient Descent Chain Rule

에스도비91 2025. 2. 11. 21:27
반응형

머신러닝의 기본으로 가장 간단한 모델링의 예

Linear Regression(선형회귀)로 주로 시작합니다.

공부하다가 가물가물한 편미분이 나왔는데

습관적으로 d/dx로만 생각해서 좀 헷갈렸습니다.

선형회귀에서 편미분과 Chain Rule이 어떻게

쓰이는지 같이 한번 보시죠.

raw_data : x, y dataset(표본 x의 결과값 y)

우선, 선형 Linear는 말 그대로, 1차 함수로 

y= w*x+b (weight 가중치, bias 편향)

 

 

AI 머신러닝과 딥러닝의 차이 Artificial Intelligence Machine & Deep Learning

너무 뻔한 인트로지만,요즘 대세 Artificial Intelligence, 인공지능저도 공부를 시작했습니다. 현업에서 업무효율화 자동화 업무에알고리즘을 세워 짠 코드로 프로그래밍하며** algorithm - Coding - Program

s-dobby.tistory.com

 

머신러닝은 기계 학습 전, 사람이 먼저 모델링을

세워줘야한다 했었죠? 즉, dataset(x_input)의

경향성이 위 식을 따른다고 가정(Hypothesis)

하는 거죠. 이를 다시 적어보면

H(x)=w*x+b


여기서 w와 b는 난수(random #)로 start를 끊고

 

위와 같이 '학습'을 해나가며 dataset이 가장 잘

들어맞는 linear 경향의 1차 함수를 찾게 되는거죠.

그러고 보니 이거,, 공돌이를 갈아넣어 답을 찾는

몬테카를로 방법을 컴퓨터에게 시키는 느낌이군요.

공밀레~

 

MSE ( Mean Squared Error )

아무튼

input에 가설 모델링까지 끝냈으니 중간 검증

을 해야 그 결과를 토대로 학습을 진행하겠죠?

Cost(lost) function : 비용(손실) 함수라 하며

이것도 여러가지가 있는데, 가장 기본이자

선형회귀에서 주로 쓰는 것은 MSE,

Mean Squared Error 입니다.

난수로 계산된 H(x)와 결과값 y의 차이(오류 정도)

w*x+b-y의 제곱들을 평균한 함수입니다

 

 

이걸 가로축 w, 세로축 Cost(w,b)인 그래프로

그려보면 2차 함수 형태가 나오고 드디어!!

이제 편미분을 쓸 때가 왔습니다.

위 2차 함수 Cost(w,b)의 d/dw 경사를 줄이는

방향으로 학습하면_경사하강법 Gradient Descent

gradient zero 원점으로 가겠죠? 그게 학습이 완료돼

error가 최소인 w, b의 정답을 찾게되는겁니다.

그 경사를 구하는게 편미분..

 

 

제가 자꾸 헷갈렸던 부분은 dCost/dw를 하는데

d/dx로 생각해서 (w*x+b-y) 뒤에 왜 또 *x가 나오지

하는 거였습니다..ㅎㅎ 별거 아니긴 한데 이 부분을

제대로 이해해야 나중에, x를 normalized하는게

왜 w의 비중을 높혀 효율적으로 학습이 되는지

이해됩니다.(x가 제곱이니까 normalized 필수)   

 

그리고 dCost/dw 편미분 시 그냥 익숙하게

하셨을텐데 여기 연쇄 규칙 chain rule이

숨어있습니다. 그냥 간단해서 자연스럽게

넘어간것 같긴한데,, 굳이 집어보자면

 

 

합성함수의 미분이 위 규칙으로 된다는게

Chain Rule, dCost(w,b)/dw는 위 식에 의해

d/dx * Cost(w,b)= dCost(w,b) /dH(x) * dH(x)/dx

라서, Cost(w,b)=(H(x)-y)^2이고 H(x)=w*x+b 니까

= 2*(wx+b-y)*x 로도 풀 수 있다는.. 그런 소리

 

 

이제 마무리하자면, 위 w, b의 편미분이 Cost-w함수

에서 가로, 세로축의 변화량이 되고 이것이 원점 방향

- 취해줘서 위 식과 같이 됩니다. 그리고 앞에 상수

η(Learning rate)가 붙어 학습 속도를 control

할 수 있는데, 이는 나중에 코드 실습에서 보고

위 이미지에서 learning rate가 너무 크면

원점으로 안가고 오히려 발산해서 학습 자체가

안될 수도 있다.. 이정도 개념만 잡고 가면 됩니다.

 

간단하게 정리하려했는데 생각보다 길어졌네요..

반응형