[딥러닝] 이미지 생성 Diffusion 모델 논문 리뷰(DDPM, DDIM, Latent Diffusion, Stable Diffusion)
·
Study/Data Science
- 이번 포스팅에서는 이미지 생성 모델로 유명한 Diffusion 모델에 대해 정리하겠습니다.Diffusion 모델은 눈에 띄는 퍼포먼스와 상업성으로 주목을 받아왔는데, 그만큼 파생된 모델도 현재 많이 개발되었습니다.이번 게시글에서는 그 근간이 되는 기본 원리에 대해 이해해보고, 이를 기반으로 현 시점 강세를 띄는 최고 성능의 모델들을 정리할 예정입니다. [이미지 생성 모델의 역사]- 근본 기술 리뷰이므로 Transformer 를 리뷰했을 때와 같이 기술 발전의 흐름을 먼저 이해하고 가겠습니다.Diffusion 모델이 나오기 전에도 DeepLearning 모델을 이용한 데이터 생성 모델의 연구는 많이 이뤄졌습니다. 데이터 생성의 가장 기본적인 모델로는,Auto Encoder 모델(2013)이 있었습니다...
[딥러닝] FiLM (Feature-wise Linear Modulation) 모델 정리
·
Study/Data Science
- 이번 포스팅에서는 독특한 딥러닝 모델에 대해 정리하겠습니다.게시글 제목과 같이 FiLM 이라고 하는 모델입니다. FiLM 은, 어떠한 특징(Feature)을 녹여낸 Latent Vector 가 있을 때, 다른 조건의 입력값(x)이 주어졌을 경우 이를 선형 변환(gx + b) 하기 위한 파라미터 Gamma 와 Beta 를 추론하게 하는 모델로, 인코더 모델의 출력 벡터에 외부 조건을 추가 할 수 있는 방법론을 제시합니다. (FiLM)- 논문 : FiLM: Visual Reasoning with a General Conditioning Layer(2017) - FiLM 은 Visual Reasoning 을 위해 나온 모델입니다. 먼저 Visual Reasoning 에 대해 설명하자면,시각 정보의 위치적 ..
[Torch] 딥러닝 모델 경량화 방법 정리(Pruning, Quantization, 모바일 배포 방법, ONNX)
·
Study/Data Science
- 이번 포스팅에서는 딥러닝 모델 경량화 방법을 정리하겠습니다.최근 저는 개인적인 어플리케이션 개발과 더불어 실험적인 구조의 Image Segmentation 모델을 학습시키는 중인데,제가 만든 Image Segmentation 모델을 모바일/드론 등 엣지 디바이스에 적용하여 실시간(30FPS)으로 시각 정보를 처리하는 것을 목표로 하고 있습니다. 이렇게 모바일 환경과 같은 제한적인 환경에서 비교적 무거운 딥러닝 모델을 구동시키기 위해 필요한 몇가지 기법들을 정리하겠습니다. (Pruning(가지치기))- Pruning 이란, 가지치기라는 뜻과 같이 모델 구조에서 중요도가 떨어지는 부분을 잘라내는 기법을 의미합니다. - 쉽게 설명하자면,f(x) = x * w + b라는 수식이 무수히 많이 붙은 레이어에서,..
[딥러닝] LLM 학습 방법 정리(모델 경량화, GPU 요구사항, 학습 효율 기법)
·
Study/Data Science
- 이번 포스팅에서는 GPT 와 같은 LLM 을 학습하는 방식을 정리하겠습니다. LLM(Large Language Model) 은 이름 그대로 굉장히 커다란 모델이므로, 일반적인 장비로는 순전파조차 어렵고 학습은 더더욱 어려운 일입니다. 여기선 LLM 의 사이즈별 GPU 필요 사양, 오픈된 모델 사용 방식, 보다 낮은 사양으로 높은 모델을 학습시키는 방식, 그리고 학습 코드를 정리하여 공유드리겠습니다. (LLM 사이즈별 명칭 및 GPU 필요사항)- 딥러닝 모델의 사이즈 개념에 대해 알아보겠습니다.아시다시피 머신러닝/딥러닝은 데이터를 기반으로 입력값과 정답을 이어주는 함수를 만들어내는(=학습하는) 기술입니다. 정확히는, 함수를 구성하는 파라미터를 학습시키는 기술이죠. 모델이 추론을 할 때에도 해당 함수의 ..
Cosine Similarity 설명 및 벡터간 유사도 파악 정리
·
Study/Data Science
- Cosine 유사도는 두 벡터간의 유사도(정확히는 벡터 방향성)를 파악하기 위한 대표적인 방법입니다.벡터가 얼마나 유사한 방향성을 가지는지 구할 수 있는 방식이므로 딥러닝에서 손실함수로 사용되거나, 혹은 벡터 DB 에서 인코딩된 벡터를 유사도 기준으로 구할 때 사용되는 방식이죠.머신러닝의 인코딩 모델을 사용하여 상호간 유사도 파악을 할 때에 유용하게 사용할 수 있는 기법입니다. - Cosine 유사도를 구할 벡터의 값의 범위는 일반적으로 -1 ~ 1 사이의 값입니다.0의 의미는 벡터의 힘이 존재하지 않는 중립 상황이라는 뜻이고,1 을 최대값으로 두고, 양수 음수로 값의 방향성이 구해진다는 뜻입니다. - 벡터간 유사도를 나타내는 가장 간단한 이론은, 벡터간 유사도가 클수록 벡터간 내적의 값이 커진다는 ..
[딥러닝] 딥러닝 오버피팅 방지 기법 정리
·
Study/Data Science
- 이번 포스팅에서는, 딥러닝 오버 피팅 방지 기법을 정리하겠습니다.CNN 모델을 기준으로 설명하겠습니다. (일반적 오버피팅 방지 기법)1. 모델 파라미터 및 입출력 텐서 차원 줄이기(모델 경량화) :이미지 자료 출처 예를 들어보겠습니다.컴퓨터 비전 로직에서 에지, 즉 사물의 경계선을 판별하기 위해선 3x3 커널이 2개만 있어도 충분합니다.(9개의 선형함수 2개와 2개의 출력 벡터)커널이 가지는 뚜렷한 의미는, 수직 방향의 선과 수평 방향의 선을 검출하는 것이고, 이러한 결과를 해석하여 해당 점이 에지 특성을 많이 가지는지, 무슨 방향의 에지인지를 판별할 수 있죠.그런데 만약 머신러닝 알고리즘에서 동일한 에지를 파악하는데에 3x3 커널이 아니라 5x5 커널을 사용하면요?출력값이 수직, 수평의 2개 벡터가..
[딥러닝] AutoEncoder & Variational AutoEncoder 정리
·
Study/Data Science
(AutoEncoder)- AE란, 입력 데이터를 압축(인코딩) 한 후, 다시 원래대로 복원(디코딩) 하도록 학습하는 비지도 학습 신경망을 뜻합니다.다른 지도 학습 모델과는 달리, 입력 데이터를 그대로 정답 데이터로 사용하기에 따로 정답 레이블링을 할 필요가 없는 비지도 학습 모델이죠. - AutoEncoder 의 구조는,이미지 출처 이렇습니다. 딥러닝을 아시는 분이라면 더이상 설명할 필요도 없을만큼 간단한 구조로,입력 이미지를 받아서 점차 작은 벡터로 줄여나가는 부분을 Encoder 라고 하고,인코더에서 인코딩되어 축약된 중간 벡터 부분을 Latent Vector 라고 하며,Latent Vector 를 기반으로 원본 이미지를 복원하는 부분을 Decoder 라고 합니다. - AutoEncoder 의 의미..
딥러닝 speech recognition 모델 개념 정리
·
Study/Data Science
- speech recognition이란? 음성 인식이란, 인공지능 분야가 연구되기 시작한 것과 거의 동시에 연구되기 시작한 분야입니다. 인공지능은 컴퓨터가 발명된 것과 거의 동시에 연구되기 시작되었습니다.컴퓨터라는 구조 자체가 단순한 전자 계산기를 가정하고 만든 것이 아니라,인간적인 지적 활동을 인공적으로 하기 위한 구조를 기계로 구현하려는 노력(튜링 머신)이라는 것을 생각해보면 기계가 사람의 말을 이해하도록 하는 노력에 대한 관심과 역사에 대해 알수 있겠네요. 음성인식 분야는 AI의 내부에 속한 하위개념이기에 AI의 발전과 거의 비슷한 방향성과 역사를 가집니다. 간단하게 이를 설명하자면,1. 컴퓨터라는 기계가 만들어지고, 알고리즘과 수학적 모델링으로 이를 구현할수 있으리라는 기대가 모아짐2. 퍼셉트론..
공분산 행렬과 주성분 분석(PCA)
·
Study/Data Science
- 공분산 행렬은 말 그대로 공분산에 대한 행렬을 뜻합니다. 다차원 multy feature 데이터에 존재하는 각 2개씩의 특징 사이에서 생겨나는 공분산을 구하기 위한 행렬 연산을 뜻하는데, 당연히 이를 이해하려면 공분산에 대해 알아야겠죠? 요약해보자면, 공분산은 특징 2개의 축으로 이루어진 2차원 데이터 분포의 특성을 파악하기 위한 방법으로, COV(x,y) = E{sum(X-E(x))*(Y-E(y))} 로 계산이 가능합니다. 기대값, 즉 여기선 그냥 평균값이라 생각하면 되는데,현재 데이터 분포의 평균을 0으로 정렬하기 위해서 이를 각 원소에 빼주고, 이 값을 곱해주어 더해줍니다.그리고 그 값에 대한 평균을 구하는 방식으로 해당 데이터 분포의 성질을 알아내는 것으로,이 값이 양수이면 두 특징은 양의 상..
Maximum Likelihood Estimation(최대 우도 추정, MLE) 의 이해 (구 블로그 글 복구)
·
Study/Data Science
- 세상에는 내포된 실제 확률과, 관측으로 얻어낸 확률이 존재합니다.동전 던지기의 확률은 얼마일까요?쉽게 앞/뒤 결과를 가진 공정한 사건이라 1/2라고 할수 있겠는데,이걸 어떻게 판단했나요? 결국 확률은, '전체에서 일어난 사건 개수 / 전체 사건 개수' 를 뜻합니다. 우리는 전체 사건의 개수를 파악하지 못할 가능성이 큽니다.너무 많거나, 조사에 비용이 너무 많이 드는 경우가 그러합니다. 이럴때 우리는 표본을 조사해서, 그 표본공간 안의 사건들로 확률을 유추합니다. 이렇게 표본의 확률을 사용하여 모수의 확률을 측정하려는 질문이 바로 MLE의 시작입니다.(정확히는, 관측된 표본을 가장 잘 설명하는 모수를 찾아내는 것.) - 확률 이해하기어떤 항아리가 존재한다고 가정합시다.우리는 이 내부를 모른다는 가정이지..