머신러닝

eigen vector와 eigen value

토픽 머신러닝

이전까지 배우던 내용은 한 마디로 요약하자면, 

"이 Matrix의 해를 어떻게 구하지?"

입니다. 이제부터 다룰 내용은

"이 Matrix의 해를 어떻게 구하지?" 

가 핵심입니다. "그냥 Matrix를 곱해서 계산하면 되지 않아?" 라고 생각이 드실 겁니다. 맞아요, 그렇게 해서 풀 수 있습니다. 하지만, 그렇게 계산해서는 "사실상" 풀 수 없습니다"

만약 A가 100 X 100 matrix라고 생각해봅시다.

A*A는 다음과 같은 형태일 겁니다. 

A*A에는 몇 번의 연산이 필요할까요?

하나의 원소를 구하는데만 100번의 연산이 필요하고, 그 원소를 100*100 개를 구해야 하니, 무려

100*100*100 = 1,000,000(백만)

의 연산이 필요합니다. 이 Matrix는 사이즈가 작은 편인데, 좀만 더 큰 1000X1000 Matrix를 1000번 곱하는 문제로 간다면,

1000 * 1000 * 1000 * 1000 = 1,000,000,000,000(1조)

...  "사실상" 풀 수 없습니다"의 의미가 무엇인지 파악이 되시나요?

Eigen Vector와 Eigen Value의 핵심은 이 복잡한 Matrix의 곱셈을 Scalar의 곱셈으로 바꾸어 준다는 데에 있습니다.

Eigen Vector와 Eigen Value의 정의는 이렇습니다.

Eigen Vector & Eigen Value

음.. 이걸 통해서 어떻게 

이 계산이 편해질까요?

즉 A^n의 복잡했던 Matrix의 곱셈이 쉽게 lambda^ n의 실수의 곱셈으로 바뀌었습니다. 

쉽게 말하면, 이전에 1조번해야 하던 계산이 1000번으로 엄청나게 줄어든 거죠.

다만, 저렇게 될 수 있는 건, Eigen Vector에 한정되어 있다는 한계가 있죠? 

그 문제를 해결하는 건 어렵지 않습니다. Vector x를 eigen vector의 조합으로 구해 풀면 되거든요

이런 식으로요. 

왜 Eigen Vector와 Eigen Value가 중요한지 아시겠나요? 이후 내용은 이 계산을 좀 더 간단하게 하는 방법론을 다룹니다. 여기서 가져가야 하는 것은, 왜 Eigen Vector와 Eigen Value가 중요한가! 입니다. 

 

 

댓글

댓글 본문
  1. 로버트한
    ㅎㅎ 어려운데 진행해 봅니다. ^^