クラウドエンジニア風の機械学習の学び方

こんにちは！　この記事は[機械学習をどう学んだか by 日経 xTECH ビジネスAI② Advent Calendar 2019](https://qiita.com/advent-calendar/2019/machine-learning-01)の16日目の記事です。

はじめに
---
私は勤め先でイントラプレナー（社内起業家）としてAIビジネス開発を推進しています。初めてAIと出会った当時の私は、Saleforce.comやAWSサーバレスを活用してシステムを開発するクラウドエンジニアでした。そんな私が、どのように機械学習を学んできたのかを書きます。

私が機械学習を学んできたプロセス
---
#### 【2016年】 始まりは「Docomo 雑談対話API」
私のAIに対する興味は、「AIと会話できる」という驚きから始まりました。
2016年春頃は、奇跡のような3つのクラウドサービスが世の中に出揃った時期でした。

|#  |サービス  |説明  |
|---|---|---|
|1  |Docomo 雑談対話API  |このAPIを使えば、会話するシステムを作ることができる！|
|2  |LINE Messaging API  |LINEのインターフェイスを使ったBOTを作ることができる！|
|3  |AWS Lambda と API Gateway |サーバレスでWebhookを受けたり、REST APIをコールしたりすることができる！|

この3つを見たときにクラウドエンジニアが考えることって、「docomo 雑談対話API」と「LINE Messaging API」を「AWS Lambda と API Gateway」を使ってつなぐ（下図参照）ことだと思います。たったそれだけのことで、「おはよう」といったら「今日は良い天気ですね」とそれらしい応答を返してくれるようなLINE対話BOTが作れてしまうのですから。ちなみに、その当時の私は、***今どきのAIは人間の言葉を理解できるようになっていて凄いな、と、本気で誤解***していました。

<img width="510" alt="アーキテクチャ.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271244/fdd0146f-543a-f957-d35a-1c39b05f9839.png">
この作り方は[こちらの記事](https://qiita.com/ea-yasuda/items/239e506d1905a52d97a2)にまとめてありますので、よろしければご覧になってください。（※その後、NTT Docomoが提供する雑談対話APIは2018年10月にサービス終了となり、その後継の[自然対話APIも2019年6月にサービス終了](https://dev.smt.docomo.ne.jp/?p=notice.detail&news_id=282)となりましたが、さらにその後継として雑談対話サービス「かたらい」があるようです。）

#### 【2017年】手あたり次第、AIのクラウドサービスを試す
ある程度、機械学習の勉強を進めていくと、AIが人間の言葉を理解しているわけではないなということは、私も分かってきました。日本語の文章を形態素解析で分解して、BoW（Bag of Words）でベクトルに変換して、それを機械学習で処理しているだけですからね。

クラウドエンジニアである私が次に興味を持ったのは、大手クラウドベンダー各社のAIサービスです。2016年末あたりから、まさにラッシュでした。2016年11月にSalesforce.com最大の年次イベントであるDreamforceではSalesforce Einsteinが発表されたり、2016年12月にAmazon Web Services最大の年次イベントであるre:InventではAWS Rekognitionが発表されたり、この頃は大活況でした。

ですから、手あたり次第でクラウドサービスを試してみようと考え、AWS（Amazon Web Services）、Microsoft Azure、GCP（Google Cloud Platform）、IBM Watsonなど、それぞれのサービスを一つひとつ利用／調査していきました。2017年前半時点では、Salesforce Einsteinは利用可能なものがなかったので対象外です。その時の勉強結果の表が、こちらです。（※あくまで2017年時点の個人の勉強結果だと思って見てください。正しくないところもありそうです。）

|大分類|小分類|AWS|Azure|GCP|Watson|
|---|---|---|---|---|---|---|
|IaaS|機械学習<BR>(DL以外)|Amazon Machine Learning|Azure Machine Learning|Google Prediction|-|
|IaaS|Deep<BR>Learning|Deep Learning AMI|Data Science Virtual Machine|Cloud Machine Learning|-|
|PaaS|画像解析|Amazon Rekognition|Computer Vision API, Emotion API|Google Cloud Vision API|Visual Insights /Recognition|
|PaaS|音声解析|Amazon Lex, Amazon Polly|Bing Speech API, Speaker Recognition API|Google Cloud Speech API|Speech to Text|
|PaaS|自然言語解析|Amazon Lex|Language Understanding Intelligent Service, Text Analytics API, Web Language ModelAPI, Bing Spell Check API, Academic Knowledge API|Google Cloud Natural Language API|Natural Language Classifier, Dialog, Retrieve and Rank, Text to Speech, Document Conversion, Personality Insights|

念を押しますが、この表は現在においては既に古いものになってしまっています。当時、これら一つひとつの機能や価格を調べて実サービスを試していたのですが、勉強している途中なのに***世の中では次々と新しいサービスがリリースされていってしまうので、なかなか追いつけない！***と、思い知らされました。

#### 【2018年】幅広い知識は「ディープラーニングG検定」
2018年頃は、自分が勉強している分野については少しずつ詳しい状態になっていました。ですが、勉強していない分野では用語さえ全くワカラナイ状態でもありました。少しずつお仕事でAIに関わるようになったのもこの頃で、幅広い知識を得たいと思うようになりました。

そんなとき、日本ディープラーニング協会が提供しているG検定の存在を知ったので、早速受験してみることにしました。私だけでなく、勤め先の同じチームの何名かのメンバーと一緒に受験することにしたので、「***私だけが不合格になるわけにはいかない！***」と思いまして、本気で勉強しました。結果、メンバー全員合格で一安心。

AIの歴史から始まり、機械学習やディープラーニングといったテクニカルな内容だけでなく、法律・倫理・社会動向といったテーマまで出題範囲であり幅広い知識を得ることができるので、オススメの試験です。IT業界であれば、エンジニアだけでなく営業担当にもオススメできます。この勉強によって、例えばデータサイエンティストが「多重共線性が・・・」といっているのを聞いたときに、「重回帰分析の予測が上手くいっていないんだな」と反射的に分かるようになります。技術に詳しくない人とのAIトークにも生きる知識で、営業訪問していると今でも頻繁に聞くような「レイ・カーツワイルが言うシンギュラリティなんて本当に2045年に来るのかね？」といった話題でも何でも受け答えできるようになってきます。

その後、Qiitaに[ディープラーニングG検定の出題内容についてまとめた記事](https://qiita.com/ea-yasuda/items/9831f11c189de43cb0be)を書いて周囲の人に受験をオススメしていたところ・・・今では勤め先の社内で「ディープラーニングG検定直前対策講座」という社内研修を開催する講師をやるようになりました。毎回、ディープラーニングG検定試験日の1週間前くらいに開催して、出題ポイントを解説しています。そして、独学自習していた時よりも、誰かに教えようになってからの方が、機械学習への理解が深まってきたなと実感しています。

#### 【2019年】機械学習プロジェクトキャンパス
2019年には、AIを使った新製品を作ろうと考え、勤め先のイントラプレナー（社内起業家）のプロジェクトリーダーとして活動するようになりました。ですが、PoCをやって、何かイマイチだねとなって、また新しいものに手を出して・・・というのを繰り返すようになってしまって、大苦戦。AI技術を熟知していることはもちろん重要なのですが、それだけではダメだなと思うようになりました。

そんなときに知ったのが、2019年7月に株式会社三菱ケミカルホールディングスが無償公開した[機械学習プロジェクトキャンバス](https://www.mitsubishichem-hd.co.jp/news_release/pdf/190718.pdf)というツールでした。PoCだけで終わってしまう機械学習プロジェクトは世の中にたくさんあると思うのですが、そういった事態に陥らないためのリアルな方法論がここには書かれています。私はパソコンに穴が開くんじゃないかと思うくらい、何度も読んで何度も反省しました。もちろん、自分のプロジェクトのキャンバスを作りました。

![canvas.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271244/d0f1ea59-4776-bfbf-993d-7751c289542d.jpeg)

このキャンバスには12個の枠があって、この12項目についてプロジェクトのステークホルダー全員が合意するように協議して決めていく、という使い方をするそうです。今、最もお気に入りのツールですので、こちらに別途で[解説記事（Qiita：『「機械学習プロジェクトキャンバス」がデータサイエンティストの仕事を変えそう！』）](https://qiita.com/ea-yasuda/items/b8fa464e38453a8ec7ba)を書きました。よろしければ、こちらもお読みください。

こういったツールも参考にすることで、機械学習のアルゴリズムをいじることや精度を上げることだけではなくて、***機械学習プロジェクトを成功に導けるエンジニア***になりたいと考え、日々お仕事／学習を続けています。

おわりに
---
ここまでお読み頂き、ありがとうございます。2020年も、がんばります★