4장. 선형대수_벡터와 행렬

Updated:

실습_4. 선형대수_벡터와 행렬

선형대수

  • 벡터와 행렬의 특성과 관계, 연산에 대하여 다루는 학문
  • 컴퓨터 비전과 인공지능 분야에서 두각을 나타낸다

벡터

  • 숫자의 나열로 이루어진 자료형
  • 순서 중요

  • 행벡터
x= [x1, x2, x3 .. ,xn]
  • 열벡터
x = [x1]
    [x2]
    [x3]
    [. ]
    [. ]
    [. ]
    [xn]

벡터의 연산

더하기

[1]   [4]   [1+4]   [5]
[2] + [5] = [2+5] = [7]
[3]   [6]   [3+6]   [9]

스칼라 곱

  • 스칼라: 벡터, 행렬과 달리 그냥 하나의 값을 가지는 수
  [4]   [2*4]   [8]
2 [5] = [2*5] = [10]
  [6]   [2*6]   [12]

내적

  • 벡터를 원소별로 곱한 후 그 합을 구하는 연산
          [4]
[1 2 3] * [5] = 1*4+2*5+3*6 = 32
          [6]

전치

  • 행벡터 -> 열벡터 or 열벡터 -> 행벡터고 변화
              [1]
    [1 2 3]^T = [2] 
              [3]
    or
    [1]^T
    [2]   = [1 2 3]
    [3]
    

행렬

  • m * n의 형태로 행과 열로 이루어진 자료형
  • 벡터의 확장 개념

행렬의 연산

더하기

  • 행렬의 크기가 일치해야 함
[1 2]   [7  8 ]   [1+7  2+8 ]   [8  10]
[3 4] + [9  10] = [3+9  4+10] = [12 14]
[5 6]   [11 12]   [5+11 6+12]   [16 18]

스칼라 곱

 [1 2]   [2*1 2*2]   [2  4 ]
2[3 4] = [2*3 2*4] = [6  8 ]
 [5 6]   [2*5 2*6]   [10 12]

곱하기

  • AB != BA (순서 중요)
[1 2 3] * [1 2]
[4 5 6]   [3 4]
          [5 6]

= [(1*1)+(2*3)+(3*5) (1*2)+(2*4)+(3*6)] 
  [(4*1)+(5*3)+(6*5) (4*2)+(5*4)+(6*6)]     
  
= [22 28]
  [49 64]

성분곱

  • 행렬의 크기가 일치해야 함
[1 2] * [1 -1] = [1*1 2*-1] = [1 -2]
[3 4]   [1 -1]   [3*1 4*-1]   [3 -4]

여러가지 행렬

정사각행렬

  • 행과 열의 수가 같은 행렬
[1 2 3]
[4 5 6]
[7 8 9]

삼각행렬

  • 주대각선을 기준으로 어느 한 쪽이 모두 0인 행렬
[1 2 3]    [1 0 0]
[0 5 6] or [4 5 0]
[0 0 9]    [7 8 9]

대각행렬

  • 주대각선을 제외한 모든 원소가 0인 행렬
[1 0 0]
[0 5 0]
[0 0 9]

단위행렬

  • 주대각선의 모든 원소가 1인 대각 행렬
[1 2] * [1 0] = [1 2] 
[3 4]   [0 1]   [3 4]
  • 단위행렬을 곱하면 그대로 나온다

전치행렬

  • 주대각선을 기준으로 뒤집은 행렬
[1 2 3]^T   [1 4 7]
[4 5 6]   = [2 5 8]
[7 8 9]     [3 6 9]

대칭행렬

  • 원래 행렬과 전치 행렬이 동일한 행렬
[1 2 3]^T   [1 2 3]
[2 4 5]   = [2 4 5]
[3 5 6]     [3 5 6]

역행렬

  • 행렬곱의 역원
  • xA = y -> x = yA^-1

  • ex) 2*2행렬의 역행렬 계산
A = [a b]
    [c d]
    
A^-1 = 1/(ad-dc) * [d -b]
                   [-c a]
  • 행렬식 => ad-bc

  • ad-bc => 0이면 분모가 0이 되기 때문에 역행렬을 구할 수 없다
  • 역행렬이 존재하는 행렬을 가역행렬
  • 존재하지 않는 행렬을 비가역행렬

행렬과 연립방정식

역행렬을 이용하여 해 구하기

[1 2 ] * [x] = [1]
[3 -1]   [y]   [0]

[x] = [1 2 ]^-1 * [1]
[y]   [3 -1]      [0]
= -1/7[-1 -2] * [1]
      [-3 1 ]   [0]
= -1/7[-1 -3] = [1/7]
                [3/7]

컴볼루션 연산

  • 합성곱 연산이라고도 한다
  • 필터 개념

convolution.PNG

  • 컴퓨터 비젼의 기본연산

  • 합성곱 후 합 연산 ``` [0 1 1 1] convolution [1 -1] = [-1 -1 0] [0 0 1 1] [1 -1] [ 0 -1 0] [0 0 0 1] [ 1 0 -2] [1 0 0 1]

가우시안 필터

  • 이미지를 흐리게 만드는 효과

소벨 필터

  • 이미지의 외곽선을 따는 효과

Leave a comment