特別掲載

データ活用の基本②―深層学習の基礎知識（ニューラルネットワーク）―
研究員

山名 一史

目 次

１．はじめに
２．ニューラルネットワークとは
３．単層ニューラルネットワークの構造と学習

４．ディープニューラルネットワーク
５．畳み込みニューラルネットワーク
６．おわりに補論

１．はじめに合、統計モデルを作成し、モデル内のパラメ

前回に引き続き、収集・蓄積されたデータータを何らかの方法で推定し、モデルに基づを活用するための基本的な知識として、本稿いて定量的な予測を行う、というのが標準的ではニューラルネットワークについて概説すな流れとなる。モデルを作成する際、線形モる。ニューラルネットワークは、深層学習のデルなどの単純な構造のモデルを用いて十分基礎的な構成要素であり、画像認識や音声認な予測性能が得られるのであれば、モデルを識、推薦システムの設計や強化学習などの分むやみに複雑化するべきではない。しかし、析を行う上で不可欠な知識である。

取り組む問題自体が複雑な場合、入力変数と本稿の目的は、具体的なデータ活用事例の出力変数との間に非線形性を伴った複雑な関紹介やデータ活用の是非に関する議論ではな係が存在している可能性が高い。こうした場く、データ活用の背後にある統計的な考え方合、単純な構造のモデルでは変数間の関係をを説明することである。なお、一般の読者をうまく近似できず、十分な予測性能を得られ想定し、数式の利用は最小限にとどめた。

ないことが少なくないため、より複雑な構造

本稿の構成は以下の通りである。第２節でのモデルを用いて分析や予測をする必要が生

は脳の学習機能を模倣する方法として、ニュじる。

ーラルネットワークについて概説し、第３節

複雑な構造のモデルを扱う最大の問題点

ではパーセプトロンとその学習について取りは、構造が複雑になるにしたがって、モデル上げる。さらに、単層のパーセプトロンを重内パラメータの推定も困難になることであね合わせることで、より複雑な計算を可能にる。場合によっては、推定が不可能になるこする試みとして、第４節ではディープニューとも少なくない。そのため、分析者としてはラルネットワーク、第５節では畳み込みニュ分析で使うモデルをできるだけ単純な構造にーラルネットワークを取り上げる。

とどめておきたいというのが本音である。それでは、こうした相反する要望を満たす方法

２．ニューラルネットワークとははあるだろうか。以下では、こうした要望をデータ活用の基本①で説明したように、顧満たす可能性のある方法として、脳の学習機客属性などの入力変数から入院リスクや保険能を模倣するという試みについて検討してみ加入率といった出力変数の値を予測したい場

よう。

56

共済総研レポート №176（2021.8）

一般社団法人 JA共済総合研究所（http://www.jkri.or.jp/）

特別掲載

脳は脳細胞（神経細胞）から構成されておたとえば大脳皮質のように数百億個のニューり、細胞体と樹状突起および軸索から構成さロンによって巨大なネットワーク構造を組織れる脳細胞はニューロンと呼ばれる。軸索のすれば、個々のネットワークの単純な構造を末端はシナプスと呼ばれ、他のニューロンの維持しつつ、ネットワーク全体では高度かつ樹状突起に近接している。ニューロンは他の複雑な演算ができるだろう。このように、ニニューロンからシナプスを介して樹状突起かューロンが結合されたネットワークを用いてら電気信号を受け取り、軸索を通じてシナプ複雑な演算を行うようなモデルをニューラルスから他のニューロンに電気信号を放出すネットワークという。

る。この一連の情報伝達メカニズムは、樹状って情報を「処理」し、シナプスによって情３．単層ニューラルネットワークの構造と学習報を「出力」する、という三段階のプロセス

1957年、Frank RosenblattがMCPニュー突起によって情報を「入力」し、細胞体によロンに基づいて提案した計算方法（アルゴリに分けることができる。
1943年、Warren S. McCullochとWalterズム）がパーセプトロンという単層のニューPittsは、ニューロンの情報伝達機能を二項分ラルネットワークである。入力はバイナリ値類の処理系と捉え、McCulloch－Pittsニューではなく実数値をとり、個々の接続部には重ロン（MCPニューロン）という単純な計算モみ（パラメータ）が与えられる。この重み値

デルで表現した。二項分類とは、集合を０かは、どの信号を相対的に重視するか、その度１かの２種類に分類することであることか合いを示すものと考えることができる。そしら、個々のMCPニューロンは１つ以上のバイて、受け取った入力値と重み値との内積（加ナリ（０か１か）入力を受け取り、１つのバ重和）に基づいて、出力信号が生成される。

イナリ出力を行うことしかできないことを意

パーセプトロンの構造を、分かりやすく数味している。そのため、MCPニューロンで構式にしてみよう。受け取った入力値とそれに成される個々のネットワークは、単純な論理対応する重みのベクトルをそれぞれ , とす演算しか行うことができない。

る。細胞体はこの内積 ் を計算し、内積が単純な論理演算の具体例として、ニューロある基準の値（これをしきい値という）をン１と２がそれぞれニューロン３に近接して、信号が生成（発火・超えた場合（்   ）いる場合を考えてみよう。ニューロン１と２活性化）され、軸索を通じてシナプスから出がどちらも１を出力した場合にのみニューロ力される。これら一連の働きは、ン３が活性化するようなネットワークを構成 10

すると、論理積（AND）が実行可能になる。

்   ்  

同様に、ニューロン１と２のどちらか一方（まという単純な数式で表現することができる。

たは両方）が１を出力した時にニューロン３

ここで、出力 は内積் の関数なので、が活性化するようなネットワークを構成する  ் という関数（活性化関数や決定関と、論理和（ＯＲ）が実行可能になる。

数と呼ばれる）を導入すると分かりやすい。また、しきい値を左辺に移動して、 ≡ ்   

MCPニューロンで構成される個々のネッという変数を新たに定義すると、トワークは単純な論理演算しかできない。しかし、個々のネットワークを組み合わせると、

57

共済総研レポート №176（2021.8）

一般社団法人 JA共済総合研究所（http://www.jkri.or.jp/）特別掲載  

10以下のようなルールにしたがって重み値を更

0
 0

新しよう：のように、上記の関係を簡単に書きかえるこଵ  ଴     ଴ .ともできる。しきい値の判定に用いるは信号が出力される程度やニューロンの発火ある

これは、予測値が外れていた場合（   ଴ ）いは活性化のしやすさを表す項であるが、こは重み値を更新し、当たっていれば（   ଴ ）の項はバイアス（ユニット）と呼ばれる。

現在の重み値を引き継ぐというルールであパーセプトロンでは活性化関数としてステる。ここで、もし予測値が外れていた場合、ップ関数（が０以上なら１、０未満なら０重み値をどれくらい更新するか、その更新のを出力するような関数）が用いられる。また、程度を調節する（ハイパー）パラメータ

ニューラルネットワークでは（標準）シグモ ∈ 0,1 は学習率と呼ばれる。学習率が大きイ ド （ ロ ジ ス テ ィ ッ ク ） 関 数 や ReLU

すぎると、重み値が振動を続け、いつまでた（Rectified Linear Unit）関数などの非線形っても更新が終わらないリスクが高くなる。

関数もよく用いられる。

一方、学習率が小さすぎると学習する速度がパーセプトロンモデルは内積の計算としき低下するため、リスクと速度を考慮したうえ

い値の判定という極めて単純な要素で構成さで適切な値を設定することが、実務的には重れており、単一のモデルで表現できる関係は要となる。適切な学習率を設定し、出力比較限定的である。しかし、MCPニューロンのとと重み値更新のプロセスを十分に繰り返せ

ころで議論したように、これらを何重にも重ば、予測性能を最大化するような重み値を推ねて（層を深くして）いけば、より複雑な関定できる。

係を表現することができるだろう。
また、個々

パーセプトロンと同じ単層のニューラルネの要素が単純であることを活かして、多層のッ ト ワ ー ク と し て 、 1960 年 に Bernard

ネットワークをうまく訓練する方法を考える

Widrow と Tedd Hoff （ Marcian Edward

ことができれば、モデルの推定を簡単にできHoff Jr. ） が 発 表 し た の が ADALINEるかもしれない。

（ADAptive LＩnear NEuron）である。パー

まずは、単純なパーセプトロンモデルを訓セプトロンが０または１という出力の正誤の練する方法から考えてみよう。パーセプトロ

みに基づいて重み値の更新を行っていたのにンモデルにおいて、推定したいパラメータは、対し、ADALINEは入力値と重み値の内積を個々の入力 をどの程度出力に反映させるか活性化関数とし、連続値に基づいて重み値のを表す重み なので、推定（学習・訓練）の対更新を行う点が最大の違いである：

象はこの重み値となる。最初に、重み値をゼロ    ் .

、初または任意の小さい値で初期化し（  ଴ ）期の重み値に基づいて出力を予測しよう：

そのため、予測が当たったか外れたか、という質的な情報に加えて、予測値が実測値から

 ଴  ் ଴  .

どれくらい外れていたのか、という量的な情計算された予測値と現実の出力値とを比較す

報を重み値の更新に利用できる点でパーセプ

れば、当たりをつけた初期の重み値が的はずトロンよりも学習効率に優れている。

れなものかそうでないのかが分かる。次に、これまでの議論から、重み値の学習には予58

共済総研レポート №176（2021.8）

一般社団法人 JA共済総合研究所（http://www.jkri.or.jp/）

特別掲載

測値と実測値との乖離を小さくすることが重ネットワークが多層になったところで、損要であることがわかった。そこで、予測値と失関数の最小化問題を解いて重み値を学習す

実測値との乖離を損失（コスト）と考えると、るという基本的な考え方は単層の場合と変わ重み値の学習問題は損失最小化問題として定らない。しかし、多層化することによって損式化できることがわかる。
こうした観点から、失関数は複雑な非凸関数になり、局所最小点損失関数は微分可能であることが望ましい。

を無数に含むようになるため、大域的な最小なぜなら、損失最小化を行う際、関数の傾き値を単純な最適化ルーチンで効率的に得るこ（勾配）の情報を利用できるからである。ことは困難になる。の点、ADALINEは、損失関数を誤差平方和

一般に、複雑な問題に対処するには、問題として定義できる：
1ଶ  ௜  ௜ 
2を単純なブロックに切り分けることが効果的ので、勾配降下法などの効率的な最適化ルー多層に重ね合わさった構造をしているので、チンを適用することができる点に計算上の強切り分け自体は難しくない。複雑な損失関数みがある。他方、パーセプトロンで用いられを単純な要素に切り分ける方法としては、微るステップ関数は   0 で微分ができないた分法における連鎖律が参考になる。

なことが多い。幸運なことに、ディープニューラルネットワークは単純なネットワークが௜

め、効率的な最適化ルーチンを適用できない

合成関数の導関数は、合成前の関数の導関という弱みがある。

数の積として表すことができる、というのが微文法における連鎖律であった。ディープニ

４．ディープニューラルネットワークューラルネットワークの損失関数は、層ごと単純なパーセプトロンを訓練する方法が分の損失関数を合成した関数なので、その導関かったところで、単一のニューロンを多層に数は層ごとの損失関数の導関数の積として表重ねた場合を考えてみよう。前項で述べたよすことができる。このように、連鎖律に基づうに、ニューロンを多層に重ねることで、ネいて損失関数を切り分け、その勾配を効率的ットワーク全体でより複雑な関係を表現できに計算する手法を自動微分という 。

１

るようにすることが最終的な目標である。た

自動微分を用いたからといって、必ず学習にとえば、パーセプトロンを多層化したものは成功するという保証はない。一般に、層が深く多層パーセプトロンと呼ばれる。パーセプトなるにつれて学習の難易度は高くなることがロンが入力層と出力層のみで構成されていた知られている。たとえば、層を追加するととものに対し、多層パーセプトロンは層の重ね合に勾配が小さくなり、学習が行き詰まる勾配消わせによって入力層と出力層の間に１つ以上失の問題が典型的に知られている。ディープニの隠れ層（中間層）を持つ点が最大の違いでューラルネットワークにおける勾配の不安定さある。このように、隠れ層が１つ以上存在すに対処するためには特別なアルゴリズムを設るネットワークをディープニューラルネット計する必要があり、このように設計されたアルワークという。

ゴリズムはディープラーニングと総称される。

１ やや技術的な話をすると、自動微分には勾配を前からかけ合わせるフォワード型と後ろからかけ合わせるリバース型とがある。解析的には同型であるが、リバース型はフォワード型と異なり、行列どうしの乗算が不要なため、計算量の観点から有利であることが知られている。ニューラルネットワークの学習を行う際によく用いられるものとしてバックプロパゲーション（誤差逆伝播法）というアルゴリズムがあるが、名前からも分かる通り、これはリバース型の手法である。

59

共済総研レポート №176（2021.8）

一般社団法人 JA共済総合研究所（http://www.jkri.or.jp/）

特別掲載

５．畳み込みニューラルネットワークに有用である可能性は否定できない。そのた

最後に、畳み込みニューラルネットワーク

め、分析者としては、情報を処理する過程で（Convolution Neural Network：CNN）を取こうした情報を可能な限り保持しながら分析り上げよう。CNNは人が物体を認識するときのを行いたい。このような動機から、畳み込み視覚野の働きをヒントにしたモデルで、画像認識と呼ばれる演算を行う層をネットワークに導や音声認識などで用いられていることが多い。

入し、高次の情報が保持されたディープニューラルネットワークがCNNである。

統計的な予測を行う際は、予測に有用な入力変数を探し出すことが決定的に重要である。仮それでは、畳み込みとはどのような演算をに適切な関数型が得られていたとしても、適切指すのだろうか、１次元の畳み込み演算を使な入力がなければ、十分な予測性能は期待できって具体的に確認しよう。ベクトルととのない。入力変数を探し出すことは特徴量の抽

畳み込みは   ∗ で表される。これまでと出と呼ばれ、分析者が専門知識に基づいて恣意同様、は入力またはシグナルと呼ばれるのに的に抽出するか、または何らかの特徴量抽出手

対し、はフィルターやカーネルと呼ばれる。

法を用いるやり方が一般的である。この点、これは、「重み」に相当するものと考えておけ

CNNはデータから特徴量を自動で学習する。

ばよいだろう。数学的に、畳み込み演算はこれまでに見てきた多層ニューラルネットஶワークでは、すべての入力変数が内積の計算

௜   !௜ି௞ "௞としきい値の判定に用いられてきた。これは

௞ୀିஶ

隣接する層のニューロンがすべて近接（連結）と定義される。!は有限次元のベクトルなのしていることを仮定しており、こうした層はで、総和を計算するため、とのインデック

全結合層と呼ばれる。全結合層とは基本的にスの外側は０などの定数で満たされていると多層パーセプトロンを意味するので、すべて仮定して計算を行う。このような処理はパデの入力!௜ が出力௝ に重み"௜௝ で結合されていィングと呼ばれており、０で満たすときはとることになる。全結合層はもっとも基礎的なくにゼロパディングと呼ばれる。実務上、パ結合層で扱いやすい。ただ、その構造からすディングは出力サイズを調節するために用いべての入力を等しく扱わざるを得ないので、られる。数式だけではイメージが湧きにくい

情報を処理する際に高次の情報が切り捨てら読者もいると思うので、補論では具体的な計れてしまうという問題がある。

算例を紹介した。こちらも参照いただきたい。

高次の情報が切り捨てられる、という状況を考えるため、三次元座標の情報が入力され最後に、畳み込みとともに多くのCNNで使た場合を考えよう。それぞれの数値の背後にわれるプーリング、またはサブサンプリングは縦・横・高さという情報が存在している。とよばれる演算を紹介しておこう。いま、二しかし、ここで内積を計算すると、座標に関次元の畳み込み演算によって以下のような入する情報はすべて失われてしまう。もちろん、力が得られたとする。

こうした高次の情報が学習に影響を与えない

1 2 0 1
1 0 2 3
$&
2 0 1 01 1 1 0
プーリング演算は、' ( )の領域を縮約するのであれば、どれだけ切り捨てても問題はない。しかし、たとえば画像認識を行う場合、座標が近いか遠いか、などの高次情報が学習60

共済総研レポート №176（2021.8）

一般社団法人 JA共済総合研究所（http://www.jkri.or.jp/）

特別掲載

処理で、代表的なものに最大値プーリングや ∗  を計算してみよう。シグナルとカーネ平均値プーリングがあげられる。たとえば、

ルはインデックスを逆方向に参照するので、1 2+の1 0カーネルを回転して、௥  *ସ ଷ ଶ 1+とする。

0 1+ の最大値３、左下の2 3次に出力要素ごとにシグナルと回転したカーଵ ଵ ଵ2 ( 2の最大値プーリングは、左上の*最大値２、右上の*ネルとをかけ合わせていけば、*2 0
1 0+ の最大値２、そして右下の*+の最1 0
1 1111ଵ  1 (  2 (  3 (  4 ( 14322 3+となる。プ大値１を取り出した,ଶൈଶ  *2 1

111ଶ  2 (  3 (  4 (  5 ( 1432ーリング演算は、入力の微小な変化に対して安定的な値を取るため、データに含まれるノ111ଷ  3 (  4 (  5 (  6 ( 1432イズに対して頑健な特徴量を抽出する方法でのように畳み込み演算を行うことができる。

ある。

この例では、パディングを行っていないので、パディングサイズは０となる。また、カーネ６．おわりにルはシグナル上を１ずつ移動している。この本連載では、収集・蓄積されたデータを活移動サイズは畳み込みのハイパーパラメータ用するための基本的な知識の概説を目的としの一つで、ストライドと呼ばれている。て、第一回では統計モデルの選び方、そしてたとえば、ストライドが２のもとで、入力第二回では、より複雑な関係を記述するモデベクトルのサイズを出力でも維持したい（つルとしてニューラルネットワークを扱った。

まり、６にしたい）場合を考えてみよう。こ

本連載で扱った内容に限らず、統計学や機のような場合は、械学習に関する知識を理解するためには、手1
11ଵ  0 (  0 (  0 (  0 ( 1432を動かす、つまりモデルを実装して実際にデータ分析を行う必要がある。本連載を通じて111ଶ  0 (  0 (  1 (  2 ( 1432

データ分析に興味をもった、あるいは実務プロセスにデータ分析を導入したいと思ったの111ଷ  1 (  2 (  3 (  4 ( 1432であれば、小規模なプロジェクトでいいのでまずは始めてみることが大切だ。現実のデー

111ସ  3 (  4 (  5 (  6 ( 1432タ分析は、教科書の例のようにうまくはいかないが、試行錯誤することで得られるものは111ହ  5 (  6 (  0 (  0 ( 1432

少なくないだろう。本連載の内容が、そうした取組みの一助となれば幸いである。

111଺  0 (  0 (  0 (  0 ( 1432

補論のように、出力サイズに応じてパディングサイズを４に設定すればよい。つまり、サイズ畳み込み演算を具体的に理解するため、
  -1 2 3 4 5 6,   *1

ଵ ଵ ଵଶ ଷ ସが４のゼロパディングを行ったシグナル+ の畳み込み  -0,0,0,0,1,2,3,4,5,6,0,0,0,0 と 回 転 し た カ61

共済総研レポート №176（2021.8）

一般社団法人 JA共済総合研究所（http://www.jkri.or.jp/）

特別掲載ーネルとを掛け合わせた、という意味である。
（参考文献）
・斎藤康毅．『ゼロから作るDeep Learning－Ｐｙｔｈｏｎで学ぶディープラーニングの理論と実装』．オライリー・ジャパン．2016．
・A. Géron. 『 scikit － learn 、 Keras 、TensorFlowによる実践機械学習』．第２版．オライリー・ジャパン．2020．
・C. M. Bishop. 『パターン認識と機械学習
上・下』．丸善出版．2012．
・R. Sebastian, M. Vahid. 『Python機械学
習プログラミング 達人データサイエンテ
ィストによる理論と実践』．第３版．インプレス．2020．
・T. Hastie, R. Tibshirani, J. Friedman. 『統計的学習の基礎 －データマイニング・推論・予測－』．共立出版．2014．

62

共済総研レポート №176（2021.8）

一般社団法人 JA共済総合研究所（http://www.jkri.or.jp/）

特別掲載

63

共済総研レポート №176（2021.8）

一般社団法人 JA共済総合研究所（http://www.jkri.or.jp/）