本文へスキップ
ひもとくAI

ニューロン:ロジスティック回帰と同じ部品

レッスン 1/6

脳の神経細胞をまねた計算の部品

この章では、ディープラーニングの土台である ニューラルネットワーク の仕組みを学びます。画像認識や音声認識、ChatGPTのような生成AIも、突き詰めればこの仕組みの上に成り立っています。

名前の由来は、人間の脳の神経細胞(ニューロン)です。神経細胞は、ほかの細胞から受け取った信号を合計し、それがある強さを超えると次の細胞へ信号を送ります。これをまねた計算の部品を、人工ニューロン(以下、ニューロン)と呼びます。

ニューロンがやっている計算は、次の2段階だけです。

  1. 入力 x1,x2x_1, x_2 に、それぞれ 重み w1,w2w_1, w_2 を掛けて足し、バイアス bb を加える
  2. その合計 zz を 活性化関数 に通して、出力にする
z=w1x1+w2x2+bz = w_1 x_1 + w_2 x_2 + b
入力(2つ)ニューロン
2つの入力がそれぞれ線でニューロンにつながった図。線の1本1本に重みがあり、ニューロンは受け取った値に重みを掛けて合計します。

1つ目の計算は、第4章で学んだ 内積 そのものです。重みをベクトル w⃗=(w1,w2)\vec{w} = (w_1, w_2)、入力をベクトル x⃗=(x1,x2)\vec{x} = (x_1, x_2) とすると、z=w⃗⋅x⃗+bz = \vec{w} \cdot \vec{x} + b と書けます。重みは「どの入力をどれくらい重視するか」を表す数値で、学習によって決まります。

例えば、勉強時間 x1x_1 と睡眠時間 x2x_2 から合格を判定するニューロンで、w1=1w_1 = 1、w2=0.5w_2 = 0.5、b=−6b = -6 だったとします。勉強4時間・睡眠6時間の人なら、z=1×4+0.5×6−6=1z = 1 \times 4 + 0.5 \times 6 - 6 = 1 です。

活性化関数:実はもう知っている

2つ目の計算で使う 活性化関数 には、いくつかの種類があります。そのうちの1つを、実はあなたはもう知っています。第5章で学んだ シグモイド関数 です。

出力=σ(z)=11+e−z\text{出力} = \sigma(z) = \frac{1}{1 + e^{-z}}

前のスライドの例では z=1z = 1 だったので、出力は σ(1)≈0.73\sigma(1) \approx 0.73、つまり「合格する確率は約73%」になります。

ここで気づいたでしょうか。「一次関数で zz を計算し、シグモイド関数で確率に変える」というのは、ロジスティック回帰とまったく同じ です。シグモイド関数を使ったニューロン1つは、ロジスティック回帰そのものなのです。あなたはすでに、ニューロンを1つ作って動かしていたことになります。

ReLU:もう一つのよく使う活性化関数

現在のニューラルネットワークで最もよく使われる活性化関数は、ReLU(レルー)です。規則はとても単純で、「zz がマイナスなら0、プラスならそのまま」です。

zz−2-20033
ReLU の出力003

式で書くと ReLU(z)=max⁡(0,z)\text{ReLU}(z) = \max(0, z)(0と zz の大きい方)です。計算が速く、層をたくさん重ねても学習が進みやすいため、ディープラーニングで広く使われています。

zReLU(z)-4-2024024
横軸をz、縦軸をReLU(z)にしたグラフ。zが0以下では0の水平線、0より大きいところではz=2なら2、z=4なら4と、zと同じ値で右上がりになる直線で、z=0で折れ曲がった形をしています。

シグモイド関数のなめらかなS字と違い、ReLU は0のところで折れ曲がった、2本の直線をつないだ形です。

よくある誤解と振り返り

誤解:「ニューラルネットワークは、脳をそっくり再現したもの?」

名前は脳に由来していますが、中身は脳の仕組みを再現したものではありません。やっていることは、ここまで見てきたとおり「掛け算・足し算」と「活性化関数」という計算の組み合わせです。「脳のように考える機械」という印象で捉えるよりも、「たくさんの小さな計算部品をつないだ、大きな関数 y=f(x)y = f(x)」と捉える方が、実際の姿に近いと言えます。

これは、第1章で見た「AIとは、入力 xx から出力 yy を計算する ff をどう作るかという話」という捉え方と同じです。ニューラルネットワークは、その ff を作るための、非常に表現力の高い方法の一つです。

振り返り

  • ニューロンは、「重みを掛けて足す(内積)+バイアス」→「活性化関数」という2段階の計算をする部品
  • シグモイド関数を活性化関数にしたニューロン1つは、ロジスティック回帰と同じ
  • よく使われる活性化関数には、シグモイド関数と ReLU(max⁡(0,z)\max(0, z))がある

次のレッスンでは、このニューロンを「たくさん並べて、層として重ねる」ことで、何ができるようになるのかを見ていきます。

演習

演習を読み込んでいます…