딥러닝
-
지금까지의 딥러닝 강의 후기 | 패스트캠퍼스 챌린지 최종 후기딥러닝 2022. 3. 23. 21:10
패스트캠퍼스에서 딥러닝 강의를 매일같이 수강한지 어느덧 50일이 넘었다. 마지막 글을 남긴 다음에도 매일같이 듣고는 있는데, 코딩 실습 부분을 들은데다가 코드 내용을 함부로 공개하면 안 될 것 같아서 딱히 기록으로 남기지는 못하고 있었다. 이번 글에서는 패스트캠퍼스 환급 챌린지의 마지막으로 전체적인 후기를 남기고자 한다. 물론 강의를 아직 끝까지 들은 것은 아니기 때문에, 코드 내용이 아닌 이론 부분에 대한 글은 꾸준히 올릴 생각이다. 누군가에게는 도움이 되기를 바라며. 강의를 듣게 된 계기 내가 들은 강의의 정확한 이름은 한번에 끝내는 딥러닝/인공지능 초격차 패키지다. 매우 긴 이름인데, 딥러닝을 활용한 인공지능을 수학적 원리에서 실용적인 실습까지 한 번에 끝내겠다는 강의이다. 딥러닝 자체는 개인적으로..
-
Latent Variable Models (2) | 패스트캠퍼스 챌린지 50일차딥러닝 2022. 3. 14. 19:53
Latent variable model은 모든 변수를 알고 참조하는 방식으로 학습하는 것이 아니라 잠재된 변수가 있다고 상정하고 학습을 진행하는 모델이다. 이 과정에서 p(x)를 구하기 위해 posterior p(z|x)를 활용할 수 있다. 이러한 과정이 variational inference이다. 이러한 잠재 변수 모델은 여러 과업에서 적용될 수 있다. 우선, 지금 중점을 두고 있는 것 처럼 생성 모델로 활용할 수도 있다. 또한, 상호 정보(Mutual Information)를 최대화하고 측정하는 방법으로 사용할 수도 있다. 마지막으로, 학습 가능한 dequantization으로 활용할 수도 있다. 이 때, posterior의 parameter와 모델 q의 파라미터는 서로 같을 수도, 다를 수도 있다...
-
Latent Variable Model (1) | 패스트캠퍼스 챌린지 49일차딥러닝 2022. 3. 13. 20:33
지금까지 살펴 본 Flow 방법의 생성모델은 데이터와 노이즈를 모두 참고하는 방식으로 생성 모델을 훈련한다. 이와 달리, Latent Variable Models(잠재변수모델)은 잠재된 숨은 변수, 즉 intractable density가 있는 변수가 있다는 가정 하에 진행한다. 굳이 숨은 변수를 상정하는 이유는 차원 축소된 representation을 이룰 수 있고, pixel 및 time-step 추측으로 부터 독립적이면서 통계적 원리를 사용하기 때문에 샘플링이 빠르다는 장점 때문이다. 다만, 비지도학습이기 떄문에 이 잠재 변수가 무엇인지, 그리고 데이터와 어떻게 상호작용하는지를 알 수 없다. 이러한 잠재된 변수를 지정하는 방법을 찾는 최선의 방법 또한 아직 연구 단계이다. 잠재 변수를 이해하는데는 ..
-
Flow-Based Generative Model (4) | 패스트캠퍼스 챌린지 48일차딥러닝 2022. 3. 12. 21:25
계속해서 Flow 기반 생성 모델에 대해 다루고 있다. 이 모델들은 데이터로부터 invertible하고 미분 가능한 함수로 노이즈가 계산될 때, 이 노이즈로부터 함수의 역함수를 취해 데이터와 유사한 분포를 가진 결과물을 생성할 수 있는 모델이다. Glow는 normalizing flow의 일환으로, NICE/RealNVP를 확장한 Flow이다. 여기서의 핵심은 1x1 convolution layer가 invertible하다는 것이다. 이를 활용하여 batch_size=1에 대해 translation, scale 등의 batch normalization을 수행하고(이를 activation normalization, ActNorm이라 부른다), 1x1 convolution layer의 inverse를 취한 ..
-
Flow-Based Generative Model (3) | 패스트캠퍼스 챌린지 47일차딥러닝 2022. 3. 11. 22:01
Flow 모델은 데이터와 노이즈 사이가 invertible하고 미분 가능한 함수로 이루어 졌을 때 이 성질을 사용하여 noise로 부터 data와 유사한 것을 생성해 내는 모델이다. 지난 시간에는 이러한 flow 모델 중 하나로 Afifine Flow를 살펴보았고, 이 성능이 느림을 살펴보았다. 이번 시간에는 성능이 빠른, 그래서 실제 실시간 서비스 까지 가능한 Flow 모델들을 살펴 볼 것이다. 그 첫번째는 element-wise flow이다. 이는 element-wise affine, CDF flow 등을 활용해서 flow 연산을 element 별로 따로 적용하는 것을 뜻한다. Element wise이기 때문에 Jacobian은 대각선 형태가 되어 determinant를 계산하기가 쉬워진다. 즉, 성..
-
Flow-Based Generative Model (2) | 패스트캠퍼스 챌린지 46일차딥러닝 2022. 3. 10. 21:08
Flow 생성 모델은 데이터로 부터 invertible하고 미분 가능한 노이즈로의 매핑으로부터 역함수를 취해 원래 데이터를 근사해 내는 방법이다. 이를 학습하는 과정은 여타 모델과 마찬가지로 최대 가능도 추정을 사용한다. 이 때, 확률은 노이즈의 역함수 값 x의 pdf(확률밀도함수)로, 이 확률의 총 적분값은 노이즈의 총 적분값과 같은 1이 된다. 여기에서 확률의 수식을 구할 수 있다. 이 때, change of variable 규칙에 의해 함수의 Jacobian 행렬의 값을 대각선으로 곲한 determinant 값으로 이 값을 표현할 수 있다. 이러한 Flow는 여러가지 sequential한 연산으로 구성될 수 있다. 즉, 한 번에 데이터에서 노이즈 까지의 flow로 가는 대신 여러번의 flow 함수를..
-
Flow-Based Generative Model (1) | 패스트캠퍼스 챌린지 45일차딥러닝 2022. 3. 9. 22:11
트랜스포머가 자연어처리 및 머신비전에서 괄목한 만한 성능을 보여주었다면, 한 편에서는 계속해서 데이터와 유사한 분포를 가진 예측값을 생성해 내는 모델에 대한 연구가 지속되었다. 그 중 한 모델이 flow 기반 생성 모델이다. 이는 invertible transformation의 연속으로 구성되어, 데이터 분포를 explicitly하게, 즉 negative log-liklihood를 최소화 하는 방식으로 학습이 가능한 모델을 뜻한다. 이를 이해하기 위해 확률 개념을 조금 살펴 볼 필요가 있다. 지금까지 확률 분포는 주로 이산 변수에 대한 확률 분포, 즉 참/거짓으로 분명히 나뉘는 경우에 대해 다루었지만, 사건의 결과가 연속 변수일 경우에는 확률 밀도 함수(Probability Density Function..
-
Pre-trained Big Transformers (3) | ALBERT, RoBERTa 등 | 패스트캠퍼스 챌린지 44일차딥러닝 2022. 3. 8. 19:51
BERT를 비롯한 language model들은 모델의 크기를 키워서 성능을 높이고자 하였다. 하지만 모델의 크기가 크면 그에 따르는 메모리의 제약이나, 학습에 필요한 시간 제약이 있다. 또한, hidden layer가 너무 커지면 오히려 성능이 감소하는 문제 또한 있었다. ALBERT는 BERT를 가볍게 개량한 버전이다. ALBERT에서는 입려 토큰 임베딩 사이즈가 은닉층 사이즈 보다 적을 떄 은닉층이 커질 떄 성능이 감소하는 문제가 해결됨을 발견하고 이에 따라 facotrized embedding parameterization으로 입력 파라미터 사이즈를 줄였고, corss layer parameter sharing, 즉 RNN이나 CNN과 같은 parameter sharing 기법으로 전체 파라미터 ..