![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bzdzTj/btqzthvoG5c/bP9GnUYs1ZfF4l45YbUNjk/img.png)
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)을 해주는 거로 알고 있습니다. 위에서 보이는 ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/blWMdk/btqwVhxwtdi/rcEqEkqWfCPmk7zy1QWDUK/img.png)
목표 Mnist data와 AlexNet 구조를 이용해서 Convolutional Neural Network기반으로 10개의 숫자 손글씨를 classification하것이다. 여기서 우리는, Tensorflow의 Session()모드로 사용 안하고 Eager()모드를 사용해서 코드를 구성해보도록 하겠습니다 ※eager mode : tf.2.0 version부터는 Session() 방식보단 Eager 방식을 쓰는 것을 권장한다고 합니다. 1. Input Module 2. enable eager 1) tf.enable_eager_execution() eager mode를 사용하려면 이 내용을 작성해주어야 한다. 그러면, tensorflow의 placeholder와 Session() 구문을 사용 못하게 된다...
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/1Xnq7/btqvskVriDY/Xgk4s0fg8GqbZFh3V0Hwyk/img.png)
목표 BoneAge Project에 관련해서, original kernel 커널을 따라해보고, 그 것을 하나하나 설명한 뒤, 이 커털을 응용해서 제가 스스로 코드를 다른 방식으로 짜보는 것 입니다. original kaggle Kernel : https://www.kaggle.com/kmader/attention-on-pretrained-vgg16-for-bone-age ※버전 문제에 관련해서 코드 실행이 안되는 부분은 커스텀해서 수정한 부분도 있으니 참고 바랍니다. 1. import module 1) ImageDataGenerator Keras의 클래스이며, 이미지 파일을 쉽게 학습을 시킬 수 있는 클래스이다. 해당 클래스로 데이터 증식(data augmentation)을 할 수 있다. 의료AI에서는 ..
해당 글은 개인적으로 공부한 내용과 '김태영님의 블로그'를 참고한 글 입니다. 학습 문제와 해답지를 함께 제공을 하고(코드상에선 x와 y) 문제를 푼 뒤 정답지를 보며 맞는지 틀린지 확인하는 과정을 학습이라고 부른다. 평가 문제만 주고 풀게한 뒤, 그 문제가 맞는지 틀린지 점수(Score)만 계산하는 것. Validation Set 학생(모델)들의 학습 방법을 Validation set으로 평가해볼 수 있다. 그래서 Hyper-Parameter(공부방법)을 변경해가면서 학생(모델)에게 알맞은 공부 방법이 무엇인지 알아낼 수 있다. Hyper Parameter는 학습을 하면서 적절한 값을 찾아내야 한다. UnderFitting(언더피팅) 학습이 덜 상태를 의미하며 이는 학습을 더 하면 성능이 더 높아질 가..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/b3XU5X/btqugCYSGc7/Ls19MWK4U0mkOArCJk16a1/img.png)
1. 퍼셉트론이 무엇인가? 가장 간단한 Artificial Neural Network의 기본 구조이다. 앞으로 Deep learning에 대해 공부를 하기 전 퍼셉트론에 대한 개념을 확실하게 잡아야 나중에 도움이 된다. 앞으로 언급할 퍼셉트론에 대한 개념은 생물학적인 뉴런과 밀접한 관계가 있다. 생물학적인 Neuron을 보면 (1) dendrites로 모든 신호를 받아드리고 (2) cell body에서 신호를 모은 후 (3)axon을 통해 신호가 잘 갈 수 있도록 채찍질 해주고 (4) axon terminals로 다음 neuron으로 신호를 전달하는 구조이다. 퍼셉트론은, 생물학적인 neuron에서 이루어지는 과정을 수학적으로 모델링한 인공뉴런이다. 퍼셉트론의 입력을 Xi라 하고 시냅스의 가중치를 W라고..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bPPnaX/btqtWYOlbXp/Q8qxYNykHa5PSBce2MAIHk/img.png)
신경망 학습의 전체 그림 1단계) 미니배치(Mini-Batch) training data중 일부를 가지고 와서 배치화 시키는 작업이다. 미니배치의 목표는, 손실함수(cost function = loss function)값을 줄이는 것이 목표이다. 2단계) 기울기 산출 미니배치의 cost function 값을 줄이기 위해 각 가중치 매개변수(weight)의 기울기를 구한다. 기울기는, cost function의 값을 가장 작게 하는 방향을 제시하는 역할. 3단계) 매개변수 갱신 weight를 기울기 방향으로 아주 조금씩 갱신해준다. 4단계) 반복 1 ~ 3단계 과정을 계속 반복한다. 여기까지는 '밑바닥부터 시작하는 딥러닝'에 대한 내용을 작성한 것 입니다. 이제부턴 연구실에서 책 세미나 한 내용을 다시 혼..
해당 내용을 하기 전에 opencv를 적용시켜야합니다. 아직 VisualStudio에 opencv를 적용 안시키신 분들은 아래 링크로 들어가서 적용시키시기 바랍니다. VisualStudio에 OpenCV 적용시키기 #1 개발환경 - Windows 10 Professional K 64bit- Opencv 3.2.0- Dlib 19.2 #2 Dlib 설치 dlib 19.2버전 다운로드 원하는 경로에 우선 다운로드를 하자. 다운로드 한 폴더에 build라는 새폴더를 생성하자. #3 CMake 설지 CMake 다운로드자신에게 맞는 버전으로 원하는 경로에 다운로드를 하면 된다. 위와 같이 경로를 설정해주고 configure를 누르면 된다. 한 두번정도 누르면 화면이 붉은색에서 흰색으로 변할것이다. 마지막으로 ge..