Google（2. 2015~2016年ごろ：Distillation, AlphaGo, Tensorflow, TPU, GNMT）

本記事は下記の続きです。

https://qiita.com/akagi_hayato/items/46720efeb0756dc8df64

## 経営、方針など
2015年のGoogle I/Oで、自社が提供するAndroid、Google Now、Google PhotoなどのサービスにAIや機械学習の技術を利用し始めていることを発表した[^3]。また、10月の第3四半期決算発表では、CEOのSundar Pichai氏は機械学習と人工知能への投資が今後も同社の優先事項であると強調し、AIと機械学習をより多く取り入れるために、すべての製品を「再考」していると言及している[^4]さらに、2016年4月に公開された株主へのレターにて、モバイルファーストからAIファーストの世界へ移行すると言及があるなど[^5]、ますますAIの実用化に向けて注力する意向を示した。

> We will move from mobile first to an AI first world.
*Sundar Pichai, Google CEO* in 2016[^5]

:::note info
2015年8月、Googleの経営陣は、持ち株会社であるAlphabet設立を発表した。Google Inc.のほかに、Calico、Google Ventures、Nest、Google X、Fiber、Google CapitalなどがAlphabetへぶら下がる形になり、多様化しすぎた個々の事業を発展させることが主目的である。Googleは検索事業では大成功を収めていたが、Facebookなどのソーシャルメディアの出現によりウェブ検索からモバイルアプリの需要が高まり、Googleの収益を圧迫していた。[^1][^2]
:::

[^1]:[Why Google Became Alphabet](https://www.investopedia.com/articles/investing/081115/why-google-became-alphabet.asp)
[^2]:[What is Google’s new company Alphabet and what does it mean for you?](https://econsultancy.com/what-is-google-s-new-company-alphabet-and-what-does-it-mean-for-you/)
[^3]:[Google I/O 2015: Google bets machine learning can create an edge with Android, apps, cloud](https://www.zdnet.com/article/google-bets-machine-learning-can-create-an-edge-with-android-apps-cloud/)
[^4]:[Google is 're-thinking' all of its products to include machine learning](https://www.businessinsider.com/google-on-machine-learning-2015-10)
[^5]:[This year’s Founders' Letter](https://blog.google/alphabet/this-years-founders-letter/)

## Distillation
機械学習モデルの性能を上げるため、異なるモデルのアンサンブルや大規模モデルを用いるなどの手法が取られるが、それらが獲得している知識を小規模なモデルへ移行するDistillation（蒸留）という手法を、2015年3月に発表した。
Distillationは、目的関数にSoft target（大規模モデルの出力との誤差）とHard target（正解ラベルとの誤差）の2種類の誤差を含ませることで小規模なモデルを学習させることで、同等の性能を発揮させるという手法である[^40]。

>![](https://paperdrip-dl.github.io/assets/img/20181223/distillation.png)
[Distillation による学習の全体](https://paperdrip-dl.github.io/distillation/2018/12/23/Distillating-Knowledge-in-Neural-Networks.html)

[^40]:[Distilling the Knowledge in a Neural Network](https://arxiv.org/abs/1503.02531)
[^41]:[Distilling Knowledge in a Neural Network](https://paperdrip-dl.github.io/distillation/2018/12/23/Distillating-Knowledge-in-Neural-Networks.html)

## Tensorflow
Google社内で用いられてきたニューラルネットワーク向けの機械学習開発システムであるDistBeliefは、設定や外部との連携の煩雑さなどから[^10]、より多様なモデルへの対応、迅速なプロトタイピングと実験が可能なライブラリとして、Tensorflowが2015年11月にオープンソースで公開された[^12]。
この時、Tensorflowは基盤がC++で構築されており、C++に加えてPythonでも利用可能な状態だった[^11]。

[^10]:[How TensorFlow Came To Be the Most Important Library in Machine Learning](https://opendatascience.com/how-tensorflow-came-to-be-the-most-important-library-in-machine-learning/)
[^11]:[Google Just Open Sourced TensorFlow, Its Artificial Intelligence Engine](https://www.wired.com/2015/11/google-open-sources-its-artificial-intelligence-engine/)
[^12]:[TensorFlow: smarter machine learning, for everyone](https://blog.google/technology/ai/tensorflow-smarter-machine-learning-for/)


## AlphaGo
ボードゲームの中でもシステムが複雑な囲碁は、AIにとって大きな挑戦となると言われていた中、DeepMindはディープラーニングと高度な探索アルゴリズムを組み合わせたAIシステムであるAlphaGoが、2015年10月にヨーロッパチャンピオンだったFan Hui氏を（AlphaGo Fan）、2016年3月に世界チャンピオンだったLee Sedol氏を破った（AlphaGo Lee）。Fan Hui氏との対局での37手目で1万分の1の確率で使われる独創的な手（Move 37）、Lee Sedol氏との対局の78手目の“God’s Touch（神の手）”と言われる手（Move 78）は棋士にも非常に大きな衝撃を与えた[^30]。
AlphaGoは、膨大な探索空間をより扱いやすいサイズに縮小するため、Policy NetworkとValue Networkという2種類のDNNと、Monte Calro Tree Search（MCTS、モンテカルロ木探索）を組み合わせている[^31]。DNNとM CTSを組み合わせるというアプローチはAIの大きな進歩とされている[^32]。
それぞれの特徴は下記の通り[^31][^33]。
- Policy Network
    - 次の手を予測し、探索範囲を絞り込み、賢明な手を提案
    - 人間の専門家がプレイした3000万手を使って学習させ、強化学習により戦略を改善することで、自ら新しい戦略を発見することを学ぶ
- Value Network
    - 探索木の深さを減らすため局面を評価し、最終的な勝者を予測
    - Policy Networkを用いて学習する
- Monte Calro Tree Search
    - 適当な回数ランダムに実行してみてその結果から結論を導くアルゴリズム
    - 残りの局面を想像の中で何度も繰り返しプレイすることで先読みを行う

[^30]:[AlphaGo](https://deepmind.google/research/breakthroughs/alphago/)
[^31]:[AlphaGo: Mastering the ancient game of Go with Machine Learning](https://research.google/blog/alphago-mastering-the-ancient-game-of-go-with-machine-learning/)
[^32]:[Monte Carlo Tree Search: a review of recent modifications and applications](https://link.springer.com/article/10.1007/s10462-022-10228-y)
[^33]:[【強化学習】モンテカルロ木探索を解説・実装](https://qiita.com/pocokhc/items/392a7f89c79f5e1e6bca)

## TPU
Googleは、2006年ごろからニューラルネットワーク向けASIC（Application-Specific Integrated Circuit）の開発を検討していたが、2013年ごろにデータセンターの数を倍増させる必要があると判断し、TPU（Tensor Processing Unit）と呼ばれる機械学習用途に特化したASICを開発した。通常であればASICの開発に数年かかるところ、約15ヶ月という短期間で設計から導入までが完了され、2016年に発表された[^20][^21]。

>![](https://storage.googleapis.com/gweb-cloudblog-publish/images/tpuoyof.max-700x700.PNG)
[Tensor Processing Unit board](https://cloud.google.com/blog/products/ai-machine-learning/google-supercharges-machine-learning-tasks-with-custom-chip)

重要要素（追記の可能性あり）
- Tensorflow Quantization
- processing system (CPU vs GPU vs TPU)
- Systolic Array (MXU)

>![](https://storage.googleapis.com/gweb-cloudblog-publish/images/tpu-15dly1.max-500x500.PNG)
[TPU Block Diagram](https://cloud.google.com/blog/products/ai-machine-learning/an-in-depth-look-at-googles-first-tensor-processing-unit-tpu)

[^20]:[Google supercharges machine learning tasks with TPU custom chip](https://cloud.google.com/blog/products/ai-machine-learning/google-supercharges-machine-learning-tasks-with-custom-chip)
[^21]:[An in-depth look at Google’s first Tensor Processing Unit (TPU)](https://cloud.google.com/blog/products/ai-machine-learning/google-supercharges-machine-learning-tasks-with-custom-chip)


## GNMT
Google Brainは、従来のGoogle翻訳でも用いられており精度の限界が囁かれていたフレーズベースの翻訳システム[^51]に変わる翻訳システムとして、Google Neural Machine Translation（GNMT）を開発し、翻訳エラーを 60%削減したと発表した[^50]。
GNMTはSeq2Seqフレームワークにアテンションモジュールを加えたもの（Encoderネットワーク、Attentionモジュール、Decoderネットワーク）で構成されている。
- Encoderネットワーク
    - 入力シンボル（wordpieces）ごとに1つのベクトルを持つベクトルのリストに変換
    - LSTM（Long Short-Term Memory）
- Attentionモジュール
    - デコーダーが単一の固定長ベクトルだけでなく、エンコーダーのすべての隠れ状態へアクセスできるようにすることで、長い入力シーケンスに効果的に対処する
    - 翻訳生成の各ステップにおいて、モデルは原文の最も関連性の高い部分に動的に焦点を当てることができ
- Decoderネットワーク
    - LSTM
    - 翻訳された出力テキストを生成
    - 特別な文末シンボル（EOS）が生成されるまで、一度に1つのシンボルを生成

>![](https://cdn-ak.f.st-hatena.com/images/fotolife/R/Ryobot/20171218/20171218171211.png)
[GNMT architecture](https://deeplearning.hatenablog.com/entry/gnmt)

[^50]:[Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation](https://arxiv.org/abs/1609.08144)
[^51]:[Phrase-Based Statistical Translation of Programming Languages](https://dl.acm.org/doi/10.1145/2661136.2661148)

---

続きはこちら

https://qiita.com/akagi_hayato/items/ee14aa95c14385aa03cf