주제

1. 머신러닝에 대하여
2. 머신러닝의 종류
3. 선형대수, 행렬, 고유벡터와 고유값
4. 확률 이론

 

 

머신러닝에 대하여

  • 데이터에서 지식을 추출하는 직업
  • 머신이 스스로 데이터를 바탕으로 그 안에 있는 특징과 패턴을 찾아냄 → 학습
  • 데이터 내에서 자주 발생하는 특징과 패턴 → feature(피쳐)
  • 장점 : 
    • 예상치 못한 상관 관계를 파악하는 데 탁월
  • 단점 : 
    • 패턴 파악을 위해 다양한 데이터가 필요
  • 머신러닝 프로젝트 로드맵 :
    • 문제정의[파이프라인, 모델 입 / 출력] → 데이터 확인[시각화, 특성 파악] → 데이터 분할[학습 / 검증 / 테스트, 편향성 확인, 아웃라이어 제거] → 알고리즘 탐색[선행 연구 및 선행 프로젝트 참고] → 데이터 전처리[알고리즘 고려, 선행 과정 참고] → 학습과 검증[최적 모델 탐색, 반복 작업], → 최종 테스트[테스트 데이터 활용, 보고] → 시스템 런칭[모니터링, 유지 보수]

 

머신러닝의 종류

  • 메타 데이터 : 주어진 기본 데이터에 추가적으로 제공하는 정보를 의미
    • 데이터의 출처, 형식, 위치 등 데이터 간의 관계와 구조를 파악하거나 내용을 설명
  • 레이블 : 특정 문제에 해당하는 데이터의 설명 혹은 답변을 의미
    • 분류에서는 데이터가 속할 범주(클래스, class)
    • 회귀 문제에서는 데이터가 표현할 특정 숫자
  • 대부분 사람이 직접 생성해줘야 함
  • 타겟(target)이라고 부르기도 함

1. 지도 학습(Supervised Learning)

  • 정답 레이블 정보를 활용해 알고리즘을 학습
  • 데이터와 정답인 레이블 사이의 관계를 파악하는 목적을 가진 알고리즘이 학습됨
  • 특징 및 장점 :
    • 정답이 존재하므로 문제가 비교적 쉽고 잘 학습됨
    • 명확한 평가 수치가 존재하며 학습된 모델의 성능을 쉽게 측정 가능
  • 단점 :
    • 정답이 필요하므로 추가적인 시간, 노동, 비용이 필요(정답을 매기는 행위에 필요한 인력과 추가 비용 발생)

 

2. 비지도 학습(Un-Supervised Learning)

  • 정답 레이블 정보가 없이 입력 데이터만을 활용해 알고리즘을 학습
  • 데이터 내부에 존재하는 패턴을 스스로 파악하는 목적을 가진 알고리즘이 학습됨
  • 특징 및 장점 :
    • 정답을 따로 준비할 필요가 없음
    • 사용자가 의도한 패턴 이외의 새로운 패턴을 찾을 가능성이 있음(창작에 사용가능)
  • 단점 :
    • 모델의 성능을 측정하기 위한 기준이 없어 결과 해석이 주관적일 수 있음
    • 신뢰할 수 있는 결과를 얻기 위해 다수의 데이터가 필요함

 

3. 준지도 학습(Semi-Supervised Learning)

  • 일부의 데이터만 정답이 존재하고, 다수의 데이터에는 레이블이 없는 상황에서 알고리즘을 학습
  • 지도 학습과 비지도 학습의 특징을 일부 차용하여 일부 레이블링된 데이터로 특성을 파악하고, 레이블링 되지 않은 데이터로 전체 데이터의 패턴을 파악하는 방식으로 알고리즘이 학습됨
  • 특징 및 장점 : 
    • 레이블이 부족한 데이터셋에서 유용
    • 많은 데이털를 활용할 수 있으므로 일반화 성능을 향상시킬 수 있음
  • 단점 :
    • 품질이 낮은 레이블이나 데이터 존재에 특히 취약할 수 있음
    • 알고리즘의 복잡성 증가 → 구현 및 활용에 어려움

 

4. 자기 지도 학습(Self-Supervised Learning)

  • 정답이 하나도 없는 데이터에서, 정답을 강제로 생성 후 학습
  • 데이터 내부를 강제로 훼손 후 복원하는 방법을 주로 사용하며, 특정 데이터 내부의 성질을 파악하는 데 사용됨
  • 이 알고리즘은 해당 데이터를 이용한 다른 문제에 적용
  • 특징 및 장점 : 
    • 레이블 없이 데이터의 특징 파악 가능
  • 단점 : 
    • n회 이상의 추가적인 학습 과정이 필요할 수 있음
    • 알고리즘이 잘못된 패턴을 학습할 위험이 있음

 

5. 강화 학습(Reinforcement Learning)

  • 어떤 환경에서 상호작용하는 에이전트(Agent)가 보상(Reward)을 이용해 특정 행동을 하도록 유도하는 방법

 

 

선형대수, 행렬, 고유벡터와 고유값

1. 선형대수

  • 수가 모여있는 개념과 관련된 식을 연구하는 수학의 한 분야
  • 수의 연산을 빠르고 효과적으로 하기 위해 사용하는 도구
  • 수의 집합을 기하학적인 형상으로 적용하요 표현
  • 머신러닝에서 데이터를 표현하고 변환하는데 필수적인 도구로 사용

 

1.1 수의 집합 : 스칼라, 벡터, 행렬, 텐서

스칼라(Scalar) 벡터(Vector) 행렬(Matrix) 텐서(Tensor)
다른 숫자와 함께하지 않고 홀로 존재하는 수 한쪽 방향(차원)으로만 숫자가 모인 형태(1차원) 두 방향으로 숫자가 줄을 선 형태(2차원) 벡터와 행렬을 일반화한 개념(3차원 이상)

 

 

2. 행렬 연산과 성질

  • 행렬뿐만 아니라 모든 종류의 텐서는 연산이 가능
  • 행렬의 덧셈과 뺄셈 : 같은 크기의 행렬끼리만 가능. 같은 자리에 있는 원소끼리의 덧셈과 뺄셈(element-wise operation)
  • 행렬의 곱셈 : 하나의 행렬의 각 행과 다른 행렬의 각 열 간의 내적
    • 내적 : 두 벡터의 동일한 위치에 있는 원소를 곱한 후, 그 결과를 모두 더하는 연산
    • 행렬의 크기는 달라도 되지만, 앞선 행렬의 열과 뒷 행렬의 행의 크기가 같아야 함
    • 같은 크기의 행렬에서 각 요소 별로 곱하는 연산 : Hadamard Product

2.1 전치행렬(Transpose)

  • 하나의 행렬이 주어질 때, 행과 열을 바꾼 행렬
  • A 행렬의 크기가 m x n 이면, A^T는 n x m

2.2 역행렬(Inverse Matrix)

  • 특정 행렬 A에 어떤 행렬 B를 곱해보니 결과가 항등 행렬 I라면, B는 A의 역행렬 (B = A^-1)
  • A 행렬이 역행렬을 가지려면, A는 반드시 가역(또는 비특이, non-singular) 해야 함
    • 이를 수학적으로 표현하면 det(A) ≠ 0 을 만족해야 함

 

3. 고유벡터와 고유값

 

3.1 선형 변환(Linear Transformation)

  • 특정 벡터에 어떠한 행렬을 곱하면 벡터의 방향 혹은 크기가 변경되는 것 = 선형 변환

선형 변환된 벡터

 

3.2 고유벡터(Eigenvector)와 고유값(Eigenvalue)

  • 행렬(A)의 입장에서 벡터를 곱하면 같은 방향의 더 커진 벡터가 생긴다
  • A 행렬의 임의의 벡터 v를 곱하니, 벡터 v의 크기를 상수 λ배한 벡터와 같다
  • 벡터 v를 고유벡터(Eigenvector)
  • 상수 λ를 고유값(Eigenvalue)

고유벡터와 고유값이 적용된 벡터 v

 

  • 고유벡터는 행렬 A의 값이 가장 많이 분산되는 방향을 나타냄
  • 분산이 많이 된다는 것 = 많은 정보력을 갖고 있다
  • 데이터가 담고 있는 여러 정보 중 가장 의미가 큰 방향이 고유벡터가 됨
  • 해당 방향으로 얼만큼 분산이 이루어졌는지 분산의 크기를 나타내는 정도 : 고유값
  • 이 둘은 데이터를 이해하고 계산하는 과정에서 사용

 

3.3 특이값 분해(Singular Value Decomposition, SVD)

  • 복잡한 행렬 A(m x n)을 더 간단한 세 가지 행렬(U, ∑, V^T)로 분해
  • A = U∑V^T
    • U의 열 벡터들은 A의 왼쪽 특이 벡터로 AA^T의 고유 벡터
      • 직사각 행렬은 행과 열을 나눠 행 사이의 관계를 따로 보고, 열 사이의 관계를 따로 봄
      • AA^T는 (m x m)의 크기를 갖고 있어 고유벡터와 고유값 분석이 가능
      • AA^T는 원래 행렬 A의 행 사이의 관계도가 데이터의 형태로 존재
      • 정보력 중 분산이 크고 중요한 의미를 갖는 방향 벡터가 U 행렬 안에 정리
    • V의 열 벡터들은 A의 오른쪽 특이 벡터로 A^TA의 고유 벡터
    • ∑의 대각선 위의 값들로 A의 특이값
      • 원래 행렬 A의 데이터가 가진 중요도를 의미
      • AA^T 혹은 A^TA의 고유값의 제곱근 값을 A의 특이값이라고 함
      • ∑ 행렬은 A의 특이값을 대각선 위치에 갖고 있고 대각선을 제외한 나머지 모든 값은 0
      • 행렬 A의 선형 변환에서 중요한 스케일링 정보를 포함
  • SVD는 직사각 행렬에 대해서만 사용 가능
  • 고유벡터와 고유값 분석은 행렬이 정사각 행렬일 때만 가능

 

확률 이론

  • 확률(Probability) P : 특정한 사건이 일어날 가능성을 수치로 표현, 0과 1사이의 값을 가짐
  • 확률 변수(probability variable) x : 어떠한 사건인지 사건을 알려주는 변수
  • P(x) : 확률 변수 x가 특정 값을 가질 확률
  • 확률 계산 : 
    • 합의 법칙 : 두 사건 A와 B가 서로 베타적이면, A 또는 B 확률 : P(A) + P(B)
    • 곱의 법칙 : 두 사건 A와 B가 서로 독립일 때, A와 B가 동시에 발생할 확률 : P(A) x P(B)
    • 조건부 확률 : 사건 B가 일어난 상태에서 사건 A가 일어날 확률 : P(A | B)
  • 확률 변수는 실험, 관찰, 또는 무작위 과정의 결과로 나타날 수 있는 수치적인 값
  • 확률 분포를 알고 있다면 확률 변수를 임의로 생성할 수 있음 → 샘플링(Sampling)
    • 특정 분포 D를 따르는 확률 변수 X를 n개 샘플링 하면 아래와 같이 표현 가능 :
      • X1, X2, ..., Xn ~ D

 

1. 확률 분포(Probability distribution)

  • 확률 변수가 취할 수 있는 값들과 그 값들이 발생하는 확률을 설명하는 개념
  • 종류 : 
    • 이산 확률 분포(Discrete Probability Distribution)
    • 연속 확률 분포(Continuous Probability Distribution)

1.1 연속 확률 분포

  • 확률 변수가 연속적인 범위의 값(실수 범위의 값)을 취할 수 있을 때 적용
  • 가능한 모든 확률 변수 전 구간의 적분 값은 1
  • 딱 하나의 구체적이 값에 대한 확률은 0

 

1.2 이산 확률 분포

  • 확률 변수가 취할 수 있는 값이 개별적이고 셀 수 있는 경우
  • 각 변수에 해당하는 확률 값의 총 합은 1

 

2. 확률론적 모델링

  • 주어진 데이터를 확률 이론의 관점에서 해석하고 모델을 설계하는 과정을 의미
  • 머신 러닝 모델의 출력은 확률론적 관점에서 예측된 결과물
  • 모델의 예측은 ŷ, 실제 정답은 y로 표시
  • 사용하는 입력 데이터는 X로 표시
  • X + y : 전체 학습 데이터

 

 


느낀점

확실히 이번주부터 난이도가 확 올라갔다. 머신러닝은 통계 + 수학 기반이라 따로 공부를 해야만 어느정도 따라갈 수 있을 것 같다. 계속 반복 또 반복하자!

+ Recent posts