본문 바로가기

전체 글76

Batch size에 대해 이번 글에서는 간단하게 Batch Size와 학습, 학습 시간에 대해서 정리해보겠습니다. 먼저 Batch란 학습을 할 때 모델에 한 번에 들어가게 되는 데이터 집합을 의미한다고 볼 수 있습니다. 학습할 때 준비한 Train 데이터 전체를 모델에 입력으로 넣을 수 없기 때문에 이를 나눈 것을 Batch라고 생각하시면 될 것같습니다. 이 때 이 Batch에 포함된 데이터의 개수를 Batch Size라고 합니다. 아래 그림은 Batch size에 대한 그림입니다. epoch은 Train 데이터 전체를 한 번 보는 기준으로 생각하면 될 것같습니다. Batch Size와 학습 시간 그렇다면 Batch Size와 학습은 어떤 관계가 있을까요? 일반적으로 GPU를 이용하여 학습을 진행하기 때문에 GPU를 사용하고, .. 2022. 2. 7.
Model의 Bias-Variance 이번 글에서는 AI 혹은 머신러닝을 공부할 때 자주 듣게 되는 개념 중 하나인 Model의 Bias-Variance에 대해서 정리하겠습니다. 잘못된 정보나 이상한 내용에 대한 지적은 환영합니다. Bias, Variance Bias란 번역하면 편향이라고 하며, 모델이 예측한 값과 실제 정답 간의 오차를 의미합니다. Variance란 번역하면 분산이라고 하며, 모델이 예측한 값이 서로 얼마나 퍼져있나를 의미하는 수치입니다. Bias, Variance를 단순하게 정의로만 보면 이를 이해하기가 어렵습니다. (저의 경우에는 직관적으로 개념이 머리에 들어오지 않았습니다.) 그래서 공으로 분류하는 Task를 예시로 사용해보겠습니다. Bias 축구공, 농구공, 탁구공 등(데이터)이 들어왔을 때, 우리는 이것들을 공이라.. 2022. 2. 3.
Macro-average, Micro-average Macro와 Micro Average는 평균을 구하는 방법입니다. 먼저 각 방법에 대해서 간략하게 설명해보면 다음과 같습니다. Macro: 평균의 평균을 구하는 방법입니다. Micro: 전체의 평균을 구하는 방법입니다. 이를 좀 더 수식적으로 풀어 Precision, Recall, F1 스코어에 대입해서 보겠습니다. 먼저 N개의 카테고리가 있고 이를 Model $M$이 분류하는 Task를 풀고 있다고 가정을 해보겠습니다. 이때 Model $M$이 분류한 결과의 True Positive, False Positive, True Negative, False Negative를 $TP_i, FP_i, TN_i, FN_i,\ \ i=1, 2, ..., N$라 하겠습니다. 추가적으로 각 i번째 카테고리에 해당하는 P.. 2022. 2. 3.
CutMix 이번 글에서는 Data augmentation 기법 중 하나인 CutMix에 대해서 살펴볼 것입니다. 기존에 이미지 기반 테스크에서 성능을 높이기 위해서 이미지의 일부분을 잘라서 0으로 채우거나(Cutout) 다른 이미지와 겹치는(Mixup)과 같은 여러 기법이 사용되었습니다. 이러한 방법들을 통해서 이미지의 덜 중요한 부분까지 포커싱하게 만드는 regional dropout 전략을 사용해왔습니다. 하지만 Table 1에서 보이는 것과 같이 이미지의 정보가 손실되거나 왜곡되는 현상 때문에 오히려 성능이 감소하는 문제가 발생했습니다. CutMix는 기존 방법에서 더 나아가 cut-and-paste 방법을 취해서 현 이미지의 패치를 다른 이미지의 패치로 채우는 기법을 사용하여 높은 성능을 가져왔습니다. Al.. 2022. 1. 27.
Cross Entropy를 사용하는 이유 일반적으로 분류 문제를 풀 때 Cross Entropy를 Loss로 사용하는 경우가 많습니다. 그렇다면 왜 굳이 Cross Entropy를 Loss 함수로 사용하는 것일까요? 수식으로만 보는 간단한 이유 일단 Cross Entropy수식은 다음과 같습니다. $$CE(p, q) = -\sum_{i=1}^np(x_i)logq(x_i)$$ 위 수식에서 정답과 모델이 예측한 값이 같을 때는 0인 값이 나오고 서로 다른 경우에는 무한대의 값에 가깝게 나올 수 있습니다. 즉, 잘 예측하면 Loss가 0에 가깝게 나오고 아니면 Loss가 높은 값을 가지게 된다. 정답과 오답의 경우의 loss의 차가 크고, 잘 학습돼서 사용합니다. 하지만 이러한 이유로 이 Loss를 쓰는 것은 뭔가 찝찝합니다. KL-Divergenc.. 2021. 11. 12.