본문 바로가기
국비 교육/머신러닝, 딥러닝

[머신러닝] 인공지능을 위한 수학(3. 선형대수)

by 육츠 2023. 11. 27.
Contents 접기

머신러닝을 이해하는데 있어 기초적인 선형대수 지식이 필요하다. 때문에 교수님이 추천하신 책인 <인공지능을 위한 수학> 중 목차 3번, 선형대수에 대해 가볍게 공부해보자.

선형대수

3 - 1. 벡터

여러개의 데이터를 하나의 열에 담아둔 것을 말한다.
쓰는 방법: 소문자를 굵게 표현, 문자위에 화살표 표시, 문자에 세로선 장식 등의 방법이 있다.

가로로 성분을 나열한 것을 행벡터
세로로 성분을 나열한 것을 열벡터 라고 한다.

 

3-2. 덧셈과 뺄셈 그리고 스칼라배

벡터끼리의 덧셈과 뺄셈을 할 때는 서로 대응하는 성분끼리 한다. 행벡터나 열벡터의 관계없이 같은 방식으로 계산이 가능하다.
차원은 벡터 성분의 수를 가리키며, 서로 다른 차원의 벡터는 계산이 불가능하다.

스칼라는 벡터에 대비되는 개념으로 크기만 있고 방향이 없는 상수나 변수같은 1차원의 값을 의미한다.
때문에 스칼라배를 할때에는 전체 성분에 스칼라 값을 곱하면 된다. (스칼라값이 곱하는 벡터에 맞춰 차원이 증가되기 때문이다.)

인공지능에서는 컴퓨터에서 언어를 처리하기 위해 단어들을 마치 벡터처럼 취급하여 단어의 유사성을 사용해 벡터를 표현하는 방식이 있다.
(코사인 유사도를 활용한다)

 

3-3. 유향성분

방향과 거리를 나타내는 화살표를 유향성분이라고 한다.

 

3-4. 내적 

내적은 벡터의 서로 대응하는 성분끼리 곱한 다음 그것들을 모두 더한 것을 말한다.
내적의 기호: <a,b>, a.b

내적의 계산에서 주의해야할 것은 벡터와 벡터를 내적한 결과는 스칼라값이 된다는 것이다.

또한, 서로 다른 차원의 벡터끼리는 계산할 수 없다.

 

내각을 정의할때는 기하학적인 특징으로 정의할 수 있다.

<a,b> = ||a|| x ||b|| x cosθ 이며 여기서 θ 는 a와 b의 시작점을 일치시켰을때 생기는 벡터와 벡터사이의 각을 말한다.
||a|| : 벡터 a의 길이 즉 유클리드 거리를 가리킨다.

cos 0 = 1/ cos 30˚ = √3/2 / cos 45˚ = √2/2 / cos60˚ = 1/2  / cos90˚ = 0
https://m.blog.naver.com/pso164/222609549897

 

cos30° cos45° cos60° cos0° cos90° 값과 계산 과정!

중학교 3학년이 되면 처음으로 삼각비 개념에 대해서 학습하고, 특수각으로 일컬어지는 여러 값에 대해서 ...

blog.naver.com

 

3-5. 직교조건

두개의 벡터 a, b가 서로 직교한다는 것은 두 벡터의 이루는 각이 90˚ 라는 의미이다.
이것은 내적 <a,b>가 0 이라는 말이다.
||a|| x ||b|| x cos90 = 0 , cos90˚ = 0 이기 때문에 0을 곱하면 0이 되기 때문이다.

따라서 두 벡터가 직교하는지 알아보려면 내적이 0인지 확인하면 된다.

 

3-7. 벡터의 노름

벡터는 방향과 이동거리가 중요한데, 이때의 이동거리를 노름이라고 한다.
(노름은 이전 정규화의 규제를 공부할때 나온 노름과 동일하다.)

L1 노름의 계산 = 벡터의 각 성분들의 절댓값을 구한 후 모두 더하면 된다.
||a||1 = |a1| + |a2| + ... + |an|  = ∑a*i 이다.

L2 노름의 계산 = 유클리드 거리의 계산과 동일하다.
||a||2= √ (∑a2*i) = √((a^2)1 + (a^2)2 + ... +  (a^2)n  )
또는 √<a,a,>와 같이 표현할 수 있다.

 

3-8. 코사인 유사도

<a,b> = ||a|| x ||b|| x cosθ 의 식을 cosθ 을 중심으로 전개하면 cosθ = <a,b> / (||a|| x ||b||) 가 된다.
이때 코사인의 유사도는 -1 <= cos(a,b) <= 1 의 구간 안에 있다.

인공지능에서는 이러한 코사인 유사도가 높을수록 해당하는 단어나 문장들이 더 가까운 관계라는 것을 알 수 있다. 

 

3-9. 행렬의 덧셈과 뺄셈

행렬은 사실상 벡터의 개념이 확장된 것으로, 여러개의 데이터를 여러 줄에 담아낼 수 있게 만든 것이다. (벡터는 한 줄에 담는다.)
행렬의 행 = 숫자를 가로로 늘어놓은 것을 말하고, 열 = 숫자를 세로로 늘어놓은 것을 말한다.
행렬은 굵은 글씨로 대문자로 표시한다.

또한 행렬의 덧셈 과 뺄셈도 서로 대응하는 성분끼리 연산을 한다.

 

3-10. 행렬의 곱셈

m x n 행렬과 n x l  행렬(n 차원의 열벡터) 곱하는 것은 m 차원의 열벡터 모양이 된다.
결과적으로  m개의 n 차원 행벡터 와 l개의 n차원 열벡터를 내적하는 것과 같기 때문에 m x l 행렬의 모양이 된다.

곱하는 순서에 따라 곱셈 결과가 달라지고 행렬도 달라지기 때문에 행렬의 곱셈에서는 교환법칙이 성립하지않는다. 

행렬에서 0과 같은 역할을 하는 것이 존재한다.
영행렬 : 행렬의 성분 전체가 0인 행렬을 말한다. 숫자 0과 마찬가지로 행렬이나 벡터에서 영행렬을 곱하면 그 결과도 0이 된다.

대각선은 1로 제외한 나머지는 0으로 채워진 정방행렬을 단위행렬이라고 부르며
E  = 1 0  과 같이 쓴다.
       0 1
어떤 행렬이나 벡터에 단위행렬을 곱하면 그 결과가 달라지지 않고 원래의 행렬이나 벡터가 그대로 나오게 된다. (= 항등사상)

 

3-11. 역행렬

행렬에는 나눗셈이 존재하지 않기 때문에 대신 역할을 하는 것을 역행렬이라고 한다. (역수의 개념을 적용한것)
행렬 A 와 A-1을 곱하면 단위행렬 E 가 나오도록 정의 한다.
AA-1 = A-1A = E

정방행렬이더라도 행렬 A의 행렬식이 0인 경우에는 역행렬이 존재하지 않는다.
이때 행렬식은 detA / |A| 로 표현 하며 식은 det A = ad - bc 이다.

역행렬을 구하는 공식은 
A  = a b                A-1 = 1/ ad - bc *  d   -b
        c d                                               -c    a

 

3-12. 선형변환

선형변환은 수학적으로 벡터에 행렬을 곱해 또 다른 벡터를 만드는 함수를 말한다. 
하나의 벡터 공간에서 또 다른 벡터 공간으로 벡터의 특징을 유지한 채 변환하는 방식이다.

표준기저 : 벡터의 공간을 구성하는 기준 (좌표계를 정할 수 있는 벡터의 집합을 말한다.)

글로만 표현 할 수 없어 영상을 추천하자면, 이해하기 쉬운 그래픽과 함께 설명을 해준다.

https://youtu.be/35ESC-g49fY?si=fzmUlcJkAb23H4Qe

 

3-13. 고윳값과 고유벡터

정방행렬 A 가 있고, 열벡터 x가 있을 때, λ 를 행렬의 고윳값이라고 하고 x 를 고유벡터 라고 한다.
Ax = λEx

https://youtu.be/-L0y6nPQFcM?si=zDxcd1nMCST-KJqU