부스트캠프
[부스트캠프][WK07 / Day30] Transformer (1)
1. 강의 내용 Transformer (1) (주재걸 교수님) 1) Transformer Transformer는 attention만을 사용해서 구현한 Sequence to Sequence 형태의 모델구조를 가지고 있습니다. RNN을 사용할 시 RNN 구조를 통해 Sequence 데이터를 인코딩해 주는데, Long-Term Dependecy가 발생하여 이를 해결하기 위해 동일한 시퀀스에 대해 정방향으로 인코딩한 값과 역방향으로 인코딩한 값을 concat하는 Bi-directional RNN 구조를 사용함으로써 앞뒤 문맥을 모두 고려하여 Encoding vector를 만들어주게 됩니다. Transformer에서 Encoding vector를 만들어주는 과정을 아래와 같습니다. [출처][http://jalam..
[부스트캠프][WK06 / Day29] Beam Search and BLEU score
1. 강의 내용 Beam Search and BLEU score (주재걸 교수님) 1) Beam Search Beam Search는 자연어 생성 모델에서 Test time에서 보다 좋은 품질의 생성 결과를 얻을 수 있도록 하는 기법입니다. Greedy decoding Greedy decoding은 Decoding 시 해당 time step에서 가장 높은 확률을 가지는 단어 하나를 선택하는 방법으로, 만약 나중에 단어를 잘못 생성한 사실을 깨달아도 예측값을 고정해 두었기 때문에 뒤로 돌아갈 수 없어 최적의 예측값을 내어주지 못하게 됩니다. Exhaustive search 입력문장을 x, 출력문장을 y라고 했을 때 x가 주어졌을 때 y에 대한 동시사건 확률분포로 출력된 모든 단어를 고려하는 방법입니다. 이것..
[부스트캠프][WK06 / Day28] Sequence to Sequence with Attention
1. 강의 내용 Sequence to Sequence with Attention (주재걸 교수님) 1) Sequence to Sequence Sequence to Sequence는 RNN의 구조 중 many to many에 해당됩니다. Sequence to Sequence는 Encoder와 Decoder로 구성되어 있는데, Encoder는 입력 문장을 읽어내는 RNN 모델이며, Decoder는 출력 문장을 순차적으로 단어 하나씩 생성하는 모델입니다. Encoder와 Decoder는 파라미터를 공유하지 않습니다. 여기서 Encoder의 마지막 time step의 hidden state vector는 Decoder의 $h_0$로 사용됩니다. 단어별로 문장을 생성하는 task에서 start token ()을 ..
[부스트캠프][WK06 / Day27] RNN, LSTM, and GRU 2
1. 강의 내용 LSTM and GRU (주재걸 교수님) 1) LSTM (Long Short-Term Memory) LSTM은 기존의 RNN이 가지던 문제인 gradient vanishing, exploding 문제를 해결하고 long term dependency 문제를 개선한 모델입니다. cell state 정보를 다른 변형없이 지나가도록 하며 위의 문제들을 해결합니다. 위에서 $C_t$는 완성된 정보를 담고있으며, $h_t$는 $C_t$를 한 번 더 가공해 해당 timestep에서 노출할 필요가 있는 정보만 남긴 filtering된 벡터입니다. LSTM의 내부구조는 이렇게 되어있으며 이에대한 설명은 [부스트캠프][WK02 / Day9] Recurrent Neural Networks 에 정리해 두었습니..
[부스트캠프][WK06 / Day26] RNN, LSTM, and GRU 1
1. 강의 내용 Recurrent Neural Network and Language Modeling (주재걸 교수님) 1) Basics of Recurrent Neural Networks (RNNs) RNN은 위와 같은 구조를 가지고 있으며 시퀀스데이터가 입력 또는 출력으로 주어진 상황에서 각 time step에서 들어오는 입력벡터 $X_t$와 이전 time step의 RNN 모델에서 계산한 hidden state vector $h_{t-1}$을 입력으로 받아 $h_t$를 출력으로 내보냅니다. 여기서 중요한 사실은 동일한 파라미터를 가지고 있는 모델을 매 time step에서 동일하게 사용한다는 사실입니다. 해당 수식은 아래와 같이 표현됩니다. 점화식(recurrence formula)은 이웃하는 두개의..
[부스트캠프][WK06 / Day25] Bag of Words & Word Embedding
1. 강의 내용 Intro to NLP, Bag-of-Words (주재걸 교수님) 1) Intro to Natural Language Processing(NLP) 1. NLP low-level parsing Tokenization: 주어진 문장을 단어 단위로 쪼개나가는 것 stemming: 어미가 다른 단어를 단어의 다양한 의미변화를 없애고 의미만을 보존하는 단어의 어근을 추출하는 것 Word and phrase level Named entity recognition(NER): 단일 언어나 여러 단어로 이뤄진 고유명사를 인식하는 task part-of-speech(POS) tagging: 단어들이 문장 내에서의 품사나 성분이 무엇인지 알아내는 task Sentence level Sentiment anal..
[부스트캠프][P-stage][WK05] P-stage level1 결산 및 개인회고
프로젝트 목표 Special Mission을 최대한 다 하기 Jupyter에서 벗어나 Python IDLE 환경에 익숙해지기 Git을 활용한 협업에 익숙해지기 등수가 높으면 좋지만 기초를 탄탄히하고 되도록 많은 실험하기 나는 내 학습목표를 달성하기 위해 무엇을 어떻게 했는가? 개인 학습 1주차 EDA, Dataset 및 Augmentation transform, 모델 구현 및 Fine-tuning 시도, Feature Extraction 시도 , 다양한 기법을 적용한 training 코드 작성, Tensorboard 사용 등 Special Mission 수행 첫 주차 베이스라인 코드 공개 전 Jupyter를 활용한 resnet18, efficientnet 등 다양한 모델 실험 및 제출 albumentat..
[부스트캠프][P-stage][WK04 / Day5] Image Classification 5
1. 금일 목표 k-fold cross validation 구현 Test Time Augmentation을 구현 Tensorboard, wandb 이용 2. 진행사항 1) k-fold cross validation 구현 k-fold cross validation은 데이터를 k개로 나눠서 각 덩어리를 한 번씩 validation set으로 설정하여 총 k번 모델을 학습, 검증하는 방법입니다. 각 fold의 모델을 앙상블하는데 사용되기도 합니다. def crossvalid(model=None,criterion=None,optimizer=None,dataset=None,k_fold=5): train_score = pd.Series() val_score = pd.Series() total_size = len(d..