2. Table of contents
1. ML History
2. ML Definition
3. ML Types
4. ML in iOS
• Core ML Framework / Model
• Create ML / Transfer Learning
5. 이미지 구분 모델 예제
• Create ML을 사용하여 학습시키기
• 시연 / 코드 설명
6. 신뢰도 점수에 대하여
8. ML History
1950's
Alan Turing은 학습하는 기계에 대한 제안을 하였고, 기계와 사람의 유사도 측정을 위한 튜링 테스트를 고안함
1952
최초의 ML 컴퓨터 프로그램을 개발 (체커 게임 학습하는 프로그램) - Arthur Samuel
1956
다트머스 워크샵에서 학습하는 기계를 지칭하는 "AI" 용어 제언
1958
시각 인식 작업을 해결하기 위한 최초의 인공 신경망인 Perceptron을 설계 (by Frank Rosenblatt)
Perceptron 구현을 위해 Frank Rosenblatt가 만든 컴퓨터의 이름은? ( Mark I )
https://www.bbc.com/timelines/zypd97h
https://projectresearch.co.kr/2017/06/14/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9Dml%EC%9D%98-%EA%B0%84%EB%9E%B5%ED%95%9C-
%EC%97%AD%EC%82%AC/
9. ML History
1970's AI Winter
과대광고, 기금 고갈, HW 기술 미비, 이론적 한계 등
1980's AI Summer
설명 기반 학습 (중요도 낮은 데이터 삭제할 수 있는 훈련 분석 알고리즘 )
1980's ~ early 1990's AI Winter
Neural Network에 대한 좋은 이론 부족 등
https://www.bbc.com/timelines/zypd97h
https://projectresearch.co.kr/2017/06/14/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9Dml%EC%9D%98-%EA%B0%84%EB%9E%B5%ED%95%9C-
%EC%97%AD%EC%82%AC/
11. ML History
2011
IBM Watson 컴퓨터 vs 일반 휴먼 참가자들이 참가한 자연어 퀴즈쇼 프로그램에서 왓슨 우승
2012
Google Brain Project
- 구글 인프라를 활용하여 이미지와 비디오의 패턴을 감지하는 심층 신경망(DNN) 개발
2013
DeepMind : Atari 게임에서 인간을 이길 수 있는 심층 강화학습 모델을 설계
2006~
Hardware의 성숙, 신경망 모델에 대한 성숙된 이론 보완을 근거로 다시 대두
ML을 위한 Neural Network 개발, Deep Learning 확산 (Geoffrey Hinton)
https://www.bbc.com/timelines/zypd97h
https://projectresearch.co.kr/2017/06/14/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9Dml%EC%9D%98-%EA%B0%84%EB%9E%B5%ED%95%9C-
%EC%97%AD%EC%82%AC/
12. ML History
2014
DeepFace DNN (Facebook)
- 사람 얼굴 인식 뉴럴 네트워크 개발
2016
AlphaGo vs Sedol
2017
Google TensorFlow 정식 발표
MS Cognitivie Toolkit 출시
Apple CoreML 출시 (iOS 11)
https://www.bbc.com/timelines/zypd97h
https://projectresearch.co.kr/2017/06/14/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9Dml%EC%9D%98-%EA%B0%84%EB%9E%B5%ED%95%9C-
%EC%97%AD%EC%82%AC/
13. ML History
2010's
컴퓨팅 기술 뒷받침 (multi core, GPU, cloud, Network etc)
강화학습, DNN 등 이론 강화
AI as Framework
15. Definition
기계가 일일이 코드로 명시하지 않은 동작을
데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야
- Arthur Samuel
ML은 AI의 한 분야
표현 과 일반화 가 ML의 핵심
표현 : 데이터에 대한 평가
일반화 : 알려지지 않은 데이터에 대한 처리, Training 이후에 새롭게 들어온 데이터를 정확히 처리할 수 있는 능력
16. Definition
딥러닝 ?? ML
딥러닝은 머신러닝의 한 분야. 인공 신경망 중 심층 인공 신경망을 주로 다룸
이미지인식, 음성인식, 추천시스템 자연어 처리 등에 응용
공통점
모델 학습 / 데이터 분류
차이점 - 이미지 분석 (Object Detection) 예
DL : 이미지를 딥러닝 알고리즘에 직접 제공하여 물체를 예측 | 트레이닝에 요구되는 데이터 큼
고유의 특징 선택 어려움
ML : 특정 Workflow를 따름 (데이터 수집 > 특징 추출 > 예측모델 생성)
학습 시간이 상대적으로 짧음
17. Definition
요약
AI ⊃ ML ⊃ DL
AI : 인공지능. 지능적인 인간의 행동을 모방하는 기계의 능력을 연구하는 분야를 총칭
ML : 데이터를 통해 명시적으로 프로그래밍하지않고 학습하는 알고리즘을 연구하는 분야
DL : 인공신경망을 활용한 머신러닝의 한 분야
http://information-management.co.kr/index.php/blog/ai-vs-ml-vs-dl
26. CoreML, CreateML, Xcode 등 여러 아키텍처 포맷 등에서 사용하기 위한 머신러닝 학습 모델
.mlmodel 확장자를 지님
기본 학습 모델 제공
CreateML로 직접 모델 구축 가능
Model
27. Model 종류
감정 분석
정말 최고였습니다! 😃
번역
I love you mom 사랑해 엄마
텍스트 예측
강남역으로 가는 길을 아시나요?
형태 변환
음악 태그
락 음악
장면 식별
해변
손글씨 인식
7
28. 스위프트 머신러닝 프레임워크
.mlmodel 확장자 Model을 CoreML 보다 더 적은 코드로 생성하게 해준다.
Transfer Learning 기법 활용
한줄 코드 작성으로 모델 트레이닝 & 하드웨어 최적화 수행
use case
1) 커스텀 이미지 분류
2) 텍스트 분석
3) tabular Data 분석 ( 화학 구성분 데이터 분석 —> Wine Quality 예측)
CreateML
29. Transfer Learning
• 기존에 만들어진 모델(pretrained model)을 사용하여 새로운 모델 만들 때,
학습을 빠르게 하며, 예측을 높이는 방법
• DNN상의 마지막 layer만 수정해서 목적에 맞게 다시 학습 시키는 방식
Why?
• 실질적으로 Convolution network을 처음부터 학습시키는 일은 많지 않으므로,
이미 학습된 모델을 바탕으로 사용해서 문제를 해결하는게 유용
• 개발자의 제한된 컴퓨팅파워 / 시간의 문제를 극복하는데 용이
CS231n Convolutional Neural Networks for Visual Recognition
Transfer Learning
30. 일반적인 ML workflow
1) Problem 인식
2) Collect Data
3) Train your model
4) Evaluation (create .mlmodel or retrain)
Before Practice
32. Create ML을 사용하여 학습시키기
사진을 찍습니다.
사진들을 폴더에 정리합니다.
폴더의 이름은 식별 레이블로서 사용됩니다.
• 필요한 데이터의 양
- 각 카테고리 별 적어도 10개 이상,
많을수록 좋습니다.
- 지나치게 불균형적인 데이터들은
학습하기 힘듭니다.
33. Core ML 모델로 변환하기
변환
Core ML Tools
Apache MXNet
TensorFlow
ONNX
https://developer.apple.com/kr/machine-learning/resources/
35. 신뢰도 (Confidence) 점수에 대하여
1.0은 정확하다는 뜻인가요?
•알고리즘의 기준은 충족했지만 우리들의 기준과는 다를 수 있습니다.
기준치는 사용환경에 따라 달라집니다.
•분류에는 높은 신뢰도가 필요합니다. 분류 모델이 어떻게 작동하는지 확인하십시오.
•가능성이 있다고 유추된다면 낮은 신뢰도 점수여도 탐색 결과에 포함할 수도 있습니다.