728x90

IT/AI\ML 77

[논문] 최근 AI의 이미지 인식에서 화제인 "Vision Transformer"에 대한 해설

※ 일본 블로그 내용을 번역한 것으로 오역이나 직역이 있을 수 있으며, 내용의 오류 지적해주시면 감사하겠습니다. 1. 개요 현재 AI계에서 화제가 되고 있는 "Vision Transformer"에 대해 다뤄보려고 한다. 이번에 제안된 Vison Transformer(이하 ViT)이라는 모델에 의해 더 이상 레이어를 겹치는 형태의 모델은 없어질지도 모른다. ViT는 Transformer을 거의 그대로 이미지 분류 업무에 이용한 것으로, ImangeNet/ImageNet-ReaL/CIFAR-100/VTAB SoTA모델과 거의 비슷한 정도 혹은 그 이상을 성능을 달성하였다. 심지어 SoTA모델들(BiT/NoisyStudent)와 비교해서 계산 비용은 15분의 1까지 떨어졌다 (SoTA를 향상시킨 모델은 많아 ..

IT/AI\ML 2020.10.16

[수학/분포] 정규분포 간의 KL 발산(쿨백-라이블러 발산 ; Kullback–Leibler divergence, KLD)

위키피디아에 있는 쿨백-라이블러 발산(Kullback–Leibler divergence, 이하 KLD)의 정의에 대해 잠깐 정리하자면, 다음과 같다. KLD는 두 확률분포의 차이를 계산하는 데에 사용하는 함수로, 어떤 이상적인 분포에 대해, 그 분포를 근사하는 다른 분포를 사용해 샘플링을 한다면 발생할 수 있는 정보 엔트로피 차이를 계산한다. 상대 엔트로피(relative entropy), 정보 획득량(information gain), 인포메이션 다이버전스(information divergence)라고도 한다. 정보이론에서는 상대 엔트로피, 기계학습의 결정 트리에서는 정보 획득량을 주로 사용한다. 쿨백-라이블러 발산은 비대칭으로, 두 값의 위치를 바꾸면 함수값도 달라진다. 따라서 이 함수는 거리 함수는 ..

IT/AI\ML 2020.08.07

[수학/분포] 확률변수 Jensen 부등식의 직감적 이해

확률변수와 관련된 Jensen의 부등식을 예를 이용하여 직감적으로 이해해보려고 한다. x를 확률 변수, p(x)를 x의 확률밀도함수라고 한다면 그 기대치 E[x]는 아래의 식과 같다. 이때 위에 볼록 튀어나온 함수 f(x)에 대해, 위의 부등식이 성립한다면, "Jensen의 부등식"이라고 부른다. 이 증명과 관련하여는 여러 곳에서 해설하고 있으니 여기서는 생략하고 하도록 한다. (예를 들면, 여기) 이 부등식 f(E[x])≥E[f(x)] 을 직감적으로 이해하기 위해 난수를 이용한 예를 그래프로 표시해보도록 하겠습니다. 먼저, x가 정규분포를 따르는 확률 변수라고 가정했을 때, 여기서 발생하는 난수를 만들어 보았습니다. 또한, x를 아래의 함수로 변환하였습니다. 아래의 그래프 위쪽에 있는 히스토그램이 정규..

IT/AI\ML 2020.08.06

GAN ; PG-GAN(Progressive Growing of GANs)

1. PG-GAN(Progressive Growing of GANs)의 개요 PG-GAN를 한 마디로 설명하면, '저해상도의 이미지로부터 시작해 네트워크의 레이어를 추가해가며 점차 해상도를 높여가는 GAN'라고 할 수 있다. 기존의 GAN과 같이, 모든 스케일에 대해 동시에 학습하는 것이 아닌, 먼저 처음에 대략 이미지 구성을 파악한 뒤 단계적으로 세부적인 부분에 주목해 간다. 위 그림의 NxN은 해상도가 NxN인 convolution층을 의미한다. 참고로 모든 층은 항상 훈련이 가능한 상태이다. 본 연구의 학습에서는 Generator과 Discriminator 각각 저해상도 (4x4)의 층으로 부터 시작하여 학습이 진행해감에 따라 조금씩 Generator과 Discriminator에 층을 추가해나가는 ..

IT/AI\ML 2020.07.06

머신러닝 분류 모델의 성능평가

1. 모델의 성능지표에 대해 만들어진 모델의 성능평가 지표는 단순히 하나가 아니다. 분류 모델과 회귀 모델의 차이점은 물론, 분류 혹은 회귀 모델 중에서도 평가지표가 복수여서 결국 어떤 지표를 사용해 모델을 평가해야하는가 매우 고민이 된다. 이번 포스팅에서 다양한 평가지표를 소개하며, 어떤 때에 어떤 지표를 이용하는 것이 좋은지를 소개하고자 한다. 2. 분류 모델의 성능 평가 분류모델이란 목적변수가 어느 카테고리(예: 병이 있는지 아님 건강한지, 합격인지 불합격인지 등)에 소속되는가를 예측하는 모델이다. 먼저, 분류 모델의 성능 평가에서 사용하는 지표를 살펴보자. 설명을 간략화하기위해 2클래스 분류(목적변수가 A인가 B인가의 2종류)의 예로 살펴보자. 1) 혼동행렬(confusion Matrix)에 대해..

IT/AI\ML 2020.05.27

[python] 머신러닝의 모델 정밀도 향상에 효과적인 학습곡선과 검증곡선 입문

인공지능을 학습시키는 것까지는 좋았으나 '전혀 사용할 수 없잖아!'라고 생각되는 과학습에 빠져버리면 곤란하다. 과학습이란 훈련 데이터(학습 데이터)는 정답은 잘 맞추지만 미지의 데이터는 전혀 정답을 맞추지 못하는 모델의 상태를 일컫는다. 이전의 포스팅에서 말했듯 과학습의 대책의 하나로 학습 곡선을 그리는 것이 효과적이라고 했는데, 이 포스팅에서 학습곡선에 대해 조금 더 자세히 정리해볼 생각이다. 1. 학습 곡선이란? 학습곡선이(learning curve)란 훈련 데이터의 양에 대해, 모델의 범화성능을 플롯한 것이다. 즉, 훈련 데이터에 대한 모델의 성능과 검증 데이터에 대한 모델의 성능이 훈련 데이터의 양에 따라 어떻게 변화해가는지를 표시한 그래프이다. 다음과 같은 이미지라고 할 수 있다. ※ 플롯 : ..

IT/AI\ML 2020.05.25

머신러닝 정밀도의 향상을 위해 해야할 것

어떤 예측모델에서 큰 오차가 발생한 우 다음에 무엇을하면 좋을까? 자주하는 방법이 '정밀도가 나오지 않는 것은 트레이닝 데이터 부족하기 때문이다!'라고 생각하고 갑자기 데이터를 모으는 것이다. 이 방법은 쓸데 없는 노력으로 끝나는 경우가 많으므로 반드시 좋은 방법이라고 할 수 없다. 그래도 '해 볼 수 밖에 없다'라고 생각할지도 모르겠지만, 그 방법을 하기 전에 아래의 항목을 통해 다른 방법을 꾀할 수도 있다. [정밀도 향상 대책 후보] 1. 훈련 데이터를 더욱 수집한다. 2. 특징량(Feature) n을 감소시킨다. 3. 특징량(Feature) n을 증가시킨다. 4. 고차원의 특징을 추가한다. (x21,x22,x1x2,…) 5. 정규화 계수 λ를 작게한다. 6. 정규화 계수 λ를 크게한다. ※ 학습률 ..

IT/AI\ML 2020.05.24

[python] 교차검증(cross validation/クロスバリデーション/交差検証)과 그 방법들

1. 교차 검증이 필요한 이유 데이터는 기본적으로 label이 있는 train, test set으로 구성되어 있다. 만약 train set을 다시 trainset + validaton set으로 분리하지 않는다고 가정하면, 우리는 모델 검증을 위해 test set을 사용하여야 할 것이다. 이 경우 한 가지 취약점이 존재한다. 고정된 test set을 이용해 모델의 성능을 확인하고 파라미터를 수정하는 과정을 반복하면 결국 내가 만든 모델은 test set에서만 잘 작동하는 모델이 되어버리고 만다. 즉, test set에 과적합(overfitting)되어 실제 데이터를 가지고 예측을 수행하면 제대로 된 결과를 얻을 수 없게 된다. 즉 고정된 train set과 test set으로 평가를 하고 반복적으로 모델..

IT/AI\ML 2020.05.19

GAN ; WGAN & WGAN-gp

이번 포스팅에서는 WGAN 및 WGAN의 개선판(WGAN-gp)에 대해서 설명한다. 1. GAN의 문제점 - 학습이 어렵다. ▶ 기울기 손실 문제가 발생한다. - 생성 결과의 퀄리티를 손실함수로부터 판단하기 힘들다. - 모드 붕괴가 일어난다. 2. 개선 방법 - Wasserstein GAN의 도입 ▶ Wasserstein거리에 의한 손실함수의 설계 ▷ 요소를 만족하기 위해 가중치를 클리핑 (WGAN) ▷ 학습이 불안정한 문제 ▶ 다른 방법으로는 Grgdient penality를 도입 (WGAN-gp) 3. 기본 구조와 비교하여 변경된 점 - 손실함수 (binary cross entropy에서 Wasserstein loss로) - discriminator의 구조 (1) 손실함수 먼저 손실함수에 대해 설명한..

IT/AI\ML 2020.05.01

GAN ; 잠재 변수와 생성 이미지

전에는 DCGAN을 구현해보았다. 이번에는 이미지를 생성하는 것의 씨가 되는 잠재변수 z와 생성되는 이미지, 그리고 이미지의 인식 결과에 대해서 깊이 파보는 시간을 가진다. 코드는 Github를 참고하길 바란다. 1. 생성모델 mnist이미지를 바탕으로 생성 모델에 대해 생각해보자. mnist는 2차원의 이미지 데이터이지만, 실제로는 가로 28픽셀, 세로 28픽셀, 총 784픽셀의 각각에 화소값이 입력되어 있다. 즉, 2차원 이미지이지만, 784차원의 데이터로 취급되므로 주의해야한다. 그럼, 이 784차원의 캔버스에 이미지를 생성하는 의미를 생각해보자. 하나의 이미지 데이터 img는 784개 값의 나열로 나타낼 수 있다. 즉, i번째의 픽셀 값 xi라고 한다면 아래의 식과 같이 표현할 수 있다. 그런데,..

IT/AI\ML 2020.05.01
728x90