머신러닝(26)
-
transformer의 모든 것
딥러닝 모델 구조는 transformer의 등장 이전과 이후로 나뉜다고 해도 과언이 아닌 것 같다. RNN의 단점을 지우고 attention encoder와 decoder를 사용하는 구조로 자연어에서 변혁을 일으키며 나중에는 다른 도메인에서도 transformer를 안 쓰는 모델을 찾기가 힘들어졌다. MAMBA가 이제 판을 뒤집을지도 모르지만, 오늘은 transformer에 대해 기본을 탄탄히 잡아보자. 1. self attention attention은 Query, Key, Value 3가지가 주어졌을 때 Query와 유사한 Key를 찾고, 이에 대한 Value 중 뭘 채택할지 retrival하는 과정이라 볼 수 있겠다. 단순하게 한국어 영여 번역 태스크를 수행하는 모델을 만든다고 가정할 때, Qu..
2024.04.28 -
구현체를 통해 PEFT lora 를 알아보자
기존에 썼던 짧은 lora config글과 통합하여, Lora를 근본적으로 이해하기 위해서 새로운 글을 시작한다. lora가 어떤 원리인지 구현체를 통해서 이해해 보고, huggingface peft lora를 사용할 때 어떤 config를 "왜" 조정해야 하는지 알아보자. 0. 정말 간단한 요약 모델이 너무 무겁다. 이걸 어떻게 다 학습하나. 그래서 학습할 때 일부 layer들에 대해서(transformer에선 주로 attention block에 대해서만 적용하고 있다) weight를 따로 똑 떼어내서 학습하고자 한다. 아래 그림을 보면, 기존 모델을 그대로 학습한다면 모든 weight를 다 학습에 사용한다. 반면에 lora를 학습에 이용한다면 기존 weight는 학습에서 freeze시키고 lora a..
2024.03.17 -
Attention 기초 수식 설명
오늘은 머피의 머신러닝 1 15장에 있는 어텐션(Attention) 에 대해서 기술할 예정이다. 개인적으로는 최근 딥러닝 판도를 꽉 잡고 있는 transformer를 알기 위해서 꼭 알아야 하는 메커니즘이라고 생각한다. 참고: 머피의 머신러닝 1 1. attention이란 attention은 query(q), key(k), value(v) 3가지를 통해 연산이 이루어진다. query: 질문하고 싶은 벡터. 내가 궁금한 값이 여기에 해당하며, 쿼리에 가장 유사한 key, value를 찾는 것이 attention. key: query와 가장 유사한 key값을 찾는 것이 목표. value: 피쳐벡터. i번째 key값을 선택했다면 i번쨰 value값과 대응된다. 한 줄 요약을 하자면 'query와 유사한 ke..
2023.12.17 -
PCA의 완벽한 이론 설명
오늘은 factor analysis, 차원 축소 기법으로 잘 알려져 있는 PCA에 대해 다룰 예정이다. 데이터를 특정 차원으로 매핑하여 임베딩을 하는 방법론과 유사하게 생각할 수 있다. 데이터 시각화에서 자주 쓰이는 분야인데, SVM에서 데이터의 eigenvector 분리를 통해 이미지 압축 등을 했던 것이나 Fisher LDA에서 데이터를 projection했던 거를 연상할 수 있다. 이 방법론들과 PCA의 유사함과 다름을 수식을 통해서 이해해보자. 주의 : PCA가 무엇인지 어렴풋이 아는 상태에서 보는 걸 추천함. 참고 : 머피의 머신러닝 1 20장 1. PCA란 Principal Component Analysis(PCA)는 이름을 직역하면 주성분분석이다. 데이터 x가 있다고 할 때, 이 x의 주 성..
2023.10.29 -
Mutual Information 파헤치기
지난 글에 이어서 이번엔 Infromation Theory 중 Mutual Information(MI)에 대해 다룰 예정이다. 레퍼런스는 머피의 머신러닝 1 책의 6장과 CMI는 위키피디아를 참고했다. 참고 : 위키피디아 https://en.wikipedia.org/wiki/Conditional_mutual_information 지난 글 : https://hi-lu.tistory.com/entry/%EC%97%94%ED%8A%B8%EB%A1%9C%ED%94%BC%EC%99%80-KL-Divergence 엔트로피와 KL Divergence 오늘은 책 머피의 머신러닝 1의 6장에 해당하는 내용을 다뤄본다. 엔트로피의 개념부터 시작해서 KL divergence까지 전반적인 흐름을 수식을 통해 알기 쉽게 설명하..
2023.10.14 -
엔트로피와 KL Divergence
오늘은 책 머피의 머신러닝 1의 6장에 해당하는 내용을 다뤄본다. 엔트로피의 개념부터 시작해서 KL divergence까지 전반적인 흐름을 수식을 통해 알기 쉽게 설명하는 것이 목적이다. 0. Entropy Entropy 엔트로피는 불확실성을 의미한다. 과학에서 쓰이는 엔트로피를 보면 동일한 부피에서 고체의 엔트로피는 낮고 기체의 엔트로피는 높으며, 낮은 곳에서 높은 곳으로 흐르는 성질이 있다. 머신러닝을 위한 수학에서도 엔트로피는 같은 의미로 쓰인다. 모델을 학습하는 것은 결국 확률을 모델링하는 것이 되는데, 해당 분포가 불확실할수록 엔트로피는 높아진다. 예를 들어 어떤 X가 있는데, 이 X는 초록사과(X=0)인지 빨간사과(X=1)인지에 대한 정보를 갖고 있는 확률 분포라고 생각해 보자. 첫 번째로 X..
2023.10.08