1. 定義と概要
出力層とは、ニューラルネットワーク(人間の脳の神経回路を模した、層状につながったノードの集合で予測や分類を行う仕組み)の最終層に位置する層です。隠れ層(入力層と出力層の間にあり、データの特徴を段階的に抽出・変換する層)が段階的に抽出した特徴量(データが持つ特徴を数値化した値のまとまり)をもとに、最終的な予測結果を出力します。
出力層のノード(ニューラルネットワークを構成する計算の単位。ニューロンとも呼ばれます)数と活性化関数(各層に入ってきた信号の合計を、次の層へ渡す出力値に変換する関数)は、解こうとするタスクの種類によって決まります。
住宅価格の予測のような回帰(住宅価格や気温のような連続する数値を予測するタスク)では、出力ノード1個と恒等関数(入力された値をそのまま出力する関数)を組み合わせます。スパムメール判定のような2値分類(2つのカテゴリのどちらに当てはまるかを判定するタスク)では、出力ノード1個とシグモイド関数(入力値を0から1の範囲に変換し、確率のように解釈できる出力にする関数)を組み合わせます。
手書き数字認識のような多クラス分類(3つ以上のカテゴリの中からどれに当てはまるかを判定するタスク)では、出力ノード10個とソフトマックス関数(複数の出力値を、合計が1になる確率の形に変換する関数)を組み合わせます。
ニューラルネットワークは、入力層・隠れ層・出力層という3層構造で構成されます。入力層が受け取った生データを、隠れ層が段階的に特徴量へ変換し、出力層がその特徴量をタスクに応じた出力形式(数値や確率)へ変換して最終結果とする流れです。
出力層のノード数や活性化関数は独立に決まるものではなく、解きたいタスクの定義と一体で決まる点が、試験でも実務でも前提になります。何を予測したいのかが決まれば、出力層の形も自ずと定まるというわけです。
2. 試験対策ポイント
まず押さえておきたいのは、出力層のノード数・活性化関数・誤差関数(モデルの予測結果と正解データとの差を数値化する関数)が、いずれもタスクに応じて使い分けられる点です。対応関係を整理すると、次のようになります。
| タスク | 出力層のノード数 | 活性化関数 | 誤差関数 |
|---|---|---|---|
| 回帰 | 1個 | 恒等関数 | 平均二乗誤差 |
| 2値分類 | 1個 | シグモイド関数 | 交差エントロピー誤差 |
| 多クラス分類 | クラス数と同数 | ソフトマックス関数 | 交差エントロピー誤差 |
活性化関数の働きを言葉にすると、恒等関数は入力をそのまま出力し、シグモイド関数は出力を0から1の確率に変換し、ソフトマックス関数は各クラスの確率の総和が1になるよう正規化します。誤差関数のほうは、回帰タスクで平均二乗誤差(予測値と正解値の差を2乗して平均した指標)を、分類タスクでは2値・多クラスとも交差エントロピー誤差(予測した確率と正解の差の大きさを測る指標)を用います。
活性化関数と誤差関数の組み合わせは、それぞれ単独でなくセットで押さえておきたい関係です。表の1行をひとまとまりとして覚えると、タスクと関数の対応を入れ替えた選択肢にも気づきやすくなります。
出力層のノード数はタスクの出力形式で決まります。回帰・2値分類は1ノード、多クラス分類はクラス数と同数のノードになります(例: 手書き数字認識なら0から9の10ノード)。
また、隠れ層で使われるReLU関数(入力が0以下なら0を、0より大きければその値をそのまま出力する関数)などの活性化関数と、出力層で使われる活性化関数の役割は異なります。隠れ層は非線形変換(入力と出力が単純な比例関係にならない変換)によってネットワークの表現力を高める役割を持ち、出力層はタスクに応じた出力形式へ変換する役割を持つという違いは、取り違えやすい点になります。
3. 関連概念との比較・相違点
出力層は、入力層・隠れ層と役割の面で対比すると位置づけがつかみやすくなります。3つの層の違いを並べると、次のとおりです。
| 層 | 担う役割 | ノード数の決まり方 |
|---|---|---|
| 入力層 | 画像のピクセル値や特徴量などの生データをそのまま受け取る | データの次元数(特徴量の数)で決まる |
| 隠れ層 | 特徴量を段階的に抽出・変換し、ネットワークの表現力を高める | 層数とあわせて設計者が増減させる |
| 出力層 | 最終的な予測結果を出す | タスクの種類で決まる |
入力層との最大の違いは役割です。入力層は生データを受け取る窓口で、ノード数はデータの次元数で決まります。出力層は最終的な予測結果を出す窓口で、ノード数と活性化関数はタスクの種類で決まります。どちらも、学習が進んでも層そのものの役割(生データを受け取る、結果を出す)は変わらないという点が共通しています。
隠れ層との最大の違いは処理内容です。隠れ層は入力層と出力層の間で特徴量を段階的に抽出・変換する層で、層数やノード数を増やすことでネットワークの表現力を高められます(層を深くしたものがディープラーニングです)。
隠れ層で使われる活性化関数は主にReLU関数ですが、出力層で使われる活性化関数はタスクの種類によってほぼ一意に決まる点が、隠れ層とは異なります。入力層・隠れ層・出力層をあわせ持つ最も基本的な構造は、多層パーセプトロン(入力層・隠れ層・出力層を持つ、最も基本的なニューラルネットワークの構造)と呼ばれます。
4. ビジネス・実務での活用シナリオ
不動産・金融の分野では、住宅価格や株価など連続する数値を予測するモデルで、出力層に恒等関数を用いた回帰タスクを構成します。出力層のノードを1個にし、隠れ層から受け取った特徴量をそのまま予測値として出力することで、実際の価格帯に近い連続値を扱えます。
製造業・品質管理の分野では、製品の良品・不良品を判定するモデルで、出力層にシグモイド関数を用いた2値分類を構成します。出力される値は不良品である確率として解釈され、あらかじめ定めたしきい値と比較することで合否を自動判定します。数値をそのまま出すのではなく確率として扱う設計は、判定の甘さ・厳しさを後から調整できる点でも意義があります。
画像認識・OCR(画像に写った文字をテキストデータに変換する技術)の分野では、手書き文字認識や商品カテゴリの自動分類を行うモデルで、出力層にソフトマックス関数を用いた多クラス分類を構成します。各クラスに属する確率を算出したうえで、最も確率の高いクラスを予測結果とする仕組みです。候補を1つに絞り込むだけでなく、確率の分布そのものが結果の確からしさを示す情報として活用されます。
5. 要点まとめ
- 出力層はニューラルネットワークの最終層で、隠れ層が抽出した特徴量から最終的な予測結果を出力します。ノード数と活性化関数はタスクの種類で決まります。
- タスクごとの使い分けは、回帰=恒等関数(1ノード)、2値分類=シグモイド関数(1ノード)、多クラス分類=ソフトマックス関数(クラス数分のノード)です。対になる誤差関数(回帰=平均二乗誤差、分類=交差エントロピー誤差)もセットで扱われます。
- 入力層は生データを受け取る窓口、隠れ層は特徴量を段階的に変換する層、出力層はタスクに応じた形式で最終結果を出す層という役割分担があります。
6. 確認問題
問1多クラス分類タスクの出力層では、各クラスに属する確率の総和が1になるよう正規化するソフトマックス関数が用いられる。
解答・解説をみる
○ 正しい
多クラス分類の出力層はソフトマックス関数を用い、複数クラスの確率を合計1になる形に正規化します。出力ノード数はクラス数と同数になります。
問22値分類タスクの出力層では、出力を0から1の範囲に収め、確率として解釈できるシグモイド関数が用いられる。
解答・解説をみる
○ 正しい
2値分類の出力層はシグモイド関数を用い、出力値をそのクラスに属する確率として扱います。出力ノードは1個になります。
問3回帰タスクの出力層では、入力をそのまま出力するのではなく、各クラスの確率に変換するソフトマックス関数が用いられる。
解答・解説をみる
× 誤り
正しくは、回帰タスクの出力層には入力された値をそのまま出力する恒等関数が用いられます。ソフトマックス関数は多クラス分類で使う関数であり、タスクと活性化関数の対応を入れ替えた記述になっています。

