Loading...
2024. 4. 2. 00:09

test time augmentation

test time에서 augmentation을 하는 방법 test set도 사실은 서로 다른 여러가지 환경에서 관찰 될 수 있다는 사실에 기반 하나의 똑같은 test set에 여러 다른 augmentation을 적용한 상태에서 동일한 답을 낼 수 있다면 확실하게 예측을 자신할 수 있을 것 test set에서 나타날 수 있는 여러 variance를 고려하겠다는 것 test image에 augmentation을 적용한 여러 이미지 aug1, aug2, aug3,....을 만들고 이 이미지들 test image, aug1, aug2, aug3, ....에 prediction을 하면 pred1, pred2, pred3, pred4,...가 나오고 이들을 ensemble하여 얻은 값을 test image에 대한 ..

2024. 3. 21. 23:20

passage의 indexing을 도와주는 FAISS 라이브러리 소개

1. introduction facebook에서 만든 fast approximation open source library 효과적인 similarity search와 dense vector의 clustering을 지원함 사용이 편하고 어떤 size에도 가능하지만 large scale에 특화되어 있다고함 C++가 backbone이지만 python으로 wrapping되어 있어서 python으로도 쉽게 사용가능 passage vector의 indexing과정을 도와준다고함 2. 사용방법 train data로 passage vector를 준비하고 index train을 해야함 단순히 random하게 clustering을 하는 것이 아니라 데이터의 분포를 보고 적절하게 clustering을 해야함 이런 적절한 c..

2024. 3. 20. 03:07

질문과 관련있는 지문을 찾는 Maximum Inner Product Search

1. Motivation dense embedding을 이용한 retrieve의 원리는 굉장히 간단한데 passage를 미리 embedding해놓고 question이 들어오면 embedding을 한 뒤 미리 embedding한 passage들과 similarity score를 전부 계산한 다음 가장 높은 score를 가진 passage를 출력 similarity score는 nearest neighbor에서 distance가 가까울수록 높은 점수를 부여하는 방식을 생각해볼 수 있고 inner product가 높을수록 높은 점수를 부여하는 방식을 생각해볼 수 있다. 사람이 이해하기에 nearest search가 위치 거리측면에서 생각하면서 이해하기 쉽다 근데 학습이나 효율성측면에서는 nearest neig..

2024. 1. 12. 01:59

딥러닝 모델 training의 기본 법칙

1. 모델이 high bias인가? >> training set에 대한 성능이 좋은가? 안좋은가? training set에 대한 성능이 좋지 않다면, 더 깊은 network를 쓰거나 hidden layer, hidden unit을 많이 쓴다든지, epoch을 늘려 더 오래 training을 하거나 더 개선된 optimization 알고리즘을 사용하거나 더 좋은, 깊은 network를 사용하는 것은 거의 항상 도움이 되는 반면에 더 오래 training하는 것은 도움이 안되는 경우도 많지만, 시도해보는건 나쁠건 없다 ---------------------------------------------------------------------------------- 중요한건 최소한 high bias를 제거하는..

2024. 1. 12. 00:05

딥러닝 시대의 train, validation, test set에 대한 고찰(70:30으로 나눠야하는가? train과 test가 서로 다른 분포? validation vs test는 무슨 차이인가?)

1. train set, validation set, test set 가지고 있는 모든 학습 데이터(training data)에서 전통적으로, 그 일부를 training set으로 사용하고 일부를 hold out cross validation set(development set)으로 쓰고 그 나머지는 test set으로 쓴다. training set에서 어떤 모델의 training algorithm을 수행하고, validation set은 후보로 고른 모델들의 성능을 평가하는데 사용한다. 위 과정을 충분히 반복하고 나서, 최종적으로 고른 모델이 얼마나 잘 편향없이 추론하는지(unbiased estimate) 평가하기 위해 test set을 이용하여 평가를 한다. 2. 70:30으로 데이터를 나누는 것이 ..

reproducibility를 위한 random seed

1. 필요성 모델의 재현성 cross validation의 경우 실행할 때마다 매번 다르게 sampling되어 model의 성능이 매번 다르다 반복해서 실행했을 때 동일한 조건에서 동일하게 sampling되어야 정확하게 model 성능 측정이 가능함 머신러닝 모델도 random하게 작동하므로 작업 복원을 위해서라도 반드시 필요함 어떤 가설을 설정하고, 그것이 맞는지 실험할려고 하는데 재현이 안된다면 가설에 의한 변화 때문에 성능이 바뀐건지, 다른 원인이 있는건지 파악할 수 없음 2. seed 모델의 랜덤성 때문에 풀고자 하는 문제에 대하여 데이터가 매번 바뀌면 모델 성능 측정시 내가 만든 feature나 전처리 방식이 효과적인지 확인이 어렵다 랜덤성을 제거하기 위한 seed를 고정 feature engi..