【PR】この記事には楽天アフィリエイト・Amazonアソシエイトの広告リンクが含まれます。商品やサービスは公式の仕様・条件と販売情報を確認して選んでおり、実機テストによる評価ではありません。 Amazonのアソシエイトとして、PROBEFOLIOは適格販売により収入を得ています。

活性化関数は、ニューラルネットワークの各ニューロンの最後で、計算の結果を「曲げる」ための関数です。これがないと、層をいくら重ねても、1段の単純な計算と同じことしかできません。

この記事では、2026年9月25日に確認したGoogleの機械学習の教材と論文をもとに、なぜ必要かを小さな数字の例で確かめ、よく使われる種類の違いまで説明します。

この記事の目次
01

結論:ないと、何層重ねても1つの直線の計算にまとまるから

Googleの機械学習の教材は、「線形の計算に線形の計算を重ねても、線形のまま」と説明しています。掛けて足すだけの計算(線形の計算)は、何段重ねても、1段の掛けて足す計算にまとめられてしまいます。

つまり、活性化関数がないと、層を100段重ねても、1段のネットワークと同じことしかできません。 直線1本で分けられない問題は、いつまでも解けないままです。

活性化関数があるときとないときの違いは、表「活性化関数のあり・なしの違い」のとおりです。

活性化関数のあり・なしの違い
項目活性化関数なし活性化関数あり
層を重ねた結果1段の直線の計算にまとまる折れ曲がった複雑な形を作れる
分けられる境目直線(平面)だけ曲がった境目も作れる
XORのような問題解けない解ける
層を深くする意味ほとんどない深いほど複雑な特徴を作れる
02

活性化関数はどこに入るのか

活性化関数は、ニューラルネットワークの1個1個のニューロンの中で、計算の最後に入ります。流れは、図「1個のニューロンの中の計算」のとおりです。

入力に重みを掛けて足し、バイアスを足すところまでは、どのニューロンも同じ「掛けて足す」計算です。その結果を次の層に渡す前に、活性化関数で形を整えます。

1個のニューロンの中の計算

  1. 入力を受け取る

    前の層から、いくつかの数字を受け取る

  2. 重みを掛けて足す

    入力ごとに重みを掛け、全部を足す

  3. バイアスを足す

    基準の高さを調整する数字を足す

  4. 活性化関数を通す

    結果を曲げてから、次の層に渡す

活性化関数は、掛けて足す計算の後、次の層に渡す前に入る。

1〜3番目は、どれだけ重ねても直線の計算です。4番目があることで、層ごとに折れ曲がりが加わり、重ねる意味が生まれます。

層の数だけ、この流れが繰り返されます。出力層だけは、答えの形に合わせた関数を使います。

03

身近なたとえ:まっすぐな紙は重ねても平ら

まっすぐな紙を何枚重ねても、平らな紙の束のままです。どれだけ枚数を増やしても、立体の形は作れません。掛けて足すだけの層を重ねるのは、これと同じです。

一方で、1枚ずつ折り目を付けてから重ねると、箱や鶴のような形を作れます。活性化関数は、この「折り目」の役目をします。

折り目の付け方がReLUやシグモイドなどの種類の違いで、折り目の位置や深さは、学習の中で重みとバイアスが決めていきます。

04

数字で確かめる:2段の直線は1段の直線にまとまる

入力をxとして、1段目で「2倍して1を足す(y=2x+1)」、2段目で「3倍して4を引く(z=3y−4)」という計算をするネットワークを考えます。どちらも掛けて足すだけの計算です。

1段目の式を2段目に入れると、z=3×(2x+1)−4=6x−1になります。2段の計算が、「6倍して1を引く」という1段の計算にまとまりました。

これは、何段重ねても同じです。掛けて足すだけの計算は、どれだけ重ねても「何倍かして何かを足す」1つの計算になります。層を重ねる意味がなくなってしまうのです。

2段の直線の計算(y=2x+1、z=3y−4)
入力 x2段で計算した z1段の式 6x−1
−23×(−3)−4=−13−13
03×1−4=−1−1
13×3−4=55
23×5−4=1111
05

間にReLUを入れると、線が折れ曲がる

同じ例で、1段目の結果に「マイナスなら0、プラスならそのまま」にするReLUを入れてみます。z=3×ReLU(2x+1)−4です。

xが−0.5より小さいとき、2x+1はマイナスなのでReLUで0になり、zは−4のまま平らになります。xが−0.5以上のときは、z=6x−1の直線になります。つまり、線がx=−0.5で折れ曲がりました。

折れ曲がりを作れるようになると、折れ線を何本も組み合わせて、どんな形にも近い線を作れるようになります。これが、活性化関数が「曲げる」役目と呼ばれる理由です。

ReLUを入れた計算(z=3×ReLU(2x+1)−4)
入力 xReLUなしの zReLUありの z
−2−13−4(平ら)
−1−7−4(平ら)
0−1−1
21111
06

折れ目を増やすと、どんな形にも近づける

ReLUを何個か組み合わせると、折れ目を増やせます。たとえば、ReLU(x)−2×ReLU(x−1)+ReLU(x−2)という計算は、xが0から1で上がり、1から2で下がる「山」の形になります。

xが0のとき0、1のとき1、2のとき0、3のとき0です。ReLU3個で、平らな所・上り坂・下り坂・平らな所を持つ形を作れました。

山をたくさん並べて高さを変えれば、どんな曲線にも近い形を作れます。ニューロンの数が多いネットワークほど複雑な関係を学べるのは、このためです。

ReLUを3個組み合わせた計算
入力 xReLU(x)−2×ReLU(x−1)+ReLU(x−2)形
00−0+0=0平ら
11−0+0=1山の頂上
22−2+0=0下り終わり
33−4+1=0平ら
07

直線では解けない問題を解く:XORの例

XOR(排他的論理和)は、2つの入力のどちらか一方だけが1のときに1を出す問題です。(0,0)と(1,1)は0、(1,0)と(0,1)は1になります。この4点は、直線1本では0の組と1の組に分けられません。

ReLUを使った隠れ層を1つ入れると解けます。h1=ReLU(x1+x2)、h2=ReLU(x1+x2−1)を計算し、出力をh1−2×h2にします。結果は表「ReLUでXORを解く計算」のとおりで、4点とも正しく答えられます。

活性化関数がなければ、この計算もh1−2×h2が1つの直線の式にまとまり、XORは解けません。直線で分けられない問題を解けることが、活性化関数が必要な一番分かりやすい理由です。

ReLUでXORを解く計算
入力(x1, x2)h1 と h2出力 h1−2×h2
(0, 0)h1=0、h2=00
(1, 0)h1=1、h2=01
(0, 1)h1=1、h2=01
(1, 1)h1=2、h2=10
08

よく使われる活性化関数の違い

活性化関数には、いくつかの種類があります。Googleの教材は、シグモイド・tanh・ReLUの3つを代表として紹介しています。

使われる場所と特徴は、表「代表的な活性化関数」のとおりです。今の隠れ層では、ReLUやその仲間が定番です。

代表的な活性化関数
名前出力の形主な使いどころ・特徴
ステップ関数0か1のどちらか昔のパーセプトロン。学習に使いにくい
シグモイド0〜1のなめらかなS字確率を出す出力層。深い層では勾配が消えやすい
tanh−1〜1のS字シグモイドより中心がそろう
ReLUマイナスは0、プラスはそのまま隠れ層の定番。計算が軽い
GELUReLUをなめらかにした形BERTやGPTなどの言語モデル
09

シグモイドの弱点:勾配が消える

ニューラルネットワークは、誤差逆伝播法で、出口から入口に向かって「直す向き(勾配)」を計算して学びます。この計算では、各層の傾きを次々に掛け合わせます。

シグモイドの傾きは、一番大きいところでも0.25です。10層で0.25を掛け合わせると、0.25の10乗で約0.00000095になります。入口に近い層ほど、直す向きがほとんど0になり、学習が進まなくなります。これを勾配消失と呼びます。

Googleの教材は、ReLUが勾配消失の問題を受けにくいため、シグモイドやtanhより少しうまく働くことが多いと説明しています。深いネットワークの隠れ層でReLUが選ばれる大きな理由です。

10

ReLUは単純なのに、なぜうまくいくのか

ReLUは「マイナスなら0、プラスならそのまま」という、とても単純な関数です。それでも隠れ層の定番になった理由は、主に3つあります。

  1. 計算が軽い:0と比べて大きいほうを取るだけなので、たくさんのニューロンでもすばやく計算できる。
  2. 勾配が消えにくい:プラスの側の傾きはいつも1なので、層を重ねても直す向きが小さくなりにくい。
  3. 折れ目を組み合わせられる:折れ線を何本も足し合わせれば、複雑な形にも近づける。

単純さと、組み合わせたときの表現力の両方を持っていることが、ReLUが広く使われる理由です。

11

ReLUにも弱点がある:動かなくなるニューロン

ReLUはマイナスをすべて0にするため、あるニューロンの入力がいつもマイナスになると、出力がずっと0になります。こうなると、そのニューロンは学習にまったく参加しなくなります。

Googleの教材は、これを「死んだReLU」と呼び、学習率を下げることや、マイナスの側にも少しだけ傾きを残すLeakyReLUを使うことを対策に挙げています。

どの活性化関数にも得意・不得意があります。「隠れ層はまずReLU、うまくいかなければ仲間の関数を試す」と考えると選びやすくなります。

12

LLMで使われるGELU

ChatGPTのもとになるような言語モデルでは、GELUという活性化関数がよく使われます。GELUは2016年の論文で提案された関数で、ReLUの折れ曲がりをなめらかにしたような形をしています。

2018年に発表された言語モデルBERTの論文には、OpenAIのGPTにならい、標準的なReLUではなくGELUを使ったと書かれています。

なめらかな形のほうが、大きなモデルの学習が安定しやすいと考えられています。ただ、「なぜ必要か」という基本は、ReLUの例と同じです。

GELUも、ReLUと同じく、マイナスの入力はほぼ0に近づけ、プラスの入力はほぼそのまま通します。違いは、0の近くの形がなめらかかどうかです。

13

よくある3つの誤解

  1. 活性化関数が「判断」している:判断を決めているのは重みとバイアスで、活性化関数は結果の形を整えるだけ。
  2. 活性化関数は出力を0か1にするもの:0か1にするのは昔のステップ関数だけ。ReLUはプラスの値をそのまま通し、シグモイドは0〜1のなめらかな値を出す。
  3. 種類を変えれば性能が大きく上がる:多くの場合、隠れ層はReLUの仲間で十分に働く。性能はデータの量や層の設計のほうが大きく左右する。

この3つを押さえておくと、解説記事や試験の選択肢で迷いにくくなります。

14

選び方の手順

初めて自分でネットワークを作るときは、次の順に考えると迷いません。

  1. 出力層を先に決める:答えが2択ならシグモイド、3つ以上から選ぶならソフトマックス、数値ならそのまま。
  2. 隠れ層はReLUから始める:多くの場合、まずReLUで試す。
  3. 学習がうまく進まなければ変える:出力が0のまま動かないニューロンが多いなら、LeakyReLUなどの仲間を試す。

言語モデルのような大きなモデルを一から作ることはまれですが、使われている関数の名前を見て、その意味が分かるようになると解説が読みやすくなります。

15

出力層の関数は、答えの形で選ぶ

隠れ層の活性化関数とは別に、最後の出力層では、答えの形に合わせて関数を選びます。

  1. はい・いいえの2択:シグモイドで0〜1の確率にする。迷惑メールかどうか、など。
  2. 3つ以上から1つを選ぶ:ソフトマックスで、全部の確率の合計が1になるようにする。写真が猫・犬・鳥のどれか、など。
  3. 数値を当てる:何もしないでそのまま出す。家の値段の予想、など。

言語モデルが次の言葉を選ぶときも、たくさんの言葉の候補から1つを選ぶので、ソフトマックスのような計算で確率にしています。

出力層の関数を間違えると、確率の合計が1にならないなど、答えの意味がおかしくなります。隠れ層より先に、出力層の関数を答えの形で決めてください。

16

表計算で試す:ReLUの折れ曲がりを見る

この記事の例は、ExcelやGoogleスプレッドシートで確かめられます。A列に−2から2までのxを並べ、B列に「=3*(2*A2+1)-4」、C列に「=3*MAX(0,2*A2+1)-4」と入れます。

2つの列をグラフにすると、B列は1本の直線、C列は途中で折れ曲がった線になります。MAX(0, …)の部分が、ReLUの役目をしています。

XORの例も、h1とh2の式を同じように入れれば確かめられます。数字が式どおりに変わるのを見ると、「曲げる」意味が実感できます。

山の形の例も、「=MAX(0,A2)-2*MAX(0,A2-1)+MAX(0,A2-2)」と入れてグラフにすると、折れ目が3つある形を目で確かめられます。

17

資格の勉強で押さえたい点

JDLAのE資格の出題範囲では、「深層学習の基礎」の中に順伝播型ネットワークが含まれています。活性化関数は、その基本の部品です。

勉強では、次の3点を自分の言葉で説明できるようにしておくと安心です。

  1. なぜ必要か:線形の計算は重ねても線形のままだから。
  2. シグモイドの弱点:傾きが小さく、深い層で勾配が消えやすい。
  3. ReLUの利点と弱点:勾配が消えにくく計算が軽い一方、出力がずっと0になるニューロンが出ることがある。

用語を覚えるだけでなく、この記事の「2段の直線が1段にまとまる」計算を自分で書いてみると、選択肢の言いかえにも迷わなくなります。

QUICK ANSWERS

よくある疑問を、ここで。

使い始める前に、気になるところから。

活性化関数を一言でいうと?

ニューロンの計算の最後で、結果を曲げるための関数です。これがあることで、層を重ねたニューラルネットワークが、直線では分けられない複雑な関係を学べるようになります。

活性化関数がないとどうなりますか?

層をいくら重ねても、1段の掛けて足す計算にまとまります。y=2x+1とz=3y−4を重ねると、z=6x−1という1つの式になるのがその例です。

どの活性化関数を使えばよいですか?

隠れ層ではまずReLUが定番です。2択の確率を出す出力層にはシグモイド、3つ以上から選ぶ出力層にはソフトマックスを使います。言語モデルではGELUもよく使われます。

なぜシグモイドは隠れ層で使われなくなったのですか?

傾きが最大でも0.25と小さく、深い層で掛け合わせると勾配がほとんど0になり、学習が進まなくなるためです。ReLUは勾配が消えにくく、計算も軽いため定番になりました。

「線形」「非線形」とは何ですか?

線形は、「何倍かして何かを足す」だけで表せる、まっすぐな関係です。非線形は、折れ曲がったり曲線になったりする関係です。活性化関数は、ネットワークに非線形を持ち込む役目をします。

この記事を共有する

X(旧Twitter)(新しいタブで開きます)LINE(新しいタブで開きます)はてなブックマーク(新しいタブで開きます)

商品情報の提供:Supported by Rakuten Developers

SOURCES & EDITORIAL NOTE

出典と、この記事について

公式資料や、記事で参照した発表・報道をまとめています。仕様や料金は、利用する前に最新の案内をご確認ください。

確認した内容と条件は本文に記載しています。結果や使い勝手は、資料や環境によって異なります。編集方針を読む