脳のリバースエンジニアリングに関して、GoogleはドイツのMax Plank研究所と共同研究を行っており、脳の電子顕微鏡写真から、神経回路を再構成するという研究を行っている。

高解像度の脳のイメージから、神経回路を再構築する

Flood-FillingというAIを使って、イメージから神経のつながりを認識して、脳神経の回路の解析を行っている。次の図は研究の進み具合を示すもので、現在は1000μm程度の神経まで追跡できるようになってきており、サイズとしては100μm3程度の囀る鳥の脳に手が届くというレベルである。

しかし、今後、ネズミの大脳皮質、ネズミの脳全体と規模を拡大し、2019年には霊長類の脳のリバースエンジニアリングを行うという計画である。

Googleで行っている再構成は、2016年に囀る鳥の脳ができたレベル。このペースでいくと、2019年には霊長類の脳のリバースエンジニアリングができる

鳥の脳の研究は、Max Plank研究所が、もとになるSEMイメージを作成している。このモデルは600Billion Voxelの規模であるという。そして、Googleが協力して、このVoxelモデルから神経の繋がりを解析している。囀りがどのようにして実現されているかを説明する仮説を検証するのが目的である。

ドイツのMax Plank研究所との共同研究。600B Voxelのモデルから鳥の神経回路を作り上げる

科学的発見のためのツールの開発という点では、TensorFlowを挙げている。TensorFlowはオープンな標準ツールであり、特にディープラーニングに適している。

Googleの開発したTensorFlowは、Apache 2.0ライセンスで提供されており、最も広く使われているディープラーニング研究ツールとなっている

多くのディープラーニングツールがGitHubで提供されているが、それらのツールのリポジトリにつけられたStar(いいねマークのようなもの)の数を示したのが次の図で、他のツールを引き離して、圧倒的にTensorFlowにつけられたStarが多い。

GithHubのリポジトリにつけられたスターの数。最近はTensorFlowの伸びが著しく、他のプラットフォームを大きく引き離している

ディープラーニングの計算は、1.21042×0.61127のような精度の高い計算は必要なく、約1.2×約0.6=約0.7というような計算で良い。そして、必要な計算は行列の積のような比較的少ない種類の計算しか必要ではない。

ディープラーニングでは、高精度の計算は必要ない。また、計算は、行列積など少ない種類の計算ができれば良い

このようなニューラルネットの推論(Inference)計算を高い効率で実行するものとして、Googleは「Tensor Processing Unit v1(TPU v1)」を開発した。TPU v1は8bit整数での計算を行うもので、すでに推論用のマシンとして30か月以上プロダクションに使用されているという。そして、ネットでのサーチや、翻訳、さらに、アルファ碁にも使われた。

次の図の左の写真が1個のTPU v1を搭載したボードで、右の写真は、TPU v1を搭載したサーバのラックである。

Googleの推論用アクセラレータのTPU v1ボード(左)とTPUボードを搭載したサーバラック(右)

そして、今年の5月のGoogle I/Oで、Googleは2世代目となる「TPU v2」を発表した。マトリクス乗算を行う部分が、TPU v1では256×256であったが、TPU v2では128×128が2個と半分のサイズとなったが、v1は8bit整数の演算であったのに対して、v2では32bit浮動小数点数で足し算を行うように変更され、推論だけでなく、学習にも使えるアクセラレータとなった。

なお、積の計算は低い精度で行っていると書かれているが、具体的にどの精度で計算を行っているのかは、発表されなかった。NVIDIAのVolta GPUはFP16で積の計算を行っており、MicrosoftはFPGAでms-fp9という独自の9bit浮動小数点数で計算を行っており、9~16bit精度のどこかであろうと思われる。

また、係数メモリは、TPU v2では高バンド幅のHBMを使っており、メモリバンド幅は600GB/sに向上している。演算性能は45TFlopsという。

TPU v2では演算器は128×128のアレイが2個に減ったが、学習用にも使えるように浮動小数点演算を行うようになった。加算はFP32であるが、乗算はより低い精度で行っている。また、係数メモリがHBMとなり、メモリバンド幅は600GB/sに向上している

次の図は4個のヒートシンクが付いたTPU v2を搭載したボードの写真である。全体で180TFlopsの演算性能、2400GB/sのメモリバンド幅を持つ。

4個のTPU v2を搭載したアクセラレータボード

そして、次の写真は64台のTPU v2ボードを実装したTPUポッドの写真で、中央の2台のラックにTPU v2ボードが収容され、左右の2台のラックにはCPUとストレージなどが実装されており、ネットワークとの接続や、TPUの動作の制御、ストレージからのデータの供給などを行っていると考えられる。

このシステムの演算性能は、180TFlopsのボードが64枚で、11.5PFlopsということになる。

11.5PFlopsの演算性能を持つ、GoogleのTPU v2システム

そして、Googleはこのシステムをクラウド経由で提供し、トップレベルのAI研究者に1000TPU時間分を無償で提供するとのことである。

Googleは、このシステムをクラウドで提供し、1000TPU時間を研究者に無償で使わせる

そして、TensorFlowは、いまや、CPU、GPU、TPUで動作するのはもちろん、スマホのiOSやAndroid、さらにRaspberry Piでもサポートされているという。

TensorFlowは、いまや、CPU、GPU、TPUで動作するのはもちろん、スマホのiOSやAndroid、さらにRaspberry Piでも動作する

この後、Dean氏は強化学習を使って、マシンラーニングのモデルを改良する話や、推論の効率を改善する蒸留(Distillation)、大型モデルの一部だけを動かすSparse Activationなど最近の研究について説明したが、これらは割愛させていただく。

そして、Dean氏は次のスライドを示して、基調講演を締めくくった。ディープニューラルネットワークは長足の進歩をしており、視覚、言語、サーチ、ロボティックス、ヘルスケアの分野で大きな進歩が起こっている。

これらの進歩は、計算デバイスの進歩にも大きな影響を与え、大きな変革を迫っている。

もし、あなたが、自分の抱えている問題の解決にディープニューラルネットワークを使うことを考えていないとしたら、ぜひ、利用を検討すべきである。

ディープニューラルネットワークは、多くの分野で大きな進歩を遂げており、それは計算デバイスの進歩にも大きな影響を与えている。もし、あなたが抱えている問題の解決にディープニューラルネットワークを使ってみようと思ったことが無ければ、ぜひ、考えてみるべきである

ディープニューラルネットワークは、人間の脳のように、広範な知識を関連付けて考えるというレベルには達していないが、画像認識やスピーチ認識などでは、すでに、人間より誤りが少ないレベルに達しており、いろいろな分野で役に立つことは間違いない。