ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Machine Learning
    iOS 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 모델 생성 및 학습

    1. 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 모델 생성 및 학습

    1. 파이썬으로 작성된 모델 코드 바로가기
    2. 해당 코드 코랩에 연결

       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

    https://coremltools.readme.io/docs/what-are-coreml-tools

    '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
Designed by Tistory.