BERT 2018년, 구글이 공개한 사전 훈련된 모델 트랜스포머를 이용하여 구현 (트랜스포머의 인코더를 쌓아올린 구조) 위키피디아(25억 단어)와 BooksCorpus(8억 단어) 데이터로 사전 훈련 (Unsupervised Learning) 모든 자연어 처리 분야에서 좋은 성능을 내는 범용 Language Model BERT등장 이전에는 데이터의 전처리 임베딩을 Word2Vec, GloVe, Fasttext 방식을 많이 사용 BERT가 높은 성능을 얻을 수 있었던 이유 레이블이 없는 방대한 데이터로 사전 훈련된 모델을 가지고, 레이블이 있는 다른 작업(Task)에서 추가 훈련과 함께 하이퍼파라미터를 재조정 * Fine-tuning : 다른 작업에 대해서 파라미터 재조정을 위한 추가 훈련 과정 = 추가적..
기존 seq2seq 모델의 한계 입력 시퀀스를 하나의 벡터로 압축하는 과정에서 입력 시퀀스 정보가 일부 손실 *이를 보완하기 위해 Attention 이용했었음 Transformer 기존의 RNN 기반의 모델과 달리, Self-Attention을 사용하여 입력 시퀀스의 전체적인 의미를 파악하고 처리하는 방식으로 동작 * RNN을 모두 Attention으로 대체 Encoder Input Embedding 입력 문장의 각 단어를 고정 길이의 벡터로 변환 Positional Encoding RNN이은 단어의 위치에 따라 단어를 순차적으로 입력받아서 처리하기 떄문에 단어의 위치 정보를 가질 수 있었음 트랜스포머는 단어 입력을 순차적으로 받는 방식이 아니므로 단어의 위치 정보를 다른 방식으로 알려줄 필요가 있음 단..
Optimizer 학습은 cost function의 최소값을 찾는 것을 목표로 한다. 여기서 최소값을 찾아가는 것을 최적화 = Optimization / 이를 수행하는 알고리즘을 최적화 알고리즘 = Optimizer 이라고 한다. * 즉, 모델의 매개변수를 조정하여 cost function을 최소화하고 모델의 예측 성능을 향상시키기 위해 사용하는 것이 Optimizer이다!! Cost function : 모델의 예측값과 실제값의 차이를 나타내는 함수 (데이터셋에 대한 예측값과 실제값의 차이를 계산) Loss function : 한 개의 데이터 샘플에 대해 예측한 값과 실제값의 차이를 나타내는 함수
Gradient Descent 모델의 손실 함수를 최소화하기 위해 사용되는 최적화 알고리즘 중 한 종류 Batch Gradient Descent 전체 학습 데이터셋을 사용하여 모델 업데이트 , batch_szie = n 안정적, 병렬처리가 가능하여 속도는 빠르지만, 업데이트 속도는 느림 (한 epoch 당 1번 update) 전체 데이터셋을 처리하는 동안 계산이 느리고 메모리를 많이 사용 cost에 대한 gradient Stochastic Gradient Descent 학습 데이터셋의 각 샘플에 대해 모델 업데이트 , batch_szie = 1 업데이트 속도는 빠르지만, 불안정 (한 epoch 당 n 번 update) loss에 대한 gradient Mini-Batch Gradient Descent 미니..
Dropout 딥러닝에서 overfitting을 방지하는 regularization 기법 중 하나 무작위로 선택한 일부 뉴런들을 무시 ( 해당 뉴런들의 출력을 0으로 만듦 ) 모델이 다양한 입력에 대해 다양한 방식으로 반응하도록 만들어주어 일반화 능력을 높이는 데 도움을 줄 수 있음 모델을 여러 개를 만들지는 않지만, 훈련 과정에서 앙상블과 비슷한 효과를 냄 서로 다른 학습데이터를 통해 모델을 학습시키거나 모델이 서로 다른 구조를 가지면 학습 성능을 개선할 수 있음 그러나 하나의 네트워크를 훈련시키는 것도 어려운데 여러개의 네트워크를 훈련시키는 것은 매우 어려운 일임 또한, 여러개의 네트워크를 훈련시켰더라도 사용시에 연산 시간이 소비되어 속도가 느려지는 문제가 발생할 수 있음 Dropout은 이 두 문제..
Pre-training ( 사전 학습 ) 방대한 데이터를 사용하여 모델을 사전 학습 시키는 것 Pre-trained 모델을 비슷한 task에 대해 새로운 모델을 만들 때 사용하면 학습 시간을 상당히 줄일 수 있음 CV, NLP 등 다양한 분야에서 사용되지만, 주로 NLP에서 단어의 의미나 문장의 구조 등을 이해하기 위해 사용 Unsupervised learning, Supervised learning 모두 가능 (주로 unsupervised learning 방식으로 이루어짐) Transfer Learning ( 전이 학습 ) Pre-trained model을 사용하여 새로운 문제를 해결하는 기술 비교적 적은 양의 데이터로도 빠르게 정확한 모델을 만들 수 있으며, 컴퓨팅 리소스와 시간을 절약할 수 있음 F..