수업 노트/Computer Vision

ART Lab Conference

2로 접어듦 2022. 11. 30. 21:38

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 + 그 사람과 오랫동안 일하고 싶은지(인성) + 어떻게든 성장을 고민하는 분(놀았는지 의심이 필요 없는 사람)