기계학습을 이용한...

16
기계학습을 이용한 숫자인식기 제작 SW Maestro 6 th 강성희 멘토님 | 김인식 유상현 도회린 1

Upload: do-hoerin

Post on 12-Feb-2017

1.076 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: 기계학습을 이용한 숫자인식기 제작

기계학습을 이용한 숫자인식기 제작SW Maestro 6th

강성희 멘토님 | 김인식 유상현 도회린

1

Page 2: 기계학습을 이용한 숫자인식기 제작

목차 • 팀원 및 프로젝트 소개

• 기계학습 소개

• 숫자 인식과 MNIST

• 인공신경망 (ANN)

• Convolutional Neural Network

• Deep Learning

• 기계학습 응용과 Kaggle

• Property Hazard Inspection

• Truly Native?

2

Page 3: 기계학습을 이용한 숫자인식기 제작

팀원 소개 • 강성희 멘토님

• 팀장 : 김인식

• 팀원 : 유상현

• 팀원 : 도회린

3

Page 4: 기계학습을 이용한 숫자인식기 제작

프로젝트

소개

• 기계학습을 이용한 숫자인식기 제작

• 주요 개발 환경• Python 2.7

• Keras, Pandas, Theano, Numpy, Scikit-learn

등의 라이브러리

• 고성능의 연산 처리 능력을 갖춘 하드웨어 장비 환경

• CUDA GPU, 32GB RAM 등

4

Page 5: 기계학습을 이용한 숫자인식기 제작

기계학습

소개

• 대량의 데이터를 입력시키면

스스로 데이터에 대해 학습하는 알고리즘

• 데이터에서 패턴을 찾아내는 새로운 방법

• 기존의 규칙 기반의 알고리즘으로 불가능한 일을 해냄

• 숫자 인식, 음성 인식 등

• 분류, 예측 등 산업에 응용 분야가 다양

5

Page 6: 기계학습을 이용한 숫자인식기 제작

숫자인식과

MNIST

• 손으로 쓴 우편번호 자동 인식기

• 수표에 기입한 금액 숫자 자동 인식기

• MNIST 데이터• 28 X 28 Image

• Image Label: 0~9

6

Page 7: 기계학습을 이용한 숫자인식기 제작

인공신경망 • 뉴런 세포의 작동 원리에서 아이디어를 얻음

• Hidden Layer의 역할로 강력한 학습 모델이 됨

(Non-linear Classifier)

• 적당한 파워의 모델을 찾기 어렵다

7

Page 8: 기계학습을 이용한 숫자인식기 제작

인공신경망

인공신경망 데모

8

Page 9: 기계학습을 이용한 숫자인식기 제작

CNNConvolutional

Neural

Network

• 훈련 이미지에서 물체의 위치만 살짝 달라도

학습 모델은 전혀 다른 사진으로 인식하던

문제를 해결

9

Page 10: 기계학습을 이용한 숫자인식기 제작

CNNConvolutional

Neural

Network

ratio_train,)ratio_validate,)ratio_test =)split

cols)=)list(data.columns.values)cols.remove('label')

X)=)data.as_matrix(cols)y)=)data['label'].values

rows_num =)data.values.shape[0](중략)

train_set =)(X[0:num_train],)y[0:num_train])valid_set =)(X[num_train:(num_train + num_validate)]

,)y[num_train:(num_train + num_validate)])test_set =)(X[(num_train + num_validate):rows_num]

,)y[(num_train + num_validate):rows_num])

10

Page 11: 기계학습을 이용한 숫자인식기 제작

CNNConvolutional

Neural

Network

image_size =)(28,)28)pool_sizes =)[(2,)2),)(2,)2)]filter_sizes =)[(5, 5),)(5, 5)]nkerns =)[20,)50]n_epochs =)100

cnn =)nn_modules.CNN.CNN(nkerns=nkerns,)batch_size=100,)image_size=image_size,)pool_sizes=pool_sizes,)filter_sizes=filter_sizes,)n_epochs=n_epochs)

data)=)pd.read_csv('data/test.csv',)header=0)predicted)=)cnn.predict(data.astype(theano.config.floatX))

df =)pd.DataFrame([numpy.arange(1,)data.shape[0]+1),)predicted]).Tdf.columns =)['ImageId',)'Label']

df.to_csv("result.csv",)cols=['ImageId',)'Label'],)index=False,encoding='utfT8')

11

Page 12: 기계학습을 이용한 숫자인식기 제작

CNNConvolutional

Neural

Network CNN 데모

12

Page 13: 기계학습을 이용한 숫자인식기 제작

Deep

Learning

• Logistic Regression

• Perceptron

• Multi-layer Neural Network

• CNN (Convolutional Neural Network)

• RNN (Recurrent Neural Network)

• Hopfield Net

• Restricted Boltzmann Machine

• Deep Belief Net

13

Page 14: 기계학습을 이용한 숫자인식기 제작

기계학습의

응용과

Kaggle

• 기업들이 기계학습으로 풀 수 있는 문제를

제시하고 상금을 건다.

• 전 세계의 Data Scientist들이 각자의 해법을 고

안하여 답안을 제출

• 기계학습이 실제로 사용되는 곳에 실제 데이터를

가지고 응용해 볼 수 있는 기회

https://www.kaggle.com/competitions

14

Page 15: 기계학습을 이용한 숫자인식기 제작

Property

Hazard

Inspection

• 부동산 자산의 위험도(Hazard)를 예측

• 위험도 측정의 자동화

• 상금 $25,000

• 데이터 종류

• 여러 요인에 따른 위험도 정보가 주어짐

• 각각의 요인이 무엇인지는 공개되지 않음.

15

Page 16: 기계학습을 이용한 숫자인식기 제작

Truly

Native?

• 인터넷 상의 글들 중에서 광고가 아닌 듯하게

올라오는 광고글을 탐지

• 상금 $10,000

• 데이터 종류• 300,000개 이상의 raw HTML 파일

• 글, 링크, 이미지 등의 정보를 포함

16