シリーズ「人工知能と物理学」

解説

物理屋のための深層学習
瀧雅人

田中章詞

理化学研究所数理創造プログラム（iTHEMS）

理化学研究所革新知能統合研究センター（AIP）

taki＠riken.jp

akinori.tanaka＠riken.jp

44

このところ深層学習（ディープラーニン

この一連の流れで発見されたアルゴリズグ）という言葉を頻繁に耳にするようにム・技術・ノウハウの総体が深層学習だ，なってきました．巷では技術的特異点などといって良いでしょう．深層学習は画像認のパワーワードに引っ張られ，人工知能が識にとどまらず，Google 翻訳のような自人間の仕事を奪うかもしれない等と報道さ

然言語処理，音声の変換・生成，フェイクれるケースも少なくないため，怪しい分野動画の生成，アルファ碁に代表されるゲーだと思われている方もいるかもしれません

ム AI など，急激にその応用範囲を拡大し，が，そうではありません．機械学習の理論

産業・科学技術の風景を変えつつあるのは的下地は確率・統計学にあり，むしろ物理皆さんもご存知の通りです．

学を修めた方なら誰でも腑に落ちるような枠組みに支えられています．
深層学習は，数多ある機械学習の手法群

では，この間の研究によって全ては理解され尽くされ，応用も試み尽くされたのでしょうか？

実態はそうではなく，むしろの中の一つの手法です．その一方，親玉でその逆です．ニューラルネットが高い性能ある機械学習という分野は，データをもとを実現する理論的なメカニズムは未だほとにそこからパターン・知識を抽出する手法

んど理解されておらず，そのためアドホッ一般の研究開発を指します．物理学者が普クなネットワーク構造の設計も当然第一原段行っているデータ解析のうち，ある程度理に基づくものではありません．そしての割合は機械学習だといっても過言ではな

ゲーム AI のような探索的作業への大きないでしょう．

可能性があるにもかかわらず，深層学習の深層学習は，ニューラルネットワーク基礎科学への導入は，まだ部分的かつ初歩（ニューラルネット）と呼ばれる特殊な数的な段階にあります．深層学習の高い表現

理モデルを用いる点で，他の機械学習の手能力や汎化性能の理論的理解や，データサ法と大きく異なります．ニューラルネット

イズに比べてデータ次元が極めて高いようは 20 世紀の中頃，動物の脳の数理モデルな場合に対応できる学習アルゴリズムの発として提唱されましたが，その後はデータ見など，今後物理学者も寄与できる未解決の学習のための機械学習モデルとして広く問題も数多くあると考えられます．またこ研究されるようになりました．長い研究のれまでの産業・ソーシャルデジタルデータ

歴史を持つニューラルネットですが，2006だけではなく，科学データへの応用を通じ年頃になり新しい段階に突入し，やがて加て露わになる深層学習の技術的問題点や改速的な発展期を迎えます．ネットワーク構良の可能性も数多くあるでしょう．これか造を深層化することでニューラルネットがらは，基礎科学研究によって深層学習の新極めて高い学習能力を発揮することが実証しい可能性が開けていくものと期待していされ，広範なタスクに対応できるネットます．

―Keywords―
機械学習：
明示的なプログラムをすることなく，機械が学習できる能力を持つようにするアルゴリ
ズムの総称．
ニューラルネットワーク：
脳の神経回路網を模した数理モデル．ノードとエッジからなるグラフ構造，特にある種の層構造を持ち，非常に高いフィッティング能力を持たせることができる．
深層学習：
非常に多くの層を持つニューラルネットワークを用いた機械学習の総称．近年の人工知能ブームの火付け役であり，従来の機械学習手法の常識を覆す能力を持つと期待されている．
敵対的生成ネットワーク：
深 層 学 習 の 方 法 を 用 い た，データを作るタイプのネット
ワ ー ク．デ ー タ 生 成 ネ ッ ト
ワークとデータ識別ネット
ワークを競わせることにより，より本物に近いデータを作り出す．

ワーク構造が次々と開発され始めたのです．
シリーズ「人工知能と物理学」 物理屋のための深層学習759©2019 日本物理学会

1.

機械学習と深層学習

深層学習 1, 2）は機械学習の一種です．機械学習とは大雑把に言うと，経験を通じて，未知の状況に適応できるようになる能力を機械に与える方法と言えるでしょう．以下ではその中でも基本的な考え方となる，教師あり学習と呼ばれる方法を説明します．
1.1

教師あり学習教師あり学習とは，二種類の変数 x と y の観測値のペアNを集めたデータ｛（ xn, yn）｝
n＝1 から，x と y の間の関係を一般

図1

的に学び取る機械学習です．

→
ベクトル値入力データ →x を予測値＾y へ変換する有向ネットワーク．

少し理論的に説明します．まずデータを生み出す確率的な事象が確率分布 Pdata（ x, y）として表せるものとし，観測場合，多量のパラメータを用いると，データに含まれる統値はその分布から具体的にサンプリングされたものだとみ計的な揺らぎまで学習してしまい，与えたデータに対してなしてみます：

過剰に適合してしまい汎用性を失います．この問題は過学

x, y ～ Pdata（ x, y）（1）

習と呼ばれます．
そうすると汎用性の高いモデルを望むことは難しく，機教師あり学習の目的は，x と y の間の関数関係を推定する

械学習はケースバイケースになってしまいそうです．とこことにつきます．ですので，データを生み出す確率分布ろがニューラルネットは過学習を起こしにくく，汎用性のPdata を見つけることができれば一番ですが，通常は与えら高い手法を提供してくれます．

れた x の値に対して y を予測できれば満足ですのでそこま

1.2

有向グラフ（図 1）を使ってモデル （f x, w）を与える手法群の予測値は，x のもとでの y の期待値でしょう：＾（y x）＝EPdata（ y | x）
［ y］

深層学習

ニューラルネットを使った機械学習とは，一言で言えばでは行いません．与えられた x に対して最もそれらしい y（2）です．グラフを描くことでモデルを設計できるので，良いモデルを探す際に人間の幾何学的直感を活かしやすい手法

しかし我々の手元にはもちろん有限のデータしかないので，になっています．そのためか，かなり広いクラスの問題をこのような期待値は計算しようがありません．またデータ平均で近似しようにも，それでは見たことのある x に対しニューラルネットを使って解くことができます．深層学習
はその意味で，機械学習の幾何学化 *2 ということができてしか y を予測できません．そこで＾（y x）として何らかのます．

パラメータ付きモデル

ネットワークを描く際はまず図のように入力・出力デー＾
ymodel（ x, w）＝f（ x, w）（3）

タの変数の数だけユニットを用意し，それら以外に適当な数の隠れユニットというものも用意します．それらを矢印を仮定 で き る も のと し て，パ ラ メ ー タ w を デ ー タからで適当に結んでグラフを一個描くと，自動的に x から y をフィッティングすると考えます．データへの当てはまりが良いパラメータ w* が見つかれば，＾ymodel（ x, w*）を使って初与えるモデル＾
y＝f（ x, w）の関数形が定まります．有向グ

見の x に対してももっともらしい y の値が予測できること

トでは，基本構造として層構造を用いることが性能の秘訣になります．これがデータの学習ですので，教師あり学習はデータのフィッティングに他なりません．*1

であることがわかっています（図 1）．その層数が多い場合

ではどのようなパラメータ付きモデル （f x, w）を使えばネットワークを使った機械学習のことに他なりません．

問題が良く解けるのでしょう？

通常はデータの特性に応

ラフはいろいろなものが考えられますが，ニューラルネッを「深層」と呼びますので，深層学習は多層のニューラル
1.3

ユニットの演算規則

じて適切な （f x, w）の関数形を我々が設計します．例えば各ユニットの信号処理のルールが決まればネットワーク普通のデータ解析でも振動データには三角関数を用いるで全体の振る舞いがわかりますので，各ユニット周辺の振るしょうし，鼠算式に増えていく数値データには指数関数を舞いを説明します．まず矢印の上には矢印の向きに沿って，仮定するでしょう．そうするとできるだけパラメータが多数値が信号として伝播するものと考えます．さらに各矢印

く，複雑性の高いモデルを用いた方が多様なデータに対応には固有のパラメータが与えられています．

できて良いように思われます．ところが世の中そう簡単にある一個のユニットが，たくさんの矢印を通じて数値はいきません．オッカムのカミソリよろしく，無用な説明

zi＝1, 2, …を受け取っているものとします（図 2）．するとこの因子を導入することは問題を引き起こします．機械学習のユニットは次の数値 z を外向きの矢印に沿って，他のユ*1 実際にはどのようにフィッティングさせるのか，という部分も非常に重要になりますが本稿では省略します．

760©2019 日本物理学会*2 一般相対論が重力理論の幾何学化と呼ばれる，という程度のニュアンスです．

日本物理学会誌

Vol. 74, No. 11, 2019

思える今の「経験」誤差（5）を真面目に小さくしても恩恵が少なそうだというわけです．
更に，誤差逆伝搬法と呼ばれるニューラルネットワークの性質をうまく利用した（w）
lの各 w に対する微分係数の高速計算アルゴリズムが知られています．このことと上述の理由などから，深層学習では重力ポテンシャル中を転がっていくボールのように（w）
lの微分係数が減っていく方向に w をアップデートしていく手法を使います．それが
図2

一つのユニットにおける信号処理と，活性化関数の一例（ReLU）．

勾配降下法です：
w t＋1＝w t－²∇w（w）
l.

ニットへ向かい出力します：æöz = a ççå wi zi ÷÷÷çè iø÷（6）ここで w t は現在のパラメータを表し，w t＋1 は更新後のパ（4）ラメータを表します．また，² は学習率と呼ばれるパラメー
タで，この値が大きいと一回あたりの w の更新が大きくな

ここで，i 番目の矢印に沿ってやってきた数値 zi にはパラる代わりに，探したい最小点を飛び越えてしまう可能性がメータ wi が掛かっていることに注意します．さらにそれあったり，動きすぎたがゆえにポテンシャル（w）lの壁にらの総和 å i wi zi は，活性化関数と呼ばれる関数 a（ ）で変ぶつかってしまい振動が引き起こされてしまったりします．

換されてから出力されます．ではなぜ単に総和を出力せず従って小さな学習率のほうが良いような気がしますが，そに，一度 a（ ）を作用させるのでしょう？

うすると今度は見かけの極小点にはまって抜けられなく形な変換（アフィン変換）を行うだけであり，するとネットなったり，学習が進みづらくなったりしてしまうので，良い塩梅の ² を問題ごとに選ぶ必要があります．*3

ワーク全体としても線形変換を行うだけになってしまいま

2.1

一つの答えは，a（ ）を用いないと各ユニットは単に線確率的勾配降下法（SGD）す．これでは線形回帰と変わりません．そこでモデルの非データを十分沢山集めると，冗長性が生じます．例えば線形性のタネとして，a（ ）という関数を挿入するのです．

猫の画像データを沢山集めれば，中には似た猫が写っていまたこの関数は，通常は閾値を持つものが用いられます

るデータが多数存在するでしょう．単に猫であることを認（図 2）．実はニューラルネットは，脳のような動物の神経回識させたいのであれば，猫のポーズ等の詳細はどうでも良路を模倣した数理モデルになっています．そして実際の神いので，これらの猫画像はほとんど同じ情報を持っている

経細胞の応答には，入力に対する閾値があると言われていことになります．このような場合，元のデータから式（5）ます．したがって生物学の知見から，そのような活性化関を計算し，式（6）でパラメータ更新することは余り効率的数を用いることはもっともらしいと考えることができます．

ではないように思われます．
そこでデータを n 個のデータから成る部分データに小分

2.

学習の実際：SGD

けにし，部分データについて式（5）を計算，式（6）でパラモデル （f x, w）を一旦決めてしまえば，あとはその中から良いパラメータ w* を探し出せば良いわけですが，デーメータ更新を繰り返す方法が考えられます．部分データのN
タ｛（ xn, yn）｝
n＝1 が与えられたとして，どのように w* を探呼びます．ミニバッチを全て使い終わると，元のデータをせば良いでしょうか．深層学習の文脈では，x を入力としシャッフルした後，またデータを分割し学習を繰り返しまたときのネットワークの出力値 （f x, w）と教師信号 y の差す．全データ単位で何回学習した段階にあるかの単位をエを測る関数（l f, y）を導入します．これは結局 w の関数とみなせるため，この関数をなるべく小さくするような w*ポックと呼びます．従って 1 エポックは次に相当します：

ことをミニバッチ，そのサイズ n のことをバッチサイズと（ x1 , y1）（（ x2 n , y2 n）, ¼（, xn , yn）, xn +1 , yn +1）,¼, ¼｝｛ 

ミニバッチ 1
ミニバッチ 2

を求めれば良いことになります．そこで（l w）=1 N（l （f xi , w）, yi）
N åi =1（5）（7）

N 個のデータ

このような手法を確率的勾配降下法（Stochastic Gradientとして（w）
lの最小点を求める問題を考えます．とは言っDescent method, SGD）と呼びます．SGD では（w）
lの定義ても深層学習ではこれを真面目に解こうとはしません．

が毎回の更新で変化するため，極小点にはまりにくい方法

なぜなら深層ニューラルネットワークではそもそも w のであることが期待されます．深層学習における教師あり学

次元が高すぎるため，いかに数値計算といえども厳密な習のプロセスをまとめておくと，最小値を求めるのは難しいからです．加えて，そもそも本

当に小さくしたいのは 1 データ辺りの誤差（l （f xi, w）, yi）の Pdata（ x, y）（式（1））について期待値なので，その近似とシリーズ「人工知能と物理学」 物理屋のための深層学習*3 この ² の値を学習ごとに自動調節してくれるアルゴリズムも存在しま
すが，その場合でも手で決めなければならない別のパラメータがあります．

761©2019 日本物理学会

N
1. データ｛（ xn, yn）｝
n＝1 を用意する．

な分類パターンを捉える表現能力を獲得しているとも言い

2. グラフを描いて （f x, w）を設計する．

なおすことができます．これが多層にしなければならないN
3.｛（ xn, yn）｝
f x, w）を，SGD に適応し w* を探索する．
n＝1 と （理由の一つです．正確な議論は文献 4 などを参照ください．ということになります．

3.

4.

なぜ深層か？：深層学習の折り紙

この疑問には完全な答えは未だに与えられていませんが，いくつか魅力的な仮説 がありますので一つだけ紹介しま4）

敵対的生成ネットワークの数理

深層学習における興味深い発展の一つに，敵対的生成

5）
ネットワークを用いた画像生成が挙げられます．
画像データ x がしょう．

x ～ Pdata（ x）

解かねばならない問題が，図 3 左側のような二種類の点（9）の分類問題だとします．すると問題は，二種類の点の間にで生成されているとしましょう．敵対的生成ネットワーク複雑な境界線を引く問題だということになります．込み

ではこのデータ生成分布を真似することで，現実にありそ入った問題の場合，この境界は複雑で，その推定は簡単でうなデータを生成することを目的とします．まず真似をすはないでしょう．

るためにデータの種 z が何らかのサンプリングしやすい確ところがもしこの空間を折りたたんでいくことができ，率分布 Q（ z）から与えられるとします：z ～ Q（ z）．この種最終的に図 3 の右側のように折りたたむことができたとしを用いて生成ネットワーク G が画像 G（ z）を生成します．

ます．すると分類は，折りたたんだ空間の上に単純な境界

敵対的生成ネットワークではもう一つのネットワーク D線を引く問題になります．つまり入力の空間を折りたたんを用意し，G と D を戦わせることで G が本物らしいデータでデータの分布具合を簡単化させられたとすると，分類問を生成できるようにします．G を「偽金作り」とし D を「警題は単純化するのです．

察官」とするとわかりやすいかもしれません．「警察官」は一方，実際に a（ z）＝max（0, z）という活性化関数（ReLU）
を用いると，二層ニューラルネットだけを使ってz1＝| x1 | ,z2＝| x2 |偽物と本物を区別するようになり，「偽金作り」はその警察官の目を欺けるような偽物を作るようになるというわけ（8）です．具体的には D や G を交互に調整することで，V（G, D）＝EPdata［log D（ x）］＋E［｛1－D（G（ z））｝］（10）Q logというニューラルネット（ x1, 2）→（ z1, 2）を作ることができます．z1, 2 の値の観点から見ると，入力空間の第一象限かの値を D の最適化では大きく，G の最適化では小さくなるら第四象限までは全て同一視されます．つまり元の空間がように学習します．実際には D と G を交互に学習させる四分の一に折りたたまれているのです．ニューラルネット

ので，式（10）の均衡点，つまり D にとってはこれ以上 Vに層を幾重にも重ねるとは，このような折りたたみを何回を大きくすることができず，G にとってはこれ以上 V を小も繰り返すことを意味します．すると複雑な分類曲線が，さくすることができないような D，G の組み合わせに近づニューラルネットの上流側では単純な曲線として表現し直けるのが学習のゴールとなります．

すことができ，ニューラルネットを通して見ることで問題が簡単化する可能性があるのです．

これでなぜ現実にありそうなデータが作れるのか，元論
文 5）では以下のように説明しています．まず D について式

もっと複雑で現実的なニューラルネットにおいても，こ（10）の最大値を取ると，それが確率分布 Pdata と G によるのような現象が起こっている可能性が提唱されていまQ の push forward の間の距離を与えることが示せます．そす． 単層ごとでは単純な折り返しをしているだけでも，れを最小化するには距離の性質から両者が一致するしかな層の数だけ繰り返していくことで，最終的には難しい分類い，というわけです．しかしながら，理論と実際の間には問題が簡単に解けるというわけです．多層性により，複雑やや隔たりがあることがわかっています．例えば実際の学

4）

習にて D は強くなりすぎてしまうと，G はヘソを曲げてしまい学習できなくなってしまうことが知られています．近年ではこの問題を解決するのに最適輸送問題の考え方が応用できること 9）が指摘されるなど，学習を安定化させるためのアイデアが，幾何学や物理学から持ち込まれてきています．

5.

汎化ギャップの謎

深層学習には多くの理論的な謎があり，理論研究者の挑戦を待っているのですが，ここではその一つだけを取り上
図3

元のデータ空間での散布図と，折りたたまれた空間から見た散布図．

762©2019 日本物理学会

げましょう．
日本物理学会誌

Vol. 74, No. 11, 2019

これまでに比較的安価な計算資源である GPU を利用し

表1

有名なライブラリ．て深層学習の計算を並列・分散化させる研究が進んできまライブラリ名制作者

思想文献した．深層学習の学習はかなりの計算時間を要するものの，TensorFlow
PyTorchKerasGoogleFacebook
François Chollet

deﬁne and run
deﬁne by run―876SGD の各ステップにおいては各データ点ごとに計算は独立しています．したがってミニバッチをさらに細かく分割し，たくさんの計算機に計算を割り振ることで計算時間をまず Google の TensorFlow ですが，これは deﬁne and run

大幅に短縮できます．
つまり大きなサイズのミニバッチを用いた方が，計算資形式と呼ばれ，まず計算すべきプロセスを全てグラフで表源を効果的に利用し尽くすことができるのです．ところが現し（deﬁne），その後で（and），実際にデータの値などを計算が速くなる一方で，看過できない問題が発生することグラフに入力し，様々な処理を実行します（run）．たとえが数値的に発見されました．それはミニバッチを大きくすば足し算を実行する場合，a と b を用意し，出力は a＋b とるにつれ性能が下がる問題です．これは汎化ギャップと呼する，と書いた後に「計算（run）用の環境」にモードを切ばれ，ミニバッチのサイズを大きくしていくと，学習後のり替えて，a＝1，b＝2 を入れ，答え 3 を得る，というよう性能（汎化性能）が低下するという問題です．

な手順を取ります．

これは深層学習のスケーラビリティを脅かす深刻な問題

一方で Facebook の PyTorch 等は deﬁne by run 形式と呼ばです．実用的な観点からも，問題の原因を特定してこのれ，deﬁne and run 形式でやっていた処理をすべて同じレベギャップを解消することが求められます．

ルで取り扱います．実際に書く情報は変わりませんが，ここの問題の理論的な理解の仕方として，SGD w t＋1 ← w t

ちらでは「計算用の環境」というのはなく，定義と実行ををランダムポテンシャル中のブラウン運動としてモデル化同じ環境で行います．（ちなみに TensofFlow でも deﬁne byするアイデアが提唱されています． ランダムポテンシャ

run 形式が使えるようになったようです．）どちらがわかり

ルにおける高次元ランダムウォークの研究結果から，拡散やすいかは人によると思います．

3）

距離は勾配の更新時間に対して対数で遅くなることがわか度学習する必要がありますが，Keras は学習コストが二つります：|| w t－w 0 || ～ log t

この二つはいずれもライブラリ内の「お作法」をある程（11）に比べて圧倒的に低く，初めに使ってみるのに非常におすすめのライブラリです．しかも，もっと込み入った処理を物理側ではこれは異常拡散と呼ばれる現象で，ランダム性書くこともでき，柔軟性も二つのライブラリに匹敵します．の高いポテンシャルのために拡散速度が極端に遅くなってそのため Keras だけ使い続けるというので全く問題はありいるのです．しかも深層学習の数値的な実験から，この効ません．しかし，もし最新の論文の手法などをいち早く取果はバッチサイズの増大とともに深刻になることが予測さり込みたい場合，論文の著者が必ずしも Keras を使っていれています．

るとは限りません．そういう意味で TensorFlow と PyTorch

すると汎化ギャップとは，実は単に SGD がまだ収束に達していないだけだ，と予想することができます．すると計算時間をかけて SGD を継続させることでギャップが解消することになります．実際，訓練性能や検証性能に変化が見られなくなった後も SGD をしばらく継続することで，汎化性能が上昇することが観察されています．ただし計算時間を伸ばすことはコストの観点からは歓迎されないため，現在でも様々な汎化ギャップの解消法が研究されています．

6.

いろいろなライブラリ

深層学習の実装は幾らかの段階に分けることができます．

データの前処理，ネットワークの設計，SGD，学習結果の評価などです．一から自分で書きたくなるかもしれません
が，既に多くのライブラリが（主に Python 向きですが）無料で配布されておりインストールも容易なので，これを使又は他のライブラリも余裕があれば使えるようになっていると良いと思われます．
参考文献
1）Y. LeCun, Y. Bengio, and G. Hinton, Nature 521, 436（2015）.
2）I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning（MIT Press,2016）.
3）E. Hoffer, I. Hubara, and D. Soudry, Advances in neural information processing systems（2017）p. 1731.
4）G. F. Montufar et al., Advances in neural information processing systems（2014）p. 2924.
5）I. J. Goodfellow et al., Advances in neural information processing systems（2014）p. 2672.
6）F. Chollet et al., https://keras.io/ja/.
7）Facebook, https://pytorch.org.
8）Google, https://www.tensorﬂow.org/?hl=ja.
9）M. Arjovsky et al., arXiv:1701.07875（2017）.
10）瀧 雅人，『これならわかる深層学習入門（機械学習スタートアップシ
リーズ）』（講談社，2017）．

わない手はないでしょう．制作者の考え方によって上記の操作をいかに実装すべきかというところでライブラリのテイストにも幾らかの差が出てきますが，ここでは 3 つの有名なライブラリを紹介します（表 1）．
シリーズ「人工知能と物理学」 物理屋のための深層学習

763©2019 日本物理学会

著者紹介

Deep Learning for Physicists

瀧Masato Taki and Akinori Tanaka

雅人氏： 元の専門は超弦理論．この数年の研究対象は深層学習．医療・科学データへの応用から理論的研究まで雑食性で行っている．趣味は古墳鑑賞，化石の採取とクリーニング．
田中章詞氏： 元の専門は超対称ゲージ理論．最近は機械学習や深層学習を物理学の問題に応用する研究を行っている．

（2018 年 9 月 19 日原稿受付）764©2019 日本物理学会

abstract: Basic concept and few advanced topics of deep learning arereviewed. We explain supervised machine learning, neural nets, optimization with SGD, theoretical reason to make network deep, adversarial
nets, an open question on generalization, and deep learning libraries.

日本物理学会誌

Vol. 74, No. 11, 2019