Vision AI for Skin - 이훈재 AI Lead(ART Lab)
- 이미지의 배경이 정말 쓸만한가를 테스트하는 AI(얼굴 사진을 찍었을 때 너무 밝거나 어둡거나 등을 제거)
모두가 원하는 AI
Trouble Detection AI
AI Application을 개발하기 위한 Process
가능성 탐색(개발 착수 과정)
트러블 탐색을 할 수 있는 AI만들수 있을까? → 최소한의 리소스로 우리가 만들수 있는지 체크(빠른 PoC) →
만들면 사람들이 쓸까? → 내부, 외부 고객에게 테스트해보자(MVP) →
빠른 PoC
Raw data, Labeling(어떤게 잡티고 여드름이고.. 를 구분하기 힘들었다~), Modeling(모델링에 들어가는 노력은 최소화. 될지 안될지 모르니까 일단 힘빼고.) → 해보고 나니까 동작 하는 것 같다~.
Mean Vaiable Process?
기존 스킨로그 앱을 이용해서 MVP 테스트를 진행해서 의견을 수렴해보았음.
응~ 먼저 AI 어플리케이션이 의미가 있을지 테스트하는 과정이 필요하구나. 이러한 싸이클을 빠르게 돌려서 고객의 피드백을 받아보는 경험이 필요하다!~!!!!
그러고 나서 정식 버전 개발 시작.
도메인 전문가(피부과 전문의)와의 협업 → 레이블링이 상당히 힘든 과정이었음 → 모델 성능평가를 위한 데이터세트, 메트릭을 설정 →
의문: 1. 모델의 성능을 기존의 메트릭으로 평가하는게 맞는가?
2. 데이터 중심, 모델 중심 두가지 방법으로 동시에 진행. 모델을 발전시키는게 나은가? 데이터를 다양하게 하는 게 나은가?
데이터 중심의 모델 개선: 테스트 셋이 적절한가?/모델의 성능을 높이려면 얼마나 더 레이블링을 해야하지?
어떤 클래스가 잘 레이블링이 안되는지를 파악하고 해당 데이터세트를 늘리려고 하였음.
AI-Assited labeling을 진행함.
모델 중심의 모델 개선: 기존의 문제와는 얼마나 다른가?(기존 Object Detection과는 다르다. 작은 물체만을 잡는 모델이라서 많이 달라, 개선해야했다 + 피부와 트러블 사이의 경계가 뚜렷하지 않았다.), 추가 레이블링 없이 어떻게 하면 성능을 개선할 수 있을까?(레이블링의 비용이 너무 크다 - 결국에는 데이터 중심이 된다.)
현재 진행상황
객관적인 평가 기준 만들기
추가 레이블링 없이 모델 중심으로 성능 개선 시키기
지속적인 성능개선 사이클 만들기
돈 벌기(비즈니스적)
QnA
1. 여드름 Prevention에 대해서도 개발 계획이 있는지?: 특정 행동, 습관에 대한 예측으로 제공할 수 있을지?
2. 데이터 수집을 인스타에서 안 하는 이유?: 데이터의 윤리적인 문제 + SNS 사진은 실제 환경과는 거리가 있다고 판단.
3. 조명에 Robust한 모델 어떻게 만들었는지?: 명도가 크거나 밝은 데이터도 버리지 않고, 수집해서 학습했다~ 이따 다른 교수님께서 발표해주실거다.
Self-supervised Learning and Its Application to Skin Application
서울과학기술대 황상훈 교수 Data Intelligence Lab
Motivation and 문제점
사람이 직접 레이블링 해야한다/픽셀 단위로 레이블링해야한다.
Medical diagnosis 같은 경우 expert knowledge가 필요하다.
하지만 Unlabelled Data는 얻기 매우 쉽다. 어떻게 이것을 활용할 수 있을까? → self supervised Learning
Self-supervision 이란?
Image data로부터 라벨을 생성하는 것.
ex. Preidct relative location of pathes or rotation degree
오, 재밌어 보이는데??
Image 에 대한 high level representation을 뽑아내는 것이 이것의 의의.
Good Representation is all you need - Foundation Model
여러 태스크에 맞게 foundation model을 fix with supervised learning.
이 Foundation model에 소량의 데이터와 + self supervised learning으로 태스크 별 좋은 성능을 낼 수 있게할 수 있지 않을까?
Self-supervised representation 평가
linear proving: 위에 Linear classifier을 넣는것.
일종의 군집을 이루고 있으면 linear 모델로도 잘 구분이 될테니까. 간단하게.
또는 fine tuning ...
(?)
Self supervised learning으로 만들어진 벡터를 가지고 학습을 했을 때 ...
어떻게 학습하는가?
Contrastive learning - invariance and contrast
Positive pair, Negative pair를 형성해서 representation vector를 학습시켜야 한다.
How? → Positive pair를 augmentation으로 만든다
SimCLR - 한 이미지에 서로다른 Augmentation으로 Pair를 만든다: 논문 찾아보자
다른 이미지들로 주어진 이미지와 negative pair를 만든다.
contrastive loss: non linear MLP, Large batch size and longer training
단점: negative에 대한 데이터가 참 많아야 하고, negative라고 잘못 뽑힐 수 있다(묶지 않았으면 - positive는 Augmentation에 의존)
의료 이미지에서 서로다른 이미지를 Positive Pair로 만드는 다른 논문... 을 참고했음
MICLe
Dataset and training
학습 데이터 수 17.8만개 - meta정보로 positive pair를 만듦
테스트 데이터 수 약 7천개
weight 주는 방법
Positive, Negative Pair 설정하는 법을 바꿨음.
annotation cost 를 50% 이상 줄일 수 있다.
히트맵을 그려봤을 때 어디에 집중해야하는지를 잘 보고 있는 듯하다
데이터셋
scar 데이터셋, acne04데이터셋에서도 검증해보니 성능이 월등했다~
Dealing with Uncertainty 고려대 최성준 교수 "양아치를 찾아보자"
input 데이터 파이프라인에 들어가는 모델이라고 볼 수 있다...
모델학습하기 전에, 라벨된 데이터가 얼마나 잘 된 데이터인가를 확인해보자 → 불확실성을 확인할 수 있는 지표에는 무엇이 있는가 → 해당 지표들을 기준으로, 인풋데이터들의 불확실성을 한번 주욱 체크해보자~
Expert 가 라벨링한 것과 얼마나 차이가 있는지를 불확실성이라고 정의하고, 그 모델들이 잘 예측을 하는지를 확인하는 과정을 연구하신 것 같다(어떤 라벨러가 양아치인가 ㅋㅋ)
불확실성을 어떻게 모델링할 수 있는가?
Motivation
테슬라의 첫 자율주행차량 사망자, 구글의 이미지 분류(인종차별)
ARTLab Dataset
expert의 annotator과 non expert annotator가 라벨링한 데이터가 있다.
non expert annotator의 noisy dataset을 trust할 수 있을까?
얼마나 차이가 났는지를 비교해봤는데, 50%이상 차이가 났다.
불확실성이란?
1. data uncertainty(확률적인, aleatoric uncetainty)
2. model uncetainty(흔하지 않은 데이터로 인한... epistemic uncertainty) 이 두 불확실성은 예측하는 모델에 대한 uncertainty
3. Out-of-distribution(novelty detection) 분류하고자 하는 모델과는 다르게, input이 아예 다른 경우
→ 이전에 봤던 건지 아닌건지 ? + (??)
Uncertianty를 확인하는 방법은 ... 아래 상위 두 가지를 많이 쓴다.
MC Dropout (몬테카를로)
Max Softmax
Mahalonobis Distance - 입력 자체에 대한 거리를 가지고, 입력 자체가 얼마나 out of distribution인지를 확인.
Mixture logit network
헤드를 여러 개 놓는다.
Conclusion
Annototor의 불확실성과
Model자체에 대한 불확실성 둘 다 예측을 해야 올바른 prediction을 만들 수 있다.
QnA
1.
엄태웅대표 - AI로 세상을 바꾸는 법
왜 실제 세상에서는 연구하고 있는 로봇이나 AI를 볼 수 없는가?
키오스크는 참 간단한 기술인데 세상을 바꾼 것 같잖아.
→ 산업계의 문제를 볼 수 있게 스타트업과 산업계가 만날 수 있는 컨퍼런스를 열었다.
(만나기만해서는 안됬고, 집요하게 풀었어야 했다고 나중에 깨달음 ㅋㅋ)
기술 스타트업의 3요소
시장(고객의 니즈) + 데이터 + 기술
시장: 1. 현재도 크고, 성장하는 시장 2. 시장에 있는 뻔한 문제 3. 매일 반복하는 고객의 행위
데이터: 데이터를 어떻게 쌓을 수 있을까?
대부분의 산업에 AI가 없는 이유는 기술이 없는게 아니라 데이터가 없는 것.
내가 정말 비싼 돈 들여서 리프팅하는 의미가 있나?에, 각종 피부과에 계약을 맺음.
10대 사람들이 수많게, 고민을 많이 올린다.
근데 이제 데이터가 쌓이고 시장이 보이고하니까, 기술적으로 할 일이 참 많았다.
지금은 이러한 시장을 바꾸는 게 사람이라고 생각한다.
패널 Talk
1. 남성들의 유입을 유도할 마케팅 전략이 있는가?
트렌드이고, 성장하고 있는 시장이라고 생각해요 마케팅은 글쎄요 ㅋㅋ
2. 수분도 체크는?
보완할 수 있는 다른방법 - 설문조사. 일단 지금은 데이터 한번 모아보고 있어서, 가능한지를 파악할 것이다.
3. 모델 자체를 판매도 하나
모델을 파네
4. 스스로 레이블을 만들 수 있는지 - 회귀에 대해서도
피부의 심각도는 어느정도의 연속성을 가지는 걸 잘 분석할 수 있다면 회귀로도 풀 수 있을지도 ...
6. Dev ops 엔지니어 -
아트랩에서 데이터 관리(lake, warehouse -
레이크는 인풋이 너무 들어가서? 안쓴다?
구매하고 싶은 사람들에게 왜 쓰고 싶어하는지를 먼저 확인한다. 무엇을 풀고 싶어하는지를 먼저 정의함.
데이터를 쌓을 때부터 AI를 고려했음
전처리 거의 필요없이 그냥 바로 학습할 수 있게 했음.
사진→ 바로 학습
시계열로 쓴다? 그러면 전처리가 필요할 듯.
클라우드는 안쓰고 자체 서버가 있음.
Nipa고성능 컴퓨터? 가 있음.
어떤 인재를 원하냐? 똑똑하고 + get things done + 그 사람과 오랫동안 일하고 싶은지(인성) + 어떻게든 성장을 고민하는 분(놀았는지 의심이 필요 없는 사람)