| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- 가브리엘마르케스
- 비전공자 코딩교육
- 영화추천시스템
- 멋쟁이사자처럼 전액국비지원
- 리뷰
- 인생책짧은글
- 추천프로젝트
- 비전공자 멋쟁이사자처럼
- 멋사 AI 교육
- 인생책
- 멋쟁이사자처럼 k-digital
- 멋쟁이사자처럼
- 멋쟁이사자처럼 k 디지털
- 인터뷰
- 문학동네
- k 디지털 후기
- 멋사 전액국비지원교육
- 멋사 k 디지털
- 유니오르
- AI 국비지원
- 멋사 AI
- AI 코딩
- 영화AI추천
- 멋사 국비지원과정
- til
- 민음사
- k 디지털
- 이렇게 그녀를 잃었다
- 비전공자 코딩
- 홍명희 임꺽정
- Today
- Total
글쟁이, 코딩한다
0128 / k_digital 36일차 / 세미프로젝트3 본문
0.
프로젝트 3일차 : 두번째 주제 Simpson Character Classifier

지금까지
첫날 : Mushroom Dataset으로 버섯 독성 판단 모델 만들기 결정, 간단한 전처리와 데이터 분석 및 시각화
둘째날 : 결측치 채울 ML, 독성 판단할 DL 학습. 깔끔한 데이터 탓에 너무 높은 모델 성능(99.98% 수준)
=>모델 예측값을 적용할 다른 방안들을 생각해내지 못했다. 이에 다른 데이터를 활용하기로 합의
새로운 데이터 접근 방향
1. 회귀분석 활용하기
; 다중클래스 분류 문제 ML, 이진 분류 문제 DL, ML 써봤으니 회귀 문제 하나 하면 균형이 맞을 것 같은 기분
1) 카드 데이터 2) 한국 소득 데이터 활용 (둘 다 kaggle)
2. CNN 활용하기
1) 심슨 데이터 2) fliker 데이터셋 3) 명화 데이터 (셋 다 kaggle)
3. 서울시 상권분석 데이터
데이터 양이 많다. 서울시에서 데이터를 공유한다. 이미 상권분석 모델로 가능성을 제공하는 서울시 공식 사이트가 존재. 데이터 feature가 무척 많아(csv 파일이 다량) ML/DL을 위한 전처리 훈련에 좋아보인다.
==> 투표에 이어 CNN 활용으로 가닥이 잡혔다.
Simpson 이미지 데이터셋을 쓰자!
www.kaggle.com/alexattia/the-simpsons-characters-dataset
The Simpsons Characters Data
Image dataset of 20 characters from The Simpsons
www.kaggle.com
심슨 캐릭터들의 이미지를 모아뒀다. 40여 캐릭터, 10000장 가까운 사진이다. 다중 클래스 분류 모델을 위한 CNN 적용에 적합하다.
Simpson Character Classifier
1.
우선 이런 대량의 이미지 데이터를 작업 환경에 올리는 것부터 막막하다. CNN 공홈 예제들은 대부분 원래 dataset에 올라있는 MNIST(숫자 0~9 손글씨 데이터)를 활용한다.
+시작하기 전
대부분 디렉토리를 임의로 지정해주며 활용하기에 앞서 수작업으로 폴더를 정돈했다. 추가 작업인 만큼 모델 학습을 쉽게 하고자 짜투리 캐릭터(이미지 900개 이하)들을 쳐내고 11개 캐릭터만 남겼다.
(사실 12개인데 내가 눈으로 확인하고 작업하다가 헷갈림). 따로 나와있는 테스트 셋 폴더도 맞춰 정리하고 폴더에 모았다. 대부분 함수들은 디렉토리로 파고 들어가며 분류 작업을 실행하니 사전 데이터 정돈을 하면 일처리가 훨씬 수월하다.
1) image_dataset_from_directory
디렉토리에 보유한 파일들을 데이터셋으로 활용하는 함수인듯 한데 텐서플로 버전 문제로 일단 보류.
팀원 가운데 한 분이 업그레이드 과정에서 아나콘다를 재설치하는 비극을 겪었다.
2) 이미지를 행렬로 변환
numpy array로 이미지를 숫자 행렬 형태로 전환. 참고 블로그 twinw.tistory.com/252
3) ImageDataGenerator
directory에서 이미지를 받아와 행렬화, 라벨화 등을 한 번에 해결해준다.
flow_from_directory를 쓰면 각 디렉토리를 파고 들어가며 폴더에 따라 자동 클래스 분류도 해준다.(클래스 네이밍은 폴더명으로 붙여준다. 폴더명을 애초에 잘 설정하고 들어가는 편이 좋다)
데이터 스케일, 픽셀 사이즈, 클래스 모드, 학습-평가 데이터 분할에도 용이하다. 모델에 generator를 곧바로 밀어넣을 수 있다.
참고한 이 블로그에 무척 잘 정리되어 있다. 3months.tistory.com/199
텐서플로 공홈에서 세밀한 argument들과 사용법들을 확인할 수 있다. www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator
2.
만든 generator에 CNN 모델을 적용했다(레이어를 얼마 쓰지 않은 단순 모델이었다).
개인 노트북 환경에서 돌려 30분 가량 모델이 학습했다. 이어 99.45%에 육박하는 아주 높은 accuracy 값이 나왔다. (너무 높아서 또 하이퍼파라미터 튜닝을 할 의미가 묽어졌다)
predict와 numpy argmax를 쓰면 예측 클래스 값도 깔끔하게 나왔다.
오늘의 프로젝트
1-여전히 레이어 적용과 전이학습에는 무지하다. 데이터는 좋아도 안 좋아도 힘들게 하는구나.
2-이미지 파일이 저용량이다. 대용량 파일은 픽셀을 깎아 이미지 크기를 줄이는 과정을 거쳐야 하는 듯 하다. (부정확함) 고화질 데이터들은 어떻게 적용할까?
3-무심코 만든 파일명, 변수명이 어떤 리턴으로 돌아올 지 모른다. 뭘 해도 대강하지 말자.
3-1 변수명을 만들거나 방법, 함수 등을 공유할 때 영어 스펠링이 맨날 헷갈린다. 오타도 난다. 조심하자.
내일 할 일
모델 예측값 시각화하기
영상을 보며 인물 예측을 하기도 한다. 코드는 없지만 시각화 방법들을 참고할 페이지. c11.kr/lu8f
'나는 코딩도 한다 > TIL' 카테고리의 다른 글
| 0201 / k_digital 38일차 / 세미프로젝트3(마무리) (0) | 2021.02.01 |
|---|---|
| 0129 / k_digital 37일차 / 세미프로젝트3 (3) | 2021.01.29 |
| 0127 / k_digital 35일차 / 세미프로젝트3 (0) | 2021.01.28 |
| 0126 / k_digital 34일차 / 세미프로젝트3 (2) | 2021.01.26 |
| 0125 / k_digital 33일차 / 복습 (0) | 2021.01.25 |