QR분해 (QR Factorization) 그람-슈미트 직교화에서 orthogonal한 벡터를 주고 다시 원래의 벡터를 찾는 것을 matrix factorization, input matrix 복원이라고 언급했다. 이번 글에서는 이 QR Factorization을 설명한다. 1. 그람-슈미트 직교화를 설명한 예제에서 basis를 찾은 모습은 다음과 같다. 선형결합의 꼴로 나타낼 수 있다. 원래의 벡터가 basis와 다른 matrix로 선형결합꼴이 된다. 왼쪽의 벡터가 주어진 basis 이고 입력벡터, 오른쪽을 가중치로 볼 수 있다. 2. 여기서 ㅁ 를 채우는 방법 = 가중치(weight)를 구하는 방법이다. basis 두 가지 중에 제일 첫번째 벡터는 단순히 원래 벡터의 normarlize 로 구했기 때..
그람-슈미트 직교화 (Gram–Schmidt Orthogonalization) 먼저, Gram-Schmidt Orthogonalization, 왜 배우는 걸까? feature 간 수직 (Orthogonal)이 되지 않으면 중복된 정보를 추출하게 된다. -> linearly independent 한 feature를 Orthogonal 하게 만들자! 이전 글(Orthogonal Projection)에 포스팅한 마법의 공식, 다시 등장한다. projection 의 공식이다. 위키피디아에서는 사영 연산자를 다음과 같이 정의한다. 그람-슈미트 과정의 일반화 된 공식은 아래와 같다. 이 공식을 도출해보자. 예제 먼저 2차원에서는 쉽다. Let W = span{v1, v2}, where v1 = [3,6,0].T a..
2020이 지나고 써야 제 맛인 2020 정산, 2020 버전은 2019 정산과 다르게 회고하면서 회고록으로 쓴다... 원래 핸드폰 스케줄러를 굉장히 잘 이용했었는데 올해는 10월부터 대강 적었었다. 핸드폰 스케줄러 어플의 목적이, 과제 / 약속 / 스케줄 조절인데 과제가 매일 있고 약속이 없었기 때문에 그런 것 같다. 그래서 최대한 돌아보면서 어플 + 플래너의 도움을 받아서 적는다... 1월 - 2월 동아리 2019 정산을 적을 당시에 "투빅스" !! 붙어서 멘토링 하는 날이라 파이썬 열심히 하면서 블로그에 글을 썼던 기억이 난다. ㅎㅎ 1월은 투빅스에 들어갈 수 있어서 너무 들떠 있고, 신나고 잘 풀린 기억이 있다. 막상 들어가서는 공부하느라, 까먹어버린 파이썬 다시 하느라 힘들었지만, 내 인생 계획..
다중공선성 (Multicollinearity) / correlation 의 기하학적 의미 머신러닝 모델을 만들 때 흔히 발생하는 문제 중 하나가 다중공선성이다. 그렇다면 다중공선성, 즉 변수간의 correlation이 높다는 것은 어떤 뜻이고 어떤 문제를 야기할까? 이 글은 저번 Orthogonal Projection 과 이어진다. 2021/01/26 - [[ Today I Learned ]/Linear algebra] - [선형대수] Orthogonal Projection ŷ of y [선형대수] Orthogonal Projection ŷ of y Orthogonal Projection ŷ of y, (y의 정사영 y-hat) y의 Orthogonal Projection 값 ŷ 을 구하는 방법을..
Orthogonal Projection ŷ of y (y의 정사영 y-hat) y의 Orthogonal Projection 값 ŷ 을 구하는 방법을 알아보자. 1. [2차원에서의 설명] Orthogonal Projection ŷ of y onto Line Line L에 Orthogonal projection (사영) 시키는 경우는 다음과 같다. ŷ 의 값을 구하기 위해서는 ŷ 의 길이와 ŷ 의 방향을 곱한다. y의 길이는 y norm 이다. (||y||) ŷ 의 길이는 ||y|| cosθ이기 때문에 y와 u의 내적에서 유도한다. 방향은 u 벡터의 방향에서 유도한다. u 의 unit vector(단위벡터) 를 구하면, 길이는 1이면서 방향만 남는다. 길이 x 방향 을 해주면 2번과 3번을 곱한..
[NLP] 단어부터 문장까지 GloVe Embedding 하기 / Clustering 까지 워드 임베딩 방법론 중 하나인 GloVe에 대해서 직접 임베딩하는 과정을 알아보겠습니다. 단어 단위로 임베딩하고 문장 단위의 임베딩으로 바꾼 후 clustering 까지 하는 과정을 담았습니다. 제가 실제로 해커톤과 프로젝트에 이용한 방법들을 기준으로 합니다. 저는 주로 한국어 문장을 단어(토큰) 별로 피쳐로 바꿔서 이용하기 위해서 GloVe로 임베딩 하는 과정을 사용했습니다. (한국어 데이터들을 사용했습니다.) GloVe 모델 자체에 대한 자세한 설명은 아래 블로그 글을 참고해주세요. 저는 GloVe가 Word2Vec 과 같은 워드 임베딩 방법론 중에 통계 정보 를 추가한 방법론이라고 설명하고 넘어가겠습니다. G..