TensorFlow 워크플로 예시

이 페이지에는 Earth Engine에서 TensorFlow를 사용하는 방법을 보여주는 워크플로 예시가 있습니다. 자세한 내용은 TensorFlow 페이지를 참고하세요. 이 예시는 Earth Engine Python APIColab 노트북에서 실행되는 TensorFlow를 사용하여 작성되었습니다.

비용

DNN을 사용한 다중 클래스 예측

'심층' 신경망 (DNN)은 하나 이상의 숨겨진 레이어가 있는 인공 신경망 (ANN)에 불과합니다. 이 예에서는 숨겨진 레이어가 하나인 매우 간단한 DNN을 보여줍니다. DNN은 스펙트럼 벡터 (즉, 한 번에 하나의 픽셀)를 입력으로 받아 픽셀당 단일 클래스 라벨과 클래스 확률을 출력합니다. 아래 Colab 노트북에서는 DNN을 만들고, Earth Engine의 데이터로 학습시키고, 내보낸 이미지에서 예측을 실행하고, 예측을 Earth Engine으로 가져오는 방법을 보여줍니다.

Earth Engine에서 예측을 위해 호스팅 가능한 DNN

Earth Engine (예: 코드 편집기)에서 학습된 모델의 예측을 직접 가져오려면 Google AI Platform에서 모델을 호스팅해야 합니다. 이 가이드에서는 학습된 모델을 SavedModel 형식으로 저장하고, earthengine model prepare 명령어로 호스팅을 위해 모델을 준비하고, ee.Model.fromAiPlatformPredictor를 사용하여 Earth Engine에서 대화형으로 예측을 가져오는 방법을 보여줍니다.

TensorFlow 방식의 로지스틱 회귀

로지스틱 회귀와 같은 기존 머신러닝 방법은 TensorFlow에서 자연스럽게 구현할 수 있습니다. 이 노트북에서는 연간 합성 전후의 로지스틱 회귀 기반의 삼림 벌채 감지기를 보여줍니다. 이 매우 단순한 모델은 데모용으로만 제공됩니다. 더 높은 정확성을 위해 숨겨진 레이어를 몇 개 추가하세요.

FCNN을 사용한 회귀

'컨볼루션' 신경망 (CNN)에는 하나 이상의 컨볼루션 레이어가 포함되며, 여기서 입력은 픽셀의 이웃이므로 완전히 연결되지는 않지만 공간 패턴을 식별하는 데 적합한 네트워크가 됩니다. 완전 컨볼루션 신경망 (FCNN)에는 완전 연결 레이어가 출력으로 포함되지 않습니다. 즉, 전역 출력 (예: 이미지당 단일 출력)이 아닌 현지화된 출력 (예: 픽셀당)을 학습합니다.

이 Colab 노트북에서는 의학 이미지 세분화를 위해 개발된 FCNN인 UNET 모델을 사용하여 256x256 픽셀 이웃에서 각 픽셀의 연속 [0,1] 출력을 예측하는 방법을 보여줍니다. 특히 이 예에서는 네트워크를 학습시키기 위해 데이터 패치를 내보내는 방법과 추론을 위해 이미지 패치를 오버타일하여 타일 경계 아티팩트를 제거하는 방법을 보여줍니다.

AI Platform에서 학습

비교적 큰 모델 (예: FCNN 예시)의 경우 Colab 노트북이 실행되는 무료 가상 머신의 수명이 장기 실행 학습 작업에 충분하지 않을 수 있습니다. 특히 평가 데이터 세트에서 예상 예측 오류가 최소화되지 않으면 학습 반복 횟수를 늘리는 것이 좋습니다. Cloud에서 대규모 학습 작업을 실행하기 위해 이 Colab 노트북에서는 학습 코드를 패키징하고, 학습 작업을 시작하고, earthengine model prepare 명령어로 SavedModel를 준비하고, ee.Model.fromAiPlatformPredictor를 사용하여 Earth Engine에서 대화형으로 예측을 가져오는 방법을 보여줍니다.