기계학습을 이용한...
TRANSCRIPT
기계학습을 이용한 숫자인식기 제작SW Maestro 6th
강성희 멘토님 | 김인식 유상현 도회린
1
목차 • 팀원 및 프로젝트 소개
• 기계학습 소개
• 숫자 인식과 MNIST
• 인공신경망 (ANN)
• Convolutional Neural Network
• Deep Learning
• 기계학습 응용과 Kaggle
• Property Hazard Inspection
• Truly Native?
2
팀원 소개 • 강성희 멘토님
• 팀장 : 김인식
• 팀원 : 유상현
• 팀원 : 도회린
3
프로젝트
소개
• 기계학습을 이용한 숫자인식기 제작
• 주요 개발 환경• Python 2.7
• Keras, Pandas, Theano, Numpy, Scikit-learn
등의 라이브러리
• 고성능의 연산 처리 능력을 갖춘 하드웨어 장비 환경
• CUDA GPU, 32GB RAM 등
4
기계학습
소개
• 대량의 데이터를 입력시키면
스스로 데이터에 대해 학습하는 알고리즘
• 데이터에서 패턴을 찾아내는 새로운 방법
• 기존의 규칙 기반의 알고리즘으로 불가능한 일을 해냄
• 숫자 인식, 음성 인식 등
• 분류, 예측 등 산업에 응용 분야가 다양
5
숫자인식과
MNIST
• 손으로 쓴 우편번호 자동 인식기
• 수표에 기입한 금액 숫자 자동 인식기
• MNIST 데이터• 28 X 28 Image
• Image Label: 0~9
6
인공신경망 • 뉴런 세포의 작동 원리에서 아이디어를 얻음
• Hidden Layer의 역할로 강력한 학습 모델이 됨
(Non-linear Classifier)
• 적당한 파워의 모델을 찾기 어렵다
7
인공신경망
인공신경망 데모
8
CNNConvolutional
Neural
Network
• 훈련 이미지에서 물체의 위치만 살짝 달라도
학습 모델은 전혀 다른 사진으로 인식하던
문제를 해결
9
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
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
CNNConvolutional
Neural
Network CNN 데모
12
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
기계학습의
응용과
Kaggle
• 기업들이 기계학습으로 풀 수 있는 문제를
제시하고 상금을 건다.
• 전 세계의 Data Scientist들이 각자의 해법을 고
안하여 답안을 제출
• 기계학습이 실제로 사용되는 곳에 실제 데이터를
가지고 응용해 볼 수 있는 기회
https://www.kaggle.com/competitions
14
Property
Hazard
Inspection
• 부동산 자산의 위험도(Hazard)를 예측
• 위험도 측정의 자동화
• 상금 $25,000
• 데이터 종류
• 여러 요인에 따른 위험도 정보가 주어짐
• 각각의 요인이 무엇인지는 공개되지 않음.
15
Truly
Native?
• 인터넷 상의 글들 중에서 광고가 아닌 듯하게
올라오는 광고글을 탐지
• 상금 $10,000
• 데이터 종류• 300,000개 이상의 raw HTML 파일
• 글, 링크, 이미지 등의 정보를 포함
16