ニューラルネットワークの基礎と計算資源
ディープラーニングの土台であるニューラルネットワークを学びます。基礎層では、脳のはたらきをまねた仕組み、入力層・隠れ層・出力層の三層構造、そしてなぜ大量のデータと計算資源が要るのかをつかみます。深掘り層では、単純パーセプトロンと多層パーセプトロンの違い、隠れ層の役割、CPU・GPU・TPUがそれぞれ得意とすることまで説明できるようになります。
ねらい
このレッスンでは、ディープラーニングの土台であるニューラルネットワークを学びます。
基礎
「脳のはたらきをまねて、層を重ねて答えを出す仕組み」という全体像をつかみます。前提となる知識がなくても、ここは読み切れます。
1. ニューラルネットワークは、脳の神経細胞をまねた仕組みです
脳の中には、たくさんの神経細胞があります。一つの神経細胞は、ほかの細胞から信号を受け取り、それらをまとめて、次の細胞へ信号を渡します。この受け渡しがつながって、私たちは物事を認識したり判断したりしています。
ニューラルネットワークは、この受け渡しのはたらきを数の計算でまねたものです。人工的な神経細胞をたくさん用意し、それらをつなぎ合わせます。前の細胞から数を受け取り、まとめて、次の細胞へ数を渡します。一つ一つの計算は単純ですが、たくさんつなげると、複雑な判断ができるようになります。
ポイント
ニューラルネットワークは、脳の神経細胞が信号を受け渡すはたらきを数の計算でまねた仕組みです。
2. 入力層・隠れ層・出力層という三層構造
ニューラルネットワークの人工的な神経細胞は、いくつかの層に分かれて並びます。おかしを仕分けする機械にたとえると分かりやすくなります。
まず、材料を受け取る入口があります。次に、機械の内部で判定が行われます。最後に、仕分けの結果が出口から出てきます。ニューラルネットワークも同じで、データを受け取る層、内部で処理をする層、答えを出す層に分かれます。
- 入力層(にゅうりょくそう)は、データを受け取る入口の層です。画像なら画素の明るさ、文章なら単語の数値などを受け取ります。
- 隠れ層(かくれそう)は、入力と出力のあいだにあり、受け取ったデータを少しずつ変換していく層です。
- 出力層(しゅつりょくそう)は、最終的な答えを出す出口の層です。「犬である度合い」などを出します。
これら三つの層、すなわち隠れ層・入力層・出力層が、ニューラルネットワークの基本の骨組みです。隠れ層は、外から直接は見えない中間の処理を担うため、「隠れ」という名前が付いています。
3. 単純なものから、層を重ねたものへ
ニューラルネットワークには、単純なものと、層を重ねたものがあります。
もっとも単純なものは、入力層と出力層だけがあり、あいだに隠れ層を持ちません。これを単純パーセプトロンといいます。パーセプトロンとは、入力を受け取って一つの答えを出す、初期のニューラルネットワークのことです。
これに対して、入力層と出力層のあいだに隠れ層を加えたものを多層パーセプトロンといいます。層を多く重ねるほど、複雑なデータのパターンをとらえられるようになります。
ディープラーニングとは、この隠れ層を深く積み重ねたニューラルネットワークで学習することを指します。「ディープ」は「深い」という意味で、層を深く重ねることから来ています。
ポイント
隠れ層を持たないものが単純パーセプトロン、隠れ層を加えたものが多層パーセプトロンです。隠れ層を深く重ねて学習させることをディープラーニングと呼びます。
4. 学習には、大量のデータと計算資源が要ります
ニューラルネットワークは、はじめから正しい答えを出せるわけではありません。大量のデータを見ながら、内部の計算を少しずつ調整していきます。この調整のやり方は、後の誤差逆伝播法や勾配降下法を学ぶレッスンでくわしく扱います。ここでは、「データを見て少しずつ賢くなる」とだけ押さえてください。
層を深くするほど、調整する数はふくれあがり、必要な計算の量も大きくなります。この大量の計算を担うのが、コンピュータの計算用の部品です。代表的なものに、CPU・GPU・TPUの三つがあります。
- CPU(シーピーユー)は、コンピュータ全般の処理を受け持つ、万能な部品です。
- GPU(ジーピーユー)は、もともと画像を描くための部品で、同じような計算をいちどにたくさんこなすのが得意です。
- TPU(ティーピーユー)は、ディープラーニングの計算のために専用に作られた部品です。
ディープラーニングでは、同じような計算を大量にくり返すため、それが得意なGPUやTPUがよく使われます。
ここまでの要点
- ニューラルネットワークは、脳の神経細胞が信号を受け渡すはたらきを数の計算でまねた仕組みです。
- 入力層・隠れ層・出力層という層に分かれ、隠れ層を深く重ねて学習させることをディープラーニングと呼びます。
- 学習には大量のデータと計算が要り、その計算をGPUやTPUが担います。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「脳をまねて、層を重ねて、大量に計算して学ぶ」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、一つの人工神経細胞の中で行われる計算、隠れ層が果たす役割、そしてCPU・GPU・TPUのちがいをくわしく見ます。
5. 一つの人工神経細胞の中で起きていること
一つの人工神経細胞は、前の層から複数の数を受け取ります。それぞれの入力には、つながりの強さを表す数がかけ合わされます。このつながりの強さを重み(おもみ)といいます。重みが大きい入力ほど、次への影響が大きくなります。
人工神経細胞は、入力のそれぞれに重みをかけて足し合わせ、一つの合計を作ります。この合計に対して、ある関数を通してから、次の層へ出力を渡します。この関数を活性化関数(かっせいかかんすう)といいます。
式で書くと、次の2段になります。
合計 = 入力1 × 重み1 + 入力2 × 重み2 + …(入力の数だけ続く) 出力 = 活性化関数(合計)
読み下すと、入力のそれぞれに、その入力ごとの重みをかけて全部足し、その合計を活性化関数に通したものが出力になる、という意味です。上の段は、線形回帰で見た「入力に重みを掛けて足し合わせる」とまったく同じ形です。ニューラルネットワークは、この計算を1つの細胞の中で行い、それを層のぶんだけ重ねたものだといえます。活性化関数の種類と役割は、次のレッスンでくわしく扱います。ここでは、「重みをかけて足し合わせ、関数を通して次へ渡す」という流れを押さえてください。
なお、層の中のすべての神経細胞が、前の層のすべての神経細胞とつながる形を全結合(ぜんけつごう)といいます。重みや全結合のくわしい話は、後の要素技術のレッスンであらためて扱います。
理解の確認
一つの人工神経細胞は、前の層からの入力それぞれに重みをかけて足し合わせ、その合計を活性化関数に通して、次の層へ出力します。重みは、つながりの強さを表す数です。
6. 単純パーセプトロンの限界と、隠れ層の役割
単純パーセプトロンは、隠れ層を持たないため、表せる判断に限りがあります。具体的には、直線を一本引いて二つのグループに分けられるような、単純な区切り方しか表せません。この、直線で分けられる関係を線形分離可能(せんけいぶんりかのう)といいます。
現実のデータには、一本の直線では分けられないものがたくさんあります。たとえば、二つの条件のうち「どちらか一方だけが成り立つとき」を選び出したい場合、直線一本では区切れません。単純パーセプトロンは、こうした問題を解けませんでした。
この限界を越えたのが、隠れ層を加えた多層パーセプトロンです。隠れ層は、入力のデータを別の見方へ変換します。入力をそのまま分けるのではなく、いったん扱いやすい形に変換してから分けることで、直線一本では分けられない複雑な関係も表せるようになります。隠れ層を重ねるほど、この変換が段階的に進み、より複雑なパターンをとらえられます。
理解の確認
単純パーセプトロンは、直線一本で分けられる関係しか表せませんでした。隠れ層を加えた多層パーセプトロンは、入力を扱いやすい形へ変換してから分けるため、直線では分けられない複雑な関係も表せます。
動かして確かめる
ここまでの話を、下のトレーナーで実際に動かして確かめてみましょう。第1部では、直線の両端を動かして4点を色ごとに分けてみてください。ANDやORはうまく分けられますが、XORはどう引いても必ず1点はみ出します。これが線形分離の壁です。第2部では、変換スライダーを右へ動かすと、隠れ層が空間を作り替えて、その壁を越える様子が見られます。
スタディード / G検定 / 動く解説
1本の直線では引けない線が、層を重ねると引ける。
単純パーセプトロンは直線を1本しか引けません。「どちらか一方だけが成り立つとき」を選び出す壁に自分でぶつかり、隠れ層が空間を作り替えて壁を越える瞬間を、動かして確かめてください。
直線1本で分ける単純パーセプトロン
4点は2つの入力(0か1)の組み合わせです。ゲートを切り替えると、各点の正解(出力0=橙/出力1=青)が変わります。直線の両端をドラッグして、色を2つに分けてください。両端の白い丸は Tab で選び、矢印キーでも動かせます。
白い丸(直線の両端)を動かして向きと位置を変えられます。XORでは、どう引いても必ず1点はみ出します。
隠れ層で空間を作り替える多層パーセプトロン
XORのまま、隠れ層が入力を別の見方へ変換します。スライダーを右に動かすと、4点が隠れユニットの空間へ移り、対角にあった2つの正解点(0,1)と(1,0)が重なっていきます。境界線は自動で最善の位置に引かれます。
スライダーを最後まで動かすと、(0,1)と(1,0)が1点に重なり、1本の直線で4点すべてが分かれます。これが層を重ねる意味です。
ここがポイント。単純パーセプトロンは、直線1本で分けられる関係(つまり、線形分離できる問題)しか解けません。多層パーセプトロンは、隠れ層が空間そのものを作り替えて、まっすぐでは分けられない問題を「分けられる形」に変えます。この作り替えは、数の並びどうしのかけ算と足し合わせ(積和)を大量にくり返す計算です。だからこそ、GPU や TPU のような並列計算が力を発揮します。
7. CPU・GPU・TPUのちがい
ディープラーニングの計算は、大量のかけ算と足し算の集まりです。同じ形の計算を数えきれないほどくり返します。この特徴が、どの部品が向いているかを決めます。
CPU(シーピーユー、Central Processing Unit)は、少数の高性能な計算の担い手を持ち、さまざまな種類の処理を順にこなすのが得意です。複雑な手順を正確にさばく万能選手ですが、同じ計算を大量に並べてこなすのは不得意です。
GPU(ジーピーユー、Graphics Processing Unit)は、もともと画面に映像を描くための部品です。映像を描く処理は、たくさんの画素に対して同じような計算をいちどに行うものでした。そのためGPUは、単純な計算の担い手を大量に備え、同じ計算をいっせいに並行して行うのが得意です。ディープラーニングの計算はまさにこの形なので、GPUが力を発揮します。
TPU(ティーピーユー、Tensor Processing Unit)は、ディープラーニングで多用される、数の並びどうしのかけ算と足し合わせに特化して作られた専用の部品です。用途をしぼって設計されているため、ディープラーニングの計算を高速に、少ない電力でこなせます。
まとめると、CPUは万能だが並行処理が苦手、GPUは同じ計算の大量並行が得意、TPUはディープラーニング専用でさらに特化、という関係です。だからディープラーニングの学習と推論には、GPUやTPUが適しています。
理解の確認
CPUは万能ですが、同じ計算の大量並行は不得意です。GPUは、単純な計算の担い手を大量に持ち、同じ計算をいっせいに行うのが得意です。TPUは、ディープラーニングの計算に特化した専用の部品です。ディープラーニングは同じ計算を大量にくり返すため、GPUやTPUが適しています。
用語の確認
このレッスンで出てきた用語を、カードで確かめましょう。用語を見て意味を思い出し、カードを押して答え合わせをします。
表 単純パーセプトロン
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。