Amazon Web Services ブログ

Category: SageMaker

XGBoost と Amazon SageMaker を使った機械学習の簡素化

機械学習は、コンピュータビジョン、自動運転車、自然言語処理といった、これまでになかったユースケースを可能にした強力なツールです。機械学習は有望な技術ではありますが、実際に実装するとなると複雑です。このブログ記事では、XGBoost というシンプルかつパワフルで、いろんなユースケースに対応可能な機械学習ライブラリについてお話します。XGBoost を Amazon SageMaker のサンプルデータセットで実行するためのステップバイステップチュートリアルもあり、その中で、クレジットカード債務不履行になる可能性を予測するモデルの構築方法が紹介されています。 XGBoost とは ? XGBoost (extreme gradient boosting) は、勾配ブースティング木を使ったアルゴリズムを、広く普及する効率的なオープンソース使って実装するソフトウェアです。勾配ブースティングとは、より単純で弱いモデルセットの推定値を組み合わせることで、目標変数を正確に予測しようとする機械学習アルゴリズムです。決定木モデルに勾配ブースティングをスケーラブルに適用することで、XGBoost は機械学習競争の中でも非常によく機能させることができます。さらに、様々なデータタイプ、関係、および分散を確実に処理します。モデルのパフォーマンスを向上するためにチューニングできる変数であるハイパーパラメータを数多く提供できます。こうした柔軟性により、XGBoost は様々な機械学習の問題を解決できるのです。 XGBoost で扱われる問題とユースケース XGBoost が最もよく解決する問題は 3 つ、分類、回帰、そしてランク付けです。 分類分類は、入力値を取りそれを 2 つ以上のカテゴリに分類することが目標です。分類のユースケースの例として、不正検出が挙げられます。不正検出とは、トランザクションに関する情報を取得し、それが不正か否かを判断することです。XGBoost に過去のトランザクションのデータセットを与えると、不正であるか否かにかかわらず、入力トランザクションデータをそれが不正である可能性にマッピングする関数を学習します。 回帰 回帰では、入力をクラスの離散数にマッピングする代わりに、目標が数値として出力されます。回帰で使われる問題の一例は、家の売却価格の予測です。この場合、XGBoost に住宅や販売価格に関する履歴データを与えると、住宅に関するメタデータが与えられた場合に、その家の販売価格を予測する機能を習得するのです。 ランク付けクエリと一連のドキュメントが与えられたとします。ランク付けは、ドキュメントの相対的な重要性を見つけ出し、関連性に基づいて順序付けすることが目標です。ランク付けに関するユースケースの一例は、電子商取引用ウェブサイトでの商品検索です。検索結果、クリック、および購入成功例に関するデータを活用し、XGBoost をトレーニングに適用することができます。こうすることで、検索する製品の関連性スコアを示すモデルが生成されるのです。 Amazon SageMaker での XGBoost の利用 XGBoost はダウンロード可能なオープンソースライブラリで、ほとんどどこででも実行できるため、Amazon SageMaker でも使用可能です。Amazon SageMaker は、機械学習ワークフロー用のマネージド型トレーニングおよびホスティングプラットフォームです。開発者やデータサイエンティストは、Amazon SageMaker を使用して、どんなインフラストラクチャも管理することなく、機械学習モデルをトレーニングし、デプロイすることができます。Amazon SageMaker プラットフォームに、独自のトレーニングとホスティングコンテナをいつでも持ち込むことができますが、XGBoost を含む Amazon SageMaker に付属のアルゴリズムとライブラリを活用することも可能です。Amazon SageMaker で XGBoost を使う理由は、数多くあります。 すぐに使える分散型トレーニングXGBoost […]

Read More

AWS 機械学習ソリューションについて学べる新しいデジタルトレーニング

こんにちわ。 アマゾン ウェブ サービス ジャパン、プロダクトマーケティング エバンジェリストの亀田です。   今年の1月に、AWSがご提供している機械学習関連サービスの、無料のトレーニングコースについてご案内しました。このコースはクラウドのスキルを磨いたり Machine Learning (ML)を学びやすくするために提供しており、「ディープラーニングの概要 (Introduction to Deep Learning)」や「Amazon SageMaker の概要 (Introduction to Amazon SageMaker)」といった新しいコースが含まれています。   こちらの日本語版がリリースされましたので、みなさんにご案内いたします。 オンデマンドウェビナー一覧 以下のコースが日本語字幕付きで提供を開始しています。動画視聴がポップアップブロックで開始されない場合は、ブラウザのポップアップブロックを設定してください。 https://www.aws.training にて登録後、各トレーニングをご利用いただけます。 Introduction to AWS Machine Learning Services (Japanese) (日本語字幕版) Introduction to Deep Learning (Japanese) (日本語字幕版) Introduction to AWS Greengrass (Japanese) (日本語字幕版) Introduction to Artificial Intelligence (Japanese) (日本語字幕版) Introduction to […]

Read More

Amazon SageMaker の因数分解機を使った、ムービーレコメンダーを構築する

レコメンドは機械学習 (ML) の中でも最も一般的なアプリケーションのひとつです。このブログ記事では、因数分解機に基づいた動画レコメンドモデルを構築する方法を紹介します。これは組み込みアルゴリズムのひとつで、Amazon SageMaker の中でもよく使われている MovieLens データセットです。 因数分解機について 因数分解機 (Factorization Machines, FM) は、2010 年に導入された教師あり機械学習技術です ( 研究論文、PDF ) 。FM は、行列因数分解を使うと問題次元数の削減が可能なことから名付けられました。。 FM は分類や回帰に使用でき、線形回帰などの従来のアルゴリズムよりも大規模な疎データセットにおいて、計算効率がより大幅に向上できます。そのため、FM がレコメンドに広く使用されているのです。実際のレコメンドの数は非常に少ないものの ( ユーザーは利用可能なアイテム全てを評価しません )、ユーザー数とアイテム数はとても多いのが普通です。 以下に簡単な例を示します。密なユーザー行列 ( 次元 4×2 ) と密なアイテム行列 (2×4) に、疎な評価行列 ( 次元 4×4) を組み込む場合です。ご覧のように、因数の数 (2) が評価行列 (4) の列数よりも小さいです。さらに、この乗算によって、評価行列の全てのブランク値を埋めることができます。これを利用して、新しいアイテムをどのユーザーにもレコメンドすることができるのです。 出典 : data-artisans.com この記事では、FM を使用して、ムービーレコメンダーを構築します。Companion Jupyter ノートブックは Amazon S3 または Github からダウンロードできます。 MovieLens データセット […]

Read More

Amazon SageMaker 自動モデルチューニング: 機械学習のために機械学習を使用する

今日は、Amazon SageMaker 自動モデルチューニングの一般向けリリースを発表します。自動モデルチューニングは、より正確なモデルのために、ハイパーパラメータースペースを検索するのに必要になる画一的な負荷を一掃します。開発者とデータ科学者はこの機能により、自身の機械学習モデルをトレーニングおよびチューニングするための膨大な時間と手間を省くことができます。ハイパーパラメーターチューニングジョブは、完了したトレーニングジョブの結果をもとに、様々なハイパーパラメーターの組み合わせで複数のトレーニングジョブを起動します。SageMaker はベイズ最適化に基づき、私たちのトレーニングジョブのハイパーパラメーターコンビネーションを推測するため、「メタ」機械学習モデルをトレーニングします。もう少し、掘り下げていきましょう。 機械学習プロセスにおけるモデルチューニング 開発者の典型的な機械学習プロセスには、探索的データ解析 (EDA)、モデル設計、モデルトレーニング、モデル評価の 4 つのステップがあります。SageMaker ではパワフルな Jupyter ノートブックインスタンス、内蔵型アルゴリズム、サービスを使用したモデルトレーニングなどを採用することで、すでにこれら各ステップの合理化が図られています。このプロセスのトレーニングの面に注目することで、私たちは通常、データを処理し、想定した結果に照らしてモデルの予測を評価したモデルへ、そのデータを移植します。私たちは全体的な入力データの一部、評価データを、モデルのトレーニングに使用したトレーニングデータとは離しておきます。そしてこの評価データを使用して、それまで見たことのないデータでモデルの動作を検証するのです。多くのケースではアルゴリズムを選択した、あと、またはカスタムモデルを構築したあとに、入力したデータに対する最高の結果を得るために、そのアルゴリズムのハイパーパラメーターで、最も可能性のあるスペースを検索するために必要になります。 ハイパーパラメーターは基礎となるアルゴリズムの操作とモデルのパフォーマンスに及ぶ影響を管理します。たとえば、トレーニングするエポックの数、ネットワークレイヤーの数、学習率、最適化アルゴリズム、その他などです。通常、ランダムな値、または他の問題と共通の値で開始し、変更の結果が見え始めるまで、調整を繰り返します。かつて、この作業は骨の折れる手作業でした。しかし、才能溢れる研究者たちの地道な努力のおかげで、SageMaker を使用してこうした手作業による手間をほとんどすべて排除できるようになりました。ユーザーに必要なのは、チューニングするハイパーパラメーター、探索するパラメーターの範囲、予算に応じたトレーニングジョブの合計数です。実際の動作を見てみましょう。 ハイパーパラメーターのチューニング この機能のデモをご覧に入れるため、作業には標準の MNIST データセット、Apache MXNet フレームワーク、SageMaker Python SDK を使用します。下記で選択するもののすべては SageMaker example notebooks で入手できます。 まず、ノートブックインスタンス上で SageMaker Python SDK を使用し、従来の MXNet エスティメーターを作ります。 import boto3 import sagemaker from sagemaker.mxnet import MXNet role = sagemaker.get_execution_role() region = boto3.Session().region_name train_data_location = ‘s3://sagemaker-sample-data-{}/mxnet/mnist/train’.format(region) test_data_location = ‘s3://sagemaker-sample-data-{}/mxnet/mnist/test’.format(region) estimator […]

Read More

Amazon SageMaker を使用して、人口区分のために米国の国勢調査データを分析する

米国では 2018 年の中間選挙に向けて、人々は投票プロセスについてより多くの情報を求めています。このブログ記事では、有権者を理解するタスクに科学を有効に統合するために、機械学習 (ML) を適用する方法を探っています。 通常、機械学習アプリケーションでは、ラベルの付いたデータから明確なユースケースが得られます。例えば、古さや型番などデバイスの属性に基づいて、障害の可能性を予測できます。特定の結果を予測する際に監督またはガイドがあるため、これは教師あり学習と呼ばれます。 しかし、現実世界では、きれいなラベルを定義するのが難しい場合、予測する特定の結果が存在しない大規模なデータセットがしばしば存在します。適切な結果が予測するものを、正確に特定することは困難です。この種類のユースケースはしばしば探索的です。これはデータセットの作成と、どのような自然パターンが存在するかを理解することが目的です。この種類のユースケースは、教師なし学習です。この一例は、属性セットに基づいて類似の個人をグループ化する試みです。 このブログ記事で紹介するユースケースは、人口区分です。私たちは次のサイトから一般公開されている、米国の国勢調査から得られた米国の郡ごと匿名化された人口統計データを入手できます。https://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml(この製品は Census Bureau Data API を使用していますが、国勢調査局による保証または認定は行われていません)。この分析結果は、変換された特徴空間における類似した郡の自然なグループ化です。例えば、ある集団に共鳴するメッセージをハイライトすることで、類似する郡のグループに到達する方法を理解するなど、郡が所属するクラスターを活用して選挙運動を計画することが可能です。より一般的には、この技術は企業が対象を定めたマーケティングキャンペーンを作成するために、顧客やユーザー区分に対して適用できます。この種類の分析には、CA-Fresno 郡と AZ-Yuma 郡という同じグループにされた、表向きは分からない類似点を明らかにする能力があります。直感的には人口サイズや人種構成など一般的に調べられる属性が異なりますが、雇用タイプの組み合わせなど、軸に沿って調べたときには類似しています。 ブログ記事に従って、サンプルノートブックを使用してコードを実行し、データをやり取りすることができます。 この演習には 2 つの目標があります。 1) PCA と Kmeans モデリング技術を使用して教師なし学習のための Amazon SageMaker を使用したデータ科学ワークフローを説明する。 2) 有用なモデル属性を抽出するために、Amazon SageMaker 内に構築された基礎モデルにユーザーがどのようにアクセスできるかを説明する。教師なし学習から結論を引き出すことが難しい場合が往々にしてあり、PCA と Kmeans のモデルにアクセスできることが単にモデルを使用して予測を生成する以上に重要になります。 データ科学ワークフローには 4 つのメインステップがあります。 Amazon S3 からのデータの読み込み 探索的データ分析 (EDA) – データのクリーニングと探索 データのクリーニング データの可視化 特徴エンジニアリング データモデリング 次元縮退 PCA モデル属性へのアクセス PCA モデルのデプロイ 教師なしクラスタリングを使用した人口区分 […]

Read More

AWS 内部ユースケース : AWS マーケティングにおける Amazon SageMaker の評価と採用

こんにちは。AWS マーケティングデータサイエンスチームです。 高度な分析および機械学習 (ML) 技術を使用して、セールスリードのML 主導スコアリング、ML によるセグメントをターゲティング化、およびダウンストリームへのインパクト測定の計量モデルといった、AWS のお客様のライフサイクル全体にわたるビジネス上の問題解決に向けて、お客様とともに取り組みます。 アマゾン内では、各チームが独立して運営されており、独自のテクノロジースタックの選択方法や、お客様が利用する AWS サービスの採用方法に関して意思決定を行います。 これにより、各チームは各自のロードマップを管理できます。 結果、サービス評価と採用が類似したものとなって、ML の経験がまだこれからというお客様にお役に立てることでしょう。 このブログでは、Amazon SageMaker サービスの評価に関して、初めの一歩を踏み出す情報をお届けしますので、皆さまのお役に立てれば何よりです。 AWS サービスをどう利用して、ビジネス目標を達成し ML モデルを拡張するか、といった最新情報をお届けしていきます。 このブログ記事では、Amazon SageMaker を使用して、独自の ML トレーニングおよびホスティングインフラストラクチャを置き換えるための実証支援 (POC) をどう実施するか、当社の経験をシェアしたいと思います 。 当社の既存の ML インフラストラクチャは、データ処理パイプラインを管理する Amazon の内部ワークフローツールと、モデルの構築、トレーニング、およびホストのための Amazon EC2 インスタンスで構成されています。 こうしたインフラストラクチャ管理に多大な時間を費やしており、それが Amazon SageMaker サービスをより高めていく動機となりました。 POC は、Amazon SageMaker の機能と性能を調べ、インフラストラクチャの作業と運用の複雑さを最小限に抑えます。 鍵となるワークストリームは次の 3 つです。 AWS IT セキュリティチームと協力して、データセキュリティとコントロールを特定し、実装。 Amazon SageMaker の既存のMLモデルの 1 […]

Read More

Amazon SageMaker コンソールがトレーニングジョブのクローン作成サポートを開始

本日、トレーニングジョブのクローン作成機能を立ち上げましました。 Amazon SageMaker コンソール上で既存のものに基づいてトレーニングジョブを作成することがとても簡単になりました。 異なるトレーニングセットおよび同一設定を使い、 Amazon SageMaker 上で、複数のトレーニングジョブを実行するのが一般的なやり方です。 特定のハイパーパラメータや、基礎となるコンピューティングリソースを調整し、モデルを再トレーニングすることもよく行われます。 このようなシナリオでは、既存のトレーニングジョブをベースに新しいトレーニングジョブを作成することが望ましいです。こうした要件に対処するため、Amazon SageMaker は AWS 管理コンソールを使用して、既存のトレーニングジョブのクローン作成をサポートできるようになりました。 コンソールを使えば、既存のトレーニングジョブを複製するのは簡単です。 Amazon SageMaker コンソールで、左側のナビゲーションペインに表示される Training、そして Training jobs を選択してください。 そうすれば、これまでに作成した全てのトレーニングジョブのリストが表示されます。 例えば、新しいトレーニングジョブを作成したいとしましょう。 Training jobs リストの中にあるジョブ (xgboost-2018-06-05-17-19-32-703) を例とします。 同じ設定を用いて、別のデータセットに対しても xgboost-2018-06-05-17-19-32-703 トレーニングすることができます。 トレーニングジョブを最初から作成するには、Create training job を選択する代わりに、 xgboost-2018-06-05-17-19-32-703 をチェックし、Clone を選択して、Clone training job のページを開くだけです。 ジョブの設定は、元の設定 xgboost-2018-06-05-17-19-32-703 とほぼ同じです。ただし、接尾辞が元のジョブ名に自動的に追加された点が異なります。 同じトレーニングプロセスを再実行したい場合は、何も変更をせずにページの一番下にある Create training job を選択してください。 別のデータセットを使用するので、トレーニングジョブ名は好きなように変更してください。 この例では、 xgboost-mydataset を使用します。 ページ下にある […]

Read More

Amazon SageMaker のアップデート、東京リージョン、CloudFormation、Chainer、GreenGrass ML

本日、東京での AWS Summit で、Amazon SageMaker の多数のアップデートや新機能が発表されました。本日より、SageMaker が アジアパシフィック (東京) で利用可能になります!また、SageMaker は CloudFormation もサポートします。SageMaker Python SDK では、MXNet および Tensorflow に加えて、機械学習の新しいフレームワークである Chainer も利用できます。最後に、いくつかのデバイスでの Chainer モデルの実行に対するサポートが AWS Greengrass Machine Learning に追加されました。 Amazon SageMaker Chainer エスティメーター Chainer は、定評がある、柔軟で直感的な深層学習のフレームワークです。Chainer ネットワークは、ネットワークトポロジが順方向計算によって動的に定義される「Define-by-Run」スキームで動作します。これは、ネットワークのトポロジがデータとは別に定義される「定義と実行」スキームで動作する他の多くのフレームワークとは対照的です。多くの開発者は、ネイティブの Python の構造やツールでネットワークを書くことができるので、Chainer スキームを重宝しています。 幸いなことに、SageMaker で Chainer を使用することは、TensorFlow または MXNet のエスティメーターを使用するのと同じくらい簡単です実際には、既存のスクリプトを使用して、少し修正するだけで SageMaker でトレーニングすることができるので、さらに簡単かもしれません。TensorFlow または MXNet を使用する場合には、特定の署名を持つトレーニング機能を実装する必要があります。Chainer を使用する場合は、 SM_MODEL_DIR、 SM_NUM_GPUS、その他の環境変数から簡単に読み込めるので、スクリプトはより移植しやすくなります。既存のスクリプトを、 if __name__ […]

Read More

Amazon SageMaker と R の使用

このブログ記事では、Amazon SageMakerおよびRを使って、Machine Learning (ML) モデルを構築してトレーニングを受け、デプロイし、予測を見積もる方法について説明します。モデルは、殻の成長線からアワビの年齢を予測します。reticulateパッケージは、Amazon SageMaker Python SDKの R インターフェイスとして使用され、Amazon SageMaker への API コールを行います。 reticulate パッケージは、R と Python オブジェクトを相互変換し、Amazon SageMaker は ML モデルをスケールして、トレーニングやデプロイできるサーバレスのデータサイエンス環境を提供します。 このブログ記事を読み進めるには、R に関する基本的な理解が必要で、次のtidyverseパッケージに精通している必要があります。 dplyr、 readr、 stringr、および ggplot2。RStudioを使ってコードを実行します。 Rstudio は、R と連携するための統合開発環境 (IDE) です。 商用ライセンスまたはAGPLv3のライセンスを取得できます。 AWS CloudFormation の起動 Amazon SageMaker を使って、Amazon Elastic Compute Cloud (Amazon Ec2) インスタンスに Rstudio をインストール、構成、および接続するには、次のAWS CloudFormationスタックを使用します。 このスタックを起動すると、次のリソースが作成されます。 公開 Virtual Private Cloud (VPC) Amazon […]

Read More

自動スケーリングを使用して、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