-
Machine LearningiOS 2021. 4. 20. 19:26
안녕하세요. 그린입니다🟢
이번 포스팅에서는 머신러닝에 대해 학습해보고 iOS 환경에서 머신러닝을 적용해보도록 하겠습니다🧑🏻💻
머신러닝
- 인공지능(AI)의 일종 분야로 초기에는 조건문을 통해 규칙을 정하고 인공지능을 구현하였는데 빠지는 조건이나 한계가 있어 기기 스스로 사례와 경험을 통해 학습하도록 한것을 머신러닝🤖
- 머신러닝 모델 생성하는 단계: training
- 머신러닝 모델 사용해서 응답 받는 단계: prediction
CoreML
- 앱에 머신러닝(CoreML) 모델을 통합하는 애플의 프레임워크
- 앱은 Core ML API / 사용자 데이터를 가지고 기기에서 학습하고 예측하고 조정함
- 모델은 사진분류 / 픽셀에서 개체 감지 등의 모델 훈련 (코드 작성이 불가능하거나 비현실적인 작업 수행)
- Xcode에서 번들로 제공되는 CreateML 앱 사용하여 모델 빌드 및 훈련
- CPU, GPU, 뉴럴 엔진 활용 메모리 및 전력을 다뤄 기기 성능 최적화
CoreML 지원 기능
- Vision: 이미지 분석
- Natural Language: 텍스트 처리
- Speech: 오디오 -> 텍스트 변환
- Sound Analysis: 오디오에서 소리 식별
CoreML Model
- .mlmodel 파일 확장자
CoreML API
- API를 직접 사용자가 설계하여 기기 학습에 대한 케이스를 사용
create ML
- 앱에서 사용할 머신러닝 모델 생성하기!
- 데이터를 가지고 모델 생성 및 학습 (패턴 학습)
- 학습을 시키고 모델이 잘 수행한다고 생각되면 Core ML을 이용하여 앱에 통합!
Image Classifier 모델 생성
- 머신러닝 모델을 훈련해 이미지 분류하고 Core ML 앱에 추가하기!
- 카테고리당 최소 10개 이미지 이상 사용
- 각 카테고리당 이미지 수 균형 맞추기
- 299 X 299 이상의 픽셀 이미지 권장
CreateML을 통한 CoreML 모델 생성 및 학습
- creatML
2. image classification 선택 후 next
3. 프로젝트명 및 설명 등 기재 후 next하여 생성
4. 훈련 및 테스트 데이터에 데이터 추가
-> 한/영 나타내고싶은 출력값 구분해서 데이터 넣기- parameters: 훈련반복횟수
- Augmentations: 이미지 확대 기능 및 회전 등 ..
5. 훈련시작
-train 버튼을 통한 훈련- 훈련중 정확성 지표
- 평가
- 훈련 100% 검증 97% 테스트 100% 성공
-학습 모델 미리보기 기능
-여기에 넣으면 예측하는지 볼 수 있음
6. 모델 저장
-Get 저장 / Xcode 내보내기 / share 공유
7. 앱에 모델 추가하기! (CreateML)
- 원하는 위치에 파일 가져오기
8. 이후 클래스에서 적용할때 모델을 인스턴스화 시켜 사용하면 끝!
Keras
- 파이썬으로 작성된 오픈소스 신경망 라이브러리
- 머신러닝을 해줄 수 있는 파이썬 라이브러리
- kerns 모델은 iOS에서 바로 사용할 수 없어 coremltools 이용해 coreML 형태로 변환 필요
- 쉽고 빠른 모델링
coremltools
- 타사 라이브러리 모델을 Core ML 형식으로 변환해주는 애플의 프레임 워크
Google Colab
- 구글에서 제공하는 Colaboratory의 약자로 코랩이라고함
- 웹 브라우저에서 파이썬 코드를 작성하고 실행할 수 있는 머신러닝등의 기능을 함
- 머신러닝 관련 라이브러리가 이미 탑재되있어 편하게 사용 (구글계정으로..) -> 구글 드라이브에 저장 (구글 드라이브 문서와 비슷)
Keras를 통한 CoreML 모델 생성 및 학습
- 파이썬으로 작성된 모델 코드 바로가기
- 해당 코드 코랩에 연결
3. 코랩으로 열기
4. 모델 학습 및 CoreML 형태로 변환 시키기
- 모델 학습환경 설정 (Keras / Tensortflow / coremltools 라이브러리 설치 및 호출)
- Dataset 생성 (학습시킬 트레이닝/테스트 데이터에 대해 구글 드라이브에 업로드하여 데이터셋 생성)
- 모델 학습 (모델 구성 및 학습을 하고 최종으로 성능 검증까지)
- CoreML 변환 (파이썬의 coremltools 라이브러리를 이용해 형태 변환)
- 변환된 CoreML 모델 파일이 구글 드라이브에 생성되어 저장되면 프로젝트에 넣어서 사용
📝 이미지 학습시에는 고성능 하드웨어가 필요하여 CPU보다 GPU로 학습시키는것이 더 효율적!
[느낀점]
우선 머신러닝에 대해 관심은 많았는데 실제로 접하고 해본적이 없기에 머신러닝 개념과 애플의 환경에서 어떻게 적용시키는지에 대해
새로운것들을 배워가는것이 너무 재밌었다. 모델 학습을 시키는 방식과 툴에 따라 기기 지원버전 / 모델의 사이즈 / 학습시간이 다 다르고 정확성도 다 다른데 어떤 차이가 있는지 따로 설정을 마음대로 해줄 수 없는것인지 궁금해져서 이부분을 찾아봐야겠다🧐
[참고자료]
https://developer.apple.com/documentation/coreml
https://developer.apple.com/documentation/coreml/core_ml_api
https://developer.apple.com/documentation/createml
https://developer.apple.com/documentation/createml/creating_an_image_classifier_model
'iOS' 카테고리의 다른 글
Run Loop (0) 2021.06.01 CI / CD (0) 2021.04.29 Core Animation (0) 2021.04.01 Homebrew & Vapor Toolbox (0) 2021.03.30 Core Graphics (0) 2021.03.29