스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
Create ML에서 향상된 머신 러닝 체험하기
Create ML로 머신 러닝 모델을 더 다양하게 활용하는 방법을 알아보세요. 이미지 이해 기능의 최신 업데이트와 다중 언어 기능을 가진 내장 BERT를 이용한 텍스트 기반의 태스크에 관해 학습해 보세요. 다중 레이블 분류를 이용해 이미지의 내용을 이해하는 모델을 훈련하는 것이 얼마나 쉬워졌는지 확인해 보세요. 또한 인터랙티브 모델 평가와 맞춤형 훈련 데이터 증강을 위한 최신 API에 관한 정보도 알려드립니다. 머신 러닝의 최신 소식을 더 알고 싶으시면 WWDC23 영상 중 '자연어 다중 언어 모델 살펴보기'와 '비동기 예측 기능으로 Core ML 통합 개선하기'를 시청하세요.
리소스
관련 비디오
WWDC23
WWDC22
-
다운로드
♪ ♪
안녕하세요, 저는 데이비드 핀리입니다 저는 Create ML 팀의 기계 학습 엔지니어죠 Create ML 앱과 프레임워크에서 저희가 몇 가지를 크게 개선했습니다 새로운 개선점에 관해 알려드리는 일이 기대되는군요 대규모 모델을 무에서부터 훈련하려면 수천 달러의 비용과 주석 달린 파일 수백만 개 그리고 전문 지식이 필요합니다 저희의 목표는 훌륭한 앱 제작 도구를 제공하는 것입니다 오버헤드 없이도 기계 학습을 쓸 수 있는 도구죠 저희는 최첨단 기술 모델을 제작하는 과정을 거쳤습니다 많은 기능을 구현하는 모델인데 사진 앱의 검색 기능이나 손쉬운 사용 메뉴의 맞춤 소리 인식 기능이 그 예죠 Create ML은 가장 최신 기술에 접근하게 해주어 큰 힘 들이지 않고 자신만의 기계 학습 경험을 구축하게 해줍니다 Create ML의 개선 사항을 먼저 살펴보겠습니다 그다음으로 다중 레이블이 붙은 장면을 이해할 수 있도록 기계 학습 모델을 구축하는 새로운 방법도 소개하겠습니다 마지막으로 보여드릴 최신 Augmentation API는 기계 학습 모델의 품질을 향상하기 위한 기능으로 데이터 훈련에 제한이 있을 때 쓸 수 있습니다 텍스트 분류 기능의 개선점부터 먼저 소개하겠습니다 텍스트 분류기란 기계 학습 태스크로서 자연어 텍스트에서 패턴을 인식하도록 설계돼 있습니다 이 모델을 훈련하기 위해서는 텍스트 표와 그에 상응하는 레이블을 제공하기만 하면 됩니다 이 예시에는 스포츠, 엔터테인먼트 자연 레이블이 있죠
전이 학습 알고리즘을 선택하여 사전 훈련된 임베딩 모델을 특징 추출기로 이용하면 됩니다 올해 저희는 새 임베딩 모델을 설계했고 레이블과 연결된 텍스트 수십억 개로 훈련했습니다 이것은 '양방향 트랜스포머 인코더 모형'으로서 줄여서 BERT라고 합니다 이 새로운 옵션은 Create ML 앱에 들어가 설정 탭의 모델 파라미터 섹션에서 찾을 수 있습니다 BERT 임베딩 모델은 이제 다중 언어를 쓸 수 있어서 훈련 데이터에 여러 언어를 포함할 수 있습니다 다중 언어 텍스트 분류기 지원과 더불어 BERT는 단일 언어 텍스트 분류기의 정확도도 높입니다 BERT의 최적 환경은 iOS 17 iPadOS 17, macOS Sonoma입니다 모든 세부 사항을 설명하는 비디오를 제공하고 있으니 '자연어 다중 언어 모델 살펴보기'라는 제목의 영상에서 더 자세한 내용을 알아보시길 바랍니다 다음으로 전이 학습을 이미지 분류 태스크에 이용하는 방법을 알려드리겠습니다 Create ML의 이미지 분류기는 '이미지 내용을 묘사하는' '최적의 레이블은 무엇이지?'라는 질문에 대답하는 모델의 제작을 돕도록 설계됐습니다 텍스트 분류기처럼 이미지 분류기는 관련 정보를 사전 훈련된 모델을 이용해 이미지에서 추출합니다 Apple 뉴럴 장면 분석기의 최신 버전을 이용하면 최소한의 데이터만으로도 최첨단 모델을 만들 수 있습니다 운영 체제 내의 이미지 이해 모델은 진화를 거듭하여 최상의 경험을 제공할 것입니다 기계 학습 연구 웹사이트에 올라간 저희 기사에서 더 많은 내용을 확인할 수 있습니다 Create ML 앱의 설정 탭에서 모델 파라미터 섹션을 보면 새로운 특징 추출기 옵션을 발견하실 겁니다
이 새 특징 추출기는 이전 버전과 비교하여 출력 임베딩 크기가 더 작습니다 전체 기능을 향상했을 뿐 아니라 분류기의 정확성을 높이고 훈련 시간을 더 단축했으며 추출된 특징을 저장하는 데 필요한 메모리 크기도 줄였습니다 Create ML의 개선 사항을 다 다뤘는데요 이제 새로운 다중 레이블 이미지 분류기를 말씀드리죠 여러분도 아시다시피 단일 레이블 이미지 분류 기능은 이미지 내용을 묘사하는 최적의 레이블을 예측하도록 설계됐죠 예를 들어 이 이미지를 강아지나 야외라고 묘사할 수 있지만 둘 중 하나를 골라야만 합니다 사물에 관심이 있다면 객체 감지기를 이용해 장면 안에 등장하는 사물의 위치를 찾을 수 있습니다 예를 들어 강아지 주변에 바운딩 박스를 설정하고 공 주변에도 하나 설정했습니다 이것도 훌륭하지만 저는 물체가 들어있는 장면에도 관심이 있습니다 여기서 제가 바운딩 박스를 이용해서 개가 공원이나 야외에 있다는 걸 나타낼 수는 없죠 바로 이때 다중 레이블 이미지 분류기를 이용하는 겁니다 이미지 속 여러 물체와 속성 레이블을 예측하게 해주죠 예를 들어 이 사진은 강아지와 장난감, 잔디, 공원을 포함합니다 Create ML을 이용해서 사진을 분류해 보죠 평소처럼 제일 먼저 할 일은 훈련 데이터를 모으는 겁니다 저는 재미 삼아서 다양한 장면의 여러 다육 식물을 감지하는 분류기를 만들기로 했습니다 예를 들면 여기 창턱에 놓인 십이지권과 염자, 알로에 화분의 사진이 있습니다 다음 사진에서는 한 사람이 선인장 화분을 들고 있고요 훈련 이미지를 모을 때 알로에만 찍힌 사진처럼 단일 레이블을 가진 이미지를 포함해도 괜찮습니다 주석은 모아서 JSON 파일에 저장해야 합니다 여러분은 각 파일에 일련의 주석을 달아놓기만 하면 됩니다
Create ML 앱에서 기계 학습 모델 제작 시범을 보여드리죠 Create ML 앱에서 새 다중 레이블 이미지분류기 템플릿을 선택합니다
다육식물 분류기라는 이름의 프로젝트를 만듭니다
그러면 설정 탭으로 넘어갑니다 먼저 훈련 데이터를 끌어서 넣으면 분류 내용과 훈련 이미지의 개수를 알 수 있습니다
또한 검증 데이터를 넣는 옵션도 있지만 지금은 우선 무작위로 나뉜 훈련 데이터만 선택할 겁니다 반복 횟수는 기본으로 설정하고 증강 옵션은 제외할 겁니다 이제 모델 설정은 끝났으니 훈련 버튼을 클릭합니다
제 Mac에서 이 모델을 훈련하는 데 몇 분밖에 걸리지 않습니다 클릭하는 즉시 이 모델은 제가 앞서 소개한 새 특징 추출기를 이용해 추출을 시작합니다 이 과정이 끝나면 앱은 분류기를 훈련하기 시작합니다 훈련 과정 동안 앱은 제 모델의 품질을 측정하는데 줄여서 mAP라고 하는 평균 정밀도 점수를 계산합니다 보통은 mAP 점수를 최대화하는 게 좋은데 제 모델이 데이터 세트의 모든 레이블에 대해 평균보다 정밀도와 재현율이 높다는 뜻이기 때문입니다 제 모델은 훈련을 마쳤고 74번만 반복하고도 수렴했습니다 mAP 점수는 훈련 세트가 97%를 검증 세트가 93%를 받았습니다 다음 단계는 테스트 데이터로 제 모델을 평가하는 것입니다
데스크탑에서 폴더를 끌어와 테스트 버튼을 누르겠습니다
테스트 데이터는 제가 모델을 훈련할 때 썼던 것과 같은 분류 레이블을 포함합니다 앱이 mAP 점수라든지 어떤 분류 레이블의 정밀도와 재현율이 가장 높고 낮은지와 같은 고차원적인 통계를 몇 개 계산했습니다 이제 메트릭스 탭에 집중해 봅시다 앱은 각 분류 레이블에 대해 계량적 분석을 합니다 False Positive나 False Negative 정밀도, 재현율과 Confidence 임곗값 등이죠 이 모델로 예측할 때는 확신도가 주어진 분류 레이블의 임곗값을 넘어야만 예측이 올바르다고 판정합니다 알로에에 대한 Confidence 임곗값을 넘어서 예측한 이미지를 살펴봅시다 예시를 하나 클릭하겠습니다
모델은 여기에 알로에가 있다고 90%의 확신도로 예측했습니다 40%인 알로에의 Confidence 임곗값을 넘은 거죠 다른 레이블에 대해서는 해당 Confidence 임곗값 아래로 확신도를 예측했습니다 다시 말해 나머지는 판정을 통과하지 못한 겁니다 다음으로 제 모델이 알로에라고 판정하지 않았지만 알로에라고 분류된 이미지를 살펴보겠습니다 False Negative 결과를 선택해 살펴볼 수 있습니다
이 이미지는 흥미로운데 더 자세히 보죠 금호선인장과 비모란선인장 뒤에 알로에가 있어서 알로에를 판정하는 데 어려움을 겪었습니다 그래도 다행히 모델이 다른 두 레이블은 옳게 판정했군요 다음은 미리보기 탭으로 넘어가겠습니다
여기에서 아직 분류하지 않은 이미지에 대한 모델의 예측을 미리 볼 수 있습니다 제가 직접 준비한 다육식물 모음이 있는데요 결과가 재미있을 겁니다
바로 맞췄죠 제 모델이 부엌에 놓인 비모란선인장과 금오모자선인장, 금호선인장을 올바르게 판정했습니다 제가 만든 모델의 품질에 꽤 만족하지만 한계를 알아보기 위해 실험을 계속하고 다양한 다육식물과 장면을 제 데이터 세트에 추가할 겁니다 지금은 일단 넘어가죠 출력 탭에서는 훈련한 모델을 디스크에 저장할 수 있습니다
예측 판정을 하기 위해 작성해야 하는 코드를 알아보죠 먼저, 집계된 Core ML에서 Vision 모델을 만듭니다 다음으로는 Vision 프레임워크로 소스 이미지를 가진 이미지 요청 핸들러를 만들고 요청을 수행합니다
마지막으로 분류 관찰 내용을 회수하여 이를 제게 의미 있는 정밀도와 재현율 값을 이용해 거릅니다 여러분이 원하는 정밀도와 재현율 값을 어떻게 정할지 궁금하시다면 WWDC 2019에 나온 영상을 꼭 시청하세요 제목은 'Vision 프레임워크에서 이미지 이해하기'입니다 넘어가기 전에 잠시 말씀드리고 싶은 게 있는데요 저희 이미지 분류기와 다중 레이블 이미지 분류기처럼 평가 탭을 개선하여 객체 감지를 위한 탐색 옵션을 넣었습니다 꼭 확인해 보세요 이제 마지막 주제로 넘어가죠 '증강을 이용해 제한된 데이터로 기계 학습 모델 훈련하기'입니다 일반화를 잘하는 모델을 만들려면 훈련 세트의 이미지에 여러 특징이 담겨있어야 합니다 다양한 조명 조건이나 방향과 배경 등이요 하지만 여러 상황 속의 이미지를 포착, 분류, 훈련하는 건 시간이 오래 걸립니다 데이터 증강 기술은 형태 변형을 적용해 기존의 훈련용 예제에서 새 예제를 생성합니다 이미지의 경우에 변형은 수평이나 수직으로 뒤집기 자르기, 대비 조절 등이 있습니다 이 예시에서는 다육식물 사진 하나로 시작해서 네 개의 변형을 만들겠습니다 뒤집기나 대비 증가하기처럼 여럿을 합칠 수도 있습니다 증강은 모델의 품질을 높일 수 있습니다 특히 훈련 데이터 세트가 적을 때 말이죠 모델의 일반화 능력을 향상하기 위해 쓸 수 있는데 장면 속 객체의 정확한 위치 같은 기타 속성을 학습하는 걸 막아주기 때문입니다 훈련 속도가 보통 느리다는 걸 고려하는 게 중요한데 이는 각 훈련을 반복할 때마다 특징 추출이 일어나기 때문입니다 아직 못 보신 분은 WWDC 2022 영상 중에서 Create ML의 컴포넌트에 관한 소개를 꼭 보시기 바랍니다 우리는 프레임워크가 트랜스포머나 추정기 등으로 맞춤형 기계 학습 모델의 제작을 돕도록 설계했습니다 올해는 새 Augmentation API를 더해 여러분만의 맞춤형 증강 파이프라인을 고안할 수 있게 했죠 SwiftUI를 이용한 경험이 있다면 이미 친숙하실지도 모릅니다 첫 단계는 Augmenter를 만드는 것으로 SwiftUI처럼 Augmenter는 결과 빌더를 사용합니다 Augmenter 본문 내에서 데이터의 증강을 위해 변형을 더할 수 있죠 Augmenter는 범용 기능으로 데이터를 이미지와 소리 외에 다른 것으로 분류할 수도 있습니다 중요한 부분은 각 변형의 입력과 출력 종류가 일치해야 한다는 것입니다 예를 들어 이미지를 입력했다면 출력물도 이미지여야 합니다 저는 이미지를 수평으로 뒤집어서 50% 확률로 증강하려고 합니다 먼저 Augmenter에 ApplyRandomly를 입력합니다 이는 주어진 확률을 가진 변형을 적용하게 됩니다 그다음에는 본문에 수평 뒤집기 트랜스포머를 더합니다 이제 Augmenter가 준비됐으니 적용된 메서드를 호출하여 증강된 결과를 만들 수 있습니다 증강을 설계할 때는 갖고 있는 데이터의 특성을 세심하게 고려해야 합니다 위아래가 뒤집힌 다육식물을 볼 일은 없겠죠 따라서 이 경우에는 수직 뒤집기 증강을 적용해선 안 됩니다 교통 표지판을 분류하려 한다고 상상해 보세요 뒤집기 증강을 적용할 때 레이블은 더 이상 이미지를 바르게 묘사하지 않을 수 있습니다 그러니 맞춤형 증강을 설계하기 전에 갖고 있는 데이터의 특성을 꼭 고려하세요 다음 단계는 Augmenter에 변형을 여러 개 더하는 겁니다
이번에는 무작위로 이미지를 회전하는 데 'UniformRandomFloating PointParameter'를 이용합니다 이 컴포넌트는 증강이 될 때마다 각도를 무작위로 생성해 냅니다 마지막으로는 무작위로 이미지를 자를 겁니다 Augmenter의 각 변형이 차례대로 적용되는 걸 주목하세요 먼저 이미지가 무작위로 뒤집힙니다 결과물은 무작위로 회전된 후 또 무작위로 잘립니다 Augmenter로 할 수 있는 일 중 극히 일부만 보여드렸는데요 여기에 저희가 제공하는 컴포넌트가 몇 개 있습니다 더 다양하게 활용하려면 어떻게 할까요? 맞춤형 변형을 만들어 이미지를 증강하는 방법의 예시를 보도록 하죠
강력한 분류기를 만들기 위해서는 다양한 장면과 환경 속의 훈련 이미지를 포착해야만 합니다 이 예시에서는 맞춤형 증강을 만들어 다육식물을 임의 장면 속의 아무 위치에 놓겠습니다
RandomImageBackground를 먼저 정의하죠 이것은 RandomTransformer라는 새 프로토콜을 따르는데 이는 트랜스포머와 유사하며 난수 생성기를 사용합니다 이 증강의 목적은 다육식물을 다양한 배경 속에 무작위로 놓는 것이므로 저는 배경 이미지를 가져오는 이니셜라이저를 만들 겁니다 RandomTransformer 프로토콜을 따르기 위해서는 적용된 메서드를 실행해야 합니다 증강을 적용할 때 첫 단계는 무작위로 배경을 선택하는 겁니다 그 후엔 배경 이미지 속에서 자르지 않게 조심하며 입력 이미지를 배치할 위치를 무작위로 선택합니다 다음은 입력 이미지를 무작위로 선택된 장소로 옮깁니다 마지막으로 무작위로 선정된 배경 위에 입력 이미지를 놓습니다 새로운 맞춤 증강을 마지막에 더해 식물을 다양한 배경에 놓기 전에 뒤집기, 회전하기와 자르기가 먼저 일어나도록 할 겁니다 이것이 제 최종 Augmenter입니다 제 Augmenter를 이용해서 분류기를 훈련하는 데 쓸 흥미로운 이미지를 만들 수 있죠 이것이 다음 단계입니다 증강 기능을 이용할 때는 업데이트 메서드를 써서 점진적으로 훈련하는 게 더 적절합니다 이를 염두에 두고 증강을 이용한 훈련의 예시를 살펴봅시다 앞서 소개된 기능에서 더 나아가 배칭과 무작위 추출 초기 종료까지 적용할 겁니다 먼저 비어있는 이미지 분류기 모델을 만듭니다 그 후 훈련 루프를 만들 겁니다 훈련 루프 첫 단계는 훈련용 이미지를 섞고 증강하는 겁니다 증강 전에 이미지를 섞어야 하는데 그래야만 각 반복 회차의 묶음이 다양한 이미지를 포함하게 됩니다 Augmenter의 결과는 비동기 시퀀스로 변형이 느리게 일어난다는 뜻입니다 배칭 메서드를 이용하면 증강의 비동기 시퀀스를 그룹으로 묶을 수 있습니다 이 경우에 저는 배치 크기를 16으로 지정했습니다 끝으로 모델에 증강된 이미지의 각 묶음을 주어 업데이트합니다 이처럼 데이터 증강 시에 업데이트 메서드를 쓰는 게 유용한 방법임을 알 수 있습니다 각각의 반복 때 새로운 세트의 이미지를 받죠 여러분의 Augmenter에 따라 업데이트 메서드는 같은 이미지를 다시 마주칠 확률이 낮습니다 이는 모델이 암기하는 대신에 일반화하도록 장려합니다 저는 반복 100회를 선택했지만 이상적으로는 검증 정확도가 더 높아지지 않을 때 훈련을 멈춰야 합니다 이 예시에 나온 훈련 정확도는 계속해서 높아지지만 보시다시피 검증 정확도는 몇 차례 반복하고 나면 떨어집니다
이는 모델이 훈련 데이터를 암기하고 있어서 새 데이터를 일반화하는 능력이 떨어지고 검증과 테스트 데이터의 결과가 더 나빠지는 걸 뜻합니다 이후에도 훈련을 지속하면 오히려 불리합니다 마지막 예시로 조기 종료를 훈련 루프에 더하겠습니다 업데이트 단계 이후에 검증 메트릭스를 계산할 수 있죠 저는 훈련을 일찍 종료하기 위해 검증 정확도를 쓰는데 이는 분류기 모델에서 잘 작동합니다 하지만 모두 여러분의 선택에 달렸습니다 검증 손실도를 쓸 수도 있고 모델의 품질을 평가하기 위해 자체 메트릭스를 고안해도 됩니다 그 후엔 훈련 루프에서 벗어납니다 다섯 번 반복하는 동안에도 정확도가 높아지지 않았을 때요 증강 이미지 분류기에 대한 설명을 이것으로 마칩니다 이 영상에 소개된 최첨단 모델은 운영 체제에 탑재되어 여러분의 앱에서 멋진 기계 학습 경험을 구현할 수 있게 합니다 모델 만드는 법의 예시도 보여드렸는데 새 다중 레이블 이미지 분류기로 장면 이해를 돕는 모델이었습니다 끝으로, 제작한 모델의 품질을 높이기 위해 맞춤형 증강 기능 넣는 법을 알려드렸습니다 여기서 마치겠습니다 Create ML로 여러분의 앱을 한 차원 더 끌어올리세요
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.