ML

[ML] 머신러닝 기초 (3) 머신러닝 기본 수학 이론

moonzoo 2024. 2. 14. 14:46

 

https://mcode.co.kr/video/list2?viewMode=view&idx=21

 

메타코드M

빅데이터 , AI 강의 플랫폼 & IT 현직자 모임 플랫폼ㅣ메타코드 커뮤니티 일원이 되시기 바랍니다.

mcode.co.kr

 

이전 ML 카테고리의 포스팅에 이어 머신러닝 강의를 들으면서 내용을 정리하고 있습니다. 현재 무료로 강의를 보실 수 있으니 궁금하신 부분은 강의를 수강하시면 좋을 것 같습니다. 


함수

  • 두 집합 사이의 관계 혹은 규칙
  • y = f(x)의 식으로 표현, 이 때의 x는 입력값, y는 출력값 

 

일차 함수

  • y가 x에 대한 일차식으로 표현된 경우
  • y = ax + b (a != 0)
  • a를 기울기, b를 절편이라고 표현

 

이차 함수

  • y가 x에대한 이차식으로 표현된 경우
  • y=a(x-p)^2 +q(a!=0)

 

순간 변화율

 

델타x = x(변화후) - x(변화전)

텔타x의 값이 0으로 무한정 갔을 때 어떻게 변화하느냐가 순간 변화율의 정의

  • x의 값이 미세하게 변화했을 때, y의 변화율
  • 어떤 x 값(=a)에서의 그래프와 맞닿는 접선의 기울기

 

미분

  • 함수 f(x)를 미분한다는 것은 함수의 순간 변화율을 구한다는 뜻
  • f ' (x) 또는 dx/d * f(x)로 표기 
  • Ex. f(x) = ax - > f ' (x) = a , f(x) = x^a -> f ' (x) = a*x^a-1

 

함수의 최솟값

  • 함수의 최솟값에서의 미분값(순간 변화율)은 항상 0임 (수직으로 만나는 접선의 기울기가 0이기 때문)
  • 이를 바탕으로 파라미터의 최적값을 구할 수 있음

즉, y(실제값) - y^(예측값)의 차이를 오류값으로 받았을 때, 이러한 손실값을 최소화 시켜주는 파라미터 f^을 찾는 것이 머신러닝의 목표입니다. 순간 변화율이 0이되는 지점이 손실함수의 최솟값이 되는 부분임을 이해해야 합니다. 

 

지수함수

  • y = a^x (a != 1, a > 0)
  • a를 , x를 지수라고 부름
  • 한 쪽은 0으로 수렴, 다른 쪽은 무한대로 발산 

 

자연상수

 

무리수 : 끝이 정해져 있지 않은 숫자 

 

수학적으로 의미를 담고 있는 무리수를 문자로 표현하기도 하는데, 파이와 e가 그 예시입니다.

 

1원이 1년뒤에 100% 성장해 2원으로 성장합니다. 

 

1년을 반년이라는 수치로 쪼갤 수 있다고 생각한다면, 1원이 반년으로 쪼갰기 때문에 50%만 1의 성장을 하여 0.5원이 생깁니다. 이제 다시 반년 후가 되면 1원으로부터 50% 성장했으니 다시 1원이 1.5원으로 성장하고, 앞선 반년에서 생긴 0.5원이 50% 성장하여 0.75로 성장합니다. 이를 합치면 2.25원이 됩니다.

 

사실 설명을 글로쓰니까 이해가 힘드실텐데, 100%의 성장률을 쪼갤 수 있습니다. 1/3년, 1/100년...  이런 식으로 쪼개서 1의 성장을 시켰을 때, 2.25원에서 더 증가해서 2.718이 된다는 것이 자연상수의 개념입니다.

 

 

성장에 대한 자연상수의 개념을 깊게 이해하기보다는 미분 시 자기 자신이 된다는 성질을 이해하면 됩니다.

x가 음수면 0으로 수렴. 반대로 x가 무한대까지 가면 값 또한 무한대로 발산하는 모형의 그래프를 그립니다.

 

 

시그모이드 함수

클래스가 두 가지인 이진 분류 문제를 풀 때, 모델이 가지고 있어야하는 함수 형태입니다.

 

지수함수 형태에서

e^x에서 x가 0일 때, 어떤 값이든 1의 값을 갖게 됩니다. 위의 식에 대입하면 1/2라는 값을 갖게 됩니다.

 

x가 0일 때, 0.5값을 지나는 함수가 될 것이고, 앞선 자연상수에서

e^-x에서 x가 무한대일 때, 0으로 수렴하기 떄문에, 위의 식에 대입하면 1/1 값으로 수렴해 나가게 됩니다.

e^-x에서 x가 0이 될 때, 무한대로 가기 때문에 위의 식에 대입하면 1/무한대는 0이 되므로 0으로 수렴해 나가게 됩니다. 

좌측 그래프의 형태가 시그모이드 함수이며, 시그모이드 함수의 출력값은 0~1 사이의 값을 갖게 되면서 중앙 출력값이 0.5이기 때문에 분류 문제에 사용하게 됩니다. 시그모이드 함수의 예측 값이 0.5 보다 크면 1 클래스로 분류하고 0.5보다 작으면 0 클래스로 분류합니다.

 

소프트맥스 함수

0과 1 클래스만이 아니라 여러 개의 클래스가 존재할 때, 각 클래스에 대한 예측 값을 모델에게 받게 됩니다. 이러한 예측 값을 확률의 형태로 만들어 줄 때 소프트맥스 함수를 사용합니다. (모든 확률의 합은 1이 나와야 하는 성질 이용)

 

0 클래스 = 0.1, 1 클래스 = 0.7 , 2 클래스 = 0.2의 확률값을 갖고 있다면 0.7의 확률값을 가진 1클래스로 분류합니다.

 

로그함수

지수함수 형태를 반대쪽으로 넘길 때 (역함수), log라는 문자 기호를 사용하기로 약속한 것입니다.

로그 함수의 밑이 자연상수 e 일 때, 자연로그라고 표현하며 ln이라고 표현합니다.

로그의 밑을 따로 적지 않았으면 자연상수 e가 들어간 자연로그 형태라고 이해하시면 됩니다.