このページでは、Earth Engine での TensorFlow の使用例を示すワークフローの例を示します。詳細については、TensorFlow のページをご覧ください。これらの例は、Earth Engine Python API と Colab Notebooks で実行される TensorFlow を使用して記述されています。
料金
DNN を使用したマルチクラス予測
「ディープ」ニューラル ネットワーク(DNN)は、1 つ以上の隠れ層を持つ人工ニューラル ネットワーク(ANN)にすぎません。この例では、単一の隠れ層を持つ非常に単純な DNN を示します。DNN はスペクトル ベクトルを入力(一度に 1 ピクセル)として受け取り、ピクセルあたり 1 つのクラスラベルとクラス確率を出力します。以下の Colab ノートブックでは、DNN の作成、Earth Engine のデータによるトレーニング、エクスポートされた画像の予測、予測の Earth Engine へのインポートを示しています。
Earth Engine での予測用にホスト可能な DNN
トレーニング済みモデルから Earth Engine で直接予測を取得するには(コードエディタなど)、Google AI Platform でモデルをホストする必要があります。このガイドでは、トレーニング済みモデルを SavedModel
形式で保存する方法、earthengine model prepare
コマンドを使用してモデルをホストする準備をする方法、ee.Model.fromAiPlatformPredictor
を使用して Earth Engine で予測をインタラクティブに取得する方法について説明します。
TensorFlow によるロジスティック回帰
ロジスティック回帰などの従来の ML 手法は、TensorFlow で実装するのが自然です。このノートブックでは、年次コンポジットの前後から、ロジスティック回帰ベースの森林伐採検出器を示します。この非常に単純なモデルはデモ目的のものであり、精度を高めるにはいくつかの隠れ層を追加してください。
FCNN を使用した回帰
「畳み込み」ニューラル ネットワーク(CNN)には、1 つ以上の畳み込みレイヤが含まれています。入力はピクセルの近傍であり、完全接続ではないネットワークになりますが、空間パターンの特定に適しています。完全畳み込みニューラル ネットワーク(FCNN)には、出力として全結合層が含まれていません。つまり、グローバル出力(画像あたり 1 つの出力)ではなく、ローカライズされた出力(ピクセル単位)を学習します。
この Colab ノートブックでは、医用画像セグメンテーション用に開発された FCNN である UNET モデルを使用して、256 x 256 ピクセルの近傍から各ピクセルの連続した [0,1] 出力を予測する方法を示します。具体的には、この例では、ネットワークをトレーニングするためにデータのパッチをエクスポートする方法と、推論のために画像パッチをオーバータイルしてタイル境界アーティファクトを排除する方法を示します。
AI Platform でのトレーニング
比較的大きなモデル(FCNN の例など)の場合、Colab ノートブックを実行する無料の仮想マシンの存続期間が、長時間実行されるトレーニング ジョブに十分でない可能性があります。具体的には、評価データセットで予測される予測誤差が最小化されていない場合は、トレーニングの反復処理を増やすことを検討してください。Cloud で大規模なトレーニング ジョブを実行するために、この Colab ノートブックでは、トレーニング コードをパッケージ化する方法、トレーニング ジョブを開始する方法、earthengine model prepare
コマンドを使用して SavedModel
を準備する方法、ee.Model.fromAiPlatformPredictor
を使用して Earth Engine で予測をインタラクティブに取得する方法について説明します。