Unsupervised Learning 방법으로 GAN을 이용한 Anomaly Detection 방법 중 Encoder 부분을 이용한 f-AnoGAN 방법이 있습니다. 이 방법은 효율적으로 Anomaly Detection을 잘 하지만 미세한 결함을 제대로 검출하기 힘들다는 한계점이 있습니다. 본 글에서는 f-AnoGAN의 특징들과 단점에 대해 간략히 소개를 하고 그 해결책에 대한 내용을 간략하게 정리해보기 위한 글 입니다. 비교를 할 논문은 아래와 같습니다. f-AnoGAN MemAE f-AnoGAN 참고 링크 blog.promedius.ai/f-anogan-fast-unsupervised-anomaly-detection-with-gan/ Github tutorial github.com/mulkong/f..
1. Abstract [산업 현장에서 AE를 활용한 Anomaly Detection] Industrial vision에서 Anomaly Detection problems은 결함이 있거나 없는 arbitrary image를 clean image에서 mapping하도록 훈련된 AutoEncoder를 사용하여 해결할 수 있습니다. [skip-connections이 있는 AutoEncoder(AES)를 사용한 이유] 이 접근 방식에서 Anomaly Detection과정은 개념적으로 본다면 reconstruction residual 또는 reconstruction uncertainty에 의존합니다. 공통적으로 sharpness of the reconstruction를 높이기 위해 skip-connections이 ..
이번엔 Pytorch를 사용하면서 데이터, 학습 과정 등의 시각화에 유용한 TensorBoard를 사용하는 방법을 한번 알아보도록 하겠습니다. 1. Install 우선 TensorBoard는 이름 그대로 Tensorflow를 위해서 개발된 Tools입니다. 그래서 Tensorflow에서만 거의 사용이 되었지만 정말 감사하게도 Pytorch에서도 TensorBoard를 사용할 수 있도록 TensorBoardX라는 라이브러리를 개발을 해주셔서 이제는 Pytorch에서도 Tensorboard를 사용할 수 있게 되었습니다. TensorboardX를 사용하려면 pip을 사용해 TensorboardX를 설치해야 합니다. pip install tensorboardX 2. Sin, Cos Function을 그려보기. ..
Tensorflow 1.x 버전으로 코드를 작성하다가. Naver AI HackaThon을 계기로 Pytorch로 넘어오게 되었다. 어떻게 보면 비슷하지만 약간은 다른 Pytorch를 그동안 접하면서. 초보자들에게 유용한 팁을 한번 간단하게 정리를 해보고자 한다. (이미 잘 하신 분들은 스킵하셔도 됩니다~~) 글의 구성은 다음과 같이 구성이 되어있습니다. Custom Dataset 을 Class로 만들어서 Data Loader 시키기. Transfer Learning and fine tunning with Pytorch Save and Load pickle file Model feature extractor 1. Custom Dataset Loader Pytorch에서 기본적으로 제공해주는 Fashion..
1. Abstract 1-1. Problem PGGAN(Progressive Growing of GANs)은 2017년도에 나온 Nvidia에서 나온 논문이고 발표 당시 큰 이슈를 받았다고 한다. 그 이유는 그 전까지 GAN들은 고해상도(High resolution) 이미지를 만드는것이 매우 힘들었는데 이 논문이 새로운 접근 방법으로 고해상도 이미지 생성하는 것을 해결했다. 일반적인 GAN으로 고해상도 이미지를 만든다고 한다면, 아래와 같은 문제들이 발생을 할 것 이다. - 고해상도 이미지를 만드는 것은 매우 어려운 일이다. 그 이유는, High Resolution 일수록 Discriminator는 Generator가 생성한 Image가 Fake Image인지 아닌지를 구분하기가 쉬워지기 때문이다. - ..
Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide MArker Discovery 일명 "AnoGAN"에 대한 paper을 읽고 정리한 공부자료 입니다. 기본개념 GAN이란? GAN의 학습 과정은, Discriminator가 Real과 Fake를 잘 맞추도록 훈련을 한 다음, Generator가 만들어낸 Fake image가 Discriminator에서 Real로 나오도록 하는 학습 과정입니다. DCGAN - CNN vs MLP MLP : 3차원 데이터를 1개의 Vector로 풀어서 인식한다. 그로인해 단점은 이미지의 위치 정보를 무시하게 된다(feature loss발생) CNN : 3차원 데이터 입력을 그대로 사용한다..
GAN 중에서 가장 기본적인 "Generative Adversarial Network"에 대해 논문을 읽고 참고자료를 본 후 정리한 공부자료 입니다. + 정리하다가 Autoencoder와 VAE 개념을 먼저 알아야 GAN을 이해하기 쉽다는 생각이 들어서 추후에 정리하도록 하겠습니다. GAN을 하기 전에 기본 개념 1. Supervised Learning Supervised Learning에 대한 내용은 자세하게 설명은 안하겠습니다. 우리가 흔히 알고있는 Supervised Learning은 "model이 학습을 할 때 Label data가 존재해야 한다" 라는 것 입니다. 그래서 보통 input data를 알맞은 class로 분류(classification)을 해주는 거로 알고 있습니다. 위에서 보이는 ..
신경망 학습의 전체 그림 1단계) 미니배치(Mini-Batch) training data중 일부를 가지고 와서 배치화 시키는 작업이다. 미니배치의 목표는, 손실함수(cost function = loss function)값을 줄이는 것이 목표이다. 2단계) 기울기 산출 미니배치의 cost function 값을 줄이기 위해 각 가중치 매개변수(weight)의 기울기를 구한다. 기울기는, cost function의 값을 가장 작게 하는 방향을 제시하는 역할. 3단계) 매개변수 갱신 weight를 기울기 방향으로 아주 조금씩 갱신해준다. 4단계) 반복 1 ~ 3단계 과정을 계속 반복한다. 여기까지는 '밑바닥부터 시작하는 딥러닝'에 대한 내용을 작성한 것 입니다. 이제부턴 연구실에서 책 세미나 한 내용을 다시 혼..