GCPUG 鹿児島 × TFUG 鹿児島（合同ゼミ）#6 Session 1：そもそも機械学習って何でしたっけ？

GCPUG 鹿児島 × TFUG 鹿児島（合同ゼミ）
https://gcpug-kagoshima.connpass.com/event/124260/

# Session 1：そもそも機械学習って何でしたっけ？

機械学習の実用的な活用方法のヒント

## 講師

中井 悦司 さん Google

## はじめに

今日は、企業における機械学習活用のヒントについてしゃべってみる。

機械学習を企業で本当に活用することとは？いまだに世の中で答えがない世界である。

機械学習は古い技術であり、はじめはネコの画像を認識するところからはじめた。その企業がプレゼンがうまかったので、誰でも使えるのでは？と勘違いした。

いままで、企業における機械学習活用のヒントについてという答えを求められたときは、とりあえず、チームを作って勉強しろでお茶を濁してきたが。。

まだ試行錯誤なので、これが答えだ。というものはあまりない。しかし、これが答えではないか、というものが自分の中にできたのでぶちまけてみる

## 機械学習とディープラーニングの関係

本当に欲しいのは、機械学習なのかディープラーニングなのか？

AIもディープラーニングもごちゃ混ぜになっている偉い人がいる

**AI**として今世間で言われているのは、できあがったサービスのことを言われている。とくに偉い人が食いついているものは。端的に言うと、一般の人が見ると賢そう、知性を持ってそう、というサービスをAIと呼んでいる。

では、なんか賢そうと思わせるために何をすればよいか？として、見せ方を工夫するなど、賢そうにするための頑張りを今はしている。

そのための重要なテクノロジーとしてディープラーニングがあるというのは、その通り。しかし、昔の機械学習とそれほど違いはないのではないか。

### ディープラーニングは何が違うか？

非構造データに対して、高い予測性能を有する機械学習の一手法となる

AIというのは一般の人を納得させるための呼び方、とは述べたが、一般の人を納得させるためには、ディープラーニングというのはいい手法である

## 機械学習で猫を認識したという例のやつについて

今勉強している人は、あらためて2012年の論文を読んでみてほしい
https://courrier.jp/news/archives/77158/

### 論文の内容

- 静止画
- モデル
  - 複数の画像フィルターとプーリング層
  - パラメータ数は約10億
- 学習後に特定の種類の画像に強く反応する画像フィルターが存在する
  - ネコに反応するフィルターが最も強く反応する画像を合成したら、確かに猫だった。

### マーケティング

どこかの会社はマーケティングがうまい！→猫を認識する、すごい！という論調を作り出した。

### ディープラーニングが実用化された要因

- 学習アルゴリズムの研究
  - 膨大な画図のパラメータを効率的に最適化する手法
- 学習データの蓄積
  - Youtube！
- 計算リソース
  - 並列計算、GPU

また、あきらめかけていたところを地道に続けていたのはすごい

## ディープラーニングの活用方法

- 誰もやっていないことを実現するハードルは高い

- ディープラーニングですでに実現できていることを理解したうえで、既存業務の中で活用できる部分を探すとよい 
  - つまらないけど現実的である。言い換えるとディープラーニングだけで容易に新しい価値を生み出せるわけではなくて、既存業務の価値が何よりも大切。

- 既存業務に価値がないと、ディープラーニングをくっつけても価値がない

- 既存手法の調査も忘れずに。ディープラーニングを目的にしないように

## そもそも機械学習とは？

POC（実証実験）で終わるのはもう嫌だ。リアルな業務に適用したい。

## （余談）最小二乗法と機械学習の違いって？

- 最小二乗法は統計学で昔から使っているが、機械学習の最小二乗法と何が違うのか？

    **計算手法は同じだが、目的が違う**

### すべてのデータは、本質＋ノイズでできている

最小二乗法は、次数を変えれば結果はいろいろ変わる。

初期データにノイズを乗せる前のものに近いのが正解ではある。

が、世の中のデータというのは、正解が見えないものに対して答えを見つけるのはムズカシイ、哲学的

ノイズを取り除いた時にどのような線が現れるのは、一筋縄ではいかない。

推測結果を線で表した場合、もしかしたら、本来は定数の結果なのにノイズが載っているために、曲線として見えているのかもしれない

### データを分析する目的の違い
#### 統計学

- ノイズを除去して、本質に近づきたい。
  - 普遍的な真実がわかれば、結果として未来にわかる出来事が予測できるようになる

#### ビジネスにおけるデータ分析

- 過去が明らかになるだけでは不十分。
  - 未来が予測できればよく、なぜ予測できるのか？はもはやどうでもいいことである
- 大量のデータを取捨選択して、特徴量エンジニアリングを頑張ってモデルが構築できれば良い

### 反論

- 過去が明らかになるだけでも役に立つことはある
- データを理解していなければ取捨選択もできない
- 機械学習は手段であってゴールではない

---
## ここからが本題

## 現代的な機械学習の適用プロセス

### 機械学習が手段とすればそのゴールは何

- よくある言い回し
  - データからインサイト（知見）を得る
- 知見を得る？
  - **ユーザーにより良いビジネス判断をしてもらうための情報を提供する**ことが本当の目的のはず

### 現代的な機械学習の適用プロセス

- 過去データの分析
  - 過去データに基づく情報提供

データサイエンティストとユーザーで二人三極することがよいのではないか

以下の書籍が参考になる。
[「Data Scientist on the Cloud Platform」](https://www.amazon.co.jp/Data-Science-Google-Cloud-Platform/dp/1491974567)　→　今は英語版のみ

## 例題

フライト情報を利用して、時間通りに到着するかどうかを予測してほしい

### 解決法1　あまりよくない

- データサイエンティストがむっちゃがんばってからユーザーに提供
  - ただ、あなたのフライトが遅延する確率 45% というアプリを作っちゃう

### 解決法2　すこしよい

- まずは、過去データでの確立を提供する
  - 現在、このぐらい遅れているという情報を入力したら、このぐらい遅れるだろうという情報を提供できる

### 解決法3　よりよい

- 過去3時間のデータも踏まえて（セミリアル）、提供する

## 図

|手順1|手順2|手順3|
|---|---|---|
|過去データの分析→|↗→リアルタイムデータパイプライン→|↗→モデルの構築↓|
|過去データに基づく情報提供↗→|→リアルタイムデータに基づく情報提供↗→|→↓機械学習による予測情報の提供|

モデルを作る前にユーザーフィードバックをもらうテクニック

## ダメパターン

たとえいいモデルができたとしても、単に%を表示できるだけならだめ

## いいパターン　予測に関する説明を加えましょう

例えば、次のように説明をうまく付け加えるテクニックが重要である

「これは、目的地への到着平均が現在67分であることが主な理由です。また、あなたのフライトは、20分遅れでしたが、通常は13分遅れです」