日本ディープラーニング協会の「AI for Everyone」講座をまとめてみる-2週目

# この記事について
日本ディープラーニング協会(JDLA)の初学者向けAI講座を個人的にまとめたメモです。

[記事一覧、連載の購読はこちらから。](https://hide.ac/magazines/WDkd1XSxU)

受講は無料のため、このまとめ記事で興味を持ったらぜひ本家の講座を受講してみてください。

[・DL for DX｜日本ディープラーニング協会](https://www.jdla.org/promotion/)

[・AI For Everyone （すべての人のためのAIリテラシー講座） | Coursera](https://www.coursera.org/learn/ai-for-everyone-ja)

# ・機械学習プロジェクトのワークフロー

## 例:音声認識

### 1．データの収集

沢山の人が「Alexa」と言っている音声データと、それ以外の言葉のデータを集める

### 2．モデルの訓練

入力A→出力Bのマッピングをする　(例:「Alexa」に対し「Hello」と返す)
性能が良くなるまで反復する

### 3．モデルの展開

製品として少数のテストユーザーから運用を開始する
新たに取得したデータにより、最初は思ったような結果が得られない
　例:アメリカのアクセントで訓練しているとイギリスでは認識されにくい
　　→データを戻し、モデルのメンテナンス/更新を行う

![](https://firebasestorage.googleapis.com/v0/b/hideaki-97c59.appspot.com/o/images%2F1RDyS5DGxZfw0nPKaoVhsQlhkO52%2F8csyCCgy5.png?alt=media)

## 例:自動運転車

入力A:画像→出力B:他の自動車の位置

### 1．データの収集

車の画像:入力Aデータ
車の位置:出力Bデータ　→画像上の車を長方形で囲う

### 2．モデルの訓練

最初は車以外の部分を誤認識したり、車を認識しなかったりする
性能が良くなるまで反復する

### 3．モデルの展開

新しいタイプの車(例:ゴルフカート)などはうまく検出されないかもしれない
　→ゴルフカートの写真などのデータを戻してもらい、メンテナンス/更新する

# ・データサイエンスプロジェクトのワークフロー

機械学習とデータサイエンスではやることが異なる
実用的な洞察である場合が多い、違う行動を導いてくれるような洞察

## 例:セールスファネルの最適化(マグカップの販売)

通常は、
　Webサイトに訪問→製品ページ→買い物かご→支払い

### 1．データの収集

各ユーザーのアクセス履歴を保存したデータセットがある場合
国名、時間、どのページにアクセスしたか等

### 2．データの分析

データサイエンスチームはセールスファネルについてアイデアがあるかもしれない

例:多くのユーザーが支払いページまで進んでいるが支払いまで至らない
　→海外向け送料に驚くため？→送料を製品に乗せるよう検討

例:休祝日や特定の時間帯に利用が減少する
　→ビジネスユーザーの利用減少？昼休みやシエスタ？→その時間帯の広告費用を減らすよう提案

良い洞察を得るために何度も反復する

### 3．仮説やアクションの提案

提案されたアクションを適用しWebサイトに変更を展開
　→ユーザーの行動が変わり、取得するデータも変わる

新しいデータを定期的に再分析する

## 例:製造ライン

通常は、
　粘土を混ぜる→成形→釉薬をかける→焼成→最終検査

目的は歩留まりの向上により時間や材料の無駄を削減すること

### 1．データの収集

混ぜた粘土のデータを毎回保存している場合そのデータセットが使える
粘土の種類、水の分量、温度/湿度、焼成温度/時間など

### 2．データの分析

データサイエンスチームにデータを渡す
良い洞察を得るために何度も反復する

例:粘土の水分量が少なく湿度が低い場合は焼成時にヒビが入りやすい
　→天候や時間帯に応じて焼成温度や時間を調整するよう提案

### 3．仮説やアクションの提案

データサイエンスチームから、何をどう変更したら良いか提案が出てくる
変更を展開すると新しいデータが取得されるので、定期的に再分析する

![](https://firebasestorage.googleapis.com/v0/b/hideaki-97c59.appspot.com/o/images%2F1RDyS5DGxZfw0nPKaoVhsQlhkO52%2F50WyDxMjK.png?alt=media)

# データの扱い方について

デジタルデータは多くの職務を変えている、社会のデジタル化
データサイエンスと機械学習が様々な職務にどう影響するか？

## 例:営業

・データサイエンス
　→セールスファネルの最適化(前回)

・機械学習
　→見込み客の優先づけをして自動でソートする機能

## 例:製造ラインマネージャー

・データサイエンス
　→製造ラインの最適化(前回)

・機械学習
　→目視検査の自動化

## 例:人材採用

・データサイエンス
　→採用ファネルの最適化(セールスファネルと同様)

・機械学習
　→書類選考の自動化(倫理的な問題も付随する:バイアスなく公平に扱うよう徹底する等)

すでに人材採用分野にDLが入ってきている

## 例:マーケティング

・データサイエンス
　→A/Bテストの洞察を助けたり、サイト改善の仮説やアクションを提案

・機械学習
　→ユーザーに合わせたおすすめ商品のレコメンデーション

## 例:農業

・データサイエンス
　→作物分析

土壌条件、気象条件、 市場の作物に関するデータを取得して農場の土壌の状態を維持
何を、いつ植えるのかをデータサイエンスチームに提案してもらう

・機械学習
　→精密農業

携帯で畑の写真を撮影、植物と雑草を判別し、雑草のみに適量の除草剤を正確に散布する

# AIプロジェクトの選び方（パート1）

追求するのが面白そうなAIプロジェクトをブレインストーミングするためのフレームワークについて

![](https://firebasestorage.googleapis.com/v0/b/hideaki-97c59.appspot.com/o/images%2F1RDyS5DGxZfw0nPKaoVhsQlhkO52%2FU-d_yZRBv.png?alt=media)

「AIができること」と「ビジネスにとって価値のあること」の重なる領域を見極める必要がある

AIの専門家と、その分野(ビジネス等)の専門家をチームにして意見を出し合った方が良い

## ブレインストーミングフレームワーク

3つの原則と3つのアイデア

### 1．AIが仕事を自動化して仕事を奪ってしまうことについて

→「仕事」の自動化ではなく「タスク」の自動化を考える
すべてのタスクのうち、機械学習による自動化に特に適しているタスクが１つあるとしたら、
まずはそのタスクを自動化することを考えると良い結果が得られやすい

ビジネスを見る→タスクについて考える→機械学習で自動化できるタスクが1つあるか確認する

### 2．ビジネス価値の主原動力は何か？

### 3．ビジネスの主な問題点は何か？

## ビッグデータなしに前進できる

データが増えて問題になることはほとんどないが、小さなデータセットでも前進できる

必要なデータ量は問題ごとに異なる
AIエンジニアやエキスパートと話すことで理解が深まる

サンプル数1000では不十分で、ビッグデータが必要な場合もある

# AIプロジェクトの選び方（パート2）

## プロジェクトの適正評価

技術面とビジネス面それぞれの評価が必要

![](https://firebasestorage.googleapis.com/v0/b/hideaki-97c59.appspot.com/o/images%2F1RDyS5DGxZfw0nPKaoVhsQlhkO52%2FL1kMsfGau.png?alt=media)

## 技術面の適正評価

### ・AIが希望するレベルのパフォーマンスを出せるか

AIシステムが実際に希望するレベルのパフォーマンスを出せるかどうかAIの専門家に相談する

例:95％正確な音声システムを構築したい場合

→AIの専門家に相談するか、または商業文献を読むことで実行可能かを判断できる
99%正確な必要がある画像検査システムなどは、実際に実現可能かよく精査しなければならない

### ・必要なデータはどのくらいか

求められるレベルのパフォーマンスを達成するために必要なデータ量はどれくらいか？
その量のデータを取得する方法はあるのか？

### ・エンジニアリングのタイムライン

タイムラインを考え、以下を把握する

望んでいるシステムを構築するのにどれくらい時間がかかるのか？
どれだけの人が必要か？

## ビジネス面の適正評価

想定されるプロジェクトは本当にビジネスにとって価値があるのか？
AIシステム構築によってビジネス目標を達成できるのか検討する

ビジネス目標・・・現在のビジネス改善、新規ビジネスの立ち上げ

### ・コストの削減

多くの場合、AIプロジェクトによりコスト削減が可能

例:タスクの自動化、システムの効率UP

### ・収益の増加

例:より多くの人に「買い物かご」から「支払い」に進むように促す

### ・新製品、新事業の立ち上げ

AIシステムによる新規事業の立ち上げ支援

## ビジネス面の適正評価方法の一例

プロジェクトに何ヶ月もかける前に、プロジェクトに関連する経済要素をモデル化する

スプレッドシートで財務モデルを構築し、価値を定量的に推定
　実際に節約された金額
　収益増加に関する合理的な仮定などの価値

また、第3の評価軸として、「倫理面の適正評価」も検討すべき

## 内製 vs 外注

### ・機械学習プロジェクト

内製or外注のどちらでも可能、どちらも成功例はある

### ・データサイエンスプロジェクト

外注も可能だが、一般的には内製する
自社のビジネスに対する深い知識が必要になるため

### ・業界標準がある場合は構築しない方が良い

構築するか購入するかの判断基準として、

かなり特化したもの、完全に特化したもの、独自の防御可能な優位性を獲得できるもの
　→構築した方が良い

業界標準のもの、おそらく他の会社によっても構築されているもの
　→社内で構築するよりも購入した方が効率的

「列車の前を全力疾走しないこと」

業界標準や利用可能なプラットフォームがある場合は活用する

# AIチームとの働き方

## 許容基準の指定

### 例:マグカップの画像検査

マグカップの欠陥を少なくとも95％の精度で検出することが目標
　→95％の精度がプロジェクトの許容基準

AIチームから求められるものは「精度を測定するためのデータセット」
　→良品/不良品の画像(入力A)とラベル(出力B)のセット

パフォーマンス測定用のデータセット「テストセット」も必要
　これは大きすぎる必要はない、1000枚程度の写真でよい
　より正確にはAIの専門家からテストセットの大きさについて助言をもらうと良い

### 精度(許容基準)の指定方法についての考え方

AIのパフォーマンスは統計的な方法で指定される

完璧に何かを行うAIシステムを求めるのではなく、一定の精度で動作するAIシステムが必要になる

したがって、許容基準を指定する時は、許容基準を統計的に指定する必要がある

1．平均的なパフォーマンス
2．正しい答えを得る必要がある回数の割合

上記どちらかを指定する

![](https://firebasestorage.googleapis.com/v0/b/hideaki-97c59.appspot.com/o/images%2F1RDyS5DGxZfw0nPKaoVhsQlhkO52%2F6ZCf7pzQ3.png?alt=media)

## AIチームがどのようにデータについて考えるか

AIチームには、２つのメインデータセットが必要

「訓練セット」と「テストセット」

### 訓練セット

ラベル付き写真のセット(ラベルは欠損の有無を示す)

マグカップの写真(入力A)と、期待されるマグカップの良し悪し(出力B)の両方の例を提供する

機械学習アルゴリズムは学習を行う
　→AからBへのマッピング
　→「Aを入力として適切な出力Bを計算しようとするソフトウェア」が構築される

### テストセット

訓練セットとは別の画像セットにすぎない、ラベルも同じように付いている

AIチームが学習アルゴリズムのパフォーマンスを評価する際に使用する
　→テストセットの画像をAIソフトウェアに渡し、AIソフトウェアが出力するものを確認する

例:右側３つのテストセット画像を全て「ok」と出力した場合、２つが正しいので66.7％の精度

基本的には訓練セットの方がテストセットよりも遥かに大きくなる

技術的な理由により、１つではなく２つの異なるテストセットが必要となることがある
(２つのテストセットが必要な理由は非常に技術的でこのコースの範囲を超えるため割愛)

![](https://firebasestorage.googleapis.com/v0/b/hideaki-97c59.appspot.com/o/images%2F1RDyS5DGxZfw0nPKaoVhsQlhkO52%2FUlDaNhPnY.png?alt=media)

## 落とし穴：100%の精度を期待する

### ・機械学習技術の制約

近年の機械学習技術は非常に強力だが、依然として限界はある

### ・データ不足

十分な訓練データがない場合、高いレベルの精度を得ることは困難
　→より多くのデータを収集する

### ・ラベルの誤ったデータ

データとは乱雑なものであり、ラベルが間違っている可能性がある

例:右上の緑のマグカップ
　→誤ってラベル付けされたデータを整理する

### ・曖昧なデータ

データは曖昧になることもある

例:右中段のオレンジのマグカップ
　小さな傷があるように見えるが、とても小さいため「ok」と判断されるかもしれない
　しかし、実際には欠陥とみなすべきだったりする
　→曖昧なラベルについて、工場の専門家により良い同意を得られるようにする

![](https://firebasestorage.googleapis.com/v0/b/hideaki-97c59.appspot.com/o/images%2F1RDyS5DGxZfw0nPKaoVhsQlhkO52%2FvvRAQdVtU.png?alt=media)

## 多くのAIシステムは100％の精度を達成しなくても非常に役に立つ

「達成すべき合理的なレベルの精度がどれくらいなのか？」をAIエンジニアとよく話し合うべし

よって、

1.  100％の正確さを必要としない
2.  技術面の適正評価
3.  ビジネス面の適正評価

上記に合致するものを見つけるとうまくいく

# AIチームで活用できるツールの概要

## AIツール

### ・機械学習のフレームワーク

優れたオープンソースのフレームワークがある

TensorFlow、PyTorch、Keras、MXNet、CNTK、Caffe、PaddlePaddle、Scikit-learn、R、Weka

### ・研究の共有

研究成果も「Arxiv」というサイトで自由に公開されている

### ・オープンソースレポジトリ

コードもインターネット上で共有されている

一番有名なのは「GitHub」
AI分野に限らず、オープンソースソフトウェアの事実上の格納場所となった

オープンソースソフトウェアを使用することで、ゼロから構築するよりも遥かに速く進められる

例:GitHubで「顔認識ソフトウェア」を検索すると、以下のようなWebページが見つかる

[GitHub - ageitgey/face_recognition: The world's simplest facial recognition api for Python and the command line](https://github.com/ageitgey/face_recognition)

スクロールしていくとソフトウェアに関するわかりやすい説明があり、人の顔を認識したり、顔の一部を見つけるためのソフトウェアが入手できるとわかる

![](https://firebasestorage.googleapis.com/v0/b/hideaki-97c59.appspot.com/o/images%2F1RDyS5DGxZfw0nPKaoVhsQlhkO52%2F\_\_RPPHLHg.png?alt=media)

ただし、ライセンスは必ず確認すること

## CPUとGPU

数年前、GPUが大規模なニューラルネットワークを構築するのに非常に効果的だと判明した

NVIDIAはGPUの最大手メーカーだが、他の企業も専用ハードウェアの開発を活発に進めている

例:Google、Qualcommなど

## クラウド対オンプレミス(クラウドデプロイ、オンプレミスデプロイ)

### ・クラウドデプロイ

外部サーバー＝他社のサービスをレンタルで使用して計算を行うこと

例:AmazonのAWS、MicrosoftのAzure、GoogleのGCPなど

### ・オンプレミスデプロイ

独自の計算サーバーを購入し、自社でローカルにサービスを実行すること
世界的には大半がクラウドデプロイに移行していっている

## エッジデプロイ

データが収集される場所にプロセッサを設置する

インターネット経由でデータを送信し、他の場所で処理する必要がない
　→非常に迅速なデータの処理と意思決定が可能になる

主な利点

1.  システムの応答時間を増加させる
2.  ネットワーク上に送らなければならないデータの量を削減できる

### 例:自動運転車

・クラウドデプロイの場合

1.  自動運転車からクラウドにデータを送信
2.  車を停止するかどうかを決定する
3.  メッセージを自動運転車に送り返す

上記の処理と通信には十分な時間がない場合、エッジデプロイが有効

・エッジデプロイの場合

1.  車内のコンピューターで計算

### 例:スマートスピーカー

いくつかの音声認識タスクはスマートスピーカー内蔵のプロセッサで実行される