フィードフォワードニューラルネットワークとは?基本構造と学習の仕組みを解説
フィードフォワードニューラルネットワーク(Feed-forward Neural Network、順伝播型ニューラルネットワーク)は、信号が入力から出力への一方向にのみ伝わるニューラルネットワークです。ある層の出力がその同じ層に影響を及ぼすようなフィードバック(ループ)は存在しません。この種のネットワークは比較的シンプルな構造を持ち、入力と出力を関連付ける役割を果たします。パターン認識などの用途に活用でき、その構成はボトムアップ型またはトップダウン型として表現されます。
隠れ層の仕組み
隠れ層の各ユニットは、通常、入力層のすべてのユニットと完全に接続されています。標準的なユニットを用いる場合、隠れ層の各ユニットは、各入力値に対応する重みを掛け合わせ、それらを合計した上で、伝達関数(活性化関数)を適用することで出力を計算します。
ニューラルネットワークには複数の隠れ層を持たせることも可能ですが、一般的には1つの隠れ層で十分とされます。層が広い(ユニット数が多い)ほど、ネットワークがパターンを識別する能力は高まります。
出力層の役割
最終段に位置する出力層は、ニューラルネットワークの出力に直接接続されており、隠れ層のユニットと完全に接続されています。ニューラルネットワークは通常、単一の値を計算するために用いられるため、出力層には1つのユニットのみが配置されることが多いです。
ただし、出力層に複数のユニットを持たせることも可能です。例えば、百貨店チェーンが、婦人服、家具、娯楽など複数の部門における顧客の購買確率を予測したいケースを考えてみましょう。店舗側はこのデータを活用して、プロモーションの計画やダイレクトメールの配信対象の絞り込みを行うことができます。
誤差逆伝播法による学習
バックプロパゲーション(誤差逆伝播)アルゴリズムは、多層フィードフォワードニューラルネットワークに対して学習を実行します。各訓練サンプルについて計算された属性値が入力として与えられ、入力層を構成するユニット群に入力されます。
これらのユニットの重み付き出力は、同時に「隠れ層」と呼ばれる第2層のニューロンのようなユニット群へ送られます。隠れ層の重み付き出力は、さらに次の隠れ層への入力となることもあります。隠れ層の数は任意ですが、実際には1つだけ使用されることが一般的です。
ネットワークの表現能力
最終的な隠れ層の重み付き出力は、出力層を構成するユニットへの入力となり、出力層は与えられたサンプルに対するネットワークの予測結果を出力します。隠れ層や出力層のユニットは、生物学的なニューロンとの類似性から「ニューロード(neurode)」と呼ばれることもあれば、単に出力ユニットと呼ばれる場合もあります。
線形閾値関数を用いた多層フィードフォワードネットワークは、隠れユニットを介することで、ほぼ任意の関数を近似できることが知られています。この高い表現能力こそが、フィードフォワード型ネットワークが機械学習分野で広く採用されている理由の一つです。
-
ネットワークのインターフェースとサービスとは?基本概念と種類をわかりやすく解説
ネットワークサービスとは 一般的にネットワークサービスとは、アプリケーション層以上で動作し、コンピュータネットワーク上で利用されるアプリケーションのことを指します。 ネットワークサービスは、データの保存(ストレージ)、操作(処理)、提示(プレゼンテーション)、通信といった機能を提供します。実装方式としては、クライアント・サーバ型アーキテクチャ、またはピアツーピア(P2P)型アーキテクチャが採用されます。 サービスインターフェースとは サービスインターフェースは、SOA(Service-Oriented Architecture:サービス指向アーキテクチャ)を実現するための仕組みです。これによ
-
Rubyで学ぶニューラルネットワーク超入門――思っているほど難しくない!
この記事では、ニューラルネットワークの基礎と、Rubyを使った実装方法を学びます。人工知能やディープラーニングに興味はあるものの、何から始めればいいのか分からない方にぴったりの内容です。シンプルな例題を通じて、重要な概念をわかりやすく解説していきます。実際にRubyで多層ニューラルネットワークを書くことはほとんどありませんが、コードがシンプルで読みやすいため、内部で何が起きているのかを理解するには最適なアプローチです。まずは少し立ち止まって、私たちがここに至るまでの道のりを見てみましょう。 映画『エクス・マキナ』のワンシーン 『エクス・マキナ(Ex Machina)』は2014年に公開され