안녕하세요, 다제입니다. 오늘은 머신러닝에서 미분의 중요성을 이해하고, 근본적인 이해부터 실질적인 응용까지 모델을 최적화 방법을 알아보고자해요. 머신러닝의 세계로 여러분을 안내하면서, 이 분야에서 필수적인 개념인 ‘미분’에 대해 논의해 보려고 합니다. 조금 더 구체적으로는 ‘미분이 머신러닝에서 왜 중요한가?’, ‘미분이란 구체적으로 무엇인가?’ 이 두 가지 주요 질문을 중심으로 살펴볼 예정입니다. 머신러닝 전문가의 시각에서 정확하고 깊이 있는 정보를 제공해 드리겠습니다.
.
머신러닝에서 미분의 필요성
우리는 머신러닝이 경험을 통해 특정 작업에 대한 성능이 좋아지는 프로그램이라는 것을 알고 있습니다.
그렇다면 해당 머신러닝의 성능이 좋은지 안좋은지를 어떻게 알 수 있을까요?
결론부터 말씀드리면, 함수를 통해 해당 머신러닝의 성능평가를 진행하게 됩니다.
정말 단순화하여 설명드려보겠습니다.
위 2차 그래프에서 극소점으로 내려갈수록 성능이 좋아진다고 가정해보겠습니다.
그렇다면 현재 위치를 확인한 후 극소점이 있는 방향으로 가야겠지요?
이때 기울기를 가지고 덜 가파른 지점으로 이동을 하게 됩니다.
(일반적으로 성능이 좋은 지점이 극소점, 극대점인 경우가 많습니다.)
머신러닝의 성능을 판단하기 위해서 우리는 미분을 알 수 밖에 없겠죠?
아무리 좋은 기능이더라도 요즘은 느리면 안쓰고, 빠른데 부정확하다 생각되면 없어지는 세상입니다..
바르게 공부하여 효율적인 머신러닝을 함께 만들어 보시죠!
자! 충분히 우리가 미분을 배우게 될 이유는 알았고 이제부터 천천히 공부해볼까 합니다!
제 글을 정독해 보니 딱 10분이면 가능했습니다.
바로 고고고!
우리는 그 동안 pandas를 통해 직선그래프를 쭉~ 연습해왔습니다.
이런 직선그래프의 기울기 보면서 얼마나 빠르게, 얼마만큼 변했는지를 한 눈에 볼 수 있었습니다.
1. 곡선그래프 기울기 구하기
그런데,, 두둥 이런 곡선 그래프에서는
기울기를 어떻게 알 수 있을까요? 음.. 고민이 되시죠?
지금까지 직선만 봤는데… 이때 미분이 필요합니다!
1) 일단, a에서 b로 직선을 하나 그어볼까요?
2) 두 점에 대한 기울기는 f(b) – f(a) / b – a라고 기재할 수 있고 우리는 이를 평균변화율이라고 부릅니다.
3) 그리고 a부터 b까지의 길이를 h라고 정의해 보겠습니다.
4) 우리는 b를 b = a + h 정의할 수 있고 그래프도 이렇게 바꿀 수 있습니다.
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
- 머신러닝에서 미분이 왜 중요한가요?
- 곡선 그래프의 기울기를 구하는 방법은 무엇인가요?
- 미분을 간단히 하는 방법은 무엇인가요?
- 미분을 통해 머신러닝에서 어떤 것들을 최적화할 수 있나요?
- 다변수함수의 미분이란 무엇인가요?
Differential Transformer
마이크로스프트에서 새로운 트랜스포머 아키텍처(differentialTranformer)를 소개했습니다.
[Review] Chain-of-Thought(CoT)
Chain-of-Thought(CoT)
63. 그래디언트 클래핑(Gradient Clipping)이란?
인공지능 모델을 파인튜닝할 때 Gradient Clipping이라는 기술을 자주 사용합니다. 이 기술은 새로운 데이터를 학습할 때 모델의 가중치가 급격하게 변화하는 것을 방지하는 역할을 합니다. 이번 포스팅에서는 Gradient Clipping의 원리와 작동 방식을 좀 더 자세히 알아보겠습니다. 그래디언트 클래핑이란? 신경망 학습 과정에서 발생하는 그래디언트 폭주(Gradient Exploding) 문제를 해결하는 중요한 기법입니다. 그래디언트 폭주는 역전파 과정에서 그래디언트가 지나치게 커져 가중치…
Chat Template Logger(ChatGPT, Claude, LLaMA-3)
우리는 매일 ChatGPT, Claude 등의 AI 챗봇을 사용하며 무의식적으로 양질의 데이터를 생성하고 있습니다. 하지만 대부분의 경우, 이렇게 만들어진 귀중한 데이터들은 저장되지 않고 사라지고 맙니다. 이 프로젝트는 사용자가 AI와의 대화를 통해 만든 양질의 데이터셋을 쉽게 정리하고 저장할 수 있도록 돕는 간단한 웹 애플리케이션입니다.
Continue Reading Chat Template Logger(ChatGPT, Claude, LLaMA-3)
Multi-Modal Preprocessor(HWP->Markdown)
Multi-Modal Preprocessor(HWP->Markdown)