DA Study/Data Analytics

[머신러닝] 머신러닝 정의, 유형, 기본 개념, 수학적 기초

harrym8n 2025. 2. 7. 09:38

머신 러닝 이란?

기계가 학습한다는 건, 프로그램이 특정 작업(T)을 하는 데 있어서 경험(E)을 통해 작업의 성능(P)을 향상시키는 것
스팸 메일 분류 프로그램

  • 작업 : 스팸 분류
  • 경험 : 새로운 이메일 보고
  • 성능 : 스팸 분류 얼마나 잘하는가(분류 확률)

머신러닝에 관심이 증가한 이유

  1. 데이터 양이 늘어남

    • 예전에는 데이터 양이 충분하지 못해서 머신러닝 못했다. 요즘에는 PC, 웹, 스마트폰 환경이 조성되며 데이터가 많이 쌓기 시작함, 데이터가 기하급수적으로 늘어남.
  2. 컴퓨터 성능이 좋아짐

    • 연산 비용 매우 줄어듦
  3. 활용성 증명됨

    • ex) 유튜브 : 시청 데이터 쌓임 > 분석 > 데이터 기반 맞춤 영상 추천/광고 노출 > 재방문, 체류 시간 증가 > 데이터 증가 > 반복

인공지능 / 빅데이터 / 머신러닝

  • 빅데이터 : 엄청나게 많은 양의 데이터를 다루는 분야(데이터 보관/처리법, 데이터 분석 방법들) (머신러닝과 겹침)
  • 인공지능 : 프로그램이 인간처럼 생각/행동하게 하는 학문(머신러닝은 인공지능을 달성하기 위한 수단의 하나)
  • 딥러닝 : 머신러닝 기법 중 하나(층이 깊어 진다 -> 딥러닝)

포함관계 : 인공지능 > 머신러닝 > 딥러닝 (빅데이터는 모든 분야에 걸쳐있음)

학습의 유형

  1. 지도학습(supervised learning)

    • '답'이 있고 이 답을 맞추는 게 학습의 목적
    • 분류(classfication) : 몇가지 선택지 안에서 고르는 것 / 스팸 메일 분류 프로그램
    • 회귀(Regression) : 무수히 많고 연속적인 값의 답이 나옴 / 아파트 가격 예측 프로그램
    • 학습 데이터에 대한 정답을 가르쳐줘야 한다.
  2. 비지도학습((unsupervised learning))

    • 답이 없고 이 답을 맞추는 게 학습의 목적
    • ex) 비슷한 신문기사 묶기
  3. K-최근점 이웃 알고리즘(kNN 알고리즘)

    • 새로운 데이터의 위치와 가장 가까운 k개의 이웃 데이터를 찾음 > 찾은 이웃 데이터 중 다수에 따라서 분류
    • 많은 경험 > 성능 향상, 따라서 머신러닝

필요한 수학

  1. 선형 대수학 : 행렬로 많은 데이터 묶을 수 있음 / 행렬하나 통째로 묶어 계산하기 때문에 계산도 효율적

  2. 미적분학 : 최적화할 때 사용 / 성능에 관한 그래프를 보고 성능이 가장 높은 지점 발견하고 거기로 최적화하기 위함

  3. 확률과 통계 : 데이터 큰 흐름 파악 > 예측에 사용

선형 대수학

일차식이나 일차 함수를 공부하는 학문

  • 아무리 복잡한 선형 시스템도 행렬과 벡터로 쉽게 표현할 수 있음

행렬과 벡터

  1. 행렬(Matrix) : 수를 직사각형 형태로 나열한 것

    • m x n 행렬 - m행 x n열
    • 대문자로 나타냄 - 행렬 A
  2. 벡터(Vector) : 행 혹은 열이 하나밖에 없는 행렬

    • 열 벡터를 사용하는 경우가 더 많기 때문에, 그냥 벡터라고 하면 열 벡터를 뜻함 (행벡터는 '행벡터'라고 명시)
    • 벡터 차원 : m차원 벡터
    • 소문자로 나타냄 - 벡터 a

행렬 연산 1(덧셈, 스칼라곱)

  • 연산하는 두 행렬의 차원이 같아야 함

  • 행렬 곱셈 : 행렬과 수(스칼라곱) / 행렬과 행렬

    • 스칼라 : 행렬의 원소가 아닌 일반 수
  • 행렬간 곱셉

    • 첫번째 행렬의 열 수와 두번째 행렬의 행 수가 같아야 연산이 가능하다.
    • 내적곱/외적곱 존재하나 내적곱만 학습(우리가 일반적으로 알고 있는 행렬곱셉)
    • 결과는 첫번째 행렬의 행 수 X 두번째 행렬의 열 수 로 나온다.
    • 곱하는 순서에 따라 결과가 달라진다.(일반적인 수 연산과 다른 점) - 교환법칙 성립 안함

전치 행렬, 단위 행렬, 역행렬

  1. 전치 행렬(transpose matrix)

    • 행과 열을 뒤집은 행렬
    • 행렬 연산에서 차원 수를 맞추기 위해 주로 사용
    • 행렬 A위에 작은 T를 써서 표현
  2. 단위 행렬(identity matrix)

    • 왼쪽 위부터 대각선 아래로 모두 1이고, 나머지는 모두 0인 행렬
    • 항상 정사각형 형태
    • 어떤 행렬에 단위행렬을 곱하면 기존 행렬이 그대로 유지됨
    • I로 표현
  3. 역행렬(inverse maxtrix)

    • 어떤 행렬에 곱하면 단위 행렬이 나오게 하는 행렬
    • 반드시 정사각형 형태여야 함
    • 모든 행렬에 역행렬이 존재하는 것은 아님
    • 행렬 A위에 작은 -1를 써서 표현

미분

  • 함수 : input값을 받아서 output값을 내는 것

    • 하나의 인풋에 대해서 하나의 아웃풋만 나와야한다. (일대일 대응) 다대일은 되지만 일대다는 안됨
    • 인풋변수가 2개면 다변수 함수 f(x,y) = x + 2y
  • 그래프를 그려서 함수 특징 파악

    • 최소값이나 절편, 변화량 등을 파악

평균 변화율

  • 평균 변화율 = (y값 변화량) / (x값 변화량)
  • 평균 변화율 = f(a+h) - f(a) / h

순간 변화율

  • 어떤 순간까지 lim으로 줄인다.
  • 평균변화율을 lim한다. (h->0)
  • 함수 미분하면 됨

가장 가파른 방향

  • 기울기가 음수면 음의 방향(왼쪽)으로 가야 가장 가파르게 올라가고, 양의 방향(오른쪽)으로 가야 가장 가파르게 내려간다.
  • 기울기가 양수면 음의 방향(왼쪽)으로 가야 가장 가파르게 내려가고, 양의 방향(오른쪽)으로 가야 가장 가파르게 올라간다.
  • 기울기의 절댓값이 0에서 멀어질수록 가파른 기울기
  • 기울기는 그래프가 해당 지점에서 얼마나 기울어져 있는지도 알려 주지만, 어떤 방향으로 가야 가장 가파르게 올라갈 수 있는지에 대한 정보도 제공

극소점, 극대점

  • 최소점(global minimum) / 극소점(local minimum) : 왼쪽으로는 기울기 음수고 오른쪽으로는 기울기 양수인 순간 변화율(기울기)이 0인 지점, 기울기가 음수에서 양수로 전환되는 지점(기울기 = 0)
  • 최대점(global maximum) / 극대점(local maximum) : 왼쪽으로는 기울기 양수고 오른쪽으로는 기울기 음수인 순간 변화율(기울기)이 0인 지점, 기울기가 양수에서 음수로 전환되는 지점(기울기 = 0)
  • 안장점(Saddle Point) : 극소점도 아니고 극대점도 아닌 경우. 순간적으로 기울기가 0이 되었다가 다시 가팔라지는 경우

==> 모두 변화율이 0인 지점들!

고차원에서 미분

  • 편미분 : 함수를 변수 하나에 대해서만 미분
  • 고차원 그래프에서는 기울기가 벡터로 나옴
  • 고차원에서 가장 가파른 방향
    • x=1, y=1 인 지점에서 가파르게 올라가려면 벡터에 대입하여 양의 대각선 방향으로 가면됨
    • x=1, y=1 인 지점에서 가파르게 내려가려면 벡터에 -를 붙여 음수로 만든 후 값을 대입하여 음의 대각선 방향으로 가면됨

이해가 잘 안되는 부분이지만 중요한 점

  • 경사가 음수일 때 함수 값이 감소하는 것은 맞지만, 경사(또는 그래디언트)의 기본 방향은 함수가 증가하는 방향으로 정의된다.
  • 따라서 “경사가 감소 방향을 가리킨다”는 표현은 수학적으로 부정확!
  • 감소 방향을 가리키려면 명시적으로 “음의 그래디언트 방향”이라고 해야 맞음