본문 바로가기

분류 전체보기

(156)
Similar matrices and Jordan form 1. 닮음 행렬(Similar Matrix)■ \( n \times n \) 행렬 \( A \)와 \( B \)가 있다고 하자. 그리고 역행렬이 가능한 행렬 \( M \)이 있다고 했을 때,■ '\( A \)와 \( B \)가 유사하다'의 의미는 '\( B = M^{-1} A M \)와 같다'라는 것이다.■ 예를 들어, 어떤 행렬 \( A \)가 완전한 고유벡터 집합을 가지고 있다고 가정해 보자. 이 고유벡터들로 구성된 고유벡터 행렬 \( S \)를 이용하면 대각 원소가 고윳값인 행렬 \( \Lambda \)를 만들 수 있었다. \( S^{-1} A S = \Lambda \). 이것은 행렬 \( A \)와 행렬 \( \Lambda \)가 유사하다는 것을 말한다.■ 이 예에서 \( A \)가 \( \Lam..
미분 자동 계산 (1) ■ 미분은 머신러닝, 딥러닝의 여러 분야에서 중요한 역할을 하며, 텐서플로와 파이토치같은 딥러닝 프레임워크는 일종의 미분 계산 도구이다. 미분을 계산하기 위해서는 '변수'와 '함수'가 필요하다.1. 변수■ 변수의 역할은 다음과 같은 상자와 같다.■ 변수(여기서는 상자)에 데이터를 넣을 수 있고(=할당할 수 있고), 상자 속을 보면 상자 속에 들어 있는 데이터가 무엇인지 확인할 수 있다(=참조할 수 있다).1.1 Variable 클래스 구현■ 상자와 같은 역할을 하는 변수라는 개념을 다음과 같이 클래스로 구현할 수 있다. class Variable: def __init__(self, data): self.data = data■ 이렇게 초기화 함수 __init__에서 self.data라는 ..
Positive definite matrices and minima 1. 양정치 행렬 또는 양의 정부호 행렬(Positive definite matrices)■ 양정치행렬(양의 정부호 행렬)은 대칭행렬에서만 적용된다. ■ \( 2 \times 2 \) 대칭행렬 \( A = \begin{bmatrix} a & b \\ b & c \end{bmatrix} \)라고 할 때, 양정치행렬인지 테스트하는 방법은 다음과 같다.- (1) 첫 번째 테스트는 고윳값 테스트이다. \( 2 \times 2 \) 대칭행렬에서 나올 수 있는 고윳값은 2개이다. 이 고윳값이 모두 양수여야 한다. ① \( \lambda_1 > 0, \; \lambda_2 > 0 \)- (2) 두 번째 테스트는 행렬식 테스트이다. 주부분행렬의 행렬식 값이 모두 0보다 커야 한다.- \( 2 \times 2 \)이므로..
Pre-trained Word Embedding ■ 파이토치에서 임베딩 벡터를 사용하는 방법은 크게 두 가지이다. - 하나는 nn.Embedding( ) 모듈로 임베딩 층(embedding layer)를 만들어 훈련 데이터로부터 임베딩 벡터를 학습하는 방법- 다른 하나는 사전에 훈련된 임베딩 벡터(pre-trained word embedding)을 가져와서 사용하는 방법이다.1. nn.Embedding( )■ nn.Embedding은 임베딩 층을 만들어 훈련 데이터를 임베딩 벡터로 학습하기 위해 사용한다. ■ 그 과정에서 토큰의 정수 ID를 신경망 계산에 사용되는 임베딩 벡터로 매핑한다. 그리고 옵티마이저는 모델 가중치를 업데이트할 때, 이 임베딩 벡터값도 업데이트해서 손실을 최소화하기 때문에 모델이 풀고자하는 문제에 맞는 임베딩 벡터로 업데이트된다..
Symmetric matrices and positive definiteness 1. Symmetric matrix, Diagonalization of symmetric matrix■ \( n \times n \) 정방행렬의 전치가 자기 자신일 때. 즉, 정방행렬의 원소가 \( a_{ij} = a_{ji} \)을 만족하는 경우 대칭행렬이라고 한다. ■ 그리고 대칭행렬은 고윳값이 전부 실수(real number)이며, 서로 다른 고유공간에 있는 고유벡터는 서로 직교한다. 고유벡터들이 서로 직교한다는 것은 고유벡터들이 서로 다른 1차원의 고유공간을 형성한다고 할 수 있다. - 서로 다른 고윳값 \( \lambda_1, \lambda_2 \)에 대응하는 고유벡터 \( v_1, v_2 \)가 있다고 했을 때, \( Av_1 = \lambda_1 v_1, \; A v_2 = \lambda_2..
원-핫 인코딩, 워드 임베딩 ■ 말뭉치에 있는 단어를 컴퓨터가 이해할 수 있도록 수치 벡터로 나타내기 위해 표준화가 필요하면 표준화를 적용한 다음, 토큰화한다. 이때, 모든 단어를 중복을 허용하지 않고 모아놓으면 이를 사전 또는 단어 집합(vocabulary)이라고 부른다.- 사전 또는 단어 집합(vocabulary)라고 부르는 것은 '서로 다른 단어들의 집합'이다. 예를 들어 cat과 cats, fly와 flew처럼 단어의 변형 형태도 다른 단어로 간주한다. ■ 다음 단계는 단어 집합에 고유한 정수를 부여하는 정수 인코딩을 진행한다. 정수 인코딩한 상태를 모델에 넣고 학습한다면 문제가 생길 것이다. 어떤 연산이 되었건 연산은 숫자로 하지만, 정수 인코딩하여 숫자가 표현하고 있는 것은 숫자가 아닌 어떤 본연의 의미가 있는 단어이기 ..
유사도 ■ 단어를 수치 벡터로 표현했다면, 단어 벡터 사이의 유사도를 계산할 수 있다. 1. 코사인 유사도(Cosine Similarity)■ 코사인 유사도는 두 벡터의 코사인 각도를 이용하여 계산할 수 있다.- 두 벡터의 방향이 완전히 동일하면, 두 벡터의 각도는 \( 0^\circ \)이므로 \( \cos 0 = 1 \)- 두 벡터가 서로 직교하면, 두 벡터의 각도는 \( 90^\circ \)이므로 \( \cos 90^\circ = 0 \)- 두 벡터의 방향이 완전히 반대 방향이면, 두 벡터의 각도는 \( 180^\circ \)이므로 \( \cos 180^\circ = -1 \)■ 즉, 코사인 유사도는 -1 이상 1 이하의 값을 가지며, 값이 1에 가까울수록 유사도고 높다고 판단할 수 있다. ■ 두 벡터가 ..
Bag of Words, DTM, TF-IDF 1. 단어 표현 방법 대분류 - 국소 표현, 분산 표현■ 단어 표현 방법은 크게 국소 표현(local representation)과 분산 표현(distributed representation)으로 나뉜다. ■ 분산 표현 방법은 어떤 단어를 표현할 때, 그 단어의 주변 단어를 고려하는 방법이고, 국소 표현 방법은 해당 단어 그 자체만 보고, 해당 단어와 특정값을 매핑하여 단어를 표현하는 방법이다.■ 예를 들어 puppy(강아지), cute(귀여운), lovely(사랑스러운)라는 단어가 있을 때, - 분산 표현은 puppy라는 단어가 cute, lovely라는 단어와 함께 자주 등장하면, puppy라는 단어는 cute, lovely한 느낌의 단어로 정의한다. 즉, 분산 표현은 '맥락'을 고려해서 단어의 뉘앙..