Amazon Web Services ブログ

Category: SageMaker

自動スケーリングを使用して、Amazon SageMaker エンドポイントのロードテストおよび最適化を行う

機械学習 (ML) のトレーニング、最適化、およびデプロイを済ませたら、コンシューマーが簡単に起動でき、機械学習から予測が得られる形でホスティングすることが次のチャレンジとなります。多くのカスタマーは組織の内部や外部にコンシューマーを抱えており、予測のためのモデル (ML 推論) を利用したいと考えています。コンシューマーは、場合によっては ML スタックを理解しておらず、リアルタイムまたはバッチモードで予測してくれるシンプルな API を必要としているかもしれません。Amazon SageMaker を使用すると、Deploying a Model on Amazon SageMaker Hosting Services できるようになり、コンシューマーが HTTPS リクエストを使用して安全で簡単な API コールを起動できるエンドポイントを利用できるようになります。多くのカスタマーは、モデルが予想する適切なインプットでそのようなエンドポイントを起動する方法や、そのエンドポイントのスケーラビリティや高可用性に関心があります。 本ブログ記事では、Amazon SageMaker エンドポイントをウェブから起動する方法や、モデルをロードテストし、エンドポイントを供給するインスタンスのサイズおよび数量の正しい設定を見いだす方法を説明します。ユーザーは Amazon SageMaker の自動スケーリングで、モデルの伸縮性および可用性を確保できるとともに、モニタリングおよび対処の対象となる正しいメトリクスを選択することでコストを最適化できます。 モデルのためにエンドポイントを作成する 本ブログ記事では、分類および回帰のための教師付きのノンパラメトリック学習法である決定木を使用し、あらかじめビルドとトレーニングを済ませたモデルを使用しました。そのモデルは、UCI Machine Learning Repository の iris dataset を使用し、がく片および花弁の長さと幅に基づいてアイリスの品種を予測します。今回のイメージ分類モデルのためにモデルエンドポイントを作成しましたが、ユーザーにはご自分のエンドポイントを作成することを推奨します。ヘルプが必要な場合は、GitHub repository を参照してください。 多くの Jupyter ノートブックは scikit_bring-your_own ノートブックを先述の GitHub リポジトリに持っており、以下のパスにある SageMaker インスタンスで利用可能です。 /sample-notebooks/advanced_functionality/scikit_bring_your_own scikit_bring_your_own ノートブックを開き、エンドポイントを削除する最後のセルを除くすべてのセルを実行します。以下のイメージで示すとおり、モデルがデプロイされるノートブックセル内のインスタンスタイプ ml.m4.xlarge に注目してください。Amazon […]

Read More

Amazon SageMaker アルゴリズムのパイプ入力モードを使用する

本日は Amazon SageMaker の内蔵型アルゴリズムのためのパイプ入力モードについて紹介します。パイプ入力モードを使い、データセットが最初にダウンロードされるのではなく、トレーニングインスタンスに直接ストリーミングされます。これは、トレーニングジョブが直ぐに始まり、早く完了し、必要なディスク容量も少なくて済むという意味です。Amazon SageMakerのアルゴリズムは、高速で拡張性が高くなるように設計されています。このブログ記事では、パイプ入力モード、それがもたらす利点、トレーニングジョブにおいてそれをどのように活用できるかについて説明しています。 パイプ入力モードでは、データはディスク I/O なしで実行中にアルゴリズムコンテナに送られます。このアプローチは、長くかかるダウンロードの処理を短縮し、起動時間を大きく短縮します。それによって通常ならファイル入力モードより読込スループットも良くなります。これは、高度に最適化されたマルチスレッドバックグラウンドプロセスによって、データが Amazon S3 から取得されるからです。また、16 TB の Amazon Elastic Block Store (EBS) のボリュームサイズ制限よりもずっと大きいデータセットをトレーニングできます。 パイプモードによって以下のことが可能になります。 データがトレーニングインスタンスにダウンロードされるのではなく、ストリーミングされるため、起動時間がより短くなります。 より高性能なストリーミングエージェントによる I/O スループットの向上 実質的に無制限のデータ処理能力。 内蔵型 Amazon SageMaker アルゴリズムでファイル入力モードまたはパイプ入力モードを活用できます。大きなデータセットにはパイプモードが推奨されているとはいえ、メモリ内に収まる小さなファイルやアルゴリズムのエポック数が多い場合であっても、ファイルモードは有効です。現在、どちらのモードでもトレーニングジョブの小さい実験から、ペタバイト規模の分散型のトレーニングジョブに至るまでさまざまな使用範囲をカバーしています。 Amazon SageMakerのアルゴリズム 大半のファーストパーティのAmazon SageMakerアルゴリズムは、最適化された Protocol Buffers (プロトコルバッファー) のrecordIO フォーマットを使えば最適に動作します。このため、本リリースでは、protobuf の recordIO フォーマット用のパイプモードのみがサポートされています。以下に一覧するアルゴリズムは、Protocol Buffers (プロトコルバッファー) の recordIO にエンコードされたデータセットで使用した場合に、パイプ入力モードをサポートします。 主成分分析法 (PCA) K 平均法クラスタリング 因数分解法 潜在的ディリクレ配分法 (LDA) 線形の学習者 (分類と回帰) […]

Read More

Amazon SageMaker を使用して、より迅速に大規模な主成分分析法を実行できます

このブログ記事では、Amazon SageMaker、Spark ML、Scikit-Learn を使用した、高ディメンジョンセットでの PCA に関するパフォーマンス比較を実施します。SageMaker は一貫してより高速な計算性能を示しました。速度改善内容を確認するために、下図 (1) および (2) を参照してください。 主成分分析法 主成分分析 (PCA) とは、依然として、可能な限りより多くの情報を保持しながら、データセット内部のディメンジョナリティ (例: 機能の個数など) の低減を目的とした監督機能解除済み学習アルゴリズムです。PCA は、各列は、それ以降はお互いが独立性を有する状況となるような、1 組のデータ行列を 1 個の直交空間に線形変換するものであり、個別のカラムが対象データ内で 1 個の既知の割合を占めることができるものです。換言すれば、個別のコンポーネントが互いに無相関性のような、元の特徴の複合体である、コンポーネントと呼ばれる 1 つの新しいセットの機能を発現します。更に、これらは制限が付加されることで、第 1 コンポーネントが対象データ内で可能な限り巨大な可変率を占め、第 2 コンポーネントが第 2 番目に最大であり、そして以下も同様となることとなります。 より包括的な説明については、「https://docs.aws.amazon.com/sagemaker/latest/dg/how-pca-works.html」を参照してください。 PCA は、Exploratory Data Analysis (EDA) 用の 1 個のツールおよび 1 個の機械学習用アルゴリズム (ML) の両面でも強力です。EDA に関して、PCA はディメンジョナリティ低減および 1 件のデータ問題についての多重共線性 (マルチコ) 低減に最適です。ML 方法論の 1 つとして、異常検出 (例: […]

Read More

Amazon SageMaker で fast.ai ノートブックを実行する

fast.ai はすべての人にディープラーニング能力へのアクセスを可能にすることを目的とした組織です。彼らは fast.ai と呼ばれる人気のあるオープンソースディープラーニングフレームワークを開発しました。このテクノロジーはコンピュータビジョン、自然言語処理、構造化データ、協調フィルタリングなどドメイン内のわずか数行のコードでユーザーが最新のモデルを作成することができる使いやすいディープラーニングライブラリ PyTorch に基づいています。  彼らはまた、機械学習の経験がない開発者向けに、数週間で最先端のディープラーニングモデルをデプロイするためのライブラリの使い方を学べる非常に人気のあるオンラインコースも開講しています。 Amazon SageMaker の主な利点の 1 つは、人気のある Jupyter オープンソースノートブック形式で完全に管理された機械学習ノートブック環境を 1 クリックで提供できることです。このブログ記事では、お使いの fast.ai ベースのディープラーニングモデルをトレーニングするために、fast.ai ライブラリと Jupyter ノートブックサンプルを Amazon SageMaker でホストされたノートブックにデプロイする方法を説明します。 これは fast.ai オンラインコース経由で実行している場合、またはカスタムアプリケーションで独自の fast.ai ベースのディープラーニングモデルをビルドし、トレーニングする場合に便利です。これから、SageMaker ノートブックインスタンスでカスタム fast.ai 環境の設定と構成を自動化するために必要なすべてのステップを説明します。 ステップ 1: Amazon SageMaker ノートブックライフサイクル設定を作成する Amazon SageMaker は、追加ライブラリをノートブックインスタンスに手動でインストールする機能を備えています。しかし、ノートブックインスタンスの終了後は、これらの追加されたカスタマイズも削除されます。つまり、ノートブックインスタンスを再起動時に、手動でこれらを再度追加する必要があります。しかし、最近リリースされた Amazon SageMaker のライフサイクル設定機能では、これらのカスタマイズを自動化することで、インスタンスのライフサイクルのさまざまな段階に適用することが可能になりました。 この例では、ノートブックインスタンスが起動されるたびに、ライフサイクル設定機能を使用して fast.ai ライブラリと関連する Anaconda 環境をインストールすることで、再起動のたびに繰り返しインストールする必要がなくなりました。 Amazon SageMaker コンソール (https://console.aws.amazon.com/sagemaker/) を開きます。 左側のナビゲーションウィンドウから [Notebook]、次に [Lifecycle configurations] […]

Read More

Amazon SageMaker で量子系をシミュレートする

Amazon SageMaker は、開発者やデータサイエンティストがあらゆる規模の機械学習モデルを迅速かつ簡単に構築、訓練、およびデプロイすることを可能にする完全マネージド型サービスです。しかし、機械学習 (ML) のワークフローを能率化するだけでなく、Amazon SageMaker は科学技術向けコンピューティングタスクの大規模なスペクトルを実行したり、並列化したりするためのサーバーレスでパワフルな使いやすいコンピューティング環境も提供します。このノートブックでは、TensorFlow と Amazon SageMaker の「bring your own algorithm (BYOA)」 (独自のアルゴリズムを活用する) 機能を併用して、シンプルな量子系をシミュレートする方法についてご紹介します。 この演習を実行するにあたり、Amazon SageMaker にアクセスできる AWS アカウントと Python および TensorFlow に関する基礎知識が必要になります。 量子系の超放射: 簡単な説明 これから私たちがシミュレートする量子効果は超放射として知られています。 これは、ある一定の環境下で、独立した発光体 (個別の原子など) が自然に量子コヒーレンスを増加させ、1 つの実体として協調的に動作するという現象を示します。コヒーレンスが増大したことで、このグループが高輝度のバーストを単発で発します。このバーストは独立した粒子のグループから生じると予想される輝度の N 倍 (!) も強いものである、この場合の N とはグループの粒子の数を示します。興味深いことに、この影響は粒子との相互作用に基づくものではなく、むしろ、粒子の明視野との相互作用と対称的な性質によってのみ生じます。 以下の図では、発光プロファイルが独立型 (上のパネル) と超放射型 (下のパネル) の粒子集団で明確に異なっていることがわかります。超放射は空間的に方向を持った、短時間の高輝度パルスを生じさせます。これは従来の急激に崩壊する放出プロファイルとは異なります。 超放射は多くの様々な量子系で見られ、 提示されてきました。ここでは TensorFlow と Amazon SageMaker を使って、ダイヤモンド窒素-空孔中心の核スピン集団からの超放射をシミュレートする方法を見ていきましょう。 Amazon SageMaker における科学的コンピューティングの構造 Amazon […]

Read More

Amazon SageMaker での機械学習で、Amazon Pinpoint キャンペーンを加速

成功した多くのビジネスの中心には、顧客に対する深い理解があります。以前のブログ記事では、AWS データレイク戦略の一環として Amazon Redshift Spectrum を使用することで、全方向の顧客イニシアティブを強化する方法を説明しました。 このブログ記事では、敏捷性、コスト効率、そして AWS が顧客分析の実践を通じてどのように革新を起こすのかを実証するテーマを続けたいと考えています。みなさんの多くは、AI がどのようにして顧客イニシアティブを強化できるかを探っているでしょう。そこで、Amazon SageMaker と Amazon Pinpoint を活用したソリューションを通じて、ターゲットとするキャンペーンを機械学習 (ML) によってどのように推進できるかを実証します。 小売りの例を見てみましょう。消費者として、私たちには購入習慣の直感があります。私たちは、良い経験をした製品を再購入する傾向があります。あるいは、逆に、不満足な経験の結果として代替製品に移る可能性があります。三部作の一部である本を購入した場合、そのシリーズの次の本を購入する可能性が高くなります。スマートフォンを購入すると、近い将来にアクセサリーを購入する可能性が高くなります。 顧客の購買行動を知る能力があればどうなるでしょうか?次の購入がどうなるかを比較的高い確率で知ることができたら、どうすればいいでしょうか?私たちがこの予測能力を持っていれば、対処できる多くのことがあります。たとえば、在庫管理の効率を改善したり、マーケティングキャンペーンのパフォーマンスを向上させることができます。 このブログ記事では、Amazon SageMaker を使用してカスタムの長・短期記憶リカレントニューラルネットワーク (LSTM RNN) モデルを構築、トレーニング、使用して購入行動を予測し、予測を活用して Amazon Pinpoint によるキャンペーンを配信する方法を紹介します。 RNN は、特殊なタイプのニューラルネットワークであり、ML のアルゴリズムです。RNN は、通常、シークエンスデータと共に使用します。一般的なアプリケーションとしては、音声のテキストへの変換、言語の翻訳、¥感情分析などの自然言語処理 (NLP) の問題があります。このケースでは、少し創造的になり、UCI 機械学習リポジトリからダウンロードした 現実のオンライン小売データセット[i] の顧客取引履歴に RNN モデルを適用します。 課題 ソリューションに入る前に、こうしたプロジェクトをコンセプトから本番運用に移行する際の課題を理解してみましょう。標準的な ML プロセスを考えてみましょう。 いくつかの重要な観察があります。 このプロセスには、データエンジニアリングプロジェクトに共通のデータパイプラインが含まれているため、大規模なビッグデータの課題に直面します。このブログで紹介しているデータセットは小規模ですが、Amazon.com などの大手小売業者の類似データセットはビッグデータの規模であり、さまざまなフォーマットのバッチやストリームから集められています。モデルのパフォーマンスが向上するため ML プロジェクトには大量のデータが適していますが、データを大規模に活用するには適切なプラットフォームが必要です。AWS データレイク戦略は、運用の複雑さを最小限に抑え、コスト効率を最大化する、将来を見越したソリューションを提供することができます。AI イニシアチブだけでなく、他のデータエンジニアリングプロジェクトでも、引き続き基盤が実を結ぶことになります。 多様な活動をサポートする必要があります。多様な活動は、チームメンバーの役割やスキルセットに最も適した豊富な種類のツールの必要性につながります。データ処理、発見、大規模な機能エンジニアリングなどの活動には、Spark のようなツールが適しています。AWS では、Amazon EMR が […]

Read More

異常検出にビルトイン Amazon SageMaker Random Cut Forest アルゴリズムを使用する

本日、Amazon SageMaker 向けの最新ビルトインアルゴリズムとして、Random Cut Forest (RCF) のサポートを開始しました。RCF は監視を伴わない学習アルゴリズムで、データセット内の異常なデータポイントや外れ値を検出します。このブログ記事では異常検出に関する問題について紹介するとともに、Amazon SageMaker RCF アルゴリズムについて説明し、実世界のデータセットを使った Amazon SageMaker RCF の使用法を実演します。 異常検出は極めて重要です たとえば、いくつもの街の区画で長期間にわたり交通量のデータを収集してきたとします。交通量が急増した場合、その背後にあるのが何らかの事故なのか、一般的なラッシュアワーなのかを予測することはできますか?交通量の急増が 1 区画だけで起きているのか、複数の区画で起きているのかは重要ですか? また、1 つのクラスターにあるサーバー間にネットワークのストリームがあるとします。そのインフラストラクチャが目下 DDoS 攻撃を受けている最中なのか、またはネットワークアクティビティの増加が良好な状態であるかを自動的に見極めることはできますか? 異常とは、 よく系統立てられた、またはパターン化されたデータから逸脱する観測結果を意味します。たとえば、異常は時系列データ上の想定外の急増、周期性のある中断、または分類不能なデータポイントを示します。データセットにそうした異常なデータが含まれる場合、「通常」データはシンプルなモデルで記述されることから、機械学習タスクの複雑性を急激に増大させる可能性があります。 Amazon SageMaker Random Cut Forest アルゴリズム Amazon SageMaker Random Cut Forest (RCF) アルゴリズムはデータセット内の異常なデータポイントを検出するための監視を伴わないアルゴリズムです。特に、Amazon SageMaker の RCF アルゴリズムは 1 件の異常スコアと各データポイントを関連付けます。異常スコアの値が低ければ、データポイントが「通常」であることを意味し、スコアの値が高ければ異常があることを意味します。「低い」と「高い」の定義はアプリケーションによって異なりますが、慣例から平均スコアから 3 つの値が逸脱していた場合、異常と見なされます。 Amazon SageMaker の RCF アルゴリズムの処理ではまず、トレーニングデータからランダムなサンプルを取得することから始めます。トレーニングデータが 1 台のマシンに入りきらない可能性がある場合は、レザボアサンプリングと呼ばれる手法で、データストリームから効果的にサンプルを抽出します。その後、ランダムカットフォレストの各構成要素ツリーにサブサンプルが配分されます。各サブサンプルはそれぞれの葉が単独のデータを含む 1 つのバウンディングボックスを表すように分割されるまでランダムにバイナリツリーへと分割されていきます。入力データポイントへ割り当てられた異常スコアは、そのフォレストの平均的な深度に対し、逆比例します。詳細については、SageMaker […]

Read More

ノートブックインスタンスのトレーニングに Amazon SageMaker のローカルモードを使用する

Amazon SageMaker が最近、事前構築型の TensorFlow と MXNet コンテナを使用したローカルトレーニングのサポートを開始しました。  Amazon SageMaker はフレキシブルな機械学習プラットフォームで、機械学習モデルを本番環境に、より効果的に構築、トレーニング、およびデプロイできるようにします。  Amazon SageMaker トレーニング環境は管理されています。つまり、即時のスピンアップ、アルゴリズムコンテナのロード、Amazon S3 からのデータ取得、コードの実行、Amazon S3 への結果の出力、クラスターの解体などの処理について、ユーザーが考える必要がなくなります。  トレーニングを別々のマルチノード GPU クラスターにオフロードできる機能は大きな利点です。毎回新しいハードウェアをスピンアップすることは、反復性とセキュリティの面で良いことですが、アルゴリズムコードのテストやデバッグの際には無駄に回転させることになります。 Amazon SageMaker の深層学習コンテナを使用することで、普段通りに TensorFlow または MXNet のスクリプトを書けるようになります。しかし、今後は、これらをトレーニングとホスティングの両方の目的で、管理されている本番グレードの環境にプレビルトコンテナとしてデプロイすることになります。  これまで、こうしたコンテナは Amazon SageMaker 固有の環境でのみ使用できました。  最近これらのコンテナがオープンソース化されました。これにより、ユーザーは自身のアルゴリズムをローカルでテストするためにわずか 1 行のコードを書き換えるだけで、自分の作業環境にコンテナを取り込み、Amazon SageMaker Python SDK でカスタムコードビルトを使用できるようになるのです。  つまり、毎回新しいトレーニング用またはホスティング用のクラスターが構築されるのを待つことなく、自分の作業を反復したり、テストしたりできることを意味します。  小さなデータセットのサンプルをローカルで反復し、フルデータセットを分散してトレーニングするためにスケーリングするのが機械学習の一般的な手法です。  多くの場合、プロセス全体を再度書き込むことになるため、バグが生じないのを願うばかりです。  Amazon SageMaker のローカルモードでは、コードを 1 行書き換えるだけで、ローカルと分散されたマネージドトレーニング間をシームレスに切り替えられます。その他の動作はすべて同じです。 Amazon SageMaker Python SDK のローカルモードは、TensorFlow または MXNet エスティメーターの 1 […]

Read More

EFS ファイルシステムを Amazon SageMaker ノートブックに (ライフサイクル設定を含めて) マウントする

今回のブログでは、Amazon Elastic File System (EFS) を Amazon SageMaker ノートブックインスタンスにマウントする方法について説明します。この方法を使えば、大規模なデータセットを保存してアクセスすること、そして SageMaker ノートブックインスタンスからの機械学習スクリプトを共有することが容易になります。 Amazon SageMaker ノートブックには、Jupyter Notebook サーバーを実行している自分自身のインスタンスに高速にアクセスするための機能が用意されています。そこから、Amazon SageMaker の分散マネージドトレーニング環境にアクセスし、リアルタイムで、実用グレードのホストエンドポイントをセットアップすることができます。Amazon SageMaker の高速でスケーラブルなアルゴリズムや、構築済みディープラーニングフレームワークコンテナを使用できます。Amazon EFS はシンプルでスケーラブルなファイルストレージを提供します。これは同時に複数の AWS リソース間で共有することができます。これら 2 つを組み合わせれば、まさに自分のノートブック環境から、大規模な機械学習データセットや共有コードに簡単にアクセスできます。 現在のところ、 Amazon SageMaker のノートブックインスタンスは、5 GB の Amazon Elastic Block Store (EBS) ストレージから開始し、約 20 GB の非永続的ストレージに拡大するようになっています。さらに大きなファイルは Amazon S3 からアクセスできますが、ファイルシステムと同じほどの柔軟性は提供されていません。柔軟性と大規模なデータセットを必要とするユースケースでは、EFS をノートブックインスタンスにマウントすることにより、その要件を満たすことができます。一部の顧客はまた、すでに EFS をマウントして、ファイルを保存し、既存の EC2 インスタンスにわたって共有しています。これは EFS と Amazon SageMaker が協力できる、別の分野です。 既存の EFS […]

Read More

より高速で、より柔軟性のあるモデルを Amazon SageMaker 線形学習者でトレーニングする

本日、Amazon SageMaker は、内蔵の線形学習者アルゴリズムに対して、いくつかの機能追加を実施しました。Amazon SageMaker アルゴリズムは、労力を必要とせずに巨大なデータセットにスケールし、比類のない速度を達成できる、最新のハードウェア最適化の利点を活用できるように設計されています。Amazon SageMaker の線形学習者アルゴリズムは、線形回帰および二項分類アルゴリズムの両方を包含しています。 これらのアルゴリズムは金融、不正/リスク管理、保健、ヘルスケアにおいて広く使われています。学習者アルゴリズムの新しい機能は、トレーニングの速度を向上させ、異なるユースケースに合わせてモデルをカスタマイズしやすくするものです。例としては、不均衡クラスによる分類が含まれます。これは、ある結果が別のものよりずっとまれにしか生じないような分類です。また、回帰に特化した損失関数もあります。特定のモデルエラーに対して、他のものよりも大きなペナルティを科すことが重要な場合に対応します。 このブログでは、次の 3 つの点を扱います。 最適なモデルに対しては早期に終了して保存すること。 線形学習者モデルをカスタマイズする新しい方法。次のものが含まれます。 ヒンジ損失 (サポートベクターマシン) 分位点損失 Huber 損失 イプシロン不感応損失 クラス重み付けオプション それから、二項分類におけるパフォーマンスを向上させるためにクラス重み付けを用いる例を実際に試してみます。 早期終了 線形学習者は、確率的勾配降下法 (SGD) または Adam のような SGD の変種を用いて、モデルをトレーニングします。トレーニングでは複数回にわたってデータを処理することが求められます。これはエポックと呼ばれています。データはバッチ、ときにはミニバッチと呼ばれる塊として、メモリに読み込まれます。エポックは何回実行するべきでしょうか。理想的には、収束するまでトレーニングを行いたいところです。つまり、これ以上繰り返しても利点が増えなくなるところまでです。モデルが収束してからもエポックを実行するのは時間とメモリの無駄ですが、適切なエポック数を推測するのは、実際にトレーニングジョブを実行するまでは困難です。トレーニングのエポック数が少なすぎると、モデルの精度は本来可能な精度よりも落ちてしまいます。しかし、エポック数が多すぎると、リソースが無駄になりますし、過剰適合によってモデルの精度が悪化する可能性もあります。当て推量を避け、モデルトレーニングを最適化するために、線形学習者には 2 つの新しい機能が追加されました。自動的な早期終了と、最適なモデルの保存です。 早期終了は 2 つの基本的様式で動作します。検証セット付きと検証セットなしです。多くの場合、データはトレーニング、検証、および試験データセットに分割されます。トレーニングは損失の最適化のため、検証はハイパーパラメーターのチューニングのため、試験はモデルがまだ得ていない将来のデータに対しどの程度のパフォーマンスを出せるかを、公平に見積もるために行われます。検証データセット付きの線形学習者アルゴリズムを提供した場合、検証損失について向上が見られなくなると、モデルのトレーニングは早期に終了します。検証セットが利用できない場合、トレーニング損失について向上が見られなくなると、モデルのトレーニングは早期に終了します。 検証データセット付きの早期終了 検証データセットを利用することの大きな利点としては、トレーニングデータに対する過剰適合が起きたかどうか、そしていつ起きたかについて判断できることが挙げられます。過剰適合は、トレーニングデータへの適合性が緊密すぎる予測をモデルが与えるようになって、汎化されたパフォーマンス (まだ得ていない将来のデータに対するパフォーマンス) が低下することを指しています。下のグラフの右側は、検証データセット付きのトレーニングの典型的な進行状況を示しています。エポック 5 までは、モデルはトレーニングセットからの学習を続けており、検証セットでの成績が次第に良くなっています。しかしエポック 7~10 では、モデルがトレーニングセットへの過剰適合を起こし始めていて、検証セットでの成績が悪くなっていきます。モデルがトレーニングデータでの向上 (過剰適合) を続けていたとしても、モデルが過剰適合を始めたら、トレーニングを終了しなければなりません。そして、過剰適合が始まる直前の、最善のモデルを復元する必要もあります。これらの 2 つの機能は、線形学習者ではデフォルトでオンになっています。 早期終了のためのデフォルトのパラメーター値を下のコードに示します。早期終了の動作をさらに調整するため、値の変更を試してみてください。早期終了を完全にオフにするには、early_stopping_patience の値を実行するエポック数より大きくしてください。 early_stopping_patience=3, early_stopping_tolerance=0.001, パラメーター early_stopping_patience は、改善が見られない場合にも、トレーニングを終了するまで何回のエポックを待つかを定義します。早期に終了することにした場合でも、このパラメーターをある程度の大きさにするのは有用です。学習曲線には凹凸ができることがあるからです。改善がまだ続く場合でも、パフォーマンスが 1 ないし […]

Read More