52. 머신러닝에서 미분의 필요성 – 핵심 이해와 응용 ( feat. 평균변화율 -> 순간변화율 )

안녕하세요, 다제입니다. 오늘은 머신러닝에서 미분의 중요성을 이해하고, 근본적인 이해부터 실질적인 응용까지 모델을 최적화 방법을 알아보고자해요. 머신러닝의 세계로 여러분을 안내하면서, 이 분야에서 필수적인 개념인 ‘미분’에 대해 논의해 보려고 합니다. 조금 더 구체적으로는 ‘미분이 머신러닝에서 왜 중요한가?’, ‘미분이란 구체적으로 무엇인가?’ 이 두 가지 주요 질문을 중심으로 살펴볼 예정입니다. 머신러닝 전문가의 시각에서 정확하고 깊이 있는 정보를 제공해 드리겠습니다.

.


머신러닝에서 미분의 필요성

우리는 머신러닝이 경험을 통해 특정 작업에 대한 성능이 좋아지는 프로그램이라는 것을 알고 있습니다. 

그렇다면 해당 머신러닝의 성능이 좋은지 안좋은지를 어떻게 알 수 있을까요?

결론부터 말씀드리면, 함수를 통해 해당 머신러닝의 성능평가를 진행하게 됩니다. 

img

정말 단순화하여 설명드려보겠습니다.

위 2차 그래프에서 극소점으로 내려갈수록 성능이 좋아진다고 가정해보겠습니다.

그렇다면 현재 위치를 확인한 후 극소점이 있는 방향으로 가야겠지요?

이때 기울기를 가지고 덜 가파른 지점으로 이동을 하게 됩니다.

(일반적으로 성능이 좋은 지점이 극소점, 극대점인 경우가 많습니다.)

머신러닝의 성능을 판단하기 위해서 우리는 미분을 알 수 밖에 없겠죠?

아무리 좋은 기능이더라도 요즘은 느리면 안쓰고, 빠른데 부정확하다 생각되면 없어지는 세상입니다..

바르게 공부하여 효율적인 머신러닝을 함께 만들어 보시죠!


자! 충분히 우리가 미분을 배우게 될 이유는 알았고 이제부터 천천히 공부해볼까 합니다!

제 글을 정독해 보니 딱 10분이면 가능했습니다. 

바로 고고고! 

우리는 그 동안 pandas를 통해 직선그래프를 쭉~ 연습해왔습니다. 

이런 직선그래프의 기울기 보면서 얼마나 빠르게, 얼마만큼 변했는지를 한 눈에 볼 수 있었습니다.  

1. 곡선그래프 기울기 구하기 

그런데,, 두둥 이런 곡선 그래프에서는

기울기를 어떻게 알 수 있을까요? 음.. 고민이 되시죠?

지금까지 직선만 봤는데… 이때 미분이 필요합니다!

img

1) 일단, a에서 b로 직선을 하나 그어볼까요?

2) 두 점에 대한 기울기는 f(b) – f(a) / b – a라고 기재할 수 있고 우리는 이를 평균변화율이라고 부릅니다. 

img

3) 그리고 a부터 b까지의 길이를 h라고 정의해 보겠습니다.

4) 우리는 b를 b = a + h 정의할 수 있고 그래프도 이렇게 바꿀 수 있습니다.  

img

5) 기울기를 f(a+h) – f(a) / h로 바꿀 수 있습니다. 

6) 그럼 h가 점점 줄어든다고 가정해볼까요? 그러다가 a와 아주 근접하게 되며

    a의 순간변화율을 구할 수 있게 됩니다. 

7) 이렇게 함수의 “특정 지점의 순간적인 변화를 구하는 방법”을 미분이라고 합니다. 

그런데 매번 이렇게 구할 수가 없으니 

아래와 같이 간단하게 진행할 수 있습니다. 

2. 간단한 미분 방법 & 기울기의 의미 

1) 차수를 그대로 변수 앞으로 내린다. 

2) 내린 차수는 -1을 해주고 기존 차수 위치에 기재한다. 

y = x^2 – 2x + 1   ->   y = 2x – 2

혹시 이해가 안되신다면 유튜브에 간단한 검색하시면 훨씬 쉽게 이해하실 수 있습니다. 

저도 쉽게 이해시켜드리기 위해 노력하나… 기술이 부족하여….

자 그럼 이렇게 기울기를 구하여 우리는 어디에 사용할 수 있을까요?

 1. 그래프가 해당 지점에서 얼마나 기울어져 있는지  
 2. 어떤 방향으로 가야 가장 가파르게 올라갈 수 있는지 
 -> 성능평가에 사용

3. 극소점 & 극대점 & 안장점 

순간변화율이 0인 지점은 아래와 같이 크게 3종류로 나뉠 수 있습니다. 

보통 위 점들이 머신러닝의 최적화 지점이 되는 경우가 많다.  

극소점 : 주위의 모든 점의 함숫값 이하의 함숫값을 갖는 점

극대점 : 주위의 모든 점의 함숫값 이상의 함숫값을 갖는 점

안장점 : 어느 방향에서 보면 극대값이지만 다른 방향에서 보면 극소값이 되는 점

미분

출처 : https://ko.wikipedia.org/wiki/%EA%B7%B9%EA%B0%92

4. 다변수함수의 미분 

지금까지는 input 변수가 1개인 경우를 살펴보았습니다. 

이제 input 변수가 두개인 경우를 살펴보겠습니다. 

input 변수가 x,y로 두가지인 경우 편미분을 해야합니다. 

편미분이란? 두 변수 중 하나만 골라서 미분을 하는 것을 말합니다. 

f(x, y) = x^2 + y^2라고 한다면 

x에대한 편미분

x 외에 다른 변수를 상수항 취급함  ->  f(x, y) = 2x

y에 대한 편미분 

y 외에 다른 변수를 상수항 취급함  ->  f(x, y) = 2y

이렇게 산출된 편미분을 백터에 넣어주면 해당 백터가 다변수함수의 기울기가 된다

또한, 이 기울기는 가장 가파르게 올라갈 수 있는 방향을 알려주게 된다. 

자! 최종적으로 정리를 해보면 우리는 미분을 통해서

극소점, 극대점, 안장점, 기울기 가파른 방향을 알 수 있습니다. 

위와 같은 수학적 개념을 이용하여 

머신러닝의 성능평가와 최적화를 할 수 있다! 

그래서 미분에 대한 정확한 이해가 필요하다고만 알아주시면 됩니다. 

공부하시다가 모르시는 부분이 있으시면 댓글 부탁드립니다! 

오늘도 방문해주셔서 감사합니다. 

오늘 글을 읽고 이러한 점들을 자유롭게 이야기할 수 있는지도 한번 확인해보면 좋을거 같아요!

FAQ

  1. 머신러닝에서 미분이 왜 중요한가요?
  2. 곡선 그래프의 기울기를 구하는 방법은 무엇인가요?
  3. 미분을 간단히 하는 방법은 무엇인가요?
  4. 미분을 통해 머신러닝에서 어떤 것들을 최적화할 수 있나요?
  5. 다변수함수의 미분이란 무엇인가요?

제가 포스팅한 다른 글도 한번 놀러와주세요!

63. 그래디언트 클래핑(Gradient Clipping)이란?

인공지능 모델을 파인튜닝할 때 Gradient Clipping이라는 기술을 자주 사용합니다. 이 기술은 새로운 데이터를 학습할 때 모델의 가중치가 급격하게 변화하는 것을 방지하는 역할을 합니다. 이번 포스팅에서는 Gradient Clipping의 원리와 작동 방식을 좀 더 자세히 알아보겠습니다. 그래디언트 클래핑이란? 신경망 학습 과정에서 발생하는 그래디언트 폭주(Gradient Exploding) 문제를 해결하는 중요한 기법입니다. 그래디언트 폭주는 역전파 과정에서 그래디언트가 지나치게 커져 가중치…

Continue Reading 63. 그래디언트 클래핑(Gradient Clipping)이란?

Chat Template Logger(ChatGPT, Claude, LLaMA-3)

우리는 매일 ChatGPT, Claude 등의 AI 챗봇을 사용하며 무의식적으로 양질의 데이터를 생성하고 있습니다. 하지만 대부분의 경우, 이렇게 만들어진 귀중한 데이터들은 저장되지 않고 사라지고 맙니다. 이 프로젝트는 사용자가 AI와의 대화를 통해 만든 양질의 데이터셋을 쉽게 정리하고 저장할 수 있도록 돕는 간단한 웹 애플리케이션입니다.

Continue Reading Chat Template Logger(ChatGPT, Claude, LLaMA-3)

답글 남기기