革命のブログ

フレボワークスの社員がブログを通じて情報発信します。

AWS Solution Days 2018に参加してきました 〜Machine Learning & IoT編〜

f:id:frevo-works:20181016150440j:plain

どうも、フレボワークスの小野です。 先日、AWS Solution Days 2018というイベントに参加してきました。 本イベントは、MachineLearning & IoTトラックとAnalyticsトラックが用意されていましたが、時間が被っていたので 興味のあったMachine Learning & IoTのほうを聞いてきましたので、簡単に内容についてお話したいと思います。

執筆者のスキル

イベントに参加する前まで、機械学習は全く触ったことがありませんでした。 当初は、統計学の知識が必要というイメージが強かったので、なかなか手が出せませんでした。 まず、基礎的な知識を身に付けようと、本イベントに参加しました。

機械学習(Machine Learning)とは

一般的に機械学習のプロセスは主に以下の手順で行います。

  1. 課題の定義
  2. データ整備
  3. モデリング
  4. アプリケーションの実装

課題の定義

  • ビジネス課題の認識
  • 解決策の仮説
  • 効果の明確化

データ整備

  • データ収集
  • データ検証
  • データ分割、分類

モデリング

  • モデル構築・トレーニング
  • モデルの評価
  • 特徴量(パラメータ)の見直し

アプリケーションの実装

  • プロダクション環境にデプロイ
  • 効果検証
  • 継続的な改善

プロダクション環境にデプロイで終わりではなく、継続的な改善が必要です。 データはより多く集まるので、より正確な推論フレームワークを構築することができます。

上記のプロセスを全て独自で行うとなると、相当の労力、コストがかかります。 AWSではこの課題を解決するためのサービスがあります。それが「SageMaker」というサービスです。

SageMakerとは

機械学習モデルを迅速かつ簡単に構築、トレーニング、デプロイできるフルマネージドサービスです。 これを利用することで、データサイエンティストが機械学習の本質に注力できます。

詳しくは以下のリンクから aws.amazon.com

利用方法

SageMakerの利用方法には以下の3つあります。

  • SageMakerのビルトイン(組み込み)アルゴリズムを使う
    →学習用データが必要
  • Tensorflow/Chainer/PyTorch
    →学習用データと学習用のコードが必要
  • その他
    →学習用データ、学習用コード入りのコンテナが必要

特に組み込みを利用する場合は、統計学の知識が不要ということになります。 多少、アルゴリズムの理解は必要だとは思いますが。

あと、機械学習を行う上で必要な開発環境(jupyter notebook)も管理コンソールから簡単に構築が可能です。

jupyter.org

学習の時間を短縮したいなどの要望に対しても、高スペックなGPUのプロセッサーを搭載したP3インスタンスも提供されています。

簡単に構築済みモデルを使いたい

AWSでは構築済みのモデルを提供しているサービスがあります。

サービス 概要
Amazon Rekognition 深層学習に基づく画像認識・動画認識サービス。静止画だけはなく、動画にも対応
Amazon Translate 深層学習に基づいた高品質な多言語翻訳サービス。2018年7月に日本語が対応し英語間の翻訳が可能に。
Amazon Polly テキストをリアルな音声に変換するサービス

これらを利用すれば、簡単に学習モデルを独自のアプリケーションに組み込むことができます。

逆に言えば、上記の学習モデル以外の推論を行いたい場合は、SageMakerなどを利用して学習モデルを構築する必要があるということです。

深層学習を行いたい

深層学習を行うためのAMIが用意されています。TensorFlowの最適化もされています。

aws.amazon.com

機械学習とIoT

最近のIoTは「自律化」がトレンドになってきています。

つまり、クラウドで学習したMLモデルをエッジデバイスにデプロイすることで、デバイス側で推論し結果を活用することが可能になります。 オフライン状態でもエッジデバイス自身で学習することができます。

これらを実現するために、GreengrassというAWSのサービスをエッジデバイスに導入します。

AWS Greengrass (IoT アプリケーションをシームレスに実行) | AWS

Greengrassを利用することで以下のことが実現できます。

  • Lambdaをローカルで実行 (Lambdaはクラウドから配布)
  • ローカルでのメッセージングとLambdaのイベントトリガ
  • 機械学習の推論

Greengrassの他にもIoTに特化したサービスが提供されています。

サービス名 概要
AWS IoT Core 安全なデバイス接続とメッセージング
AWS IoT Device Management デバイスの導入、管理、ソフトウェアアップデート
AWS IoT Device Defender デバイスの監査と保護
AWS IoT Analytics IoTデータ分析とインテリジェンス
Greengrass IoTアプリケーションをシームレスに実行
Amazon FreeRTOS マイクロコントローラー向け IoT オペレーティングシステム

これらのサービスを組み合わせることで、セキュアで堅牢なIoTアプリケーションが実現できます。

さいごに

本トラックで講師の方が口酸っぱくおっしゃっていたのは、機械学習を使って何かを作るのではなくて、 ビジネス上の課題を把握し、課題解決の手段の1つとして機械学習を利用すべきということでした。

今回のイベントに参加して、機械学習に対するハードルが下がったように感じました。 まずはAmazon SageMakerを利用して機械学習に取り組むことから始めようと思います。