2. 테스트의 목표
• Tensor Flow 익히기
• Machine Learning 이해
• Machine Learning 응용 가능성 확인
3. 테스트 과제
• 강호동 사진 Caricature를 Machine Learning으로 익힌
다
• 해당 머신런닝 모델에 문근영 사진을 넣을 때 출력은???
4. 테스트 절차
1) 데이터 구하기 인터넷 서핑
2) 데이터 단순화 및 규격화
크기 조정 (80x100 = 8000 pixel)
색을 흑백으로 제한 (gray)
Scipy.misc 내의 imread(), imresize(), imsave()
3) 입력 데이터로 변환
선택한 알고리즘에 맞는 입력 형태 변환
생략 : 입력 : 0 ~ 1 사이의 값 ( 0 ~ 255를 255로 나눔) 나누지 말자~~~~
비교 대상 : [0, 0, …., 1, 0, … 0] 형태 해당 위치의 value에만 1
기존 CNN (MNIST) 샘플은… 0 ~ 9 숫자 판단 0 ~ 255로 변환
Output은 [0, 1, 33, 255, …. , 37 ] 형태로 출력
5. 테스트 절차
4) 테스트 모델 선택
CNN 사용 : Image 인식 가까운 주변의 영향을 받는 모델
주변의 특성에 따라 해당 위치의 값을 결정
80 x 100 pixel을 10x10x8000 의 조각으로 나누어 각 점에 대응
L1 : 20x10 filter를 60개 만들고, Pooling은 하지 않는다
L2 : 20x10 filte를 120개, Pooling은 하지 않는다
L3 : 1x1 filter를 3개로 다시 병합
Fully Connecte Layer 없이 하나하나의 Filtering 결과가 한 점을 표현
Learning 횟수는 10 ~ 1000 번 변화, 일정 간격으로 accuracy 변화 측정, 수행 시간 측정
5) 예측 결과 이미지 변환
[0, 0, … 1,0,…0] 의 값을 50x40의 0 ~ 255의 값으로 변환
6. 테스트 결과
10 회 learning, accuracy = 0.0055
100회 learning, accuracy = 0.0835 1689 초
500회 learning, accuracy = 0.9?? 8414 초
7. 테스트 결과 평가
• 1개의 학습 데이터에서 배울 수 있는 정도는?
• Accuracy가 0.99 였음에도 불구하고 이미지는 차이가 큼
• 500회 수행이 8500초 1회 수행에 약 17초
• Filter의 크기, neuron의 갯수, feature의 갯수에 따른 변화를 찾아야 할 듯
• 다양한 테스트 모형에 따른 비교 필요
• 하이브리드 모델 혹은 feature 2 feature mapping 방법은 어떨지????
8. 하이브리드 모델은 어떨까?
• 얼굴 형, 입, 코, 눈 등등 사진에서 인식 후, 준비된 이미지와 매칭 정도 비교 선택
• 유형 선택(귀엽게, 강하게 등등)에 따라 선택 이미지 변화
http://digibody.com/avatar-maker/
9. 하이브리드 방법의 순서
1. 얼굴 형, 입, 코, 눈 등등 사진에서 인식
2. 각 부위 별 매칭 훈련 데이터로 훈련 시킴
3. 새로운 얼굴로 Predict
필요 사항
테스트용 사진
각 부위별 캐리커처 그림 집합
훈련용 맵핑 결과
http://digibody.com/avatar-maker/
10. 평균/분산을 활용한 강화법은 ?
1. 얼굴 형, 입, 코, 눈 등등 사진에서 인식
2. 인종 별 1000여가지 샘플에서 크기, 넓이 등의 평균과 비교
3. 2 x (표준편차) 이상인 특성을 (표준 이미지에서) 특정 비율로 키워줌
4. 2 x (표준편차) 이하의 특성을 (표준 이미지에서) 특정 비율로 줄여줌
필요 사항
테스트용 사진
각 부위별 표준 캐리커처 그림
표준 사이즈 데이터
http://digibody.com/avatar-maker/
13. 1000회 554초
4배 확대 입력
Conv2 2x2 MaxPooling 사용 3x3 필터 : L1 256채널, L2 512채널, L3 : 1 채널
Conv2 2x2 MazPooling 사용 : 25x20 필터 : L1 60채널, L2 120채널, L3 : 3채널
1000회 초
학습률0.0001 2286 초
14. 1000회 1298초
Conv2 2x2 MaxPooling 사용 5x5 필터 : L1 256 채널, L2 512 채널, L3 : 3 채널, 학습률:0.0001
Conv2 2x2 MaxPooling 사용 : 10x10 필터 : L1 128채널, L2 256채널, L3 : 3 채널 학습률:0.0001
1000회 1301초
4배 확대 입력
15. 1000회 371초 1000회 463초(L3:256채널 추가) 3000회 1397초 (L3:256채널 추가)
Conv2 3x3 MaxPooling 사용 5x5 필터 : L1 64채널, L2 128채널, L3 : 3 채널, 학습률:0.0001
Conv2 3x3 MaxPooling 사용 : 10x10 필터 : L1 64 채널, L2 128채널, L3 : 3 채널 학습률:0.0001
1000회 1069초 2000회 초 3000회 3603초
9배 확대 입력
5x5 3000회 1195초
16. 1000회 초 2000회 초 3000회 1719 초
1000회 초 2000회 초 3000회 2991초
9배 확대 입력
Conv2 3x3 MaxPooling 사용 L1: 5x5 필터 64채널, L2 : 10x10 필터 128채널, L3 : 3 채널, 학습률:0.0001
Conv2 3x3 MaxPooling 사용 L1: 10x10필터 64채널, L2 : 5x5필터 128채널, L3 : 3 채널, 학습률:0.0001
17. 1000회 259초 1000회 컬러 331초 컬러 1000회 378초
타깃 변경 컬러 1000회 363초
L3 10x10 1000회 919초
3000회 947 초
9배 확대 입력Conv2 3x3 MaxPooling 사용 L1: 3x3 필터 64채널, L2 : 3x3 필터 128채널,
L3 : 3x3 필터 256 채널 No Pooling L4 : 1x1 필터 3 채널 No Pooling, 학습률:0.0001
L2 5x5 1000회 419초 L2 4x4 1000회 351초
L4 3x3 1000회 303 초
L2 10x10 1000회 1024초
L4 2x21000회 312초
18. 1000회 266초 1000회 컬러 331초 컬러 1000회 378초
타깃 변경 컬러 1000회 363초
L3 10x10 1000회 919초
3000회 947 초
9배 확대 입력
Conv2 3x3 MaxPooling 사용 L1: 2x2 필터 64채널, L2 : 2x2 필터 128채널,
L3 : 2x2 필터 512채널 No Pooling L4 : 2x2 필터 3 채널 No Pooling, 학습률:0.0001
L2 5x5 1000회 419초 L2 4x4 1000회 351초
19. 1000회 194초 1000회 84,16,8 240초 1000회 16, 512, 8 219초 1000회 8,8,2048 180초
9배 확대 입력
Conv2 3x3 MaxPooling 사용 L1: 2x2 필터 64채널, L2 : 2x2 필터 64채널,
L3 : 2x2 필터 32채널 No Pooling L4 : 2x2 필터 3 채널 No Pooling, 학습률:0.001
Conv2 3x3 MaxPooling 사용 L1: 2x2 필터 64채널, L2 : 2x2 필터 64채널,
L3 : 10x10 필터 10채널 No Pooling L4 : 2x2 필터 3 채널 No Pooling, 학습률:0.001
1000회 211초
1000회 8,8,2048 L3:5x5 250초1000회 8,8,2048 L3:20x20 1639초
20. 1000회 471 초 2000회 초 3000회 1719 초
1000회 674초 2000회 초
3000회 초
9배 확대 입력
Conv2 3x3 MaxPooling 사용 L1: 5x5필터 64채널, L2 : 5x5필터 128채널,
L3 : 5x5 필터 256 채널 No Pooling L4 : 1x1 필터 3 채널 No Pooling, 학습률:0.0001
Conv2 3x3 MaxPooling 사용 L1: 10x10필터 64채널, L2 : 5x5필터 128채널,
L3 : 5x5 필터 256 채널 No Pooling L4 : 1x1 필터 3 채널 No Pooling, 학습률:0.0001
21. 1000회 1575초 컬러 1000회 초 3000회 1719 초
1000회 3601초 2000회 초
3000회 초
9배 확대 입력
Conv2 3x3 MaxPooling 사용 L1: 20x20필터 64채널, L2 : 5x5필터 128채널,
L3 : 5x5 필터 256 채널 No Pooling L4 : 1x1 필터 3 채널 No Pooling, 학습률:0.0001
Conv2 3x3 MaxPooling 사용 L1: 5x5 필터 64채널, L2 : 20x20 필터 128채널,
L3 : 5x5 필터 256 채널 No Pooling L4 : 1x1 필터 3 채널 No Pooling, 학습률:0.0001
22. 1000회 1862초 2000회 초 3000회 1719 초
1000회 920초 2000회 초
3000회 초
9배 확대 입력
Conv2 3x3 MaxPooling 사용 L1: 5x5 필터 64채널, L2 : 5x5필터 128채널,
L3 : 20x20 필터 256 채널 No Pooling L4 : 1x1 필터 3 채널 No Pooling, 학습률:0.0001
Conv2 3x3 MaxPooling 사용 L1: 15x15 필터 64채널, L2 : 3x3 필터 128채널,
L3 : 3x3 필터 256 채널 No Pooling L4 : 1x1 필터 3 채널 No Pooling, 학습률:0.0001
23. 9배 확대 입력
Average Pooling
Conv2 3x3 AvgPooling 사용
L1: 2x2 필터 8채널,
L2 : 2x2 필터 12채널,
L3 : 20x20 필터 2048채널 No Pooling
L4 : 1x1 필터 3 채널 No Pooling,
학습률:0.001
Conv2 3x3 AvgPooling 사용
L1: 10x10 필터 8채널,
L2 : 2x2 필터 12채널,
L3 : 2x22 필터 2048채널 No Pooling
L4 : 1x1 필터 3 채널 No Pooling,
학습률:0.001 , 278 초
Conv2 3x3 AvgPooling 사용
L1: 2x2 필터 8채널,
L2 : 2x2 필터 12채널,
L3 : 2x2 필터 2048채널 No Pooling
L4 : 1x1 필터 3 채널 No Pooling,
학습률:0.001 , 167초
Conv2 3x3 AvgPooling 사용
L1: 1x1 필터 64채널,
L2 : 2x2 필터 32채널,
L3 : 2x2 필터 16채널 No Pooling
L4 : 1x1 필터 3 채널 No Pooling,
학습률:0.001 , 160 초
Conv2 3x3 AvgPooling 사용
L1: 2x2 필터 64채널,
L2 : 2x2 필터 32채널,
L3 : 2x2 필터 16채널 No Pooling
L4 : 1x1 필터 3 채널 No Pooling,
학습률:0.001 , 초
24. 1000회 초
1000회 134초
L1 : 10x10 1000회 212초
L1 레이어 확장은 큰 변환 효과 증가
까만 머리 부분 변환 효과가
하얀 줄로 보여진다 ~~~
입력 : 624x512
Target 사이즈 : 156x128
L1: 2x2 필터 64채널 2x2 Pooling, L2 : 2x2 필터
64채널 2x2 Pooling,
L3 : 2x2 필터 32채널 No Pooling L4 : 1x1 필터 3
채널 No Pooling, 학습률:0.001
L1 : 5x5 128채널 1000회 250초
채널 확장은
L1 : 2x2 128채널 1000회 226 초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 2x2 128채널 1000회 227초
25. 이걸 훈련 시키니 …. 이렇게 그리네요…. ^^
이걸 훈련 시키니 …. 이렇게 그리네요…. ^^
26. 1000회 249초
1000회 243초
L1 : 10x10 1000회 382초
L1 레이어 확장은 큰 변환 효과
증가
입력 : 624x512
Target 사이즈 : 156x128
L1: 2x2 필터 64채널 2x2 Pooling, L2 : 2x2 필터
64채널 2x2 Pooling,
L3 : 2x2 필터 32채널 No Pooling L4 : 1x1 필터 3
채널 No Pooling, 학습률:0.001
L1 : 5x5 128채널 1000회 271초
채널 확장은
L1 : 2x2 128채널 1000회 245초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 2x2 128채널 1000회 244초
Avg_Pooling 사용
27. L1: 10x10 1000회 390초
L1: 20x20 1000회 977초 L1 : 20x201000회 981초
입력 : 624x512
Target 사이즈 : 156x128
L1 : 20x20 128초 988초
L1 : 10x10 128채널 1000회 390초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 10x10 128채널 1000회 초
Avg_Pooling2 사용
28. L1: 2x2 1000회 151초
입력 : 624x512
Target 사이즈 : 624x512
L1 : 10x10 1000회 216초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 5x5 1000회 159초
No Pooling Same Size사용
L1 : 16 채널, L2 : 32 채널, L3 : 16채널, L4 :3 채널
L1 : 20x20 1000회 465초
L1: 2x2 1000회 154초
L1 : 10x10 1000회 초216L1 : 5x5 1000회 162초 L1 : 20x20 1000회 459 초
29. L1: 2x2 1000회 150초
입력 : 624x512
Target 사이즈 : 624x512
L1 : 10x10 1000회 219초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 5x5 1000회 161초
No Pooling Same Size사용
L1 : 16 채널, L2 : 32 채널, L3 : 16채널, L4 :3 채널
L1 : 20x20 1000회 467초
L1: 2x2 1000회 153초
L1 : 10x10 1000회 217초
L1 : 5x5 1000회 162초
L1 : 20x20 1000회 465초
30. 1000회 초
1000회 134초
L1 : 10x10 1000회 212초
L1 레이어 확장은 큰 변환 효과 증가
훈련 데이터 size와 실데이터
size는 같아야 하는가?
입력 : 624x512
Target 사이즈 : 156x128
L1: 2x2 필터 64채널 2x2 Pooling, L2 : 2x2 필터
64채널 2x2 Pooling,
L3 : 2x2 필터 32채널 No Pooling L4 : 1x1 필터 3
채널 No Pooling, 학습률:0.001
L1 : 5x5 128채널 1000회 250초
채널 확장은
L1 : 2x2 128채널 1000회 226 초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 2x2 128채널 1000회 226초
31. Avg Pooling : L1 5x5 128 채널
1000회 266초
L1 : 10x10 1000회 362초
L1 레이어 확장은 큰 변환 효과 증가
훈련 데이터 size와 실데이터
size는 같아야 하는가?
입력 : 624x512
Target 사이즈 : 156x128
L1: 2x2 필터 64채널 2x2 Pooling, L2 : 2x2 필터
64채널 2x2 Pooling,
L3 : 2x2 필터 32채널 No Pooling L4 : 1x1 필터 3
채널 No Pooling, 학습률:0.001
L1 : 5x5 128채널 1000회 251초
채널 확장은
L1 : 2x2 128채널 1000회 224초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 2x2 128채널 1000회 226초
Avg Pooling L1 : 2x2 128채널 1000회 243초
32. Avg Pooling : L1 5x5 128 채널
1000회 266초 L1 : 2x2 1000회 245초
훈련 데이터 size와 실데이터
size는 같아야 하는가?
입력 : 624x512
Target 사이즈 : 156x128
L1: 2x2 필터 64채널 2x2 Pooling, L2 : 2x2 필터
64채널 2x2 Pooling,
L3 : 2x2 필터 32채널 No Pooling L4 : 1x1 필터 3
채널 No Pooling, 학습률:0.001
L1 : 10x10 128채널 1000회 383 초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 5x5 128채널 1000회 271초
Avg Pooling L1 : 2x2 128채널 1000회 243초
AvgPooling 사용
L1 : 10x10 128채널 1000회 381초
33. L1 : 5x5 1000회 169초L1 : 2x2 1000회157 초 훈련 데이터 size와 실데이터
size는 같아야 하는가?
입력 : 624x512
Target 사이즈 : 156x128
L1: 2x2 필터 16채널 No Pooling,
L2 : 2x2 필터 32채널 No Pooling,
L3 : 2x2 필터 16채널 No Pooling
L4 : 1x1 필터 3 채널 No Pooling,
학습률:0.001
L1 : 10x10 1000회 255초
Training 이미지가 1개 평균 훈련
효과가 없다
L1 : 2x2 1000회 153초
Avg Pooling L1 : 2x2 1000회 150초
Same Size
L1 : 10x10 1000회 227초
34. 입력 : 624x512
Target 사이즈 : 156x128
L1: 2x2 필터 16채널 No Pooling,
L2 : 2x2 필터 32채널 No Pooling,
L3 : 2x2 필터 16채널 No Pooling
L4 : 1x1 필터 3 채널 No Pooling,
학습률:0.001
L1 : 10x10 1000회 217초
Training 이미지가 1개 평균 훈련
효과가 없다
L1:20x20, L2 : 5x5 1000회 515초
Same Size + 원본과 합성
L1 : 20 x20 1000회 462 초 L1:30x30 1000회 942초
L1 : 20 x20 32채널 1000회 534 초
L1:20x20, L2 : 10x10 1000회 771초
L1 : 20 x20 32채널 L2:5x5 1000회 608초
L1:20x20 32 L2 : 10x10 32
5x5 16 1000회 1018초
L1:20x20 32 L2 : 10x10 32
2x2 16 1000회 996 초
L1:30x30 32 L2 : 2x2 32
2x2 16 1000회 1016초
35. 2x2 필터와 30x30 필터 결과 합산?
입력 : 624x512
Target 사이즈 : 156x128
L1: 2x2 필터 16채널 No Pooling,
L2 : 2x2 필터 32채널 No Pooling,
L3 : 2x2 필터 16채널 No Pooling
L4 : 1x1 필터 3 채널 No Pooling,
학습률:0.001
L1 : 10x10 1000회 217초
Training 이미지가 1개 평균 훈련
효과가 없다
L1:20x20, L2 : 5x5 1000회 515초
Same Size + 2x2 결과와 30x30 필터 결과 평균 Saver 필요
L1 : 20 x20 1000회 462 초 L1:30x30 1000회 942초
L1 : 20 x20 32채널 1000회 534 초
L1:20x20, L2 : 10x10 1000회 771초
L1 : 20 x20 32채널 L2:5x5 1000회 608초
L1:20x20 32 L2 : 10x10 32
5x5 16 1000회 1018초
L1:20x20 32 L2 : 10x10 32
2x2 16 1000회 996 초
L1:30x30 32 L2 : 2x2 32
2x2 16 1000회 1016초
36. 추가 연구 항목
• Deconvolution Layer의 효과 검증
• Training을 위한 데이트 위치 맵핑은 어떻게 해야 할까?
• Channel 등을 넓히기 위해서는 Resource가 필요하다…. GPU 메모리인가?
37. Address
서울특별시 성동구 아차산로 17
11층 (성수동 1가, 서울숲엘타워)
우편번호 04789
Telephone
Tel : (02)575-0409
Fax: (02)6003-1987