マングローブ林は健全な生態系の重要な部分であり、人間の活動は、世界中の海岸線から徐々に姿を消している主な理由のXNUMXつです。 機械学習(ML)モデルを使用して、衛星画像からマングローブ領域を特定することで、研究者は森林のサイズを経時的に監視する効果的な方法を得ることができます。 の 第1部 このシリーズの中で、衛星データを自動化して収集し、分析する方法を示しました。 Amazon SageMakerスタジオ インタラクティブな視覚化で。 この投稿では、使用方法を示します Amazon SageMakerオートパイロット カスタムマングローブ分類器を構築するプロセスを自動化します。
オートパイロットでモデルをトレーニングする
オートパイロットは、複数のモデルを構築し、最適なモデルを選択するためのバランスの取れた方法を提供します。 最小限の労力でさまざまなデータ前処理技術とMLモデルの複数の組み合わせを作成しながら、オートパイロットは、必要に応じて、データサイエンティストにこれらのコンポーネントステップの完全な制御を提供します。
AWS SDKのXNUMXつを使用してオートパイロットを使用できます(詳細は、 オートパイロットのAPIリファレンスガイド)またはStudioを介して。 このセクションで概説されている手順に従って、Studioソリューションでオートパイロットを使用します。
- Studio Launcherページで、のプラス記号を選択します 新しい自動操縦実験.
- データを接続する選択 S3バケットを探す、トレーニングとテストのデータセットを保存したバケット名を入力します。
- データセットファイル名、で作成したトレーニングデータファイルの名前を入力します トレーニングデータを準備する のセクション 第1部.
- 出力データの場所(S3バケット)、手順2で使用したのと同じバケット名を入力します。
- データセットディレクトリ名、オートパイロットにアーティファクトを保存するバケットの下にフォルダ名を入力します。
- S3入力はマニフェストファイルですか?、選択する オフ.
- ターゲット、選択する ラベル.
- 自動デプロイ、選択する オフ.
- 下 詳細設定、用 機械学習の問題タイプ、選択する 二項分類.
- 客観的な指標、選択する AUC.
- 実験の実行方法を選択してください、選択する いいえ、パイロットを実行して、候補の定義を含むノートブックを作成します.
- 選択する 実験を作成.
実験の作成の詳細については、を参照してください。 AmazonSageMakerAutopilot実験を作成する。このステップの実行には約15分かかる場合があります。 - 完了したら、 候補世代ノートブックを開く、読み取り専用モードで新しいノートブックを開きます。
- 選択する ノートブックをインポートする ノートブックを編集可能にします。
- 画像の場合は、 データサイエンス.
- カーネル、選択する Pythonの3.
- 選択する 選択.
この自動生成されたノートブックには詳細な説明があり、従うべき実際のモデル構築タスクを完全に制御できます。 のカスタマイズされたバージョン ノート、2013年からLandsat衛星バンドを使用して分類器がトレーニングされている場合は、以下のコードリポジトリで入手できます。 notebooks/mangrove-2013.ipynb
.
モデル構築フレームワークは、データ処理ステップの一部としての機能変換と、モデル選択ステップの一部としてのハイパーパラメーター最適化(HPO)のXNUMXつの部分で構成されています。 これらのタスクに必要なすべてのアーティファクトは、自動操縦実験中に作成され、に保存されました。 Amazon シンプル ストレージ サービス (Amazon S3)。 最初のノートブックセルは、これらのアーティファクトをAmazonS3からローカルにダウンロードします アマゾンセージメーカー 検査および必要な変更のためのファイルシステム。 XNUMXつのフォルダがあります: generated_module
& sagemaker_automl
、ノートブックの実行に必要なすべてのPythonモジュールとスクリプトが保存されています。 代入、スケーリング、PCAなどのさまざまな特徴変換ステップは次のように保存されます generated_modules/candidate_data_processors/dpp*.py.
オートパイロットは、XGBoost、線形学習器、および多層パーセプトロン(MLP)アルゴリズムに基づいてXNUMXつの異なるモデルを作成します。 候補パイプラインは、機能変換オプションのXNUMXつで構成されます。 data_transformer
、およびアルゴリズム。 パイプラインはPython辞書であり、次のように定義できます。
この例では、パイプラインは次のスクリプトに従ってトレーニングデータを変換します。 generated_modules/candidate_data_processors/dpp5.py
XGBoostモデルを構築します。 ここで、オートパイロットはデータサイエンティストに完全な制御を提供します。データサイエンティストは、自動生成された機能変換とモデル選択の手順を選択したり、独自の組み合わせを構築したりできます。
これで、オートパイロットのプールにパイプラインを追加して、次のように実験を実行できます。
これは、対象分野の専門知識に基づいて、オートパイロットによって提案された候補のサブセットのみを保持して、合計実行時間を短縮することを決定できる重要なステップです。 今のところ、次のようにリストできるすべての自動操縦の提案を保持します。
候補者名 | アルゴリズム | フィーチャートランス |
dpp0-xgboost | xgブースト | dpp0.py |
dpp1-xgboost | xgブースト | dpp1.py |
dpp2-線形学習者 | 線形学習者 | dpp2.py |
dpp3-xgboost | xgブースト | dpp3.py |
dpp4-xgboost | xgブースト | dpp4.py |
dpp5-xgboost | xgブースト | dpp5.py |
dpp6-mlp | mlp | dpp6.py |
完全な自動操縦実験はXNUMXつの部分で行われます。 まず、データ変換ジョブを実行する必要があります。
これ以上変更を加えない場合、このステップはすべての候補者に対して約30分で完了するはずです。 dpp*.py
ファイル。
次のステップは、それぞれのアルゴリズムのハイパーパラメータを調整して、最適なモデルのセットを構築することです。 ハイパーパラメータは通常、静的と調整可能のXNUMXつの部分に分けられます。 静的ハイパーパラメータは、同じアルゴリズムを共有するすべての候補について、実験全体を通じて変更されません。 これらのハイパーパラメータは、辞書として実験に渡されます。 XNUMX分割交差検定スキームのXNUMXラウンドからAUCを最大化することによって最良のXGBoostモデルを選択することを選択した場合、辞書は次のコードのようになります。
調整可能なハイパーパラメータについては、範囲とスケーリングタイプを含む別のディクショナリを渡す必要があります。
ハイパーパラメータの完全なセットは、 mangrove-2013.ipynb
ノート.
XNUMXつの候補すべてを並行してテストできる実験を作成するには、マルチアルゴリズムHPOチューナーを作成します。
客観的な指標は、アルゴリズムごとに個別に定義されます。
すべての実験でハイパーパラメータの可能なすべての値を試すのは無駄です。 ベイジアン戦略を採用して、HPOチューナーを作成できます。
デフォルト設定では、オートパイロットはチューナーで250のジョブを選択して、最適なモデルを選択します。 このユースケースでは、設定するだけで十分です max_jobs=50
ハイパーパラメータの最適なセットを選択するという点で大きなペナルティなしに、時間とリソースを節約できます。 最後に、次のようにHPOジョブを送信します。
このプロセスは、ml.m80xlargeインスタンスで約5.4分かかります。 SageMakerコンソールで進行状況を監視するには、 ハイパーパラメータ調整ジョブ 下 トレーニング ナビゲーションペインに表示されます。
進行中のジョブの名前を選択することにより、各候補者のパフォーマンスなど、多くの有用な情報を視覚化できます。
最後に、次のように最適な候補のモデルパフォーマンスを比較します。
候補者 | AUC | run_time(s) |
dpp6-mlp | 0.96008 | 2711.0 |
dpp4-xgboost | 0.95236 | 385.0 |
dpp3-xgboost | 0.95095 | 202.0 |
dpp4-xgboost | 0.95069 | 458.0 |
dpp3-xgboost | 0.95015 | 361.0 |
MLPに基づく最高のパフォーマンスのモデルは、データ処理ステップのさまざまな選択肢を備えたXGBoostモデルよりもわずかに優れていますが、トレーニングにもはるかに長い時間がかかります。 使用されるハイパーパラメータの組み合わせなど、MLPモデルトレーニングに関する重要な詳細を次のように見つけることができます。
TrainingJobname | mangrove-2-notebook–211021-2016-012-500271c8 |
trainingjobstatus | 記入済みの |
finalobjectivevalue | 0.96008 |
トレーニング開始時間 | 2021-10-21 20:22:55+00:00 |
TrainingEndtime | 2021-10-21 21:08:06+00:00 |
TrainingElapsedTimeseconds | 2711 |
トレーニングジョブ定義名 | dpp6-mlp |
ドロップアウトの可能性 | 0.415778 |
埋め込みサイズ係数 | 0.849226 |
層 | 256 |
Learning_rate | 0.00013862 |
ミニバッチサイズ | 317 |
ネットワーク型 | フィードフォワード |
体重の減衰 | 1.29323e-12 |
推論パイプラインを作成する
新しいデータで推論を生成するには、SageMakerで推論パイプラインを構築して、後で呼び出して推論を生成できる最適なモデルをホストする必要があります。 SageMakerパイプラインモデルでは、コンポーネントとして、データ変換、アルゴリズム、逆ラベル変換(数値予測を非数値ラベルにマッピングする必要がある場合)のXNUMXつのコンテナーが必要です。 簡潔にするために、必要なコードの一部のみを次のスニペットに示します。 完全なコードは、 mangrove-2013.ipynb
ノート:
モデルコンテナが構築されたら、次のようにパイプラインを構築してデプロイできます。
エンドポイントの展開は、完了するまでに約10分かかります。
エンドポイントを使用してテストデータセットの推論を取得します
エンドポイントがデプロイされたら、機能B1〜B7のペイロードを使用してエンドポイントを呼び出し、画像内の各ピクセルをマングローブ(1)またはその他(0)として分類できます。
評価とプロットのためのモデル予測の後処理の詳細については、次のURLを参照してください。 notebooks/model_performance.ipynb
.
バッチ変換を使用してテストデータセットの推論を取得します
オートパイロットを使用して最高のパフォーマンスを発揮するモデルを作成したので、このモデルを推論に使用できます。 大規模なデータセットを推測するには、バッチ変換を使用する方が効率的です。 データセット全体(トレーニングとテスト)で予測を生成し、その結果を特徴に追加して、さらに分析を実行して、たとえば、予測と実績、および予測されたクラス間の特徴の分布を確認しましょう。
まず、Amazon S3で、前のデータ処理ステップからのトレーニングおよびテストデータの場所を指すマニフェストファイルを作成します。
これで、バッチ変換ジョブを作成できます。 入力トレインとテストデータセットには label
最後の列として、推論中に削除する必要があります。 それをするために、私たちは合格します InputFilter
セクションに DataProcessing
口論。 コード "$[:-2]"
最後の列を削除することを示します。 予測された出力は、さらに分析するためにソースデータと結合されます。
次のコードでは、バッチ変換ジョブの引数を作成してから、 create_transform_job
関数:
SageMakerコンソールでジョブのステータスを監視できます。
モデルのパフォーマンスを視覚化する
インド、ミャンマー、キューバ、ベトナムの地域で構成されるテストデータセットで、混同行列として最良のモデルのパフォーマンスを視覚化できるようになりました。 このモデルは、マングローブを表すピクセルの再現率が高くなっていますが、適合率は約75%にすぎません。 非マングローブまたは他のピクセルの精度は99%で、85%のリコールがあります。 モデル予測の確率カットオフを調整して、特定のユースケースに応じてそれぞれの値を調整できます。
結果は、組み込みのsmileCartモデルよりも大幅に改善されていることは注目に値します。
モデルの予測を視覚化する
最後に、マップ上の特定の領域でモデルのパフォーマンスを観察すると便利です。 次の画像では、インドとバングラデシュの国境にあるマングローブ地域が赤で描かれています。 テストデータセットに属するLandsat画像パッチからサンプリングされたポイントは、領域に重ね合わされます。各ポイントは、モデルがマングローブを表すと判断したピクセルです。 青い点はモデルによって正しく分類されていますが、黒い点はモデルによる間違いを表しています。
次の画像は、モデルがマングローブを表していないと予測したポイントのみを示しており、前の例と同じ配色になっています。 灰色の輪郭は、マングローブを含まないLandsatパッチの一部です。 画像から明らかなように、モデルは水上のポイントの分類に間違いはありませんが、マングローブを表すピクセルと通常の葉を表すピクセルを区別する際に課題に直面します。
次の画像は、ミャンマーのマングローブ地域でのモデルのパフォーマンスを示しています。
次の画像では、モデルはマングローブのピクセルをより適切に識別しています。
クリーンアップ
SageMaker推論エンドポイントは、実行したままにすると引き続きコストが発生します。 完了したら、次のようにエンドポイントを削除します。
まとめ
この一連の投稿は、GIS問題を解決するためのデータサイエンティストにエンドツーエンドのフレームワークを提供しました。 第1部 ETLプロセスと、データを視覚的に操作するための便利な方法を示しました。 パート2では、オートパイロットを使用してカスタムマングローブ分類器の構築を自動化する方法を示しました。
このフレームワークを使用して、マングローブの分類に役立つ豊富なバンドのセットを含む新しい衛星データセットを探索し、ドメイン知識を組み込むことで特徴工学を探索できます。
著者について
アンドレイ・イワノビッチ トロント大学でコンピュータサイエンスの修士号を取得し、トロント大学で工学科学プログラムを最近卒業し、ロボティクス/メカトロニクスのマイナーでマシンインテリジェンスを専攻しています。 彼はコンピュータービジョン、ディープラーニング、ロボット工学に興味があります。 彼はアマゾンでの夏のインターンシップ中にこの投稿で提示された仕事をしました。
デビッドドン アマゾンウェブサービスのデータサイエンティストです。
アルカジョティ・ミスラ AmazonLastMileTransportationのデータサイエンティストです。 彼は、地球を助ける問題を解決するためにコンピュータービジョン技術を適用することに情熱を注いでいます。 彼は非営利団体と協力するのが大好きで、 えきぴ.org.
- "
- 10
- 100
- a
- 私たちについて
- 従った
- 活動
- アルゴリズム
- アルゴリズム
- すべて
- Amazon
- Amazon Webサービス
- 間に
- 分析
- 分析論
- 分析します
- 別の
- 適用
- AREA
- 引数
- 周りに
- 自動化する
- 自動化
- 自動的に
- 利用できます
- AWS
- なぜなら
- BEST
- ブラック
- ボディ
- 国境
- ビルド
- 建物
- 構築します
- 内蔵
- 候補者
- 候補
- 場合
- 挑戦する
- 選択肢
- 選択する
- クラス
- 分類
- 分類された
- コード
- コラム
- 組み合わせ
- 組み合わせ
- コンプリート
- コンポーネント
- コンポーネント
- コンピュータ
- コンピュータサイエンス
- 混乱
- 領事
- コンテナ
- 続ける
- コントロール
- 便利
- 作ります
- 作成した
- 作成します。
- 作成
- キューバ
- カスタム
- データ
- データ処理
- データサイエンティスト
- 深いです
- によっては
- 展開します
- 展開
- 展開
- 詳細な
- 細部
- DID
- 異なります
- ディスプレイ
- ディストリビューション
- そうではありません
- ドメイン
- ダウンロード
- Drop
- 間に
- 各
- EARTH
- エコシステム
- 効果的な
- 効率的な
- 努力
- 端から端まで
- エンドポイント
- エンジニアリング
- 入力します
- 評価
- 例
- 実験
- 専門知識
- 探る
- 顔
- ファッション
- 特徴
- 特徴
- 最後に
- 名
- フォロー中
- 次
- 創業
- フレームワーク
- から
- フル
- function
- さらに
- 生成する
- 生成された
- 世代
- 卒業生
- グレー
- ガイド
- 高さ
- ことができます
- ハイ
- 認定条件
- How To
- HTTPS
- 人間
- 識別する
- 識別
- 画像
- 重要
- 改善
- include
- 含めて
- 単独で
- インド
- 情報
- インテリジェンス
- 相互作用的
- 興味がある
- IT
- ジョブ
- Jobs > Create New Job
- 参加した
- キープ
- 知識
- 既知の
- ラベル
- ラベル
- 大
- 学習
- LINE
- リスト
- ローカル
- 場所
- 場所
- 機械
- 機械学習
- 主要な
- make
- 地図
- マスターの
- マトリックス
- 問題
- メンバー
- メトリック
- ミス
- ML
- モデル
- モニター
- 他には?
- の試合に
- ミャンマー
- ナビゲーション
- 必要
- 次の
- 非営利
- ノート
- 開きます
- 最適化
- オプション
- 組織
- その他
- 自分の
- 部
- 特定の
- 情熱的な
- パッチ
- パフォーマンス
- 公演
- 実行
- パイロット
- ポイント
- ポイント
- プール
- 可能
- 投稿
- 予測
- 前
- 問題
- 問題
- プロセス
- 処理
- 演奏曲目
- 提供
- は、大阪で
- 理由は
- 最近
- 減らします
- 地域
- レギュラー
- 残る
- 倉庫
- 表す
- 表します
- 要求
- の提出が必要です
- 必要
- 研究者
- リソース
- 結果
- ロボット工学
- 職種
- ラウンド
- ラン
- ランニング
- 同じ
- 衛星
- Save
- スケーリング
- スキーム
- 科学
- 科学者
- 科学者たち
- 選択
- シリーズ
- サービス
- セッションに
- 設定
- いくつかの
- シェアする
- 表示する
- 示す
- 符号
- 重要
- 簡単な拡張で
- サイズ
- So
- 固体
- 溶液
- 解決する
- 特定の
- スタンド
- Status:
- ストレージ利用料
- 店舗
- 戦略
- 学生
- 研究
- テーマ
- 夏
- タスク
- テクニック
- 条件
- test
- ソース
- 世界
- 三
- 介して
- 全体
- 時間
- top
- トップ5
- トロント
- トレーニング
- 最適化の適用
- 変換
- 変換
- 輸送サービス
- 下
- 大学
- つかいます
- 通常
- 値
- さまざまな
- バージョン
- ビジョン
- 可視化
- 水
- ウェブ
- Webサービス
- while
- 誰
- 無し
- 仕事
- 世界
- 価値
- X
- あなたの