본문 바로가기

분류 전체보기78

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.
Backpropagation 개요 Backpropagation이란 딥러닝 모델을 학습시킬 때 사용하는 대표적인 부분 중 하나입다. 직역하면 역전파라는 뜻을 가집니다. Backpropation은 간단하게 풀어쓰면 실제 정답과 모델이 예측한 값의 오차를 출력에서 입력으로 전파하면서 모델의 weight를 업데이트하는 것을 말합니다. Backpropagation을 알기 전에 Chain Rule이란 것을 먼저 알아야 합니다. Chain Rule Chain Rule이란 미분의 연쇄법칙이라고 불리는 법칙입니다. Chain Rule에 대한 정의는 다음과 같습니다. 어떤 함수 $f$와 $g$가 모두 미분가능하고 $F = f\circ g$가 $F(x) = f(g(x))$로 정의된 합성함수라면, $F$는 $x$에서 미분 가능하고, $F'$는 다음과 같.. 2021. 11. 3.
[Metric] Recall과 Precision 딥러닝뿐만 아니라 머신러닝을 배우다 보면 모델의 성능을 평가하는 지표가 자주 나옵니다. 이 글에서는 모델을 평가하는 지표 중에서 가장 대표적이라고 할 수 있는 지표들에 대해서 살펴봅니다. Confusion Matrix 모델에 대한 평가는 일반적으로 실제 정답과 모델이 내놓은 정답간의 관계를 통해서 구할 수 있습니다. 정답이 True, False로 나누어져 있고, 모델이 True, False로 답을 내놓을 때 이에 대한 관계를 2x2 matrix로 표현하면 아래와 같은 표로 표현할 수 있습니다. matrix의 간 칵에 있는 것을 살펴보면 다음과 같이 볼 수 있습니다. True Positive(TP): 실제 True이고 모델이 True라고 분류한 경우 ( 정답 ) False Positive(FP): 실제 T.. 2021. 10. 3.
[Metric] BLEU (Bilingual Evaluation Understudy) BLUE BLEU(Bilingual Evaluation Understudy) score란 성과지표로 데이터의 X가 순서정보를 가진 단어들(문장)로 이루어져 있고, y 또한 단어들의 시리즈(문장)로 이루어진 경우에 사용되며, 번역을 하는 모델에 주로 사용됩니다. 3가지 요소를 살펴보겠습니다. n-gram을 통한 순서쌍들이 얼마나 겹치는지 측정(precision) 문장길이에 대한 과적합 보정 (Brevity Penalty) 같은 단어가 연속적으로 나올때 과적합 되는 것을 보정(Clipping) $$\text{BP} = \begin{cases} 1 &\text{if } c > r\\ e^{(1-r/c)}& \text{if } c \le r \end{cases}\\BLEU = \text{BP}\cdot\exp\.. 2021. 10. 2.
[Metric] ROUGE (Recall-Oriented Understudy for Gisting Evaluation) ROUGE ROUGE (Recall-Oriented Understudy for Gisting Evaluation)는 텍스트 자동 요약, 기계 번역 등 자연어 생성 모델의 성능을 평가하기 위한 지표이다. ROUGE는 일반적으로 n-gram recall을 기준으로 평가한 metric으로 보면 된다. 간단하게 요약을 하면 BLEU의 recall 버전이라고 볼 수 있다. (실제로는 다르다) 근데 상황에 따라서 recall, precision, F1 score로 다 표현하기 때문에 ROUGE-N recall/precision/f1 score 식으로 표기한다. 일단 N-gram에 대한 ROUGE-N의 식은 다음과 같다. $$ROUGE-N = \cfrac{\text{Number of overlapped n-gram}.. 2021. 10. 2.
[Paper Review] Data Augmentation GAN 본 리뷰에서 이상한 점이 부족한 점이 있다면 피드백 부탁드립니다. Introduction 최근에는 딥러닝이 모델이 Large Datasets을 활용하여 다양한 분야에서 좋은 성과를 가졌다. 그러나 현실에 많은 경우에는 데이터셋의 크기가 부족해 overfitting과 같은 문제가 있다. overfitting을 해결하기 위해서 dropout, batch normalization과 같은 기술들이 연구되었지만, low data regimes(적은 데이터 체계? 데이터 도메인? 데이터 사이즈?)에서는 이것조차 의미가 없다. random translation, rotations, flips, Gaussian noise 추가 등과 같은 transformation 기법을 통해서 데이터셋을 늘릴 수 있지만, 이는 기존의.. 2021. 9. 27.
[TableTopSimulator] Devlog0 Unity와 C#을 활용하여 만든 TableTop Simulator입니다. 아직 기초적인 단계만 만들어진 상태입니다. 2021. 9. 26.
[JobWar] Devlog0 개요 이 게임을 개발한 시기는 2019년 7~8월달이였습니다. 이 시기에는 싱글플레이 게임보다는 사람들과 즐길 수 있는 멀티플레이 게임에 흥미를 느껴서 개발을 시작했습니다. 이맘때까지는 아직 엔진으로 만드는 것보다는 바닥부터 만드는거에 더 흥미가 있어서 이전 게임인 'Avaratia'와 같이 Java로 게임과 서버를 제작한 Top View 형식의 Multiplay PC Game입니다. 제대로된 서버를 만들어본 것은 이 게임을 만들면서였습니다. 이전까지는 간단한 Socket 채팅 서버, echo 서버정도에서만 머물렀지만 이 플젝을 진행하면서 어느정도 게임 서버에 가깝게 만들어봤습니다. 본 프로젝트에서 클라이언트는 이전에 만든 게임에서 사용한 Java기반으로 만들었고, 서버도 Java기반으로 Socket을 .. 2021. 9. 26.