애플 문서를 보면서 이해하기
최근, 머신러닝에 대한 관심이 생겼다. 앞으로도 유망한 분야이고, 계속해서 발전해나가고 있기 때문.
앱 개발 중, 어느 정도 텀이 생겨 살짝 간을 보며 쓰는 글이다.
apple 공식 문서를 이용하여 이해하는 데 도움을 받았다.
(모두 공식 문서를 보고 이해한 개인적인 의견이 포함되어 있으며, 머신러닝에 대해 거의 지식이 없는 상태로 쓴 글)
https://developer.apple.com/documentation/coreml
(참고 : 이 링크로 들어가면 영문으로 된 애플 문서를 접할 수 있다.)
대강 머신러닝을 쉽게 도와주는 하나의 프레임워크인 것 같다. 보통 서버에서 머신러닝을 수행하는 네트워킹 시간이 존재하는 것과 물론, 데이터를 전송시키면서 보안적인 문제를 간과할 수 없다. 이를 좀 단축시켜줄 수 있고, 로컬 내에서 데이터 처리(분류, 인식 등)가 가능한다는 장점을 가진 하나의 방법이라고 생각했다. 즉, 네트워크 연결이 필요하지 않아 사용자의 데이터를 비공개로 유지해줄 수 있다는 의미.
Core ML은 이미지 분석을 위한 Vision, 텍스트 처리를 위한 Natural Language, 오디오를 텍스트로 변환하기 위한 Speech, 오디오에서 소리를 식별하기 위한 Sound Analysis를 지원한다.
애플 공식 문서에 따르면, Core ML은 신경망, 트리 앙상블, 지원 벡터 머신, 일반화 된 선형 모델을 포함한 다양한 머신 러닝 모델을 지원한다. Core ML에는 Core ML 모델 형식 (.mlmodel 파일 확장자가 있는 모델)이 필요하다.
Create ML 및 자체 데이터를 사용하면 이미지 인식, 텍스트에서 의미 추출 또는 숫자 값 간의 관계 찾기와 같은 작업을 수행하도록 사용자 지정 모델을 교육할 수도 있다. Create ML을 사용하여 훈련 된 모델은 Core ML 모델 형식이며 앱에서 사용가능하다.
Apple은 또한 이미 Core ML 모델 형식으로 된 여러 인기있는 오픈 소스 모델을 제공한다!!
(이러한 모델을 다운로드하여 앱에서 사용할 수 있다는 것!!!!! 일단 좋아보인다.)
애플 문서에는 훈련된 모델인 MarsHabitatPricer.mlmodel을 사용하여 화성의 서식지 가격을 예측하는 예제가 나와있다. 맨 위 링크로 들어가서 참고해보면 도움이 많이 될 것 같다.
물론, Core ML 을 이용하여 간편한 예측이 가능할지는 모르겠으나 항상 장점이 존재하면 단점도 같이 있는법. 제한되어 있는 부분들이 좀 많은 것 같다(모든 모델들을 다 추출해내기가 어렵다. mlmodel이라는 파일 확장자도 제한범위가 있기 때문에 잘 보고 시작을 하는게 좋을 것 같다. training이 불가능하며.. 데이터 용량도 어마해질 수도 있고.. 이 쪽에 대해서는 나도 좀 공부를 해봐야할 듯 싶다.
(나는 자연어 처리 쪽으로 먼저 보고 싶은게 있어 찾아봤기에 그 쪽을 찾아보았다.)
샘플 코드 모델에는, 질문한 것에 답하기만 있었다. 이미지 분류 쪽은 자연어 처리보다는 많으므로(사실상 자연처리 샘플은 단 한개뿐이었다..) 도움을 많이 받을 수 있을 것 같다.
여러 구글링을 통해 알게된 것은, 일단 앱 내에서 처리를 하기 위해서는 mlmodel 파일을 넣어줘야 하는데 이 파일을 직접 만들어 저장하여 원하는 프로젝트에 임포트하여 쓸 수 있다. 미리 학습된 파일을 mlmodel로 변환하여 사용.
자연어 처리에서는 자연어 텍스트들을 분석하고 createML 및 사용자 설정 모델 학습은 물론이거니와 배포도 가능하다. 다음에는 직접 기존 모델을 mlmodel로 변환 및 텍스트 분류를 해볼 예정이다.
미션에 큰 도움이 됐습니다 :) 잘 보고갑니다^^