Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

세찬하늘

[머신러닝 기초] 선형대수와 확률이론(1) 본문

카테고리 없음

[머신러닝 기초] 선형대수와 확률이론(1)

HotSky92 2025. 3. 15. 12:54

 

 

3월 11일 수업내용 정리

 

머신러닝 수업, 오리엔테이션을 제외하고 본격적으로 수업을 한 첫 시간

수업내용은 머신러닝을 들어가기 전 알아야할 선형대수와 확률이론을 공부

머신러닝 모델도 결국 기초 선형대수와 확률이론을 알아야 이해가 가능하기 때문에

전체적인 복습 차원에서 수업을 진행

하지만, 나는 복습할게 없는 무지랭이....

 

이번에도 챗과 함께 내용정리

 


📚 머신러닝 기초: 선형대수와 확률이론 총정리

🚩 Ⅰ. 선형대수의 기초 개념

  • 스칼라(Scalar): 하나의 숫자 (방향 없음, 크기만 있음), 우리가 아는 숫자'5' 같은거ㅡ

  • 벡터(Vector): 숫자 여러개가 모여있는 것(방향이 있는 리스트)
  • 🚀 벡터에서 방향이 왜 중요할까?
    벡터는 크기(길이)뿐만 아니라 방향도 가진다.
    그렇다면 방향이 필요한 이유는 뭘까?
    1. 위치와 이동을 표현할 때
      • 예를 들어, 자동차가 10km 이동했다고 할 때,
        • "어디로?"가 없다면 정보가 불완전해!
        • "동쪽으로 10km" → 방향이 포함되면 이동이 정확하게 정의됨.
    2. 힘(Force)과 운동량
      • 물체를 "미는 힘"도 방향이 있다.
      • 예를 들어, 벽을 미는 힘(10N)이지만 벽과 수직이면?움직이지 않음!
      • 힘의 방향이 운동 방향과 같아야 효과적으로 이동 가능.
    3. 기계학습과 그래픽스
      • 이미지 필터에서 픽셀 값 변화 → 특정 방향으로 강조됨.
      • 3D 그래픽에서 물체의 움직임을 계산할 때 벡터 방향이 필요함.
    결론: "크기"만으로는 부족하고, "어느 방향으로"가 중요할 때 벡터가 필요하다! 
    • 벡터는 길이와 방향을 가진다.
    • 2km(크기) 동쪽(방)으로 가라 
    • 원소의 개수가 차원(dimension)을 결정
  • ✅ 방향이 중요한 이유

  • 행렬(Matrix): 숫자가 행(row)과 열(column)로 구성된 2차원 배열
    • 수학시간에 배운 그거

  • 텐서(Tensor): 3차원 이상의 배열 (스칼라→벡터(1차원)→행렬(2차원)→텐서(3차원 이상) 순으로 확장됨)
    • 행렬보다 높은 차원의 데이터
    • 컬러 이미지(사진)은 (가로, 세로, 색상채널)로 이루어진 3차원 데이
  • 단위 행렬(Identity Matrix):
    • 대각선 성분이 1, 나머지는 0
    • 곱해지는 행렬을 변화시키지 않음 (Ix=xI\mathbf{x} = \mathbf{x})
  • 역행렬(Inverse Matrix): 행렬의 곱셈에 대해 원래 행렬과 곱했을 때 단위행렬을 만드는 행렬 

🧮 행렬의 연산

  • 벡터 내적(Vector Inner Product): 같은 차원의 벡터끼리 각 원소를 곱해 더한 값
  • 두 벡터가 얼마나 같은 방향인지 측

  • 🚀 벡터 내적에서 두 벡터가 얼마나 같은 방향인지?
    "벡터 내적(Dot Product)이 두 벡터가 얼마나 같은 방향인지 알려준다."
    이걸 왜 알아야 할까? 🤔
  • 내적의 수식:
    1. 두 벡터가 같은 방향이면 내적이 크다!
      • 예: (3,4)⋅(6,8)(3,4) \cdot (6,8) → 같은 방향이면 크기가 커짐.
      • 현실 예시: 자동차의 이동 방향과 힘이 같은 방향일 때 가장 효율적!
    2. 두 벡터가 직각(90°)이면 내적이 0이다!
      • 예: (3,4)⋅(−4,3)=0(3,4) \cdot (-4,3) = 0
      • 현실 예시: 수직으로 미는 힘은 아무런 이동을 일으키지 않음.
    3. 두 벡터가 반대 방향이면 내적이 음수다!
      • 예: (3,4)⋅(−3,−4)=−25(3,4) \cdot (-3,-4) = -25
      • 현실 예시: 자동차가 한 방향으로 가는데, 바람이 정반대 방향이면 방해됨.
    ➡️ 벡터 내적은 방향성이 중요한 모든 문제에서 사용된다!
    ✔️ 기계학습에서 두 개의 데이터가 얼마나 비슷한지 비교할 때 사용됨.
    ✔️ 추천 시스템에서 "내가 좋아할 만한 영화" 추천할 때 사용됨. 

 

  • 행렬곱(Matrix Multiplication): 첫 번째 행렬의 행벡터와 두 번째 행렬의 열벡터를 곱하고 더한 값

행렬 곱셈이 어떻게 현실에서 사용되는지 성적표 예시를 더 자세히 살펴보자!

📌 예제: 성적표 계산

1️⃣ 데이터 정리 (행렬로 표현하기)

학생 3명(A, B, C)이 과목 3개(수학, 과학, 영어)를 들었다고 하자.

학생별 성적을 행렬로 정리하면:

(각 행 = 학생, 각 열 = 과목)

💡 그런데, 각 과목의 중요도가 다를 수 있지!
과목별 중요도(가중치)를 벡터로 설정해보자:

(수학 30%, 과학 40%, 영어 30% 반영)

 

  • 아다마르 곱(Hadamard Product): 같은 크기의 행렬끼리 원소 단위로 곱

  • 역행렬 : 곱했을 때 단위행렬을 만들어주는 행렬
    • 단위행렬 = 행렬의 곱셈에서 아무런 영향을 주지 않는 행렬(like 1) 
    • 역행렬의 존재 조건: 정방행렬이면서 열벡터들이 선형 독립일 때만 존재

  • 역행렬이 존재하지 않는 경우
    • 비정방 행렬(non-square matrix)
    • 선형종속(열벡터 중 하나 이상이 다른 벡터로 표현 가능)

노름(Norm) - 벡터의 크기, 즉 "길이"를 측정하는 방법!

💡 비유:

  • 노름은 "어떤 벡터가 얼마나 큰지" 측정하는 기준이야.
  • 쉽게 말하면, 우리가 걸은 거리를 잴 때 사용할 수 있어!
    • "직선으로 걸었어?" → L2 노름 (유클리드 거리)
    • "코너를 돌면서 걸었어?" → L1 노름 (맨해튼 거리)

 

🎯 노름 정리 - "거리 측정 기준!"

노름 종류정의예제 (3,4)특징
L1 노름 절댓값의 합 3 + 4 = 7 신호등을 따라 이동 (맨해튼 거리)
L2 노름 피타고라스 거리 √(3² + 4²) = 5 대각선 최단 거리
L∞ 노름 가장 큰 값 max(3,4) = 4 가장 큰 거리만 따짐

 

고유값 분해(Eigen Decomposition) -

행렬을 "핵심 정보"로 쪼개는 방법!

💡 비유:

  • 행렬이 하는 일을 쉽게 이해하기 위해 쪼개는 과정!
  • 큰 행렬을 간단한 조각들(고유값, 고유벡터)로 변환하는 것!
  • 마치 "빅데이터에서 중요한 패턴만 뽑아내는 것" 과 비슷해!

고유값 & 고유벡터 개념

📌 고유벡터(Eigenvector):

  • "행렬이 곱해져도 방향이 바뀌지 않는 벡터"
  • 즉, "고유한(특별한) 방향을 가진 벡터"

📌 고유값(Eigenvalue):

  • "고유벡터가 늘어나거나 줄어드는 비율"
  • 즉, "벡터가 얼마나 커지는지 / 작아지는지"

📌 수식:

 


고유값 분해란?

💡 비유:

  • 📸 "사진을 보고 → 핵심적인 색깔만 뽑아내는 것"
  • 🧩 "퍼즐을 조각내서 중요한 부분만 남기는 것"

📌 행렬을 다음처럼 분해할 수 있어!

 

 

➡️ 즉, 행렬을 단순한 조각(고유값 + 고유벡터)으S로 변환!


고유값 분해 예제

🔥 최종 정리!

✔️ 노름(Norm) → 벡터 크기(거리)를 측정하는 방법
✔️ L1 노름: 신호등만 따라 걷기 (맨해튼 거리)
✔️ L2 노름: 대각선으로 최단 거리
✔️ 고유값 분해: 행렬을 고유값과 고유벡터로 쪼개는 것!(나중에 제대로 정리해야지)
✔️ PCA (차원축소), 그래프 분석 등에 활용(이거도 나중에 파이썬이랑 같이!)

🎲 확률 이론 기초

  • 확률(Probability): 사건이 일어날 가능성(0~1)
  • 확률변수(Random Variable): 어떤 사건이 발생했을 때 나오는 결과를 숫자로 표현한 것
    • 이산 확률변수(discrete): 특정한 값만 취함, 주사위 눈금, 동전 앞뒤
    • 연속 확률변수(continuous): 특정 범위 내 무한한 값 가능, 사람 키(170.000001, 170.000002), 온도
  • 확률 밀도 함수(PDF)
    • 💡 PDF란?
      • 연속 확률변수의 확률을 나타내는 함수!
      • 특정 값의 확률은 0 (무한히 많은 값 중 하나라서)
      • 구간을 적분해서 확률을 구해야 함!
      📌 예제: 사람 키
      • "키가 정확히 170.000000cm일 확률?" → 0
      • "키가 170~175cm 사이일 확률?" → PDF를 적분해서 구함!
      ✔️ 즉, 특정 값 하나의 확률 ❌ → 특정 범위에서 확률을 계산해야 함!
  • 마지날 확률(Marginal Probability): 전체 중 특정 변수만 선택하여 나머지 변수 제거한 확률
    • 📌 예제 1: 주사위 + 동전 던지기 🎲🪙
      • "주사위를 던지고 동전도 던졌어! 그런데 주사위 숫자만 알고 싶어!"
      • 동전의 정보는 무시하고 "주사위 숫자가 나올 확률"만 계산마지날 확률!
    • 필요 없는 변수를 싹 지워버리는 것!
  • 조건부 확률(Conditional Probability): 어떤 사건이 발생했을 때 다른 사건이 일어날 확률

🔖 기대값(Expectation), 분산(Variance), 공분산(Covariance)

  • 기대값: 랜덤 변수의 평균적 예상값

  • 분산(Variance): 평균으로부터 떨어진 정도

  • 공분산(Covariance): 두 변수의 선형 관계, 독립이면 공분산은 0


📈 자주 쓰이는 확률 분포

  • 베르누이 분포: 성공/실패로 나오는 확률 분포
  • 이항 분포(Binomial Distribution): 여러 번 시도 중 성공 횟수, 농구 슛 성공 횟수
  • 정규분포(Gaussian): 자연 현상의 대표적인 분포, 평균과 표준편차로 표현, 중심극한정리에 의해 자주 사용됨