Machine Learning

    무어 펜로즈 유사 역행렬(Moore-Penrose Pseudoinverse) 한 번에 정리하기: Numpy, TensorFlow, PyTorch 사용해 구하는 방법 정리

    무어 펜로즈 유사 역행렬(Moore-Penrose Pseudoinverse) 한 번에 정리하기: Numpy, TensorFlow, PyTorch 사용해 구하는 방법 정리

    무어 펜로즈 유사 역행렬이란 무엇인가?행렬에 대해 역행렬을 구하기 위해서는 행렬이 비특이 행렬(non-singular matrix)이어야 한다. 만약 특이행렬이라면 역행렬이 없기 때문에 역행렬을 구할 수 없다. 역행렬을 구할 수 없는 상황을 해결하기 무어 펜로즈 유사 역행렬이 생겼으며, 어떤 $m \times n$ 행렬 $\mathbf{X}$에 대해 다음 네가지 조건을 만족하는 행렬을 $\mathbf{X}$의 유사역행렬 $\mathbf{X}^+$라 부른다.  1. $\mathbf{X} \mathbf{X}^+ \mathbf{X} = \mathbf{X}$2. $\mathbf{X}^+ \mathbf{X} \mathbf{X}^+ = \mathbf{X}^+$3. $(\mathbf{X} \mathbf{X}^+)^T..

    특이값 분해(Singular Value Decomposition)란 무엇인가? PyTorch, TensorFlow, Numpy 사용해 특이값 분해하기

    특이값 분해(Singular Value Decomposition)란 무엇인가? PyTorch, TensorFlow, Numpy 사용해 특이값 분해하기

    특이값 분해란 무엇인가?특이값 분해(Singular Value Decomposition, SVD)란 $m x n$ 차원의 행렬을 대각화해 세 개의 행렬로 분해하는 방법이다. 고유값 분해와 비슷하지만, 고유값 분해는 정사각 행렬에만 사용 가능한 반면, 특이값 분해는 직사각 행렬일 때도 사용 가능해 활용도가 높다. 특이값 분해를 수식으로 표현하면 다음과 같다.  $$\mathbf{X} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^T$$ 여기서 각 기호는 다음과 같다.$\mathbf{X}$ : $m \times n$ 행렬.$\mathbf{U}$ : $m \times m$ 정사각 행렬로, $\mathbf{X}$의 좌특이 벡터(Left Singular Vectors)로 구성돼 직교 행렬..

    고윳값 분해(Eigen Decomposition) 란 무엇인가? Numpy, TensorFlow, PyTorch 사용해 고유값 분해 해보기

    고윳값 분해(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..

    고유 벡터(Eigenvector)와 고유 값(Eigenvalue)이란 무엇인가? Numpy, TensorFlow, PyTorch로 고유 벡터 구해보기

    고유 벡터(Eigenvector)와 고유 값(Eigenvalue)이란 무엇인가? Numpy, TensorFlow, PyTorch로 고유 벡터 구해보기

    고유 벡터와 고유값고유 벡터(Eigenvector)는 어떤 선형 변환을 해도 방향이 변하지 않는 벡터를 뜻한다. 즉, 선형 변환에 의해 크기만 변하고 방향은 그대로 유지되는 벡터이다. 고유 값(Eigenvalue)은 고유 벡터가 선형 변환에 의해 변할 때 어느 정도 변했는지 크기를 나타내는 스칼라 값이다. 즉, 선형 변환을 가했을 때, 벡터가 늘어나거나 줄어드는 정도를 뜻한다. 따라서 행렬 $\mathbf{A}$와 고유 벡터 $\mathbf{v}$와 고유 값 $\lambda$가 있다고 하면 다음과 같은 수식이 성립한다. $$\mathbf{A} \mathbf{v} = \lambda \mathbf{v}$$  고유값과 고유 벡터 직접 구해보기이번에는 다음과 같은 행렬에 대한 고유 값과 고유 벡터를 구해보자. ..

    아핀 변환(Affine Transformation)이란 무엇인가?

    아핀 변환(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..