4. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
고객은 인터넷의 이미지, 글 데이터로 부터 다양한 요소 정보
를 추출하여 인테리어 트렌드를 분석 해주길 원했다.
5. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
고객은 인터넷의 이미지, 글 데이터로 부터 다양한 요소 정보
를 추출하여 인테리어 트렌드를 분석 해주길 원했다.
6. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
데이터 분석에 필요한것?
장비
분석기술
데이터
주제
목적
열정
시간
7. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
데이터 분석에 필요한것?
장비
분석기술
데이터
주제
목적
열정
시간
8. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
데이터
“글”과 “이미지” 가 있겠지?
얼마나 모을 수 있을까?
데이터가 어느정도 있으면 유의미할까?
저장소는 얼마나 있어야하지?
우리가 가진 리소스의 제한은?
분석알고리즘은 시간당 어느 정도의 데이터를 처리할 수 있을까?
.
.
.
9. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
얼마나 모을 수 있을까?
10. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
8,521,027건
11. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
얼마나 걸릴까?
12. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
얼마나 걸릴까?
무작정 글 500건 수집.
수행 시간 30분
이미지 8033 장
용량 1.74 GB
13. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
8,521,027건 수집?
리소스 한계 용량 한계
수집 속도
예상 수행 시간 355일
예상 이미지 수 1.4 억장
예상 용량 30 TB
14. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
샘플링
15. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
샘플링 1,000,000건
리소스 한계 용량 한계
수집 속도
예상 수행 시간 41일
예상 이미지 수 1,600만장
예상 용량 3.5 TB
16. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
샘플링 1,000,000건
분산처리 20 Process
분산처리
예상 수행 시간 3일
예상 이미지 수 1,600만장
예상 용량 3.5 TB
17. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
샘플링 결과
수행 시간 5일
이미지 수 1,020만장
용량 2.6 TB
• 검색에는 나오지만 실제 데이터는 없는 경우.
• 과거 데이터는 이미지가 적은 경향이 있음.
• 문서 템플릿이 다양함.
18. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
수집 아키텍처
URL
Collector Maria
DB
Minio
Minio
Minio
Data Collector
Manager
Blog CollectorPost Collector
Image
Parser
Text
Parser
Data
Collector
Daemon
Data
Collector
Daemon
Data
Collector
Daemon
Data
Collector
Daemon
Target URL
Repository
Object Meta
Repository
Object
Repository
Image
Parser
Text
Parser
19. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
고객은 인터넷의 이미지, 글 데이터로 부터 다양한 요소 정보
를 추출하여 인테리어 트렌드를 분석 해주길 원했다.
20. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
고객은 인터넷의 이미지, 글 데이터로 부터 다양한 요소 정보
를 추출하여 인테리어 트렌드를 분석 해주길 원했다.
x
21. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
고객은 인터넷의 이미지, 글 데이터로 부터 다양한 요소 정보
를 추출하여 인테리어 트렌드를 분석 해주길 원했다.
22. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
고객은 인터넷의 이미지, 글 데이터로 부터 다양한 요소 정보
를 추출하여 인테리어 트렌드를 분석 해주길 원했다.
x
23. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
텍스트
X는 A인가 B인가?
X는 몇번이나 나왔는가?
X의 주변에는 어떤것들이 있는가?
X는 무엇과 가까운가?
Normalize
Word Count
Word Embed
LED포인트 조명으로 교환했어요~
미니멀 인테리어가 때로는 단조롭
게 느껴질 때가 있어요~ 그럴땐 이
렇게 엘이디 핀 조명으로 포인트를
주면 분위기가 산뜻! Led전구는 전
기세 소비도적고 수명도 매우 길다
고 합니다. 모던한 느낌을 주고싶으
시면 흰색, 좀더 클래식한 느낌을
주고싶으시면 전구색을 사용하면
좋을것 같아요. 이렇게 조명이 비추
는 부분에 포인트가 되는 식물을 두
는것도 좋아요.
기준 데이터 방법
24. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
텍스트
X는 A인가 B인가?
X는 몇번이나 나왔는가?
X의 주변에는 어떤것들이 있는가?
X는 무엇과 가까운가?
Normalize
Word Count
Word Embed
LED포인트 조명으로 교환했어요~
미니멀 인테리어가 때로는 단조롭
게 느껴질 때가 있어요~ 그럴땐 이
렇게 엘이디 핀 조명으로 포인트를
주면 분위기가 산뜻! Led전구는 전
기세 소비도적고 수명도 매우 길다
고 합니다. 모던한 느낌을 주고싶으
시면 흰색, 좀더 클래식한 느낌을
주고싶으시면 전구색을 사용하면
좋을것 같아요. 이렇게 조명이 비추
는 부분에 포인트가 되는 식물을 두
는것도 좋아요.
기준 데이터 방법
25. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
텍스트
X는 A인가 B인가?
X는 몇번이나 나왔는가?
X의 주변에는 어떤것들이 있는가?
X는 무엇과 가까운가?
Normalize
Word Count
Word Embed
LED포인트 조명으로 교환했어요~
미니멀 인테리어가 때로는 단조롭
게 느껴질 때가 있어요~ 그럴땐 이
렇게 엘이디 핀 조명으로 포인트를
주면 분위기가 산뜻! Led전구는 전
기세 소비도적고 수명도 매우 길다
고 합니다. 모던한 느낌을 주고싶으
시면 흰색, 좀더 클래식한 느낌을
주고싶으시면 전구색을 사용하면
좋을것 같아요. 이렇게 조명이 비추
는 부분에 포인트가 되는 식물을 두
는것도 좋아요.
기준 데이터 방법
26. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
텍스트 분석
문장분리
Tokenizing
형태소분석
Word Count
수치화
Regular
Expression
기반 단어 탐색
{"스타일":["모던","모던팝","시크","프렌치시크","미니멀","아방가르드","러
스틱","클래식","바우하우스","쉐비","아르누보","앤틱","엔틱","젠스타
일","내추럴","로맨틱","정크","북유럽","스칸디나비아","프로방스","유니
크","빈티지","인더스트리얼","어반","전통적","믹스컨셉","퓨전스타일","크
로싱스타일","트로피컬","오리엔탈","컨트리","포크로어","프로빈셜","엘레
강스","엘레간트","엘리건트","오소독스","에스닉","레트로","헤링본","프렌
치"],
“느낌":["은은한","따뜻한","예쁜","화사한","화려한","세련된","모던한","고
급스러운","깔끔한","부드러운","과감한","강렬한","무난한","다운된","산뜻
한","심플한","선명한","편안한","자연스러운","내추럴","내추럴한","매력적
인","칙칙한","감각적인","사랑스러운","시원한","상큼한","차분한","따듯
한"],
"색깔":["화이트","흰색","흰컬러","흰톤","하얀","백색","순백","순백색","화
이트펄","그레이","회색","다크그레이","진그레이","딥그레이","연그레
이","라이트그레이","웜그레이","실버","블랙","검정","검은","블루","파
란","푸른","스카이블루","하늘색","청록","블루그레이","딥블루","그린","초
록","올리브","연두","민트","골드","로즈골드","핑크","분홍","레드","붉
은","빨간","버건디","체리","주황","오렌지","옐로우","노란","옐로","월
넛","오크","크림","브론즈","우드톤","우드컬러","우드색상","브라운","갈
색","다크브라운","카키","베이지","아이보리","나무색깔","나무색상","나무
톤","나무컬러","원목색깔","원목색상","원목톤","원목컬러","바이올렛","퍼
플","보라","차콜","네이비"],
"색조":["밝은","환한","어두운","짙은","진한","다크한","모노","모노톤","단
색","비비드","원색","파스텔","무채","무채색","웜","쿨","뉴트럴","빈티지
한","알록달록한","형형색색"],
"공간":["주방","부엌","부억","안방","침실","작은방","아이방","옷방","드레
스룸","거실","마루","욕실","화장실","발코니","베란다"],
"요소":["벽지","몰딩","판넬","천장","천정","바닥","마루"],
"소재":["원목","나무","흙","돌","가죽","유리","스테인레스","플라스
틱","천","패브릭","금속","철","콘크리트","시멘트","친환경","스틸"],
"벽지":["시트지","실크벽지","포인트벽지","뮤럴벽지","단열벽지"],
"조명":["간접","LED","엘이디","led","레일","포인트","펜던트","팬던트","스
탠드","할로겐","매입","매립","엣지","코브"],
"패턴":["헤링본","스트라이프","플라워","대리석","체크","마블","기하
학","타일","도트","패브릭","지브라","다이아몬드","브릭스","쉐브론","갈매
기","격자","모자이크","노르딕","복잡한"],
"벽돌":["파벽돌","청고벽돌","적벽돌","타일","스티커","점토","바닥벽
돌","황토벽돌","몽블랑벽돌","백고벽돌","와이드","블럭","쿠션벽돌","적고
벽돌"],
"타일":["바닥","벽타일","데코","주방","폴리싱","포리싱","폴링싱","포세
린","육각"],
"스톤":["에코","칸스톤","샌드","내추럴","컬러스톤","송이","에그","라임"],
"물건":["상부장","수납장","하부장","장식장","신발장","벽장","책장","천
장","천정","진열장","콘솔장","아일랜드장","아일랜드식탁","현관장","서랍
장","붙박이장"],
"도어":["폴딩","슬라이딩","홀딩","몰딩","슬리이딩","라이딩","연
동","ABS","터닝","포켓","스윙","거울","슬라이드","갤러리","미닫이","시스
템"],
"etc":["실크","뮤럴","단열","포일트","래핑판넬"]
}
전처리 도메인워드풀구축
Word Count
북유럽 22142
빈티지 21973
모던 19563
앤틱 7955
클래식 5463
유니크 2722
내추럴 2639
인더스트리얼 2591
로맨틱 2474
시크 2256
Word Embed
Word Vector128D
북유럽 (0.23,0.12…
빈티지 (0.52,0.27,…
모던 (0.83,0.64,…
앤틱 (0.83,0.64,…
클래식 (0.83,0.64,…
유니크 (0.83,0.64,…
내추럴 (0.83,0.64,…
인더스트리얼 (0.83,0.64,…
로맨틱 (0.83,0.64,…
시크 (0.83,0.64,…
27. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
텍스트 분석 시각화
HeatmapWord Cloud
28. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
워드 빈도
컬러 615
화이트 527
조명 382
가구 330
주방 301
거실 297
테이블 272
친환경 241
블랙 231
나무 226
워드 빈도
화이트 837
컬러 723
주방 657
거실 601
가구 578
조명 526
욕실 477
주택 398
블랙 351
다이닝 345
DY-2015
워드 빈도
거실 1,781
주방 1,770
화이트 1,520
가구 1,155
조명 1,098
욕실 997
컬러 980
침실 901
거실과 854
이케아 821
워드 빈도
주방 1,648
거실 1,519
화이트 1,338
가구 950
욕실 843
주택 763
침실 759
거실과 724
컬러 687
조명 668
DY-2016 DY-2017 DY-2018
Word Count
30. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
이미지 분석
31. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
단순한 접근
1,000만
Saliency
Model
(CNN + GAP)
300ms / 1장
거
실
...
Rule
실행
침
실
공
간
32. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
문제 1
Saliency
Model
(CNN + GAP)
300ms / 1장
거
실
...
Rule
Engine
실행
침
실
공
간
1,000만 * 300ms ≒ 35일
1,000만
33. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
조금 나은 접근
거
실
...
Rule
Engine
실행
침
실
공
간
≒ 35일 / 20
*
x 20
Spark Worker
Saliency
Model
(CNN + GAP)
Saliency
Model
(CNN + GAP)
≒ 1.75일 !!실제로는 4일 정도..
분산처리
1,000만
1,000만 * 300ms
34. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
거
실
...
Rule
실행
침
실
공
간
*
x 20
Spark Worker
Saliency
Model
(CNN + GAP)
Saliency
Model
(CNN + GAP)
조금 나은 접근
1,000만
35. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
거
실
...
Rule
침
실
공
간
*
x 20
Spark Worker
Saliency
Model
(CNN + GAP)
Saliency
Model
(CNN + GAP)
검증
조금 나은 접근
1,000만
36. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
거
실
...
Rule
침
실
공
간
*
x 20
Spark Worker
Saliency
Model
(CNN + GAP)
Saliency
Model
(CNN + GAP)
피드백
반영
조금 나은 접근?
1,000만
37. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
문제 2
거
실
...
Rule
침
실
공
간
*
x 20
Spark Worker
Saliency
Model
(CNN + GAP)
Saliency
Model
(CNN + GAP)
피드백
반영
실행
검증
1.7일 x N
1,000만
38. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
쪼끔 더 나은 방법
거
실
...
Rule
침
실
공
간
*
x 20
Spark Worker
Saliency
Model
(CNN + GAP)
Saliency
Model
(CNN + GAP)
피드백
반영,실행
검증
Pre-Trained Model 의 결과는 변하지 않으니까….
DB
1,000만
39. 한화L&C 트렌드 분석 Pilot >
Copyright ⓒ 2018 HanwhaSystems/ICT ALL RIGHT RESERVED
전략
• Quick & Dirty
• Agile
• Lean
• MVP
40. Image Classification
인테리어 이미지 분류 개요
이미지 분류 모델 특징
– Places365 Dataset & Residual Network
– Global Average Pooling
– Class Activation Map
하진관 사원
42. 인테리어 이미지 분류 개요(2 / 2)
<성능평가 데이터 셋>
공간 이름 이미지 수
욕실 1201
침실 1468
현관 425
주방 1569
거실 2280
옷방 309
사무공간 708
자녀방 663
총합 8623
*'발코니'는성능평가에서제외
공간이름 Precision
욕실 98.18%
침실 97.20%
옷방 87.50%
현관 94.52%
자녀방 94.84%
주방 80.58%
거실 81.88%
사무공간 97.81%
평균 precision 91.56%
<성능평가 결과>
43. [BackUp] Precision and Recall Diagram
*출처:https://en.wikipedia.org/wiki/Precision_and_recall
• True Positives(TP) : 거실 이미지를 거실이라고 분류한 경우 (Good)
• False Positives(FP) : 거실이 아닌 이미지를 거실이라고 분류한 경우 (Bad)
• False Negatives(FN) : 거실이 이미지를 거실이 아니라고 분류한 경우 (Bad)
• Ture Negatives(TN) : 거실이 아닌 이미지를 거실이 아니라고 분류한 경우 (Bad)분류 결과
Accuracy = (TP + TN)/(TP + FP + FN + TN)
F − measure = (2 * precision * recall)/(precision + recall)
Precision = TP/(TP + FP)
Recall = TP/(FN + TP)
44. 이미지 분류모델 특징
<인테리어 분류에 사용된 CNN 모델 구조 및 특징>
Places365 데이터셋 으로 Pre-trained
Global Average Pooling (GAP) Class Activation Map (CAM)
Residual Network (ResNet18)
45. Places365 데이터 셋
Places365 Categories 예시
living_room
artists_loft
television_room
cafeteria
playground
kitchen
hospital_room
shower
bathroom
등 365개
...
• In/Outdoor Scene을 365개로 카테고리화 하여 구축한
이미지 데이터셋
• 데이터 수집 및 라벨링 작업을 최소화 하기 위해 유사 데이
터셋으로 학습된 모델 사용
• 총 1.8M장 (카테고리 별 5000장 이상)의 이미지로 Pre-
trained
<Places365 데이터셋 예시>
*출처 :"Places:A10millionImageDatabaseforSceneRecognition",(2017)
46. Residual Network (ResNet18)
• ILSVRC(이미지 인식대회)을 통해 검증된 모델
• Image classification task 뿐 아니라, detection,
segmentation task에서도 좋은 성능을 보임
• Residual Network Building block
47. Residual Network (ResNet18)
• ILSVRC(이미지 인식대회)을 통해 검증된 모델
• Image classification task 뿐 아니라, detection,
segmentation task에서도 좋은 성능을 보임
• Residual Network Building block
*참고 :"ResidualNetworksBehaveLikeEnsemblesofRelativelyShallowNetworks",(2016)
48. Global Average Pooling (GAP)
<전형적인 CNN 모델>
*출처 :https://en.wikipedia.org/wiki/Convolutional_neural_network
• CNN모델은 특징 추출(Conv layer) 부분과 분류기로 구성
• 일반적인 CNN 분류 모델은 Conv+pooling의 반복으로
Feature 추출 후 FCNN(Fully-connected NN)으로 분류
• 최종 Conv layer에서 추출된 Feature map을 Flatten 하여
분류기(FCNN) 학습
• FCNN(MLP)에서의 파라미터 수 증가
• 파라미터 수 증가로 인한 Overfitting 가능성
증가
49. Global Average Pooling (GAP)
• Global Pooling : CNN Feature MAP을 전부 Pooling
HxWxC → 1x1xC
h=6
w = 6
d=
3
h=1
w = 1
d=
3
<분류를 위한 MLP 구조 >
*출처 :"http://paddlepaddle.org
<Global Pooling Diagram >
Softmax layer만 학습
50. Global Average Pooling (GAP)
<Global Average Pooling 적용 결과>
• 최종 추출된 Feature Map에서 Flatten 하지 않고
Global Average Pooling 적용
• Global Pooling(벡터화)된 결과로 Softmax 분류기만
학습 (파라미터 수 감소)
• Global Pooling 으로 인한 정보 손실이 분류에 큰 영향
을 미치지 않음
51. Class Activation Map (CAM)
모델의추론결과(Saliency)를시각화
출처: "Learningdeepfeaturesfordiscriminativelocalization",CVPR2016
53. Class Activation Map (CAM)
WeaklySupervisedObjectLocalization(Object라벨없이검출기구현)
<Fully-Supervised VS Weakly Supervised>
54. Summary
• Pre-Trained 모델 사용
• 데이터 부재로 인해, 유사데이터(Places365)로 학습된 모델을 사용
• (양질의 데이터를 가지고 있다 하더라도 pre-trained 모델을 사용하여 재 학습 시키는 것이 더 좋음)
• 이미지 문제에서는 Residual Network이 가장 좋음
• Residual Network Building block을 통한 앙상블 효과
• Global Average Pooling(GAP)를 통해 CNN 모델의 분류를 위한 FCNN을 대체할 수 있음
• 성능 저하를 최소화 하여 파라미터의 수를 감소시킬 수 있음
• Class Activation Map(CAM)을 통해 CNN모델이 분류할 때 주목도(Saliency)를 파악
• CNN 모델 디버깅에 활용
• Weakly Supervised Object Localization
56. Image semantic segmentation Introduction
• 기존에는 Trend Color를 이미지 전체에서 추출해야 했음
전체적인 느낌이 아닌 거실벽의 색상
바닥의 색상만 따로 보고 싶은데....
커튼의 색상은? 침대 색상은?
따로 알 수 없을 까?
전체적인 느낌의 색상 추출
As-is
57. Image semantic segmentation - Introduction
• Semantic Segmentation은 사진에 있는 Object를 분류할 수 있음
semantic segmentation은 픽셀 단위로 사물을 인식할 수 있음
위 그림에서 벽은 주황색, 바닥은 회색을 의미함
사물별로 경계를 알 수
있으므로 각각의 사물
에서 컬러를 추출하는
것도 가능하지 않을까?
58. Image semantic segmentation Algorithm
• 컴퓨터 비전 분야에서 굉장히 어려운 주제였으나 Deep Learning 을 활용한 방법은 비교적 단순
하면서도 높은 성능을 보임
CNN을 이용하여 semantic
segmentation의 가능성을 보여준 논문
이후 다양한 논문 및 알고리즘이 등장하며
더 좋은 성능을 보여주고 있음
1.SegNet
2.Dilated Convolutions
3.DeepLab (v1 & v2)
4.RefineNet
5.PSPNet
6.Large Kernel Matters
7.DeepLab v3
59. Image semantic segmentation Algorithm
• CNN(Convolutional Neural Network)를 이용하여 Feature Map에서 이미지의 지역적인 특
징을 추출하고 이를 크기가 다른 4가지 전역적인 특징을 추출(Pooling)을 한다. 그리고 4가지
특징과 지역특징을 50:50으로 합쳐서 결과값을 예측하는 구조를 가진다
* Pyramid Scene Parsing Network, Hengshuang Zhao et al. 2017
60. Image semantic segmentation Training Dataset
• Imagenet 물체인식을 위한 bounding box 데이터셋 제공, 시맨틱세그에는 부적합하며 실내물체인식에도 부적절함.
COCO는 시맨틱세그에는 적합하나 일반적인 사물을 다루기 때문에 실내에 최적화 되지 않음. ADE20K는 주제별, 기술
적으로도 적합한 데이터셋임, 위와 같은 공개된 데이터셋이 없다면? 직접 만들어야 함
.
.
.
많으면 많을 수록 좋음
단, 주제별로 명확하게
충분한 데이터를
모으고 준비하는데
리소스가 부족하다면?
ADE20K (MIT)
2만여장 Training set (3.8Gb)
2천여장 Val set
Dataset 준비 공개된 Dataset 활용
61. Image semantic segmentation Training Mode & Pre-trained Model
• Training set 이 준비되면 모델을 학습시킴. 모델을 학습시킬 시간과 자원이 부족하다면
Pretrained Model 사용도 검토해야 함
Training Model Pre-trained Model 사용
Model Training
Training
set
NVIDIA Titan Xp 8개로 Training 시
3일이상 소요 (ADE20K 데이터 기준)
GPU가 없다면?
충분한 시간과
자원이 없다면?
PSPNET
ADE20K
Pre-trained
Model
Deeplab
COCO
Pre-trained
Model
누군가 이미 학습시켜 놓은
모델을 재활용 할 수 있다!
(그러나 Needs에 필요한 Pre-trained
Model을 찾는 것은 쉽지 않음)
UPERNET 101
64. Image semantic segmentation Performance
• 2개의 CPU를 사용하였을 때 45% 정도 작업시간을 단축시킬 수 있었음. 추가로 1 GPU에 데이
터를 반으로 나누어 2가지 프로세스를 병렬로 할당하였을 때 23% 개선됨
이미지 1개당 0.57초 * 100만장 (157시간)1 GPU
(300x300 pixel)
이미지 1개당 0.39초 * 100만장 (108시간)2 GPU
(300x300 pixel)
이미지 1개당 0.47초 * 100만장 (133시간)1 GPU + 2 JOB
(300x300 pixel)
GPU SPEC : NVIDIA Geforce 1080 Ti
65. Color Extraction 초기 방법
• Masking 방법을 통한 컬러 추출 방식
대표 컬러값으로 추출된 항목
오브젝트 이미지 추출 컬러 추출
1.추출하고자 하는 Object의 컬러값과 Segmentation 이미지와 Bit 연산
2.마스킹 이미지와 원본 이미지간에 Bit 연산하여 최종 결과 도출
66. Color Extraction 최종 방법
• for-loop와 Dictionary를 이용한 방식
천장 :
- 흰색 : 80
- 회색 : 70
- 파란색 : 8
벽 :
- 흰색 : 90
- 회색 : 80
- 노란색 : 20
- 파란색 : 5
전체 픽셀을 탐색하면서 해당 Label에 속하는 원본이미지에
색상을 Dictionary에 바로 저장
67. Color Sorting
• 추출한 Color를 시각적으로 보여주기 위한 방법을 찾아야 했음
• RGB, HSV 기준 Sorting, Hilbert sort방식 등 다양한 시도를 하였으나 만족할만한 결과가 나오지 않았음
68. Color Reduction 표준컬러사용
• 1677만개의 RGB 컬러수를 949개의 표준컬러로 축소함
XKCD Color
949개 색상
RGB Color
1677 만여개 색상
축소
delta_e_cie2000
+ 색상의 이름
73. 추억의 리니지 이야기를 할까 합니다
• 영리를 목적으로 2배 빠른 공격속도 마법(=헤이스트)을 돈받고 시전해주는 게임 속 내 샵
• 14개의 법사를 운용하기 위해서 14대의 컴퓨터가 필요하고 이를 사람이 조작해 주어야 함
KVM 스위치!
74. 자동화 기능(Macro) 도입 후 기대효과
[생산성]
• As-is : 캐릭터 1개 당 500ms X 14법사 = 7초 (숙련근로자 기준)
• To-be : 캐릭터 14개 동시 제어 = 0.5초
• 최소 14배 이상 생산성(productivity) 향상 효과 기대
[영업이익]
• As-is : 14법사 운용 시 150만원/月 알바비 40만원 밥값 10만원 = 100만원
• To-be : 14법사 운용 시 최소 1500만원/月 알바비 300만원 복지200만원 = 1000만원
75. RPA의 개요
• RPA (Robotic Process Automation)이란?
– 인간의 노동을 기술이 대체하고 있다. 빅데이터와 사물인터넷, 인공지능(AI) 등 4차 산업혁명의 다양한 기반 기술들이
기업경영 전반에 활용되는 과정에서 인간의 노동을 디지털 노동(Digital Labor)이 대체하고 있다. 제조의 영역에서 공
장 자동화(Factory Automation, FA) 및 스마트 팩토리 보급을 통해 기업들이 생산성을 증대시키고 있다면, 서비스
영역에서는 RPA(Robotic Process Automation)가 도입되면서 기업의 경쟁력을 강화하고 있다
출처 : 삼정KPMG
RPA 도입과 서비스 혁신
80. 문서 이미지 분류 (Document Image Classifier)
• 기존에는 문서분류를 문서에 있는 텍스트 기반으로 처리함.
PoC에서는 문서를 이미지로 보아 해당 문서의 범주를 구분하고자 함
문서 이미지 분류
(DIC)
1 2
3
1
2
3
영수증
계약서
Invoice
활용기술
Computer Vision
Deep Learning (CNN, GAP)
and etc.
81. 문서 이미지 세그멘테이션 (Document Image Segmentation)
• PDF에서 텍스트 추출이나 OCR에서 문자인식을 할때 그림, 그래프 등 비정형 컨텐츠가 포함되
어 있는 경우 이를 사람이 영역지정을 하는 노력이 들어감. 본 PoC에서는 문서에 포함된 컨텐츠
를 자동으로 분류하여 문자추출 이전단계의 전처리를 자동화하는 것을 검증하고자 함
문서 이미지
세그멘테이션
(DIS)
활용기술
Computer Vision
Deep Learning
(CNN, AutoEncoder, GAN)
and etc.
83. Hanwha Total SM Process
유화산업 SM 공정에서의 machine learning 적용 논문 리뷰
- SM (Styrene Monomer) 소개
- Conceptual Industrial Analytics & Modeling Process
- 데이터 전처리
Parameter selection
Noise reduction
- Model Fitting
- Results & Evaluation
한화 토탈 SM 공정 Case Study
윤선희 과장
84. 유화공정에 왜 machine learning 을 적용해야 하는가
화학 반응이 원하는 대로 일어나지 않을 때가 많고
성공하거나 실패해도 이유를 모를 때가 있음
화학 반응에 성공해도 재현이 쉽지 않음
전통적인 탐색적 데이터 분석을 주로 사용 함
함량을 알기 위해 화학적 검사 후 실험식에 의해 계산된 후에 결과를 알 수 있어
정보취득에 시간이 소요 됨
85. Real-time Prediction of Styrene Production Volume
based on Machine Learning Algorithms
ⓒ Springer International Publishing AG 2017
Accenture, China 수행
86. SM (Styrene Monomer) 란
• 스티렌 모노머 (Styrene Monomer)
- 독특한 냄새가 있는 액체 형태의 제품으로 벤젠과 에틸렌을 합성한 에틸벤젠을 반응시켜 제조 함. 폴
리스티렌(PS), SBR, ABS 의 원료로 사용 됨.
87. Conceptual Industrial Analytics & Modeling Process
데이터 수집 데이터 전처리 분석 모델링 최적화/평가
• 데이터 수집 및 전처리
- 센서 데이터 DB 수집 및 통합
- 데이터 클렌징
• 데이터 모델링 및 최적화
- 분석 알고리즘 모델링, 평가
• 데이터 수집 및 전처리
- 샘플링 지점에서 혼합물 추출
• 데이터 모델링 및 최적화
- 스티렌 함량 화학적 검사
- 실험식으로 계산, 평가
Data analysis Real world
88. 데이터 전처리 1 - Parameter selection
Why?
• 제한된 도메인 지식으로 수천개의 모든 파라미터 분석이 어려움
• 파라미터의 강력한 공선성*이 존재함
How?
• 차원을 축소하여 주요 파라미터 선정
1. Principal Component Analysis (PCA) 으로 차원 축소
2. Random Forest Method (RFA) 으로 파라미터 중요도 선정
=> 겹친 33개의 파라미터 사용
*공선성(Collinearity) : 독립변수들 간에 강한 상관관계가 나타나는 문제
89. Principal Component Analysis (PCA)
• Principal Component Analysis (PCA)
- 데이터의 분산이 가장 커지는 축을 주성분, 그에 직교하는 분산이 큰 축을 찾아 새로운 좌표계로 데이
터를 선형 변환하는 분석 법
90. Random Forest Algorithm Method (RFA)
• Random Forest Algorithm Method (RFA)
- 데이터를 랜덤 샘플링하여 다수의 의사결정 나무를 만들고 결과를 모아 최종 결과를
도출하는 방법
• 변수 중요도 랭킹
91. 데이터 전처리 2 - Noise reduction
Why?
• Styrene 생성의 불안정성과 센서 데이터의 특징으로 원 데이터에는 많은 noise 가 있음
How?
• 분석 범위 Data Selection
• Kalman filter를 사용하여 노이즈 제거
92. Model fitting
How?
• GRNN (generalized regression neural network) 모델 적용
- 4개 Layer 로 구성
: Input Layer, Hidden Layer, Summation Layer, Output Layer
95. Hanwha Total SM Process Data Analysis
• Why?
– 토탈 과제를 대비한 유화산업 데이터 분석 방법론 구비 필요성
• How?
– 앞선 분석 사례 논문의 방법론을 토탈의 SM 공정 데이터 분석에 적용하여 가상의 과제 수행
• When?
– 2018.11 1~3주차
97. Hanwha Total SM Process Data Analysis
• 과제
– SM 생산 효율에 미치는 주요 인자 파악
• 데이터 구조
– 데이터 기간 : 2011.01~2017.01
– 데이터 종류
• Tag Data : 매 1분 마다 공정 설비 상의 유량계, 센서들을 통해 수집된 계측 데이터 (약 320만 rows)
– 온도, 압력, Feed 물질 양 등
– SM 1,2 공장을 포함하여 6134개 Tag 존재
– But, SM2 공장에 대한 분석만 수행함
• Sampling Data : 일 1회 설비로부터 공정 결과물을 샘플링 후 화학 구성비를 분석한 데이터 (785 rows)
– 3~4 일 간격으로 샘플링 수행
98. Hanwha Total SM Process Data Analysis
• 과제
– SM 생산 효율에 미치는 주요 인자 파악
• 데이터 구조
– 데이터 기간 : 2011.01~2017.01
– 데이터 종류
• Tag Data : 매 1분 마다 공정 설비 상의 유량계, 센서들을 통해 수집된 계측 데이터 (약 320만 rows)
– 온도, 압력, Feed 물질 양 등
– SM 1,2 공장을 포함하여 6134개 Tag 존재
– But, SM2 공장에 대한 분석만 수행함
• Sampling Data : 일 1회 설비로부터 공정 결과물을 샘플링 후 화학 구성비를 분석한 데이터 (785 rows)
– 3~4 일 간격으로 샘플링 수행
분석대상
99. Hanwha Total SM Process Data Analysis
• 분석과정
데이터 전처리
머신러닝 모델링
PCA
RandomForest
Tag0001
Tag0002
Tag0003
Tag0004
……
Feature
Importance
Feature
Importance
주요 Features
100. Hanwha Total SM Process Data Analysis
• 데이터 전처리
– 머신러닝 알고리즘에 적용할 수 있는 형태로 데이터 전처리를 수행하여 데이터셋을 생성
예측 대상(SM 생산 효율)
데이터 선택
삭제
101. Hanwha Total SM Process Data Analysis
• 데이터 전처리
예측 대상(SM 생산 효율)
데이터 선택
대상 데이터 현황 파악
102. Hanwha Total SM Process Data Analysis
• 데이터 전처리
예측 대상(SM 생산 효율)
데이터 선택
대상 데이터 현황 파악
103. Hanwha Total SM Process Data Analysis
• 데이터 전처리
분석 데이터 Merge
Target data 1866 Tags Result
예측 대상(SM 생산 효율)
데이터 선택
대상 데이터 현황 파악
104. Hanwha Total SM Process Data Analysis
• 데이터 전처리
데이터 클렌징
summary
분석 데이터 Merge
예측 대상(SM 생산 효율)
데이터 선택
대상 데이터 현황 파악
105. Hanwha Total SM Process Data Analysis
• 데이터 전처리
결측 비중
과다 삭제
동
일
값
만
존
재
삭
제
summary
데이터 클렌징
분석 데이터 Merge
예측 대상(SM 생산 효율)
데이터 선택
대상 데이터 현황 파악
106. Hanwha Total SM Process Data Analysis
• 데이터 전처리
보간 작업
데이터 클렌징
분석 데이터 Merge
예측 대상(SM 생산 효율)
데이터 선택
대상 데이터 현황 파악
107. Hanwha Total SM Process Data Analysis
• 모델링 Random Forest
1. 학습/테스트 데이터 분류 2. 입력/출력 값 분류 3. 학습
4. 테스트 데이터에 대한 예측 수
행으로 정확도 확인
5. Feature Importance 확인
데이터셋
학습용 90%
테스트용 10%
학습용
데이터
출력값
입력값
분리
RF
Model
RFA 학습
테스트용
데이터
예측정확도 99%
Feature Importance
108. Hanwha Total SM Process Data Analysis
• 모델링 PCA
1. 스케일조정 (0~1 사이) 2. PCA 분석 3. Variance 기반 feature 선택
스
케
일
링
PCA
분석
가중치 기반 뽑아낸 Feature 순위
109. Hanwha Total SM Process Data Analysis
• Feature 선정
RFA 결과 (상위 20개) PCA 결과 (상위 40개)
∩ ??겹치는게 몇 개 없다….
110. Hanwha Total SM Process Data Analysis
• Feature 선정
∪ !!
RFA 결과 (상위 20개) PCA 결과 (상위 40개)
그냥 합쳐보자….
111. Hanwha Total SM Process Data Analysis
• 결과
• 모든 Feature(280개) 넣고 RFA 학습시 정확도 ➔ 98.56%
• 선정된 Feature(49개)로 RFA 학습시 정확도 ➔
112. Hanwha Total SM Process Data Analysis
• 결과
• 모든 Feature(280개) 넣고 RFA 학습시 정확도 ➔ 98.56%
• 선정된 Feature(49개)로 RFA 학습시 정확도 ➔ 98.52%
113. Hanwha Total SM Process Data Analysis
• 결과
• 모든 Feature(280개) 넣고 RFA 학습시 정확도 ➔ 98.56%
• 선정된 Feature(49개)로 RFA 학습시 정확도 ➔ 98.52%
주요 인자 파악 성공??
114. • 결론
앞선 논문의 방법론을 참고하여 주요 인자를 선정하고,
높은 정확도의 예측 모델을 생성하는데 성과가 있었음
Hanwha Total SM Process Data Analysis
115. Hanwha Total SM Process Data Analysis
• 결론
앞선 논문의 방법론을 참고하여 주요 인자를 선정하고,
높은 정확도의 예측 모델을 생성하는데 성과가 있었음
하지만…
116. Hanwha Total SM Process Data Analysis
• 생각해 봐야 할 점
• 선정된 주요 인자가 진짜 주요 인자인가?
- 공정상 진짜 의미가 있는지는 차후에 정식 과제 진행 시 현업과 확인 필요
• 데이터 전처리 시 생각해 볼 문제
- 데이터의 생성 시간의 불규칙 문제
- 공정 순서상 시간 차를 고려?
• PCA는 과연 쓸 만 한가?
- 대상 데이터와의 인과관계가 설명되는 분석 알고리즘은 아니므로, 상황에 따라 적절히…
117. Hanwha Total SM Process Data Analysis
• 생각해 봐야 할 점
• 선정된 주요 인자가 진짜 주요 인자인가?
- 공정상 진짜 의미가 있는지는 차후에 정식 과제 진행 시 현업과 확인 필요
• 데이터 전처리 시 생각해 볼 문제
- 데이터의 생성 시간의 불규칙 문제
- 공정 순서상 시간 차를 고려?
• PCA는 과연 쓸 만 한가?
- 대상 데이터와의 인과관계가 설명되는 분석 알고리즘은 아니므로, 상황에 따라 적절히…
어쨌든 방법론 검증은 성공적…
119. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
추천 시스템
반도체 중고장비 거래 회사에서
고객에게 장비를 추천하는 시스템을
만들고 싶어했습니다.
120. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
추천 문제 - Collaborative Filtering
121. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
추천 문제 - Combinatorial Optimization
122. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
문제 해결 전략
알려진 알고리즘에 적용 가능 하도록 문제를 만든다.
또는
새로운 알고리즘을 구상한다.
123. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
지불 비용: X 까지 가능
생산량 : Y 이상
공정 : 1 ~ N
산처리 : Dry
지불 비용: 최소비용
생산량 : Y이상
공정 : 2 ~ N-1
선호 메이커 : A,B
크기 : Z 이하
고객 요구 조건
문제 만들기
124. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
지불 비용: X 까지 가능
생산량 : Y 이상
공정 : 1 ~ N
산처리 : Dry
124
X-장비
가격,
웨이퍼 크기,
메이커,
공정 카테고리,
성능, 크기,등등..
지불 비용: 최소비용
생산량 : Y이상
공정 : 2 ~ N-1
선호 메이커 : A,B
크기 : Z 이하
고객 요구 조건 요소
노드
각각의 노드는 특정 장비의 프로
파일을 담고 있음.
문제 만들기
엣지
웨이퍼 크기, 공정 나노 등 특정
조건을 기준으로 장비에서 다른
장비로 공정 진행 가능 여부
125. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
지불 비용: X 까지 가능
생산량 : Y 이상
공정 : 1 ~ N
산처리 : Dry
125
X-장비
가격,
웨이퍼 크기,
메이커,
공정 카테고리,
성능, 크기,등등..
Process 1 Process 2 … Process N-1 Process N
지불 비용: 최소비용
생산량 : Y이상
공정 : 2 ~ N-1
선호 메이커 : A,B
크기 : Z 이하 엣지
웨이퍼 크기, 공정 나노 등 특정
조건을 기준으로 장비에서 다른
장비로 공정 진행 가능 여부
고객 요구 조건 공정 그래프
노드
각각의 노드는 특정 장비의 프로
파일을 담고 있음.
문제 만들기
요소
126. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
지불 비용: X 까지 가능
생산량 : Y 이상
공정 : 1 ~ N
산처리 : Dry
126
X-장비
가격,
웨이퍼 크기,
메이커,
공정 카테고리,
성능, 크기,등등..
Process 1 Process 2 … Process N-1 Process N
지불 비용: 최소비용
생산량 : Y이상
공정 : 2 ~ N-1
선호 메이커 : A,B
크기 : Z 이하 엣지
웨이퍼 크기, 공정 나노 등 특정
조건을 기준으로 장비에서 다른
장비로 공정 진행 가능 여부
고객 요구 조건 공정 그래프
노드
각각의 노드는 특정 장비의 프로
파일을 담고 있음.
문제 만들기
요소
arg max(Σ이익(path) - Σ비용(path) + Σ고객만족도(path))
127. Copyright ⓒ 2018 HanwhaS&C ALL RIGHT RESERVED
한화L&C 트렌드 분석 >
지불 비용: X 까지 가능
생산량 : Y 이상
공정 : 1 ~ N
산처리 : Dry
127
X-장비
가격,
웨이퍼 크기,
메이커,
공정 카테고리,
성능, 크기,등등..
Process 1 Process 2 … Process N-1 Process N
지불 비용: 최소비용
생산량 : Y이상
공정 : 2 ~ N-1
선호 메이커 : A,B
크기 : Z 이하 엣지
웨이퍼 크기, 공정 나노 등 특정
조건을 기준으로 장비에서 다른
장비로 공정 진행 가능 여부
arg max(Σ이익(path) - Σ비용(path) + Σ고객만족도(path))
고객 요구 조건 공정 그래프
노드
각각의 노드는 특정 장비의 프로
파일을 담고 있음.
Graph theory
요소
129. Recommender System
• 사용자가 선호할 만한 아이템을 추측 함으로써 여러 가지 항목 중 사용자에게 적합한 특정 항목을
선택(information filtering)하여 제공하는 시스템
• Filtering : 여러 가지 항목 중 적당한 항목을 선택하는 기술
139. 생성모델 (DCGAN) 개요
생성모델학습과정
Real Data
(실제 데이터)
Fake Data
(생성데이터)
Real / Fake
분류 정확도
생성자
(Generator)
판별자
(Discriminator)+
생성자는 판별자의
분류 정확도가
50% 되도록 학습
판별자는 분류 정확도가
100% 되도록 학습
랜덤으로
초기화된 값
• DCGAN은 생성자(Deconvolution Layer)와 판별자(Convolution Layer)로 구성되어 있음
• 생성자는 '리얼한 이미지를 만들어내는 것'이 목표
• 판별자는 '진짜 이미지와 만들어진 이미지를 잘 구분해 내는 것'이 목표'
• 생성자와 판별자는 번갈아 가면서 학습
• 엔지니어의 목표는 생성자가 '더욱 리얼한 이미지를 만들어 내는 것'
• 이를 위해 생성자와 판별자가 균형있게 학습되도록 하는 것이 중요
155. 인테리어 트렌드 이미지 생성 (1)
• Image-to-Image Translation 을 활용하여 사진과 같은 이미지 생성 (학습데이터로 수집된 인
테리어 이미지 사용)
Input output original Input output original
156. 인테리어 트렌드 이미지 생성 (2)
• Image-to-Image Translation 을 활용하여 사진과 같은 이미지 생성 (학습데이터로 수집된 인
테리어 이미지 사용)
Input output original Input output original
2014년 (1,386장 학습) 2018년 (1,619장 학습)
157. 엔터프라이즈 환경 적용방안
• 제품 도장(Painting) 불량 검출기 학습을 위한 Dataset 확보
• 태양광 패널 등 불량 검출기 학습을 위한 Dataset 확보
• MRI 촬영 결과를 CT사진으로 변환
160. Pre-training in NLP
NLP의 최대 난제는 Training data 부족
수백~수천 단어의 human-labeled training examples
Deep learning based NLP 모델 특성
수백만~십억 단어의 annotated training samples로
학습시키면 성능이 좋아진다
대량의 unannotated text on the web을 사용해서
general purpose 학습을 시킨다.
Pre-trained Representation model
question Answering, sentiment analysis 등
small-data NLP task에서 from scratch
training model보다 정확도 향상이 높다.
ELMo*
(feature based)
OpenAI GPT*
(fine tuning)
*Generative Pre-trained Transformer*Embeddings from Language Model
161. NLP in 2018
• Word embedding
– word2vec(Mikolav et al., 2013), GloVe(Pennigton et al., 2014), fastText(Bojanowski et al., 2016)
• Language model
– ULMFiT(Howard et al., 18 Jan 2018) - Universal language model fine-tuning for text classification
– ELMo (Peters et al., 15 Feb 2018) - Deep contextualized word representations
• bidirectional, LSTM, language model base
• Attention model
– Transformer(Vaswani et al., 12 Jun 2017) - Attention is all you need
• attention + feed forward network, RNN 대체
• Attention: seq A(a1, a2, a3) -> seq B (b1,b2, b3) 변환문제에서 decoder가 생성한 b1을 encoder A에서 찾는게 아니라 가중치로 찾
는 방식. 즉, b1= w1a1+w2a2+w3a3
– OpenAI GPT(Radford et al., 11 Jun 2018) - Improving language understanding by generative pre-training
• unidirectional, attention, transformer
– BERT(Devlin et al., 11 Oct 2018) - BERT: Pre-training of deep bidirectional transformers for language
understanding
162. What makes BERT different?
context-free
Pre-trained
representations
contextual unidirectional
bidirectional
word2vec, GloVe
OpenAI GPT
ELMO (shallow)
BERT (deep)
BERT is the first deeply bidirectional, unsupervised language representation, pre-trained using only a plain text corpus
Differences in pre-training model architectures. BERT uses a bidirectional Transformer. OpenAI GPT uses a left-to-right Transformer.
ELMo uses the concatenation of independently trained left-to-right and right- to-left LSTM to generate features for downstream tasks.
Among three, only BERT representations are jointly conditioned on both left and right context in all layers.
163. BERT (1/4)
• Input Representation
– WordPiece embeddings with 30,000 token, split word piece with ##
– positional embedding with up to 512 tokens
• Pre-training time
– BERTbase: 4 Cloud TPU(16 TPU chips), 4days
– BERTlarge: 16 Cloud TPU(64 TPU chips), 4days
• Model Architecture (L: layers(transformer block), H: hidden size, A: self-attention head)
– BERTbase: L=12, H=768, A=12, Parameters=110M
– BERTlarge: L=24, H=1024, A=16, Parameters=340M
164. BERT (2/4)
• Pre-training tasks
– Masked language model
• 80% of the time: Replace the word with the [MASK] token, e.g., my dog is hairy → my dog is [MASK]
• 10% of the time: Replace the word with a random word, e.g., my dog is hairy → my dog is apple
• 10% of the time: Keep the word un- changed, e.g., my dog is hairy → my dog is hairy
– Next sentence prediction
• Input = [CLS] the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP]
Label = IsNext
• Input = [CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight ##less birds [SEP]
Label = NotNext
• Pre-training procedure
– BooksCorpus(800M words) & English Wikipedia(2,500M words)
– sentence A embedding + sentence B embedding(50% is actual next, 50% is random), combined length <= 512
tokens
– batch size: 256 sequence * 512 tokens = 128,000 tokens/batch for 1M steps, 40 epochs over 3.3B word corpus
– Adam, dropout (0.1 on all layers), ‘gelu’ activation (=OpenAI GPT)
– training loss = mean MLM likelihood + mean next sentence prediction likelihood
165. BERT (3/4)
• Fine-tuning procedure
– batch size: 16, 32
– Learning rate(Adam): 5e-5, 3e-5, 2e-5
– epochs: 3,4
• BERT vs OpenAI GPT
– OpenAI GPT: left-to-right Transformer LM on a large text corpus
GPT BERT
BooksCorpus (800M words) BooksCorpus (800M words) and Wikipedia (2,500M words)
sentence separator ([SEP]) and classifier token ([CLS])
which are only introduced at fine-tuning time
learns [SEP], [CLS] and sentence A/B embed- dings during
pre-training
1M steps with a batch size of 32,000 words 1M steps with a batch size of 128,000 words
same learning rate of 5e-5 for all fine-tuning experiments
task-specific fine-tuning learning rate which performs the
best on the development set
166. BERT (4/4)
GLUE
General Language Understanding Evaluation benchmark
9 tasks, training data 2.5k~400k
CoNLL-2003 NER
Named Entity Recognition
200k words annotated as Person, Organization,
Location,Miscellaneous or Other
SWAG Dev
Situations With Adversarial Generations
113k sentence-pari completion examples
evaluate grounded common sense inference
SQuAD
Stanford Question Answering Dataset
100k crowdsourced question/answer pairs
167. • 늦게 일어나서 (**)을 오후 2시쯤 먹었어
• 어제 (**) 배불리 먹었더니 [sep] 오늘 (**) 가벼운게 생각나네
• 오늘 (**) 괜찮았어? or 좋았어? or 어땠어?
Example
169. BERT - Transfer Learning
Why?
• 처음부터 학습시키는 것은 상당히 많은 리소스를 필요로함.
• 대부분의 문제는 이미 학습된 유명한 모델을 사용해서 해결가능
How?
기존에 학습된 모델을 Feature Extractor로 사용해서 새로운 모델을 만드는 행위
새로 훈련할
Original 데이터
데이터와
많다 적다
유사하다 전체 레이어에 대해서 Fine-tuning 최종 Linear Classfier 레이어만 학습
다르다 전체 레이어에 대해서 Fine-tuning
최종 Linear Classfier 레이어 학습
+ Activation 이후에 특정 레이어 학습
170. BERT - Fine Tuning
1. Pre-trained Model
• https://github.com/google-research/bert
2. Fine Tuninig Dataset
• SQuAD v1.1 : The Stanford Question Answering Dataset (Training : 30MB, Test: 4.7MB)
• https://rajpurkar.github.io/SQuAD-explorer/
지문 질문과 답변
171. BERT - Fine Tuning
Our Result
Processor Epoch Learning Rate Batch Time F1 Score exact_match
Base 1 GPU 2.0 3E-05 12 90M 88.5 80.9
Base 1 GPU 3.0 5E-05 24 Fail!!! Fail!!! Fail!!!
Base 6 GPU 2.0 3E-05 12 77M 88.5 81.3
Base 8 GPU 3.0 5E-05 24 82M 88.4 81.5
Large 8 GPU 2.0 3E-05 24 471M 90.8 84.1
Large 8 GPU 3.0 5E-05 32 526M 90.7 83.5
Google
Base, Single
1 TPU 3.0 5E-05 32 10M 88.5 80.8
Google
Large,Single
1 TPU 3.0 5E-05 32 30M 91.8 85.0
Google
Large,Ensemble
1 TPU 3.0 5E-05 32 30M 93.1 87.4
Human 1 Brain 91.2 82.3
Official Result
172. BERT - Lessons Learned
• 한글로 Pre-trained Model 을 학습시키고 싶지만..
• Fine Tuning 전략은 좋습니다.
• TPU가 짱. 1TPU가 8GPU보다 10배정도. 갓구글
• Cloud TPU 신발보다 싸다![클릭]
• DGX-1 Station 최저가 사러가기 [클릭]
180. 귀찮고 자주 하는 일을 대신 해주거나 - Document classification
너무 많은 변수를 줄여주거나 - Random forest, PCA, Auto-encoder
초보자의 실수를 줄여주거나 - Recommender
너무 많은 데이터를 봐주거나 - Computer vision
포토샵 누끼를 따주거나 - Image segmentation
색칠을 해주거나 - Style2paint
대신 대답을 해주거나 - Question answering
잠재고객을 찾아주거나 - Recommender
.
.
기타 등등…
그 많은 걸 어디에 쓰는데?