선형대수 기초 개념과 선형 결합

업데이트:

인공지능을 위한 선형대수 강의노트

주재걸 교수님의 강의 - edwith

  • 챕터 1 ~ 챕터 2. 선형결합

선형방정식과 선형시스템

  • 내가 잊고있었던.. 기본 용어
    • Squre: 정사각 행렬
    • Transpose: 전치행렬 (1, 1) 기준으로 대각선 긋고 180도 회전
    • 행렬곱
      • Size (a * b) * (b * c) = Size (a * c)
      • A * B ≠ B * A
      • A(BC) ≠ (AB)C
      • (AB)t = Bt * At
      • (AB)역행렬 = B역 * A역

선형방정식과 선형시스템

  • 선형방정식?
    • ax = b 형태의 여러 식을, 행렬로 Ax = b 로 표현한 것
    • 여기서 x를 어떻게 구해야할까?
  • 역행렬과 항등행렬
    • Ax = b 에서 A의 역행렬을 구해 x = (A-1)b 로 구할 수 있다.
  • 역행렬이란?
    • 행렬 A와 곱하여 항등행렬 I가 나오도록 하는 행렬이다.
    • 정사각행렬(square)에만 존재한다.
  • 역행렬이 없는 경우
    • (2, 2) 행렬일 때, ad - bc = 0 이면 역행렬이 존재하지 않으며,
      • ad - bc = 0 을 판별식이라 부른다.
        • (ad - bc = 0 → ad = bc → a:b = c:d)
        • 판별식은 det. A 와 같이 표현한다.
    • 역행렬이 없는 경우, 선형방정식의 해가 무수히 많거나 없다.
  • 만약, A가 정사각 행렬이 아니라면? (= 역행렬이 존재할 수 없다면?)
    • A가 (m x n)행렬일 때,
      • if n > m (피처가 레코드보다 많을 때)
        • 해가 무수히 많다. (under determined)
      • if m > n
        • 보통 해가 없다. (over determined)

선형결합

행렬을 벡터로 분해하고, Span의 개념을 적용하기

  • 행렬A와 벡터x가 있을 때, (Ax = b)
    • a₁x₁ + a₂x₂ + a₃x₃ = b로 표현 가능
  • Span
    • 주어진 벡터로 만들 수 있는 모든 조합
    • n개의 벡터로 n-1차원의 Span을 만들 수 있다
  • 다시 돌아와서, a₁x₁ + a₂b₂ + a₃x₃ = b는,
    • 결국 b는 a라는 벡터에 x라는 가중치를 곱하여 만들어진 조합
    • a로 만들어진 Span 내에 b가 존재하면 해가 존재한다.(x가 존재)

행렬벡터, 행렬행렬

  • 위에서 보았던 것처럼, 행렬A * 벡터x는
    • a₁x₁ + a₂x₂ + a₃x₃로 표현 가능
  • 그럼 행렬끼리의 곱은 어떻게 나타낼 수 있을까?
    • R(3,3)과, R(3,2)의 곱은,
    • a₁x₁ + a₂x₂ + a₃x₃와 a₁y₁ + a₂y₂ + a₃y₃로 표현 가능
    • 결국, a의 Span내에 서 x와 y는 가중치의 역할

row벡터*행렬

  • (Ax)T = xT*AT
  • [[1,2,3], [1,0,-1]] * [[1,1,0], [1,0,1], [1,-1,1]] = [[x₁,x₂,x₃], [y₁,y₂,y₃]] = [[xT],[yT]]로 표현 가능
  • xT = [x₁,x₂,x₃] = 1[1,1,0] + 2[1,0,1] + 3[1,-1,1]
  • yT = [y₁,y₂,y₃] = 1[1,1,0] + 0[1,0,1] + (-1)[1,-1,1]
  • 위와 같이 표현 가능

Sum of (Rank-1) Outer Product (외적)

  • (Rank-1) outer product?
    • 두 벡터의 곱으로 행렬을 만들어냄
    • [[1], [1], [1]] * [1,2,3] = [[1,2,3], [1,2,3], [1,2,3]]
  • Sum of (Rank-1) outer products
    • 두 매트리스의 곱을, 두 outer product의 합으로 표현할 수 있음
  • 이 개념은 머신러닝에서 자주 등장하는데,
    • (100,50) 행렬은, 100로우벡터 * 50컬럼벡터 10개로 근사값을 구할 수 있음
      • 다만, 100*50 = 5000개의 수
      • outer product되는 벡터들으 ㅣ수는, (100 + 50)*10 으로, 1500개의 수
      • 결국 1500개의 수로 5000개의 수를 나타내야하니 근사값으로 수렴할 수 밖에는 없긴 함

댓글남기기