活性化関数の役割とは ニューロン単位か全体かで見分ける
ITパスポート試験 令和5年度 問91 / 基礎理論 › 情報に関する理論
過去問にチャレンジ
AIに利用されるニューラルネットワークにおける活性化関数に関する記述として適切なものはどれか。
- ア
ニューラルネットワークから得られた結果を基に計算し,結果の信頼度を出力する。
- イ
入力層と出力層のニューロンの数を基に計算し,中間層に必要なニューロンの数を出力する。
- ウ
ニューロンの接続構成を基に計算し,最適なニューロンの数を出力する。
- エ
一つのニューロンにおいて,入力された値を基に計算し,次のニューロンに渡す値を出力する。
会話形式の解説
講師今回は活性化関数がテーマです。注目してほしいのは、その関数が「一つのニューロンの中」で働くのか、それとも「ネットワーク全体」の結果や構造を扱うのか、という点です。
受験者選択肢はどれも「計算して何かを出力する」と書いてあって、似て見えます。私は「活性化」という言葉から、ネットワーク全体を調整するものかと思っていました。
講師そう感じる人は多いです。ニューラルネットワークは、ニューロンと呼ばれる小さな計算単位がたくさんつながってできています。活性化関数は、その一つ一つのニューロンが受け取った値を変換して、次のニューロンに渡す値を決める関数です。
受験者そうすると、一つのニューロンで入力から計算して、次のニューロンに渡す値を出力する、という説明が当てはまりそうですね。
講師そのとおりです。もう少し詳しく言うと、ニューロンは入力に重みを掛けて合計し、そこにバイアスという調整用の値を加えます。その値に活性化関数を適用して、結果を次の層へ渡します。
受験者ネットワークの結果を基に信頼度を出力する、という説明はどうですか。AIが答えの確からしさを出すのは聞いたことがあるので、迷いました。
講師それはネットワーク全体の結果を評価する話で、評価関数の説明です。活性化関数は個々のニューロンの中で働くものなので、全体の結果を評価する関数ではありません。
受験者残りの二つは、中間層に必要なニューロン数を出すものと、接続構成から最適なニューロン数を出すものでした。どちらも数を決める話なので、関数の出力とは違う気がします。
講師よい見方です。中間層のニューロン数はネットワークを設計するときに決めることで、設計者が検証を重ねて決めるのが一般的です。最適な数を探すのも構造の設計や調整の作業です。どちらも、ニューロンの出力値を決める活性化関数とは別の話です。
受験者整理すると、活性化関数はニューロン単位で入力を変換して次へ渡す値を出すものです。全体の結果を評価したり、ニューロン数を決めたりするものではない、ということですね。
講師そのとおりです。補足すると、活性化関数にはネットワークに非線形性を持たせる役割があります。単純な比例関係だけでは表せない複雑なパターンを学習できるようにするためです。代表的なものとして、ステップ関数、シグモイド関数、ReLU、ソフトマックス関数を覚えておきましょう。
受験者ソフトマックス関数は、出力を確率にするものだと聞いたことがあります。それなら信頼度を出すのと同じではないのでしょうか。
講師引っかかりやすいところです。ソフトマックス関数は出力層で値を確率に変換し、その確率が確からしさの目安として使われることもあります。ただ、これもあくまで出力層のニューロンの出力値を変換する関数で、ネットワーク全体の結果を評価する関数ではありません。「〜関数」という名前に惑わされず、働く範囲を確かめるようにしてください。
まとめ
活性化関数は、ニューラルネットワークの各ニューロンが受け取った値を変換し、次のニューロンへ渡す出力値を決める関数です。ニューロンは入力に重みを掛けて合計し、バイアスを加えた値に活性化関数を適用して、その結果を次の層へ渡します。ネットワーク全体の結果を評価して信頼度を出すのは評価関数の役割です。中間層などのニューロン数は設計者が決める事項で、活性化関数が出力するものではありません。代表例としてステップ関数、シグモイド関数、ReLU、ソフトマックス関数があり、関数が働く範囲がニューロン単位か全体かに注目すると見分けやすくなります。
解答・解説
正解はエです
この問題のテーマ
ニューラルネットワークで使われる活性化関数が、どこで何をする関数なのかを問う問題です。
解き方の考え方
活性化関数は「一つのニューロンの中で働き、受け取った値を変換して次へ渡す値を決める」関数です。まず、その関数がニューロン単位で働くのか、ネットワーク全体の結果や構造を扱うのかを見分けます。結果の評価やニューロン数の決定など、ネットワーク全体に関わる内容を述べた選択肢は外せます。そうすると、ニューロン単位の入出力を説明している選択肢が残ります。
選択肢ごとの解説
- ×ア ニューラルネットワークから得られた結果を基に計算し,結果の信頼度を出力する。ネットワークの結果を基に信頼度を出力するという説明は、評価関数の説明です。活性化関数は個々のニューロンの中で働くもので、ネットワーク全体の結果を評価する関数ではありません。
- ×イ 入力層と出力層のニューロンの数を基に計算し,中間層に必要なニューロンの数を出力する。入力層と出力層の数から中間層のニューロン数を出すという説明は、活性化関数の役割ではありません。中間層のニューロン数はネットワークを設計するときに決める事項で、設計者が検証を重ねて決めるのが一般的です。
- ×ウ ニューロンの接続構成を基に計算し,最適なニューロンの数を出力する。接続構成から最適なニューロン数を出すという説明も、活性化関数の役割ではありません。最適なニューロン数を探すのは構造の設計や調整の作業であり、ニューロンの出力値を決める活性化関数とは別の話です。
- ○エ 一つのニューロンにおいて,入力された値を基に計算し,次のニューロンに渡す値を出力する。一つのニューロンが入力された値から計算し、次のニューロンに渡す値を出力するという説明は、活性化関数の働きそのものです。ニューロンでは入力に重みを掛けて合計した値に活性化関数を適用し、その結果を次の層へ渡します。
補足
「〜関数」という名前の選択肢が並ぶと紛らわしく感じますが、その関数が働く範囲が一つのニューロンなのかネットワーク全体なのかに注目すると見分けやすくなります。ソフトマックス関数のように、出力層で値を確率に変換する活性化関数もあります。これと「結果の信頼度を出力する」という説明を混同しないように注意してください。
POINT
- 活性化関数は、各ニューロンが受け取った値を変換し、次のニューロンへ渡す出力値を決める関数です。
- 活性化関数はネットワークに非線形性を与え、複雑なパターンを学習できるようにします。
- 代表的な活性化関数には、ステップ関数、シグモイド関数、ReLU、ソフトマックス関数などがあります。
- 中間層のニューロン数のような構造は設計者が決める事項で、活性化関数が出力するものではありません。
