ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Lecture 02 : Linear Algebra
    강의 정리/Computer Graphics (CMU 15-462 662) 2022. 9. 1. 21:48

    ※ 본 내용은 CMU의 prof. Keenan Crane 님의 강의 내용을 정리 한 것임을 알립니다.

     

    Linear Algebra in Computer Graphics

    왜 선형대수가 컴퓨터 그래픽스에서 중요한가?

    1. 기하, 물리, 연산에 있어서 효과적인 연결고리이다.

    2. 선형대수를 통하여 컴퓨터 그래픽스의 문제를 정의한다면 컴퓨터에게 풀게 할 수 있다.

    3. 빠른 수치 선형대수는 오늘날의 컴퓨터 그래픽스를 만들었다.

     

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    Vector 

    (해당 강의에서 굉장히 재미있는 점인데 공식이나 정의 이러니깐 받아들여라 라기보다는 무조건 먼저 생각해보고 왜그런지 그려보고 하나하나 따져보라고한다. 그래야 나중에 본인만의 논리를 펼치 수 있다고 강조하신다.)

    - 벡터의 정의들 법칙들은 어디서 부터 왔는가? 무엇이 벡터인가??

    직관적으로 생각해 보았을 때 우리는 대부분 화살표를 떠올린다. 컴퓨터 그래픽스에서는 다양한 벡터의 모양을 볼 수 있으나 처음 직관적으로 받아 들일 때에는 화살표가 편하다. 화살표로 생각하고 나중에 확장 한다.

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    - 벡터에 대해 무엇을 얻을 수 있을까? (어떻게 측정을 할까?) vector 에 어떤 정보가 encode 되어있나?

    direction 과 magnitude가(방향과 크기) 포함되어있다.

    Polar Coordinates(극좌표계)에서 2D 상의 벡터는 길이와 방향의 각도를 포함한다.

    Cartesian Coordinates(데카르트 좌표계)에서 또한 벡터의 요소를 측정 가능하다 그러나 극좌표계와 데카르트 좌표계를 바로 비교할 수는 없다.

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    절대로 정의를 외우거나 받아들이지 말고 그림으로 그려보거나 하나하나 생각해보라!! (강의에서 제일 많이 한 말)

    벡터는 위의 그림과 같이 덧셈이 가능하며 덧셈은 교환법칙이 성립한다. 또한 스칼라 값을 곱하여 벡터의 크기를 늘리거나 줄일 수 있다. 덧셈에 대해서도 스칼라 값을 곱할 수 있다. 이는 a(u+v) = au+av 를 만족한다.

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    그림을 그려보는 작업을 하면 위의 룰(법칙)들이 성립한다. 이는 하늘에서 떨어진 것이 아니다 그려서 유도해봐라 그리고 우리는 이러한 속성들을 만족하면 Any collection 이든 vector space라고 한다(화살표처럼 생기지 않아도!!).

     

    Euclidean Vector Space

    전형적으로 R^n 의 의미는 "n차원 실수"를 뜻한다. 예를 들어 (1.23,4.56, π)는 R^3 이다.

    이를 통해 우리는 쉽게 컴퓨터에 encode 할 수 있다.(실수점의 수 리스트로)

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    Functions as Vectors

    컴퓨터 그래픽스에 있어서 중요한 벡터 공간의 예 중 하나는 spaces of functions 이다. 왜냐면 우리가 작업하고자 하는 그래픽스는 대부분 함수 이기 때문이다. (이미지, 빛으로부터의 발광, 표면, 진동 과 같은 것들)

    앞서 화살표와 같은 벡터를 더하거나 스칼라를 곱한 것과 같이 벡터로서의 함수 또한 더하거나 스칼라를 곱하는 것이 가능하다. 이는 함수 또한 앞서 언급한 속성, 정의, 규칙, 법칙을 만족하는 것을 의미하며 화살표처럼 보이지 않을 지라도 함수들은 벡터들이다. 

     

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    Vectors in Coordinates

    벡터를 좌표계(흔히 데카르트)로 옮겨서 생각해본다면 v=(1,3) u=(4,1) 이라고 한다면 u+v = (5,4)가 되는 것을 알 수 있다. 이를 통해 우리는 기하에서 선형대수 연산을 함으로서 쉽게 변환, 조정하거나 수치 연산을 할 수 있는 이점을 얻게된다.

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    Norm of a Vector

    그렇다면 크기는 어떻게 측정을 할 까? v라는 벡터가 주어 진다면, |v|를 길이 크기 혹은 norm(노름)이라고 부른다. 직관적으로 norm은 벡터가 얼마나 큰지 포착해야 한다.   

    자연적 속성으로 길이(length)는 양의 수이다. |u|>=0

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    위과 같은 norm의 정의가 유도된다.

     

    Euclidean Norm in Cartesian Coordinates / L2 Norm of Functions

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    ||●|| 은 함수의 노름을 의미하고 |●|은 R^n에 있는 벡터의 노름을 의미한다.

    시그마를 적분으로 바꾼것과 같은 형태이다.  

     

    Inner Product(내적)

    vector 들은 orientation을 갖고 있다. (orientation 방향: 기하학에서 선 평면 또는 강체와 같은 물체의 방향, 각도 위치, 자세 또는 형상은 물체가 차지하는 공간에 배치되는 방법에 대한 설명의 일부이다.)

    norm으로 벡터의 크기 길이를 측정 한다면 inner product으로 벡터들의 정렬 혹은 방향의 비슷함을 측정한다.

    (inner product는 scalar product 혹은 dot product 라고도 불린다. 대부분 <u,v>로 표현하지만 종종 u●v라고 쓰기도 한다.)

    단위 벡터의 경우 내적은 다른 방향을 따라 한 벡터의 범위를 측정한다.

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    (벡터와 벡터함수에서 설명한것과 마찬가지로 좌표계에서의 내적을 본다.)

    Inner Product in Cartesian Coordinates

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    Linear Maps(선형 변환)

    선형 대수학은 벡터 공간과 그 사이의 선형 맵에 대한 연구였다.

    vector space를 굉장히 잘 다를 수 있게 되었다. 근데 선형변환이 무었이고, 그래픽스에 왜 유용한가?

    - 계산적으로, 선형 방정식의 시스템은 쉽게 풀 수 있다.

    - 기본 변환(회전, 이동, 스케일링)은 선형 변환으로 표현할 수 있다.

    - All maps 단거리/단시간에 걸쳐 선형 지도로 근사화될 수 있다. 이 근사치는 geometry, animation, rendering, image processing등에 사용된다.

     

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    Linear Maps - Geometric Definition

    선형변환은 f(0) = 0 을 유지한다

     

    Span

    - 벡터들을 이용하여 온갖 선형결합을 통해 만들어진 벡터 스페이스
    - Set of vectors constructs of vector space by linear combination
    - 사전적 의미: (많은, 넓은 것을)포괄하다, 걸치다, 가로지르다
    - 선형대수 의미 : span a space, 어떤 공간을 포괄하다

    "The image of any linear map is the span of some collection of vectors."

    ex) au+bv (a, b any two numbers)

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    Basis(기저) vector
    - 정의 : 벡터 공간에서 각각의 축방향을 가리키는 단위 벡터/ 각 축의 방향으로 크기가 1인 벡터
    벡터들은 바로 어떤 공간을 "span"하면서 그들이 독립(Independent)인 벡터들이다.
    Number of minimum linearly independent vectors to span the vectors span
    기저(basis)는 유일하지 않다.
    - 특징/속성
    기저벡터들은 독립(Independent)이다.
    기저벡터들은 공간(space)을 "span"한다.
    기저를 쓰는 이유
    물체가 아니라 기저를 회전 시키거나 이동시키면 결과적으로 물체가 이동,회전한 것과 같기때문!!
    기저들을 이용해서 행렬을 만들어서 물체와 곱하면 연산을 아주 많이 줄일수 있기 때문이다!!
    - 기저 여부 확인법
    먼저 벡터들을 어떤 행렬의 column vector로 만들어서 하나의 행렬을 만듬
    가우스 소거(Gauss Elimination)를 통해 echelon form 행렬을 만듬
    행렬이 free variable을 갖는지, 혹은 모든 각 column vector가 pivot을 가지고 있는지를 확인
    즉 행렬의 Rank를 가지고 판별하는 것
    n x n 행렬이 역행렬이 존재(invertible)해야 한다.

     

    Gram-Schmidt

    orthnomal basis를 찾는 알고리즘 중 한개 복잡한 수식보단 아래 gif를 한번 보면 이해가 더 빠르다

    그람 슈미트 과정

    Fourier Transform

    (implicit neural representation에서 매일 등장하는 이론중 하나)

    함수도 벡터인데 함수도 orthonormal basis를 소유하는가??

    이는 푸에리에 변환의 기본 아이디어이다.

    복잡한 주기를 가지고 있는 함수는 기본적인 sinusoids로 정사영이가능하다!!

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    😎느낀점😎

    선형 대수를 공부한지 오래되었는데 다시 한번 훑어 보고 까먹은것을 정리하는 좋은 강의였으며

    법칙이나 정의를 외우지말고 받아들이지말고 하나하나 생각해보라는 것이 인상 깊었다. 

    사실 내용은 그렇게 어렵지 않고 고등학교에서 기하와 벡터를 충실히 공부했다면 막힘이 없는 내용이었다.

    그리고 가장 인상깊었던 것은 강의의 진행이 논문의 진행 스타일과 비슷하다는 느낌이 들었다. 

    처음 왜중요해? 그다음 벡터 설명 함수의 벡터 설명 이것을 측정, 선형변환, 내적, 기저 찾기 순으로 아름답게 떨어진다.

     

     

     

     

     

    Reference

    Lecture 02: Linear Algebra (P)Review (CMU 15-462/662)

    https://www.youtube.com/watch?v=2c8XQlQApx8&list=PL9_jI1bdZmz2emSh0UQ5iOdT2xRHFHL7E&index=3

    wiki Orientation_geometry

    https://en.wikipedia.org/wiki/Orientation_(geometry) 

    한양대 선형대수 

    https://adioshun.gitbooks.io/linear-algebra/content/09c120-d615-b3c5-b9bd-span-ae30-c800-cc28-c6d0.html

    wiki Gram-Schmidt

    https://ko.wikipedia.org/wiki/%EA%B7%B8%EB%9E%8C-%EC%8A%88%EB%AF%B8%ED%8A%B8_%EA%B3%BC%EC%A0%95

    [선형대수] Gram-Schmidt 

    https://soohee410.github.io/gram_schmidt

Designed by Tistory.