현재 딥러닝 분야에서는 데이터의 부족에 시달리고 있다. 왜냐하면 모델의 성능을 향상시키기 위해서는 더 많은 데이터가 필수적인데 이를 위해 필요한 데이터의 양은 한정적이기 때문이다. 따라서 이를 해결하기 위해 발명된 기술이 Data Augmentation이다. Data Augmentation에 대해 간략하게 설명하면 기존에 존재하는 데이터에 약간의 변형 또는 손상을 가해서 새로운 데이터를 만드는 방법이다. 이 방법은 주로 Computer VIsion 분야에서 사용되는데 NLP에도 Data Augmentation 기법이 존재한다는 사실을 알게 되고 한 번 공부해보면서 포스트를 작성하였다. 이 포스트는 다음의 블로그들을 참고하여 작성되었다. https://neptune.ai/blog/data-augmentat..
Introduction GPT-4는 real-world에서는 사람보다 조금 못한 능력을 보여주지만, 그래도 전문적 및 학문적 벤치마크에서 사람 수준의 성능을 보여주는 large multimodel model$($이미지와 텍스트를 입력으로 받고, 텍스트 출력을 내놓음$)$ 이다. 예를 들어 변호사 자격증 시험$($simulated bar exam$)$에서 GPT-3.5의 하위 10% 기록과 상반되게 상위 10%의 성적을 기록하였다. 6개월 동안 적대적 테스트 프로그램과 ChatGPT의 교훈을 사용하여 GPT-4를 반복적으로 조정하여 사실성$($factuality$)$, 조종성$($steerability$)$ 및 가드레일을 벗어나지 않는 측면에서$($완벽하지는 않지만$)$ 최고의 결과를 얻었다. 불과 1년 ..
Prioritizing What to Work On System Desing Example: 스팸 메일을 분류한다고 할 때, 이메일 세트가 주어지면 각 이메일에 대한 벡터를 만들어야 한다. 이 벡터의 각각의 entry는 단어들을 나타낸다. 벡터는 일반적으로 데이터셋에서 흔하게 발견되는 단어들을 모아서 10,000개에서 50,000개의 entry를 포함하고 있다. 만약 이메일에서 단어가 찾아지면, 이에 대한 entry를 1로 하고, 찾아지지 않으면 entry를 0으로 한다. $x$ 벡터들이 모두 준비되면 알고리즘을 학습시키고 최종적으로 이메일에 적용해서 스팸인지 아닌지를 분류하는데 사용한다. 어떻게 하면 분류기의 성능을 향상시킬 수 있을까? 많은 데이터를 수집하기 정교한 feature 사용$($ex. 스팸..
Diagnosing Bias vs Variance 이 섹션에서는 polynomial d와 hypothesis의 underfitting 혹은 overfitting의 관계에 대해서 조사하였다. 잘못된 예측에 공헌하는 bias와 variance를 구분하였다. 높은 bias는 underfitting을 야기하고, 높은 variance는 overfitting을 야기한다. 따라서 이 둘 간의 황금 평균을 찾아야 할 필요가 있다. polynomial의 degree d를 증가시킬 수록 training error는 감소하는 경향이 있다. 동시간대에 cross validation error는 일정 포인트까지는 감소하는 경향이 있고, 그 다음에는 d값이 오름에 따라 상승하면서, convex curve를 만들어 낸다 $($최솟..
Evaluating a Hypothesis 다음을 통해 예측 오류에 대한 몇 가지 문제 해결을 수행한다. 더 많은 training example을 가져오기 작은 feature 세트를 시도 추가적인 feature을 시도 다항의 feature을 시도 $\lambda$ 값을 늘리거나 줄이기 이제 새로운 hypothesis를 평가하는 방법에 대해 알아보자. hypothesis는 training example에 대해 낮은 오차를 가지고 있을 수 있지만, 아직 부정확하다 $($overfitting 때문$)$. 따라서 hypothesis를 평가하기 위해서는 주어진 training example 데이터셋에 대해 두 개의 세트로 분리하여야 한다: training set & test set. 보통 training set는..
Gradient Checking Gradient checkin 즉, 기울기 체크는 역전파가 의도한 대로 잘 되고 있는지 보장해준다. cost function의 미분을 다음을 사용하여 근사할 수 있다. 여러 개의 세타 행렬을 사용하면, $\theta_{j}$에 관한 미분을 다음과 같이 근사할 수 있다. $\epsilon$은 $\epsilon = 10^{-4}$ 같은 작은 값이어야 적절하게 잘 작동한다는 것을 알 수 있다. $\epsilon$의 값이 너무 작으면 수치적 문제가 발생할 수도 있다. 그래서 $\theta_{j}$ 행렬에 epsilon을 추가하거나 빼기만 한다. 이전에 deltaVector를 어떻게 계산하는지에 대해 알아보았다. 그래서 gradApprox를 계산할 수 있게 되면, $gradAppr..
Cost Function cost function을 설명할 때 사용할 몇 개의 변수들을 정의해보도록 하자. $L$: 네트워크에 있는 총 레이어의 수 $s_l$: 레이어 $l$에 있는 unit의 수 $K$: 출력 유닛과 클래스의 수 이 변수들을 신경망 네트워크에서 떠올려보면, 많은 출력 노드들을 가지게 될 것이다. $h_{\theta}(x)_{k}$는 $k$번째 출력으로 결과로 내놓는 hypothesis를 나타낸다. 신경망을 위한 cost function은 우리가 logistic function에서 사용한 것의 일반화이다. 정규화된 logistic regression의 cost function을 떠올려보도록 하자. 신경망 네트워크에 대해서는 이것의 형태가 살짝 바뀌게 된다. 여러 개의 출력 노드를 설명하기..
The overview of this paper Transformer 기반의 BERT 같은 모델은 NLP 분야에서 가장 성공한 모델 중 하나이다. 하지만 불행하게도, Transformer 기반 모델들의 가장 큰 약점은 full attention 메커니즘 때문에 sequence의 길이에 따라 메모리 사용량이 곱절로 늘어난다는 것이다. 이를 완화하기 위해, 논문에서는 이러한 quadratic을 linear로 줄인 sparse attention 메커니즘을 사용한 Big Bird를 제안하였다. 논문에서는 BigBird가 sequence 함수의 범용적인 근사치가 되고 Turing complete하다고 말했다. 그리고 BigBird는 full attention model의 quadratic 특성을 보존하였다. 논문..
The overview of this paper Transformer는 매우 강력한 sequence model이지만, sequence의 길이에 따라서 시간과 메모리가 곱절로 필요하다는 단점이 있다. 이 논문에서는 attention 행렬의 sparse factorization을 소개하였는데, 이는 Transformer의 시간 복잡도를 $O(n \sqrt{n})$으로 줄였다. 또한 논문에서는 다음의 내용들을 소개하였다. 더욱 깊은 네트워크를 학습시키기 위해 모델의 구조와 초기화에 변동을 주었음. attention 행렬의 재계산으로 메모리를 아낌. 학습을 위해 fast attention을 사용함. 이러한 변화를 준 모델을 Sparse Transformer라고 부르기로 했다. 이 모델은 수백개의 레이어를 사용해..
얼마 전에 블로그에 구글에서 소개한 PaLM에 대한 리뷰 포스트를 올렸던 기억이 난다. 엄청난 양의 파라미터 수로 인해 깜짝 놀랐던 기억이 나는데, 이제는 이 PaLM이 더욱 multimodal 스러워졌다. 이번 포스트에서는 이제 텍스트를 넘어서 이미지까지도 처리할 수 있는 모델이 되어버린 PaLM-'E'에 대해서 알아보도록 하겠다. 본 포스트는 논문과 구글의 소개 블로그를 참고하여 작성되었다. The overview of PaLM-E 최근 몇 년 동안 머신 러닝에서는 엄청난 발전을 이룩하였다. 이렇게 발전된 모델들은 조크를 설명하거나 시각적 질문에 응답하는 등의 다양한 언어적 문제를 해결할 수 있게 되었다. 심지어는 텍스트 설명이 주어지면 이미지를 생성해내기도 한다! 😲 이러한 혁신은 큰 데이터셋의 사..