머신러닝
고윳값 분해(Eigen Decomposition) 란 무엇인가? Numpy, TensorFlow, PyTorch 사용해 고유값 분해 해보기
고유값 분해란 무엇인가?고윳값 분해(Eigen Decomposition)는 정방행렬(square matrix)을 고유값(eigenvalues)과 고유벡터(eigenvectors)를 사용해 분해하는 방법이다. 고윳값 분해를 통해 행렬의 구조와 성질을 분석하고 계산을 단순화할 수 있다. 고윳값 분해 수식은 다음과 같다. $$\mathbf{A} = \mathbf{V} \mathbf{\Lambda} \mathbf{V}^{-1}$$ $\mathbf{A}$: n x n 정방행렬$\mathbf{V}$: 고유 벡터를 열벡터로 표현한 행렬$\mathbf{\Lambda}$: 고유값을 대각 행렬로 표현한 행렬 수식을 사용한 고유값 분해이곳에서는 다음 $\mathbf{A}$ 행렬에 대한 고유값 분해를 수행한다. $$\mat..
아핀 변환(Affine Transformation)이란 무엇인가?
아핀 변환 이란?아핀 변환(Affine Transformation)은 선형 변환(Linear Transformation)과 평행 이동(Translation)을 결합한 변환을 의미한다. 즉, 다음과 같은 수식 처럼 $\mathbf{x}$ 를 변환하면, 아핀 변환이다. $ \mathbf{y} = \mathbf{A} \mathbf{x} + \mathbf{b} $ 이곳에서 $\mathbf{A}$ 는 선형 변환을 하는 행렬이고, $\mathbf{b}$ 가 수평 변환을 하는 벡터이다. 아핀 변환 사용해보기$\mathbf{x}$ 를 ${\theta}$도만큼 회전시키려면 다음과 같은 $\mathbf{A}$를 사용하면 된다. $\mathbf{A} = \begin{bmatrix} \cos{\theta} & -\sin{\t..
직교 행렬(Orthogonal Matrix)이란 무엇인가?
직교 행렬이란?직교 행렬이란 각 행과 열의 크기가 1이고, 각 행 벡터들이 서로 직교하고, 열 벡터들도 서로 직교하는 정사각 행렬이다. 즉, 다음 두가지 조건을 만족하는 행렬이다. 1. 행과 열의 크기가 1이다. 2. 행 벡터들끼리 서로 직교하며, 열 벡터들끼리 서로 직교한다. 직교 벡터(Orthogonal Vector)는 서로 직교하는 벡터이고, 정규 직교 벡터(Orthonormal Vector)는 각 직교하는 벡터들의 크기가 1인 벡터를 뜻하는 것을 생각해보면, 직교 행렬은 정규 직교 벡터(Orthonormal Vector)들을 행렬에 집어 넣은 것과 같다.이름이 정규 직교 행렬(Orthonormal Matrix)이어야 할 것 같은데 직교 행렬(Orthogonal Matrix)라 표현해서 조금 헷갈린..
머신러닝에서의 Tensor란 무엇인가? Numpy, TensorFlow, Pytorch의 Tensor 알아보기
Tensor란 무엇인가?머신러닝을 공부하다보면 Tensor라는 말이 자주 쓰인다 TensorFlow 프레임웍에는 아예 이름에 Tensor가 들어가 있고, Pytorch에서 스칼라 값을 만들 때는 torch.tensor(100) 같이 사용하기도 한다. 도대체 Tensor가 무엇을 뜻하길래 프레임웍의 이름에도 들어가 있고 모델을 만드는 함수의 이름으로도 들어가는 것일까?Tensor는 머신러닝에서 데이터 구조를 일반화한 개념으로, 벡터와 행렬을 포함하여 더 높은 차원의 데이터를 표현할 수 있는 다차원 배열이다. 0차원 스칼라, 1차원 벡터, 2차원 행렬, 그리고 n차원 배열을 Tensor를 사용해 표현할 수 있으며, Tensorflow나 Pytorch같은 프레임웍은 Tensor를 기본 데이터 구조로 채택한다...