본문 바로가기

전체 글

(3) Advancing Medical Imaging Informatics by Deep Learning-Based Domain Adaptation - Maximum Mean Discrepancy 이전 글에서 나는 "다음 글에서는 Maximum Mean Discrepancy 와 Wasserstein distance에 대해 정리하도록 하겠다." 고 당차게 말했지만.. 와 Wasserstein distance라는 게 엄청나게 수학적 개념, 특히 확률에서 출발한 방법이더라. 확률에 대한 감이 어느정도 잡히고 나서야 제대로 이해할 수 있겠다는 생각이 들었다. 그러려면 단시간에는 불가능하니... 우선 Maximum Mean Discrepance (MMD)에 대해서만 정리하고자 한다. Maximum Mean Discrepancy (최대 평균 불일치) MMD도 두 데이터 분포 사이의 차이를 측정하는 방법이고, 그림에 나와있는 수식처럼 차이를 계산한다. 평균하고 빼고 제곱한 결과가 MDD 값이다. 무얼 평균? .. 더보기
티스토리 스킨 square → whatever 로 변경 스킨을 변경했다. 광고도 달고 앞으로 꾸준히 활동을 하려고보니 뭔가 스킨에서 옛날 느낌이 났고, 가독성이 좋은 스킨이라 생각했는데 다른 스킨들에 비해 오히려 떨어지는 걸 느꼈다. (공부하기 전에 책상 먼저 치우는 그런 유형이랄까..) whatever 스킨이 깔끔한게 괜찮은데.. 아쉬운 점들이 꽤 많았다. 사이드바도 없고, 프로필 사진도 못 넣고, 레이아웃도 뭔가 이상하고, 인피드 광고랑 길다란 광고도 달고 싶고, 상단에 광고 2개 '애드핏 애드센스' 순으로 넣고 싶고 등등등.... 그래서 학부 때 잠깐 배웠던 거의 남아있지 않은 html/css 개념을 갖고 이곳 저곳을 참고해가면서 진짜 마구잡이로 여기저기 들쑤셔가며 수정해서 바꿔봤다. 지금까지는 만족한다. 아직 해결하지 못한 문제들이 있긴 한데.. 앞으.. 더보기
나도 블로그에 광고 붙였다..! 회사 일이 바빠서 블로그를 제대로 관리하지 못 했었는데 그래도 평일에 평균적으로 300명이나 되는 분들이 방문해시더라. 도움이 되었다는 댓글도 달리고.. '그래 내가 머리 깨가며 공부한 내용들 정리하면 다른 분들에게 조금이라도 도움이 되겠지' 라는 생각으로 시작했던 과거를 생각하며.. 정신차리고 틈틈히 정리해나가려고 한다. 그러면서 동시에 광고도 붙였다ㅎ 많은 수입이 발생하진 않겠지만 글을 계속 쓰다보면 방문자 수도 올라갈거고... 그러면 수입도 조금씩 오를거고 그러면 연말에 고기 썰러 한 번은 갈 수 있지 않을까....? 싶은 마음에 나도 가독성을 해치지 않는 범위에서 광고를 넣어봐야겠다. 광고 한 번 보고 갈 수 있잖아? 이런 느낌으로ㅎㅎㅎ 지금은 AdFit / AdSense 연동했고, 연동하고서는 .. 더보기
0 ~ 255의 픽셀 값을 왜 0 ~ 1로 rescale하는 걸까? 제목 그대로다. CNN을 사용할 때면 보통 input image를 255로 나눠서 0~1 사이의 값을 갖도록 맞춘다. 왜 그러는 걸까? 정확한 근거를 못 찾아서 어디까지나 내 생각이지만, neural network가 feature scale에 예민한 모델이라 0 ~ 1로 맞춰주는 게 아닐까 싶다. 그리고 스쳐 지나가듯 읽은 사이트에서 255라는 값이 network 학습에 바로 사용하기에는 너무 큰 값이라서 0 ~ 1로 rescaling하는 것이라는 글을 본 기억이 있다. 제대로 된 결론은 못 내렸지만.. 뭐 그냥 그렇다고... 나처럼 궁금해하는 사람이 있을까 해서.. 정확히 알고 계신분 댓글 남겨주시면 감사하겠습니다! 더보기
(2) Advancing Medical Imaging Informatics by Deep Learning-Based Domain Adaptation - Divergence minimization Latent Feature Space Transformation에 대해 더 자세히 정리하는 두 번째 글이다. 적어도 4개 정도는 더 써야 원하는만큼의 지식을 챙겨갈 수 있지 않을까 싶다. 모르는 개념도 많고.. 어려워서 공부하는데도 꽤 오랜 시간과 노력이 필요할 것 같다. Latent Feature Space Transformation의 목적은 말 그대로 network를 통해 추출되는 feature들을 사용해서 DA를 하는 것이다. 예를 들어 CNN에서는 여러 개의 convolutional layer를 거쳐 feature map들이 생성될텐데, Latent Feature Space Transformation에서는 DA를 위해서 이 feature map들을 어떻게 해보겠다는 거다. 적절한 feature m.. 더보기
ImgaeDataGenerator.flow_from_directory을 이용해 이미지 증식하는 방법 Data augmentation은 Network의 robustness를 높이기 위해 거의 default로 적용하는 방법이다. 케라스에서는 ImageDataGenerator 클래스의 몇 가지 클래스 함수들로 이미지 로드 뿐만 아니라 augmentation을 지원한다. flow( ) flow_from_directory( ) flow_from_dataframe( ) 이번 글에선 flow_from_directory( ) 함수를 사용해서 augmentation을 하는 방법에 대해 정리하고자 한다. 그러기 위해선 일단 사용할 이미지가 필요하다. 저작권 문제에서 자유로운 https://pixabay.com/ 에서 마음에 드는 고양이와 강아지 사진을 각각 2장씩 골라 아래와 같은 폴더 구조로 저장하자. 여기서 이렇게 .. 더보기
keras.models.Model( ) 케라스에서 모델 설계를 할 때 Sequential( )을 주로 사용해왔다. 단순히 이전 layer의 output이 다음 layer의 input으로 들어가는 선형적인 경우에 사용해주면 아주 편리하기 때문이다. 그래서 단점도 존재한다. DenseNet( ) 같이 선형적 흐름이 아닌 모델 설계의 경우엔 사용하질 못 한다. keras.models.Model( )을 사용하면 Sequential( )의 불편한 점에서 벗어날 수 있다. 이 놈은 Multi Input / Multi Output을 지원한다. 위와 같은 흐름을 갖는 모델을 설계하고 싶다면 Model( )을 사용해주면 된다. import keras from keras.layers import Input, Embedding, LSTM, Dense from k.. 더보기
MNIST 분류 모델, 조금 다르게 실행해보자 / get_tensor_by_name( ) 일단 코드부터 보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 import tensorflow ass tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('./mnist', one_hot = True) X = tf.placeholder(tf.float32, (None, 28,28,1), name = 'INPUT') Y = tf.placeholder(tf.float32, (None, 10)) is_training = tf.pla.. 더보기