TIL 2023-03-13

곽태욱·2023년 3월 13일
0

LoRA

https://arxiv.org/abs/2106.09685

Low-Rank Adaptation(LoRA)는 기존 학습된 모델의 전체 파라미터를 다시 학습시키지 않고도 빠른 속도로 성능을 개선할 수 있다.

원리는 기존엔 학습된 가중치 W0와 입력값 x을 곱해 출력값을 얻었다면, 여기에 행렬 rank가 낮은 2개의 행렬곱을 더해 출력값을 튜닝한다. 이때 rank가 낮은 2개의 행렬이 바로 LoRA인데, rank가 낮기 때문에 행렬 매개변수가 적어 빠른 학습이 가능하다.

식은 아래와 같이 표현할 수 있고 여기서 BA 행렬이 LoRA 행렬이다.

h=W0x+ΔWx=W0x+BAxh = W_0 x + \Delta W x = W_0 x + BA x

기존 가중치 W0 행렬은 그대로 두고 LoRA 행렬만 학습시킬 수 있다. 그래서 VRAM 점유율도 낮고, 학습 속도도 빠르고, 왼쪽 오른쪽 항을 동시에 계산해 더해주면 되기에 추론 시 지연이 발생하지 않는다.

GAN

https://youtu.be/AVvlDmhHgC4

Generative Adversarial Network(GAN, 2014년 발표)은 학습된 데이터를 기반으로 새로운 데이터를 생성하는 신경망 모델 중 하나다.

이미지를 자연스럽게 생성한다는 것은 이미지 데이터가 우리가 자연스럽다고 생각하는 범주에 포함된다는 의미다. 이미지도 데이터로 표현할 수 있고, 데이터 1 byte는 0~255 사이의 값을 가질 수 있는데, 우리는 여기서 특정 범위의 값으로 이뤄진 이미지만 자연스럽다고 생각할 것이다. 즉, 이미지의 자연스러움은 통계적으로 평균과 표준편차를 가질 수 있다는 것이다. 나아가 이미지를 행렬 데이터로도 표현할 수 있으니, 자연스런 이미지의 행렬 데이터는 특정 정규분포를 따를 수 있다는 것을 의미한다. 그래서 학습 데이터의 정규분포를 학습하면, 추론할 때 약간의 노이즈를 첨가해 학습 데이터에 없는 새로운 데이터를 자연스럽게 생성할 수 있다.

GAN은 Generator와 Discriminator 2개의 신경망으로 구성된다. Generator는 새로운 이미지를 생성하는 모델이고, Discriminator는 입력된 이미지가 실제하는 이미지인지 가상으로 생성된 이미지인지 구분하는 모델이다. 이 2개의 모델은 자연스러운 이미지를 생성하는 것을 목표로 서로가 서로를 학습시키고 도와준다. Discriminator는 Generator가 생성한 이미지가 자연스러운지 아닌지 판별해주고, Generator는 이런 조언을 들으며 더 자연스러운 이미지를 생성해낸다. 더 자세히 말하면 Generator는 랜덤 시드로부터 학습된 파라미터에 따라 이미지를 생성하고, Discriminator는 입력 이미지가 가상 이미지면 0을 반환해야 하고, 실제 이미지면 1을 반환해야 한다.

위 내용을 수식으로 표현하면 아래와 같다. 여기서 V는 Discriminator의 성능으로 Discriminator 입장에서 최대화시켜야할 값이다.

V(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]V(D,G) = E_{x \sim p_{data}(x)}[logD(x)] + E_{z \sim p_z(z)}[log(1 - D(G(z)))]
profile
이유와 방법을 알려주는 메모장 겸 블로그. 블로그 내용에 대한 토의나 질문은 언제나 환영합니다.

0개의 댓글