Linear Algebra란?
Linear Algebra (선형대수)는 다음을 다루고 제공하는 분야임.
- vector, matrix, tensor 등을 사용하여, 대용량의 숫자로 이루어진 데이터를 효과적으로 계산 및 처리하는 방법을 다룸.
- 기하학적으로 이해가능한 1~3차원”에서 출발하여 “딥러닝과 같은 기계학습에서 이용하는 고차원 벡터 공간“에서의 대용량 데이터 분석을 위한 이론적 그리고 수학적 기반을 제공.
어떤 객체를 이해한다는 것은
해당 객체의 여러 속성들에 대해 적절한 scale의 값을 알고 있는 것을 의미함.
객체는 abstraction을 통해 필요한 속성들만으로 표현되는 게 일반적이지만,
일반적으로 단일 값(scalar)가 아닌 여러 숫자들로 구성(vector)되며,
해당 객체가 여러 instances를 가질 경우 (matrix)로 확장되어지기 쉬움.
Linear Algebra는
여러개의 속성으로 구성된 객체의 수치적인 표현(=vector, matrix, tensor)를
효과적으로 다룰 수 있는 기법들로 구성됨.
보통 vector space에 각 객체를 표현한다고 볼 수 있음.
개념 이해: Terminology and Theorem
Linear Algebra 관련해서 원서의 용어(Terminology)에 대한 정확한 개념을 가지고 있는 것이 기계학습이나 AI 분야의 응용기술을 이해하는데 필요함.
- 컴퓨터의 발달로 점점 linear algebra에서 실제 손으로 하는 계산 보다는 concept(개념)이 중요해지고 있으며,
- 사람은 가장 효율적인 계산법을 고르고,
- 적절한 입력 데이터를 vector나 matrix 등의 형태로 넣어주고
- 얻은 결과를 해석하는 역할을 담당함.
- 기존의 손으로 하는 계산능력은 선형대수의 개념을 구현한 library 등을 활용하는 능력으로 대체되었다고 보는게 좋을 듯 함.
(물론 선형대수 과목을 수강 중이라면, 가우시언 소거법등을 이용한 손으로하는 계산에 익숙해야 학점이 나옴.)
실제로 일부 교재에서 Linear Algebra는 일종의 외국어라고 생각하고 외국어를 배우듯이 매일매일의 학습을 하는게 효과적이라는 언급이 있을 정도임.
다음은 David C. Lay 가 쓴 Linear Algebra의 서두에 나온 내용이다.
In this day, the concepts are more important than the computations in linear algebra. Later in your career, computers will do all the complex calculations, but you will have to
- choose the calculations,
- know how to interpret the results, and then
- explain or report the results to other people, such as your boss, customer, or professor.
To master the concepts of linear algebra, you should read and reread the text carefully. In a practical sense, linear algebra is a language, specifically a foreign language. You must learn this language the same way you would a foreign language —with daily work.
접근방법
Linear Algebra의 계산에 필요한 연산들은 양이 많을 뿐, 단순하고 반복적인 측면이 강하기 때문에
- Theorem들을 통해 머리 속에서 기하학적인 이해를 하는 것이 보다 중요하고,
- 이후 3차원 이상인 고차원의 간단한 예제(Machine Learning 을 위한 library들이 제공하는 간단한 예제들)를
익숙한 프로그래밍 언어로 구현하고 결과를 보는 형태
로 공부하면 효과적이다.
Python 유저에게 권하는 Library는
- NumPy, ***
- Tensorflow, **
- PyTorch, ***
- SymPy, *
- 그리고 SciPy이다. *
경험상 NumPy가 가장 쉽게 접근 가능하며, Tensorflow나 PyTorch는 모두 NumPy와 매우 유사하기 때문에 NumPy로 시작이 가장 좋다고 생각된다.
SymPy의 경우, Linear Algebra의 예제들을 쉽게 풀어볼 수 있는 강력한 공학용 계산기라고 생각하면 될 듯하다.
같이보면 좋은 자료들
2025.01.21 - [.../Linear Algebra] - [Summary] Linear Algebra (작성중)
[Summary] Linear Algebra (작성중)
ML 을 위해 Linear Algebra 공부시 참고할만한 책더보기전체적으로 공부를 한다면 다음을 권함.Linear Algebra and Its Application, 5th ed 이상, David C. Lay5th ed. 는 웹에서 쉽게 pdf도 구할 수 있음. 다음은 1~2개
dsaint31.tistory.com
'... > Math' 카테고리의 다른 글
[LA] tf.linalg.solve 로 linear system 의 solution 구하기. (0) | 2022.09.01 |
---|---|
[LA] Data Types (or The Types of Variable) (0) | 2022.09.01 |
[Math] Definition, Proposition, Axiom, and Theorem (0) | 2022.09.01 |
[Math] 수(Number)의 종류 (0) | 2022.08.31 |
[Math] Radian (Circular measure, 호도법) (0) | 2022.08.29 |