WWDC/2017

[iOS] Core ML in WWDC 2017

MB Brad KWON 2017. 6. 20. 09:45

    machine learning은 현존하는 기술 중에 가장 인기있는 기술입니다. 사진에 나온 사람의 얼굴 인식, 키보드의 prediction, 워치의 hand writing 인식 등에 ML이 사용되고 있습니다.



    WWDC에서는 장미를 인식하는 알고리즘을 예로 들었습니다. 먼 ML은 Traning이라는 과정을 거칩니다. 이 과정을 통해 ML 모델이 생성됩니다. 이미지에 대한 정보를 수집하고 꽃의 색과 모양에 따라 꽃을 분류하는 알고리즘을 구체화시켜 나갑니다. 개발제에게는 ML 모델이라는 정형화된 파일을 제공합니다. ML 모델은 함수로 이루어져있고 내부에는 여러 레이어와 Neural network가 이어져 있습니다. ML  모델 내부의 파싱 과정을 거친 결과가 최종적으로 개발자에게 제공합니다.



    애플은 이를 제공하기 위해 검증/ 성능/ 효율 등의 3가지 측면에서 많은 고민을 하였으며, iOS 11부터 coreML을 통한 machine learning을 제공합니다. coreML은 deep learning에 기반한 framework입니다. 크게 Vision과 NLP (Naural Language Processing) 를 제공합니다. coreML은 기기에서만 동작하기 때문에 개인정보 걱정이 없으며, 서버를 사용하지 않고 데이터를 소비하지 않습니다. 무엇보다 24/7으로 항상 이용이 가능합니다. 사용환경은 아래와 같이 애플에서 제공하는 모든 플랫폼에서 사용 가능합니다. 


Vision : 오브젝트 트래킹, 얼굴 인식

NLP (Naural Language Processing) : 언어 인식, 이름 식별

Core ML : 도메인 특화 프레임워크, 음악 태깅, 이미지 캡션, 이미지/ 텍스트/ 사전, 등을 input으로 처리

Accelerate & MPS (Metal Performance Shader) : 성능 최적화를 위한 low-level package

사용 환경 : macOS, iOS, watchOS ,tvOS에서 사용 가능




    coreML은 통합된 API로 Xcode와 결합하여 제공하며, 공공 ML 모델을 지원하여 기존 ML 모델들을 사용 가능합니다. 기존 ML 모델을 추가하면 xcode에서 자동으로 ML에 대한 정보를 읽습니다. 이름/ 라이선스/ 사이즈 등의 정보가 표시되며, 컴파일할 타겟을 지정하면 코드에서 사용 가능한 class를 생성합니다. 애플에선  coreML tool (python으로 제작된 converting tool)을 제공합니다. 이를 사용해서 기존의 deep learning 프레임워크에서 생성된 ML 모델을 coreML 모델로 컨버팅이 가능합니다.


    내부적으로 JOSN 형태의 ML 모델을 로드하여 앱 번들에 최적화 하여 해당 모델을 안착합니다. 그리고 사용 가능한 class를 생성합니다. ML 모델은 정확성을 높이고 사이즈를 줄이는 것을 목표로하여 생성되며, 이에 부합한 모델이 사용하기 적합한 ML 모델입니다.


'WWDC > 2017' 카테고리의 다른 글

[iOS] Visually Rich User Experiences  (0) 2017.06.21
[iOS] Advanced Animation with UIKit  (0) 2017.06.20