Model Builder를 사용하여 Azure에서 이미지 분류 모델 학습시키기
위성 이미지에서 토지 사용을 범주화하기 위해 Model Builder를 사용하여 Azure에서 이미지 분류 모델을 학습시키는 방법을 알아봅니다.
이 자습서에서는 Model Builder를 사용하여 위성 이미지를 기반으로 토지 사용을 범주화하기 위해 C# 클래스 라이브러리를 만드는 방법을 보여 줍니다.
이 자습서에서는 다음을 수행합니다.
- 데이터 준비 및 이해
- Model Builder 구성 파일 만들기
- 시나리오 선택
- 데이터 로드
- Azure에서 실험 만들기
- 모델 학습
- 모델 평가
- 모델 사용
사전 요구 사항
- 필수 구성 요소 및 설치 지침 목록을 보려면 모델 작성기 설치 가이드를 방문하세요.
- Azure 계정. 아직 없는 경우 Azure 체험 계정을 만듭니다.
- ASP.NET 및 웹 개발 워크로드.
Model Builder 이미지 분류 개요
이 샘플은 Model Builder로 Azure에서 학습시킨 딥 러닝 모델을 사용하여 지도 위성 이미지에서 토지 사용을 범주화하는 C# 클래스 라이브러리를 만듭니다. dotnet/machinelearning-samples GitHub 리포지토리에서 이 자습서의 소스 코드를 찾을 수 있습니다.
C# 클래스 라이브러리 만들기
“LandUse”라는 C# 클래스 라이브러리를 만듭니다.
데이터 준비 및 이해
참고
이 자습서의 데이터는 다음에서 온 것입니다.
- Eurosat: 토지 사용 및 토지 피복 분류를 위한 새로운 데이터 세트 및 딥 러닝 벤치마크. Patrick Helber, Benjamin Bischke, Andreas Dengel, Damian Borth. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019년.
- EuroSAT 소개: 토지 사용 및 토지 피복 분류를 위한 새로운 데이터 세트 및 딥 러닝 벤치마크. Patrick Helber, Benjamin Bischke, Andreas Dengel. 2018 IEEE International Geoscience and Remote Sensing Symposium, 2018년.
EuroSAT 데이터 세트에는 10개의 범주(농촌, 산업, 강 등)로 나누어진 위성 이미지 컬렉션이 포함되어 있습니다. 원래 데이터 세트에는 27,000개의 이미지가 포함되어 있습니다. 편의를 위해 이 자습서에서는 이 이미지 중 2,000개만 사용합니다.
- EuroSAT 데이터 세트의 하위 집합을 다운로드하고 컴퓨터의 원하는 곳에 저장합니다.
- 압축을 풉니다.
Model Builder 구성 파일 만들기
솔루션에 Model Builder를 처음 추가하는 경우 mbconfig
파일을 만들라는 메시지가 표시됩니다. mbconfig
파일은 세션을 다시 열 수 있도록 Model Builder에서 사용자가 수행하는 모든 작업을 추적합니다.
- 솔루션 탐색기 LandUse 프로젝트를 마우스 오른쪽 단추로 클릭하고 Machine Learning 모델 추가>...를 선택합니다.
- 대화 상자에서 Model Builder 프로젝트의 이름을 LandUse로 지정하고 추가를 클릭합니다.
시나리오 선택
모델을 학습하려면 모델 작성기에서 제공하는 사용 가능한 기계 학습 시나리오 목록에서 선택해야 합니다.
이 샘플의 경우에는 작업이 이미지 분류입니다. Model Builder 도구의 시나리오 단계에서 이미지 분류 시나리오를 선택합니다.
환경 선택
Model Builder는 선택한 시나리오에 따라 다른 환경에 대한 학습을 실행할 수 있습니다.
환경으로 Azure를 선택하고 작업 영역 설정 단추를 클릭합니다.
Azure에서 실험 만들기
Azure Machine Learning 실험은 Azure에서 모델 작성기 학습을 실행하기 전에 만들어야 하는 리소스입니다.
실험은 하나 이상의 기계 학습 실행에 대한 구성 및 결과를 캡슐화합니다. 실험은 특정 작업 영역에 속합니다. 처음 실험을 만들면 해당 이름이 작업 영역에 등록됩니다. 모든 후속 실행(같은 실험 이름이 사용되는 경우)은 같은 실험의 일부로 기록됩니다. 같은 실험 이름이 사용되지 않으면 새 실험이 만들어집니다.
새 실험 만들기 대화 상자의 구독 드롭다운 목록에서 구독을 선택합니다.
작업 영역 만들기
작업 영역은 학습 실행의 일부로 생성된 모든 Azure Machine Learning 리소스 및 아티팩트에 대한 중앙 환경을 제공하는 Azure Machine Learning 리소스입니다.
새 실험 만들기 대화 상자에서 Machine Learning 작업 영역 이름 드롭다운 옆에 있는 새로 만들기 링크를 선택합니다.
새 작업 영역 만들기 대화 상자의 Machine Learning 작업 영역 이름 텍스트 상자에 “landuse-wkspc”를 입력합니다.
지역 드롭다운에서 미국 동부를 선택합니다. 지역은 작업 영역 및 리소스가 배포되는 데이터 센터의 지리적 위치입니다. 귀하 또는 귀하의 고객이 있는 위치와 가까운 위치를 선택하는 것이 좋습니다.
리소스 그룹 드롭다운 옆에 있는 새로 만들기 링크를 선택합니다.
- 새 리소스 그룹 만들기 대화 상자의 리소스 그룹 이름 텍스트 상자에 “landuse-rg”를 입력합니다.
- 확인을 선택합니다.
리소스 그룹 드롭다운에서 새로 만든 리소스 그룹을 선택합니다.
생성를 선택합니다.
프로비저닝 프로세스에 몇 분 정도가 소요됩니다. 다음 클라우드 리소스를 프로비저닝하도록 Azure에 요청이 전달됩니다.
- Azure Machine Learning 작업 영역
- Azure Storage 계정
- Azure Application Insights
- Azure Container Registry
- Azure Key Vault
프로비저닝 프로세스가 완료되면 새 실험 만들기 대화 상자의 Machine Learning 작업 영역 이름 드롭다운에서 새로 만든 작업 영역을 선택합니다.
컴퓨팅 만들기
Azure Machine Learning 컴퓨팅은 학습에 사용되는 클라우드 기반 Linux VM입니다.
- 새 실험 만들기 대화 상자에서 컴퓨팅 이름 드롭다운 옆에 있는 새로 만들기 링크를 선택합니다.
- 새 컴퓨팅 만들기 대화 상자의 컴퓨팅 이름 텍스트 상자에 “landuse-cpt”를 입력합니다.
- 컴퓨팅 크기 드롭다운에서 Standard_NC24를 선택합니다. Model Builder는 GPU에 최적화된 컴퓨팅 형식을 사용합니다. GPU 최적화 컴퓨팅 형식에 대한 자세한 내용은 NC 시리즈 Linux VM 설명서를 참조하세요.
- 생성를 선택합니다. 컴퓨팅 리소스를 프로비저닝하는 데 몇 분 정도 걸릴 수 있습니다.
- 프로비저닝 프로세스가 완료되면 새 실험 만들기 대화 상자의 컴퓨팅 이름 드롭다운에서 새로 만든 작업 영역을 선택합니다.
- 다음 단계 단추를 선택하여 데이터를 로드합니다.
데이터 로드
- Model Builder 도구의 데이터 단계에서 폴더 선택 텍스트 상자 옆에 있는 단추를 선택합니다.
- 파일 탐색기를 사용하여 이미지가 포함된 압축 해제 디렉터리를 찾아서 선택합니다.
- 다음 단계 단추를 선택하여 Model Builder 도구의 다음 단계로 이동합니다.
모델 학습
Azure에 대한 학습은 모델 작성기 이미지 분류 시나리오에만 사용할 수 있습니다. 이 모델을 학습시키는 데 사용되는 알고리즘은 ResNet50 아키텍처를 기반으로 한 심층 신경망입니다. 모델 학습 프로세스 중에 Model Builder는 ResNet50 알고리즘 및 설정을 통해 개별 모델을 학습하여 데이터 세트에 가장 적합한 모델을 찾습니다.
학습 시작
작업 영역 및 컴퓨팅 형식을 구성한 후에는 실험 만들기를 완료하고 학습을 시작합니다.
학습 시작 단추를 클릭합니다.
학습 프로세스에는 어느 정도 시간이 걸리며, 선택한 컴퓨팅 크기 및 데이터의 양에 따라 걸리는 시간이 달라질 수 있습니다. 처음 모델을 학습시킬 때는 리소스를 프로비저닝해야 하므로 학습 시간이 약간 길어질 수 있습니다. Visual Studio에서 Azure Portal에서 현재 실행을 모니터링합니다. 링크를 선택하여 실행의 진행률을 추적할 수 있습니다.
학습 프로세스 전체에서 진행률 데이터는 학습 단계의 진행률 섹션에 표시됩니다.
- 상태는 학습 프로세스의 완료 상태를 표시합니다.
- 최상의 정확도는 지금까지 Model Builder에서 찾은 가장 성능이 뛰어난 모델의 정확도를 표시합니다. 더 높은 정확도는 테스트 데이터에서 모델이 더 정확하게 예측된다는 것을 의미합니다.
- 알고리즘은 지금까지 Model Builder에서 찾은 가장 성능이 뛰어난 알고리즘의 이름을 표시합니다.
학습이 완료되면 다음 단계 단추를 선택하여 모델 평가 단계로 이동합니다.
모델 평가
학습 단계의 결과는 최상의 성능을 가진 하나의 모델이 됩니다. Model Builder 도구의 평가 단계에서 출력 섹션의 세부 정보 탭에는 알고리즘 항목의 최고 성능 모델이 사용하는 알고리즘과 최상의 모델 세부 정보에 있는 정확도 항목의 메트릭이 포함됩니다.
정확도 메트릭에 만족하지 않는 경우 모델 정확도를 개선하기 위한 몇 가지 쉬운 방법은 데이터를 더 사용하거나 기존 데이터를 보강하는 것입니다. 아니면 다음 단계 단추를 선택하여 Model Builder 도구의 최종 단계로 이동합니다.
(선택 사항) 모델 사용
이 단계에는 모델을 사용하는 데 사용할 수 있는 프로젝트 템플릿이 포함됩니다. 이 단계는 선택 사항이며 필요에 가장 적합한 모델 제공 방법을 선택할 수 있습니다.
- 콘솔 앱
- Web API
콘솔 앱
솔루션에 콘솔 앱을 추가하는 경우 프로젝트의 이름을 지정하라는 메시지가 표시됩니다.
콘솔 프로젝트의 이름을 LandUse_Console로 지정합니다.
솔루션에 추가를 클릭하여 현재 솔루션에 프로젝트를 추가합니다.
애플리케이션을 실행합니다.
프로그램에서 생성된 출력은 아래 코드 조각과 유사해야 합니다.
Predicted Label value: AnnualCrop Predicted Label scores: [0.9941197,3.3146807E-06,4.4344174E-06,0.000101028825,7.763133E-06,0.0015898133,0.0040994748,1.6308518E-06,6.265567E-05,1.0236401E-05]
Web API
솔루션에 웹 API를 추가하는 경우 프로젝트의 이름을 지정하라는 메시지가 표시됩니다.
Web API 프로젝트의 이름을 LandUse_API로 지정합니다.
솔루션에 추가를 클릭하여 현재 솔루션에 프로젝트를 추가합니다.
애플리케이션을 실행합니다.
PowerShell을 열고 PORT가 애플리케이션이 수신 대기 중인 포트인 경우 다음 코드를 입력합니다.
$body = @{ ImageSource = <Image location on your local machine> } Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
성공하면 출력이 아래 텍스트와 유사하게 표시됩니다.
output1 prediction score ------- ---------- ----- {9.508701, -3.1025503, -2.8115153, 0.31449434...} AnnualCrop {0.9941197, 3.3146807E-06, 4.4344174E-06, 0.00010102882...
리소스 정리
만든 Azure 리소스를 더 이상 사용하지 않으려는 경우 삭제합니다. 이렇게 하면 사용하지 않은 리소스가 계속 실행되어 발생하는 요금을 방지할 수 있습니다.
- Azure Portal로 이동하여 포털 메뉴에서 리소스 그룹을 선택합니다.
- 리소스 그룹 목록에서 이전에 만든 리소스 그룹을 선택합니다. 이 경우 “landuse-rg”입니다.
- 리소스 그룹 삭제를 선택합니다.
- 텍스트 상자에 리소스 그룹 이름 “landuse-rg”를 입력한 다음, Enter 키를 선택합니다.
다음 단계
이 자습서에서는 다음 방법에 대해 알아보았습니다.
- 데이터 준비 및 이해
- Model Builder 구성 파일 만들기
- 시나리오 선택
- 데이터 로드
- Azure에서 실험 만들기
- 모델 학습
- 모델 평가
- 모델 사용
다른 Model Builder 시나리오 중 하나를 사용해 보세요.
.NET