My Logs/Article (4)


2019 대한의료인공지능학회 Summer School 참석후기


2019 대한의료인공지능학회 Summer School 에 참석하였습니다. 참여자들을 조사했는데, 대략 전체 참석자중 MD 가 절반정도, 나머지 연구원 및 학생이 절반 정도되었던 것 같습니다. 각 교육 세션은 50분에서 1시간 30분사이로 진행되었습니다. 


1일차에는 의료인공지능을 하기 위한 방법론들을 주로 다루었습니다. 역시 현재 의료인공지능 분야의 state-of-the-art 인 deep learning 에 대한 내용이 중점이었습니다 (물론 이를 설명하기 위한 수학적, 통계적 개념은 많이 다루었습니다). 교육 내용은 deep learning 을 기초부터 다루지는 않았고, deep learning을 의료 데이터에 적용할 때 발생할 수 있는 주요 이슈들에 대해서 개념부터 최근 연구 동향까지 다루었습니다. 현재 연구원으로서 엔지니어링을 의료 데이터에 적용하고 있는 저로서는 발표자 분들과 같은 관심선상에서 많은 것을 배울 수 있었습니다. 


Recent updates of ML/DL/DCNN 


deep learning 중 특히 convolutional neural network (cnn) 을 의료데이터에 적용할 때 생기는 다양한 이슈들에 대해 개념부터 시작해 최근 연구 동향까지 빠르게 다루는 시간이었습니다. 발표자 분께서는 하나의 개념에 대해 깊게 설명하지는 않았으나, 앞으로 관련 개념을 찾아볼 때 충분한 guide 가 될 수 있을 정도로 잘 설명을 해주셨습니다. 


이 세션에서는 아래와 같은 주제들을 다루었습니다. 

  • Transfer learning and domain adaptation
  • Weakly supervised learning
  • Self-supervised learning
  • Explainability
  • Model compression and architecture search
  • Other issues

위 주제들은 모두 의료 인공지능 분야에서 중요한 이슈가 되는 주제들이라고 생각합니다. 


Recent updates of GANs: basic to advanced


아직 연구에 GAN 을 활용하지 않고 있는 저로서는 GAN 의 개념을 잘 모르고 있었는데, 기본 개념과 초기 GAN 의 문제점, 그리고 발전사에 대해 이해하기 쉽게 잘 설명을 해주셨습니다. GAN 은 Generative + Adversarial 두 가지 컴포넌트로 나뉘며, Generator 가 생성된 데이터를 Adversarial 가 진짜 데이터인지 Generator가 생성한 데이터인지를 평가합니다. 이 과정을 반복하면서 Generator 는 Adversarial 을 속일 수 있을 만큼 진짜 같은 데이터를 생성하내게 됩니다. Ian goodfellow가 제안한 초창기 GAN  모델에서 advanced 된 WGAN, CGAN, InfoGAN, Cycle GAN, GauGAN 등의 최근 모델도 다루었습니다. 특히 Cycle GAN 이나 GauGAN 등을 통해 Style transfer를 할 수 있고, 이러한 개념을 활용해 MRI 데이터를 CT 데이터로 변환할 수 있다는 내용이 흥미로웠습니다. 또한 U-net 과 같은 Semantic segmentation model 뿐 아니라, GAN 을 통해서도 segmentation 을 할 수 있다는 사실도 알게 되었습니다. 의료 인공지능 분야에 관심을 갖으며, 아직 GAN 을 많이 접해보지는 않았는데, 이번 강연을 계기로 GAN 관련 내용을 앞으로 공부를 해 보아야겠습니다. 


Mathematical tools in deep learning: A primer


이 세션에서는 deep learning 에서 쓰이는 다양한 수학적 개념에 대해 훑어주셔습니다. 각종 커뮤니티에서 딥러닝을 하기 위해서 필요한 선행지식으로, 수리통계학, 확률론, 선형대수, 컴퓨터 알고리즘 등을 꼽고 있습니다. 물론, 이러한 분야에 대한 개념이 딥러닝을 이해하는데 있어서 큰 도움이 되는 것은 사실입니다. 하지만 딥러닝을 하기 위해서 이러한 학문을 처음부터 끝까지 새로 배우는 것은 큰 시간과 비용이 소모됩니다. 특히 수학 관련해서는, 딥러닝에 활용이되는 수학적인 내용중 핵심적인 부분만 빠르게 학습하는 것이 시간을 줄이는 법일 것입니다. 이러한 관점에서 강연자분은 딥러닝에 활용되고 있는, 수학적인 개념을 집어서 강연을 해주셨습니다.  또한 강연자분은 Dive into deep learning 을 딥러닝 처음 학습 교재로 추천해주셨습니다 (https://www.d2l.ai). 개인적으로 저도 Ian good fellow 의 딥러닝보다 더 딥러닝 입문서로 추천하는 책입니다. Ian goodfellow 의 저서는 다소 교과서적이고 딱딱한 면이 있지만 이 책의 경우 보다 insightful 하게 설명을 하고 있고, 코드도 함께 나와 있어 입문서로써도 좋으며 어느정도 딥러닝에 경험이 있는 사람에게도 충분히 도움될 것으로 생각합니다.  


Explainability


다음은 Unist XAIC 그룹에서 Explainability 에 대해 다루어주셨습니다. Interpretability와 Explainability의 차이와 그것이 의료에 있어서 왜 중요한지에 대해 조금 더 구체적으로 알 수 있었고, 이를 구현하는 기술적인 방법에 대해 파악할 수 있었던 시간이었습니다. Interpretability 란 모델을 해석할 수 있는 것, 즉 딥러닝을 예로 들면, 각각의 layer 와 node가 무엇을 하는지에 대해 이해하는 것으로 볼 수 있습니다. Explainability란 왜  모델이 그러한 판단 (decision-making)을 내렸는가에 대해 reasonable 한 설명을 할 수 있는가에 대한 것입니다. 딥러닝은 black box의 성격이 강한 over-hyperparameterized 된 모델입니다. 초창기에는 모델이 어떻게 돌아가는지보다는 성능, 즉, 도메인 데이터에 대해 잘 working 하는 것이 중점이었습니다. 특히 하지만 의료 분야의 경우 이러한 decision-making이 매우 중요한 분야 중 하나이기 때문에  Interpretability와 Explainability가 중요한 이슈일 것입니다. 


Explaining Deep Neural Networks

  • Input Attribution Method (TU Berlin)

딥러닝 모델의 예측 결과에 대해 시각적 해석을 돕는 방법입니다. LIME, CAM, Layer-wise Relevance Propagation(LRP) 등이 유명한 방법입니다. 여기서 LIME 과 CAM 의 경우, CNN 에만 사용할 수 있는 모형이고, LRP 의 경우 모든 Neural Net 에 사용할 수 있는 방법입니다. 



  • XCAD: Explainable Computer Aided Diagnosis
  • Dissecting Deep Neural Networks (MIT)
  • Generating Examples inside of Deep Neural Networks (UNIST)


Explaining by Combining Explainable Models

  • Automatic Statistician (MIT/Cambridge)
  • Relational Automatic Statistician (UNIST)


Automatic statistician 은 학습된 모델을 여러개의 설명 가능한 모델로 분할하여 설명하는 기법입니다. 


https://www.automaticstatistician.com/index/



Finding Local Explanations (Model Agnostic Methods)

  • Counterfactual Generation (Toronto)
  • SHapley Additive exPlanation (SHAP)


위 방법은 모델 불가지론적 방법이라고 부르는 모델에 상관없이 어떤 모델이든 설명 가능하도록 하는 방법들입니다. 즉, 신경망 뿐만 아니라 다른 머신러닝 모델에도 적용할 수 있습니다. 


Uncertainty


다음은 루닛의 김민철님께서 딥러닝 모델의 Uncertainty 에 대해 다루어주셨습니다. 아래 3가지 내용에 대해 설명하였습니다. 


  • Calibration
  • Uncertainty within a model
  • AUC confidence interval


Calibration 의 정의는 다음과 같습니다.


the probability associated with the predicted class label should reflect its ground truth correctness likelihood.


즉, 예측 모형에서 클래스를 Probability 를 의미하는 값을 통해서 예측할 때, 그것이 실제 정답일 정도 (likelihood) 를 나타내야한다는 것입니다. 모델의 Calibration 을 점검하는 방법은 validation set 에서 probability 가 validation set에서 accuracy 와 비슷한지를 보면 되는데 이 부분에 대해서는 제 이전 포스트를 참조드립니다. Calibration 이 잘되었는지를 측정하기 위해 Expected Calibration Error (ECE) 가 기본적으로 쓰입니다. 


Calibration 이 잘안되는 문제는 training 도 중 NLL (Negative log likelihood) Overfitting이 생기기 때문에 일어납니다. 이러한 calibration 문제를 해결하기 위해 가능한 방법은 다음과 같습니다. 


The reasons for uncertainty

만약 calibration 이 잘 완료된 모델이 어떤 validation 데이터에 대해 0.95 라는 값을 내보냈을 때, 95 % 확률로 해당 label 이라는 뜻입니다. 하지만 일반적으로 모델에 사용하는 데이터는 population data가 아니라 sample 이며, "모델" 을 사용하는 것이기 때문에 이 값을 얼마나 믿어야할지에 대한 고민이 필요합니다. 

두 번째 주제인 Uncertainty within a model 에서는 이러한 모델이 만들어낸 output 의 불확실성을 어떻게 측정하는지에 관한 것입니다. 즉, 모델을 사용하고, sample 을 사용하는 것으로부터 오는 불확실성을 어떻게 제어할 것인가에 관한 것입니다. Linear regression 의 경우 예측값에 대한 분산을 구해서 confidence interval 을 수학적으로 구할 수 있지만 non-linear 에는 분산을 구할 수가 없습니다. 

따라서 bayesian 방법을 통해 모델의 파라미터의 분산을 추정하고 이를 통해 예측값의 분산을 구하는 방법을 주로 사용하게됩니다. 즉, 신경망의 모든 weight 에 사전 분포가 존재한다고 가정합니다. 이를 bayesian neural network 라고 합니다. 

Dropout as Bayesian Approximation


이를 실제로 하는 방법 중에 drop-out 을 이용하는 방법이 있습니다. 아래와 같은 방법으로 model uncertainty 를 구하게됩니다. 


1. Apply Dropout in all layers

2. Train the NN with SGD

3. During the test phase

a. Inference multiple times

b. Aggregate the result to approximate the posterior distribution


ref. Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning (ICML 2016)


요약


Why uncertainty?

  • sample vs population
  • Model parameter and complexity
  • Non linear models like Deep NN have no closed form solution to model variance
  • Bayesian models offer a tractable way to approximate uncertainty within the model


AUC and Confidence Interval


classification 문제에서 label 을 확률값 또는 스코어를 의미하는 값을 통해 예측할 때 주로 사용되는 measure는 Area under curve (AUC) 입니다. 특히 의료분야에서는  모델이 case 와 control을 얼마나 잘 discrimination 할 수 있는지에 대해 default로 사용되는 measure 라고 볼 수 있습니다. 그리고 AUC 의 한 가지 중요한 성질은 Mann-Whitney-Wilcoxon 2-sample U-statistic 과 같다는 것입니다. (Wilcoxon 1945; Mann and Whitney 1947).



왜 그런지에 대해 생각하지 않고, AUC와  U-statistic 이 같은 것이라면, AUC 는 다음과 같은 뜻을 같습니다. 


"disease, non-disease 인 sample 각각 random 하게 하나 씩 뽑았을 때, disease 인 사람이 더 클 확률"


AUC의 confidence interval 을 이러한 Wilcoxon U-stat 이 sample size 가 클 때 정규분포를 따른다는 사실을 이용해 구할 수 있습니다 (Hanley and McNeil (1982))


만약 AUC의 95 % confidece interval 이 (a, b) 인 경우에 이를 어떻게 해석하는 방법은 다음과 같습니다.


같은 population 에서 같은 수의 sample 을 뽑아서 같은 model 을 여러번 만들었을 때, 실제 AUC 가 (a,b)에 포함될 확률이 95 % 이다.


하지만 모든 신뢰구간이 그렇듯 (a,b) 가 sample 을 뽑을 때마다 달라진다는 비판은 있을 수 있다고 생각합니다.


Meta-Learning


Meta-learning 세션에서는 아래와 같은 개념들을 다루었습니다.

  • One shot learning
  • Network Architecture Search (NAS)
  • Auto-agent (Augmentation rule 을 learning)
  • Population-based augmentation
  • optimization transfer (learn-to-learn)


Meta-learning 의 핵심은 task 마다 새로운 네트워크를 만들지 않고, 새로운 task 에 적용하는 것 (knowledge transfer) 입니다. 최종목적은 모델을 사람처럼 learning 하도록 하는 것입니다. 예를 들어, image classification 에서 동물의 종류를 classification 할 때, 각 class 마다 동물의 이미지가 한 장씩 있다고해보면, 모델은 제대로 학습할 수 없지만 사람은 단 한 장의 이미지만 보고도 classification 할 수 있습니다. 사람은 그만큼 적은수의 데이터를 가지고도 generalization 을 할 수 있습니다.  즉, 사람과 모델이 다른점은 지금까지 배워왔던 지식을 활용할 수 있다는 것입니다. 예를 들어 사람은 지금까지 살면서 쌓아온 지식을 토대로 동물 A와 동물 B가 다른 종이라는 것을 쉽게 파악할 수 있습니다. 하지만 모델은 각 task 마다 새로운 모델을 만들고 학습해야합니다. 이러한 문제를 해결하기 위한 분야가 meta-learning 입니다. 또한 Meta learning 의 범위는 매우 넓으며 network architecture search 나, hyper parameter optimization 같은 분야 (learning-to-learn) 도 meta-learning 으로 분류됩니다.

안녕하세요. 하이엔드 기계식 키보드 레오폴드 fc750r 텐키리스 갈축 구매를 하였는데 간단한 리뷰를 해보려고 합니다! 





구성품은 단촐합니다. USB 및 PS2 연결잭, 사용 설명서, 키보드 덮개 이 정도만 들어있네요! 처음 키보드를 꺼내보고 느낀점은 '생각보다 무겁다' 입니다. 타이핑을 해보니 키보드 자체에 무게감이 있다 보니까 굉장히 안정감이 느껴집니다. 어차피 키보드를 들고 움직일 일이 별로 상관없는 것 같습니다. 



레오폴드 fc750r의 특징은 PBT 이충사출 키캡을 사용하였다는 점과 체리 MX 스위치, 그리고 흡음패드를 사용하였다는 점입니다. 이중사출 키캡은 두 개의 키캡을 합쳐서 키캡을 만드는 방식입니다. 겉쪽 플라스틱에 글자를 파고 안쪽에 흰색 플라스틱을 덧대어 글자 부분을 매꾸는 방식으로 키캡을 만듭니다. 그렇기 때문에 오래 사용하더라도 글자가 지워질 염려가 없습니다. 



외관이 고급스럽고 이쁩니다. 확실히 레오폴드 명성에 맞게 잘 만들어진 키보드라는 느낌이 듭니다. 




위와 같이 키보드 높이 조절 하는 것이 있어서 개인의 선호에 따라 각도를 올려서 사용할 수도 있습니다. 



fc750r을 보고 느낀점은 기본에 충실하다는 느낌이 들었습니다. 화려한 불빛 등으로 치장된 키보드들도 많은데 레오폴드 fc750r의 경우, 별다른 치장을 하지 않은 클래식한 멋이 있는 기계식 키보드라는 생각이드네요. 또 키보드 자체가 굉장히 단단하고 고급스러운 느낌이 납니다. 화려한 걸 별로 좋아하지 않는 분, 또는 튀고 싶지 않은 직장인 분들이 사용하면 좋을 키보드라는 생각이 듭니다!

 

또한 흡음패드를 사용하였다고 하는데, 기계식 키보드를 처음 사용하는 입장에서 타이핑할 때 나는 소리가 그렇게 작다는 생각은 들지 않습니다. 저소음을 원하는 분들은 구매할 때 고려하시면 좋을 것 같네요. ^^ 타건 영상 위에 올려놓았습니다. 


이상 레오폴드 fd750r 텐키리스 갈축 리뷰였습니다.


샤오미 미패드4 플러스 리뷰


안녕하세요 오늘은 제가 처음으로 구입한 태블릿인 미패드4 플러스를 간단하 게 리뷰해보도록 하겠습니다. 가성비 최고로 알려진 샤오미 이지만 아무래도 저가형 태블릿이기 때문에 그 성능에 대해서 많은 분들이 궁금해 하실 것이라고 생각합니다! 구입한 지 약 2주 정도 지났는데 사용하면서 느낀 점을 써보도록 하겠습니다. 저는 Q10 직구 사이트를 통해 한화 약 40만원 정도에 미패드4 플러스를 구매하였구요, 배송은 약 2주 정도 걸렸습니다! 아래는 제품 배송온 후에 찍은 사진이에요. 제가 여러가지 태블릿의 스펙에 대해서는 잘 모르기 때문에 그냥 사용자 입장에서 느낀점을 적도록 하겠습니다. 



구성품은 매우 단촐하더라구요. 본체랑 충전기가 다라고 보시면 됩니다. 







처음 사용하실 때, 이렇게 English를 선택하시면 태블릿이 영어로 세팅이되어 이용하는데 큰 문제가 없습니다. 물론 몇몇앱은 중국어로 되어있긴 한데 어차피 이용하지 않을 앱 이기 때문에 크게 상관이 없어요!


현재 샤오미 미패드4 플러스는 중국 버전으로만 판매하며, 직구를 통해서만 구입을 할 수 있는 상황이기 때문에  과연 국내에서 잘 작동할지 걱정하시는 분들이 많을 것 같아요. 구입을 희망하는 분들이 궁금할만한 부분에 대해 한 번 공유해보고자 합니다. 


1. 구글 플레이

구글 플레이는 기본으로 미패드4 클래스에 탑재되어 있지는 않지만, 쉽게 다운 받을 수 있으며, 구글 플레이를 통해서 앱을 설치하는데 문제가 전혀 없습니다! 다음의 링크를 참고 바랍니다 :) 미패드4에서 구글 플레이 사용하는 방법과 동일합니다. 


2. 터치스크린

터치스크린의 경우, 손으로 사용할 때 전혀 불편한 점을 느끼지 못했습니다. 스마트폰으로 갤럭시s7을 사용중인데, 이것보다 터치를 잘 인식하는 것 같은 느낌이 듭니다. 하지만 저는 Belkin의 스타일러스 펜을 사서 이용해보았는데, 이게 스타일러스 펜의 문제인지는 잘 모르겠는데 생각보다 인식률이 떨어지는 것 같더라구요 ㅠ 차라리 손으로 터치하는 게 훨씬 인식이 더 잘 됐습니다. 



제가 산 스타일러스 펜은 이곳을 참고 바랍니다. 


저는 태블릿을 손글씨 메모 용도로도 사용해보려고 했지만, 미패드4 플러스에서는 그 부분에 한계를 느꼈습니다. 혹시 손글씨를 통한 노트필기용으로 태블릿을 이용하실 분들은 과감하게 터치펜을 지원하는 태블릿을 구입하시라고 말씀드리고 싶어요! 이 점에서는 미패드4 플러스보다 아이패드나 삼성펜을 이용할 수 있는 삼성 태블릿이 훨씬 더 좋다고 생각합니다. 


3. 한글 자판

미패드4를 처음 전원을 켜지면 세팅을 하게 되는데 이 때 English 를 선택하게 되면 미패드 전체의 세팅이 영어가 됩니다. 그러면 자판이 디폴트로 영어/중국어로 되어 집니다. 하지만 구글 키보드를 설치하시고, 기본 자판을 disable 하면 중국어를 없애고, 한글/영어가 되도록 세팅한 수 있습니다. 블루투스 키보드를 쓰는 경우 shift+spacebar 키를 통해 한/영 변환이 가능해져 편하게 사용하실 수 있습니다. 저는 로지텍 K480 을 구입하여서 이용 중인데 아주 만족중입니다. 





4. Netflix 화질


미패드4의 경우 Netflix HD를 미지원한다고 알고 있습니다. 이는 미패드4 플러스로 마찬가지 인데요.  저는 Netflix 를 통해서 드라마, 영화 등을 많이 보기 때문에 이 부분을 많이 걱정하였습니다. 하지만 Netflix 를 설치 후, 드라마를 봤는데 생각보다 화질이 그렇게 나쁘게 느껴지지는 않았어요. 


최종 평가


1. 40만원에 살만 함 (전반적인 웹 및 앱 이용 속도, 저장공간-128GB에 비해 가격이 나쁘지 않다고 생각함) 

2. 넷플릭스 HD 미지원에 따른 화질이은 생각보다 괜찮음. 하지만 화질에 민감한 사람은 다른 태블릿을 추천

3. 중국 제품이지만 한국에서 이용하기에 별로 불편한 점 없음.


이상 샤오미 미패드4 플러스 리뷰였습니다. 


HP IPS 초슬림 모니터 22ER 리뷰




HP IPS 22ER을 구매하였습니다. 집에서 간단하게 노트북에 연결해서 쓸거라 큰 모니터보다 작은 크기의 심플한 모니터를 원했는데 HPS 22ER이 적당할 거 같아서 구매하였어요. 가격도 저렴하고 22인치에 두께가 6.3mm 밖에 안돼서 부피가 크지 않다는 점이 매력적이었습니다.




구매는 쿠팡에서 했는데 현재는 품절 상태이네요. (저는 13.7이 구입하였어요.) 하지만 다른 사이트에서도 구할 수 있습니다~ㅎㅎ




박스 모습입니다. ㅎㅎ




구성품들 모습입니다. 딱 있을것만 있네요 ㅎㅎ 전원케이블, VGA, HDMI, 매뉴얼, 받침대 등이 있습니다. 



받침대는 이걸 보고 조립하면 되는데 정말 쉽습니다. 



그냥 끼우고 돌리면 끝입니다.




HDMI 케이블로 노트북과 연결한 모습입니다. 크기도 적당하고 이쁘네요 ㅎㅎ 노트북 화면 작아서 답답했는데 넓으니까 확실히 좋네요!

IPS 패널이라는걸 써서 어떤 각도에서 보든지 다 잘보입니다.





측면 모습입니다. 정말 얇아요.


마지막으로 평을 내리자면.. HP 22ER는 다른 국내 제품보다는 가성비가 좋은 모니터인 것 같네요. 저렴하면서 공간 많이 차지하지 않은 적당한 크기의 모니터 원하시는 분에게 추천 합니다 ㅎㅎ