안녕하세요, 다제입니다. 오늘은 머신러닝에서 미분의 중요성을 이해하고, 근본적인 이해부터 실질적인 응용까지 모델을 최적화 방법을 알아보고자해요. 머신러닝의 세계로 여러분을 안내하면서, 이 분야에서 필수적인 개념인 ‘미분’에 대해 논의해 보려고 합니다. 조금 더 구체적으로는 ‘미분이 머신러닝에서 왜 중요한가?’, ‘미분이란 구체적으로 무엇인가?’ 이 두 가지 주요 질문을 중심으로 살펴볼 예정입니다. 머신러닝 전문가의 시각에서 정확하고 깊이 있는 정보를 제공해 드리겠습니다.
.
머신러닝에서 미분의 필요성
우리는 머신러닝이 경험을 통해 특정 작업에 대한 성능이 좋아지는 프로그램이라는 것을 알고 있습니다.
그렇다면 해당 머신러닝의 성능이 좋은지 안좋은지를 어떻게 알 수 있을까요?
결론부터 말씀드리면, 함수를 통해 해당 머신러닝의 성능평가를 진행하게 됩니다.
정말 단순화하여 설명드려보겠습니다.
위 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
- 머신러닝에서 미분이 왜 중요한가요?
- 곡선 그래프의 기울기를 구하는 방법은 무엇인가요?
- 미분을 간단히 하는 방법은 무엇인가요?
- 미분을 통해 머신러닝에서 어떤 것들을 최적화할 수 있나요?
- 다변수함수의 미분이란 무엇인가요?
Multi-Modal Preprocessor(HWP->Markdown)
Multi-Modal Preprocessor(HWP->Markdown)
60. Google Cloud – Build AI with Google 리뷰
Google Cloud – Build AI with Google 리뷰
오늘 Build AI with Google에 참여했어요. 지난주 발표한 Google I/O에 이어 크게 5개의 섹션으로 나누어 설명해주었어요. 설명해준 내용에 대해 전반적으로 내용을 먼저 공유 드릴게요
When Should you use SQLite?
가끔 어떤 DB를 사용해야하는지 잘 모르셨죠? 오늘은 SQLite에 대해서 알아보고자 해요. 쉽게 결론부터 말씀드리면, 동시성 작업이 만이 없을때 하루 10만건 이하의 트래픽이 발생될 때 쓰면 좋습니다. 이제 상세하게 어떨때 쓰면 좋고, 언제 쓰면 안좋은지 살펴볼게요! 이럴때 SQLite를 쓰면 좋아! 내장형 애플리케이션 및 장치: SQLite는 간단함과 효율성이 중요한 애플리케이션에 이상적입니다. 모바일 앱, 게임, 휴대용 장치, 소비자…
GPT-4o 출시와 사용방법
어제 밤 주목할 만한 소식이 있습니다.
OpenAI에서 GPT-4o가 출시되었으며, 크게 4개의 특징이 있습니다.
Exploring the Depths of Transformer Models: The Tale of Massive Activations and Attention Sinks
Exploring the Depths of Transformer Models: The Tale of Massive Activations and Attention Sinks