nyancoder

WWDC 2021 - Build dynamic iOS apps with the Create ML framework 본문

WWDC/WWDC 2021

WWDC 2021 - Build dynamic iOS apps with the Create ML framework

nyancoder 2021. 8. 13. 03:38

원본 영상: https://developer.apple.com/videos/play/wwdc2021/10037/

 

  • 동적인 앱이라는 것은 사용자에게 앱의 특정 요소를 원하는 데로 설정할 수 있는 유연성을 제공하는 앱입니다.
  • 또한 동적인 앱은 다양한 사용자 요구에 가장 적합하도록 콘텐츠를 맞춤화하여 더 똑똑하고 개인화된 경험을 제공합니다.

  • 몇 가지 간단한 휴리스틱한 방법이나 미리 정의한 규칙을 통해서 경험을 제공할 수 있지만, 사용자마다 선호도가 다를 수 있으므로 모든 경우에 적합하지는 않습니다.
  • 하지만 기계 학습을 사용하면 사용자 데이터에서 직접 학습하는 모델을 만들 수 있기 때문에 보다 일반적으로 사용할 수 있고, 더 많은 사용자에게 적합합니다.

  • Mac에서 사용할 수 있는 Create ML 앱을 사용하여 데이터를 선택하고 훈련 버튼을 누르기만 하면 모델을 쉽게 생성할 수 있습니다.

  • Create ML Framework는 macOS Mojave에서부터 macOS내에서 Swift 코드로 훈련하는 기능을  제공합니다.

  • 이제는 그 프레임워크를 iOS 15 및 iPadOS 15에서 제공하여 기기에서 바로 학습할 수 있도록 제공합니다.

  • 온디바이스 모델 생성을 위해서 애플리케이션에서 직접 API를 호출할 수 있습니다.
  • 앱이 사용자로부터 학습하여 사용자에게 알맞은 기능을 제공할 수 있도록 해줍니다.
  • 마지막으로 가장 중요한 것은 사용자 데이터가 장치를 떠날 필요가 없기 때문에 개인정보가 보호됩니다.

  • Create ML에서 사용할 수 있는 다양한 작업이 있으며, 이미지, 사운드, 텍스트 분류기와 같은 인기 있는 작업 또한 제공됩니다.
  • 최근에 추가된 기능에는 Style Transfer와 손 포즈 및 동작 분류기가 제공됩니다.

  • 이러한 도구를 이용하여 앱은 이미지 분류를 통해 사용자가 좋아하는 더 많은 사진을 찾는 데 도움을 줄 수 있습니다.

  • 텍스트 분류기는 사용자가 작성한 메모에 알맞은 태그를 제안하여 메모를 빠르게 분류하는 것을 도울 수 있습니다.

  • 손동작 분류기를 통해서 특정 손동작으로 사진을 촬영하는 등의 기능을 수행하도록 할 수 있습니다.

  • 사용자 지정 사진 필터를 만드는 앱을 예로 들어 보겠습니다.

  • 이 예제 앱은 사진을 촬영한 다음 필터를 적용할 수 있습니다.

  • 머신 러닝 기능을 통해 새로운 필터를 생성할 수 있으므로, 학습할 스타일의 이미지를 촬영합니다.

  • 이처럼 스타일을 적용하는 방법을 학습하기 위해서 한 장의 스타일 이미지와 추가적인 모델 이미지 세트가 필요합니다.
  • 이미지를 사용할 것인지 비디오를 사용할 것인지를 결정해야 합니다.
  • 스타일의 강도와 밀도를 설정해야 합니다.
  • 이후에 학습을 몇 번을 반복해서 할지를 결정해야 합니다.

  • 학습이 끝나면 위의 예시처럼 학습된 스타일을 적용할 수 있습니다.

  • 이 과정을 코드로 보면 하나의 스타일 이미지와 콘텐츠 이미지 세트를 통해서 data를 생성합니다.
  • 이후 세션 매개변수를 정의하여 중간 결과물을 저장할 위치와 같은 항목들을 정합니다.
  • 마지막으로 훈련을 수행하고, 훈련이 완료되면 완성된 모델에 이미지를 넣어 스타일이 적용된 이미지를 얻습니다.

  • 지금까지 다룬 작업 외에도 iOS의 Create ML 프레임워크는 구조화된 테이블 형식 데이터에 대한 Regressor와 Classifier를 제공합니다.
  • Classifier는 훈련 데이터를 통해 대상이 어떠한 종류에 포함되는지를 예측하는 방법을 배웁니다.
  • Regressor는 Classifier와 유사하지만 종류를 예측하는 대신 숫자 값을 예측합니다.

  • iOS에서 Create ML은 각 방식에 대해 4가지의 알고리즘을 제공합니다.

  • 예를 들어 식당에서 예약을 할 수 있는 앱을 보면, 사용자의 선택을 학습하여 식당과 요리를 추천할 수 있습니다.

  • 이를 위해서 3가지의 정보를 사용할 것입니다.
  • 첫 번째는 앱이 가지고 있는 콘텐츠이며, 위의 예제 앱에서는 요리에 대한 정보가 콘텐츠에 해당됩니다.
  • 두 번째 정보는 콘텍스트이며, 사용자가 요리를 주문한 시간과 같은 정보입니다.
  • 세 번째는 상호작용이며 사용자가 주문을 한 것과 같은 행동 정보입니다.

  • 이제 학습시키는 알고리즘이 적용된 예제 앱에서 위와 같이 주문을 하면 어떤 시간에 어떤 요리를 주문하였는지를 학습합니다.

  • 이후 추천하는 요리에는 선택했던 음식이 표시됩니다.

  • 그다음 시간대를 변경해서 저녁 시간에 노란색 카레를 주문합니다.

  • 이제 저녁 시간대의 추천은 방금 주문한 노란색 카레이며, 이후 카레나 피자와 같은 지금까지 주문했던 내용과 비슷한 항목들이 표시됩니다.

  • 테이블 Regressor 또는 Classifier를 앱에 추가하는 단계는 데이터 준비, 훈련 및 예측의 세 가지 단계입니다.

  • 첫 번째인 데이터 준비 단계에서는 각 요리와 관련된 키워드를 해당 요리와 결합하여 요리와 키워드관의 관계를 알 수 있도록 하는 새 키워드를 제공합니다.
  • 해당 값은 1.0을 전달하여 단순히 키워드가 데이터 항목에 있음을 나타냅니다.

  • 그다음 사용자가 주문한 각 요리와 키워드를 추가하고, 양수 값을 지정해 줍니다.
  • 선택하지 않은 음식들은 음수 값으로 설정하여 추가해줍니다.
  • 이를 통해 모델은 사용자가 선호하는 키워드를 학습할 수 있습니다.

  • 이제 위의 데이터에 적절한 Column을 지정하여 DataFrame으로 변환합니다.

  • 마지막으로 내가 예측하려는 열이 1 또는 -1로 설정한 열임을 지정하고 모델을 학습합니다.

  • 이러한 과정에서 일반적으로 기계 학습에 대한 모범 사례를 따라야 합니다.
  • 예를 들어 항상 모델의 성능을 테스트해야 합니다.
  • 모델의 생성은 계산량이 많거나 메모리를 많이 소비하거나 추가적인 리소스를 다운로드하여야 하는 점을 앱에 통합할 때 고려하여야 합니다.

 

목차: https://nyancoder.tistory.com/2

Comments