多層パーセプトロンのソースを表示
←
多層パーセプトロン
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{machine learning bar}} '''多層パーセプトロン'''(たそうパーセプトロン、{{lang-en-short|Multilayer perceptron}}、略称: MLP)は、{{仮リンク|順伝播型ニューラルネットワーク|en|feedforward neural network|label=順伝播型}}[[ニューラルネットワーク]]の一分類である。MLPは少なくとも3つのノードの層からなる。入力ノードを除けば、個々のノードは非線形[[活性化関数]]を使用する[[ニューロン]]である。MLPは学習のために[[誤差逆伝播法]](バックプロパゲーション)と呼ばれる[[教師あり学習]]手法を利用する<ref>{{cite book|author=Rosenblatt, Frank|title= Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms|publisher= Spartan Books|location= Washington DC|year= 1961|asin= B0006AXUII }}</ref><ref>{{cite book|author=Rumelhart, David E., Geoffrey E. Hinton, and R. J. Williams|chapter=Learning Internal Representations by Error Propagation|editor=David E. Rumelhart, James L. McClelland, and the PDP research group. (editors)|title= Parallel distributed processing: Explorations in the microstructure of cognition, Volume 1: Foundation|publisher= MIT Press|year= 1986|isbn= 9780262181204}}</ref>。その多層構造と非線形活性化関数が、MLPと線形[[パーセプトロン]]を区別している。MLPは[[線形分離可能]]ではないデータを識別できる<ref name="Cybenko1989">{{cite journal|author=Cybenko, G. |year=1989|title= Approximation by superpositions of a sigmoidal function|journal=Math. Control Signals Syst.|volume= 2|issue=4|pages= 303–314|doi=10.1007/BF02551274}}</ref>。 多層パーセプトロンは時折、特に単一の隠れ層を持つ時、「[[バニラ (ソフトウェア)|バニラ]]」ニューラルネットワークと口語的に呼ばれることがある<ref>{{cite book|author=Hastie, Trevor. Tibshirani, Robert. Friedman, Jerome|title= The Elements of Statistical Learning: Data Mining, Inference, and Prediction|publisher= Springer|location= New York, NY|year= 2009|isbn=978-0-387-84858-7}}</ref>。 == 理論 == <section begin=theory /> === 活性化関数 === 多層パーセプトロンが全てのニューロンにおいて線形[[活性化関数]]、すなわち、個々のニューロンの出力に{{仮リンク|シナプス荷重|en|synaptic weight|label=重み付けされた入力}}をマップする線形関数を持つとすると、[[線形代数]]から、いかなる数の層も2層からなる入力-出力モデルに削減することができることが示される。MLPでは、一部のニューロンは、生物学的ニューロンの[[活動電位]]の頻度および発火をモデル化するために開発された「非線形」活性化関数を用いる。 一般的な2つの活性化関数はどちらも[[シグモイド]]であり、以下の式で表わされる。 :<math>y(v_i) = \tanh(v_i) ~~ \textrm{and} ~~ y(v_i) = (1+e^{-v_i})^{-1}</math> 1つ目の式は−1から1の範囲の[[双曲線関数|双曲線正接]](tanh)関数であり、2つ目の式は[[ロジスティック関数]]である。ロジスティック関数は双曲線正接関数と形状が似ているが範囲は0から1である。ここで、<math>y_i</math>は<math>i</math>番目のノード(ニューロン)の出力であり、<math>v_i</math>は入力接続の加重和である。他に、[[正規化線形関数|Rectifierおよびsoftplus]]関数を含む活性化関数が提案されている。より専門分野に特化した活性化関数に[[放射基底関数]]がある(教師ありニューラルネットワークモデルの一分類である{{仮リンク|放射基底関数ネットワーク|en|Radial basis function network|label=放射基底ネットワーク}}で使われる)。 === 層 === MLPは、非線形的に活性化されるノードの3つ以上の層(入力層と出力層と1つ以上の「隠れ層」)からなり、[[ディープラーニング|ディープニューラルネットワーク]]を作り出す。MLPは全結合(fully connected)のため、1つの層中のそれぞれのノードは次の層中の全てのノードと任意の重み<math>w_{ij}</math>で結合している。 === 学習 === 学習は、個々のデータが処理された後に、期待される結果と比較した出力中の誤差の大きさに基づいて、結合加重を変化させることによってMLPにおいて起こる。これは[[教師あり学習]]の一例であり、[[バックプロパゲーション|誤差逆伝播法]](バックプロパゲーション)を用いて実行される。誤差逆伝播法は、線形パーセプトロンにおける最小二乗法アルゴリズムの一般化である。 <math>n</math>番目のデータポイント(訓練例)における出力ノード<math>j</math>の誤差は、<math>e_j(n)=d_j(n)-y_j(n)</math>と表わされる。上式において、<math>d</math>は目標値、<math>y</math>はパーセプトロンによって作り出される値である。ノードの重みは、全出力における誤差 :<math>\mathcal{E}(n)=\frac{1}{2}\sum_j e_j^2(n)</math> を最小化する補正に基づいて調整される。 [[最急降下法]]を用いると、それぞれの重みにおける変化は以下の式で表わされる。 :<math>\Delta w_{ji} (n) = -\eta\frac{\partial\mathcal{E}(n)}{\partial v_j(n)} y_i(n)</math> 上式において、<math>y_i</math>は一つ前のニューロンの出力、<math>\eta</math>は「学習率」である。学習率は、重みが振動することなく反応に対してすばやく収束するように選択される。 計算される導関数はinduced local field <math>v_j</math>に依存し、それ自身も変動する。出力ノードについて、この導関数が :<math>-\frac{\partial\mathcal{E}(n)}{\partial v_j(n)} = e_j(n)\phi^\prime (v_j(n))</math> と単純化できることを証明するのは容易である。上式において、<math>\phi^\prime</math>は上述した活性化関数の導関数であり、それ自身は変化しない。隠れ層への重みの変化についての解析はより難しいが、 関連のある導関数は以下のように表わすことができる。 :<math>-\frac{\partial\mathcal{E}(n)}{\partial v_j(n)} = \phi^\prime (v_j(n))\sum_k -\frac{\partial\mathcal{E}(n)}{\partial v_k(n)} w_{kj}(n)</math>. これは、出力層を表わす<math>k</math>番目のノードの重みの変化に依存する。したがって隠れ層の重みを変化させるには、活性化関数の導関数にしたがって出力層の重みを変化させる。したがってこのアルゴリズムは活性化関数の逆伝播(バックプロパゲーション)に相当する<ref>{{cite book |last=Haykin |first=Simon |authorlink=Simon Haykin |title=Neural Networks: A Comprehensive Foundation |edition=2 |year=1998 |publisher=Prentice Hall |location= |isbn=0-13-273350-1 }}</ref> <section end=theory />。 == 用語 == 「多層パーセプトロン」という用語は、複数の層を持つ単一のパーセプトロンを意味しない。むしろ、層へと組織化された多くのパーセプトロンを含む。代替用語は「多層パーセプトロンネットワーク」である。さらに、MLP「パーセプトロン」は、最も厳密に言えばパーセプトロンではない。真のパーセプトロンは正式には、[[ヘヴィサイドの階段関数]]といった閾値活性化関数を用いる人工ニューロンの特殊な場合である。MLPパーセプトロンは任意の活性化関数を用いることができる。真のパーセプトロンは[[二項分類]]を実行する。対して、MLPニューロンは、その活性化関数に依存して分類あるいは回帰のどちらを実行するかは自由である。 「多層パーセプトロン」という用語は後に、ノード/層の特性に関係なく適用されるようになった。ノード/層は、パーセプトロンに限定されず、任意に定義されたニューロンから構成することができる。この解釈は、一般に人工ニューロンを意味するところの「パーセプトロン」の定義の緩和を避けている。 == 応用 == MLPは、確率的に問題を解くことができるため研究において有用である。MLPは{{仮リンク|適応度近似|en|Fitness approximation}}のような極めて[[計算複雑性理論|複雑な]]問題に対する近似解をしばしば与える。 MLPは{{仮リンク|普遍近似定理|en|Universal approximation theorem|label=Cybenkoの定理}}によって示されているように普遍的な関数近似器であるため<ref name="Cybenko1989"/>、回帰分析によって数理モデルを作成するために使うことができる。[[分類 (統計学)|分類]]は、応答変数が{{仮リンク|カテゴリ一変数|en|Categorical variable}}である時の[[回帰分析|回帰]]の特殊な例であり、MLPはよい分類アルゴリズムを作る。 MLPは1980年代に人気のある機械学習法であり、[[音声認識]]や[[コンピュータビジョン|画像認識]]、[[機械翻訳]]ソフトウェアといった多様な分野に応用されたが<ref>{{cite journal|title=Neural networks. II. What are they and why is everybody so interested in them now?|author= Wasserman, P.D.; Schwartz, T.|pages= 10-15|journal= IEEE Expert|year= 1988|volume =3|issue =1|doi=10.1109/64.2091}}</ref>、その後より単純な(そして関連する<ref>{{cite journal|author=Collobert, R.; Bengio, S.|year= 2004|title=Links between Perceptrons, MLPs and SVMs|journal= Proc. Int'l Conf. on Machine Learning (ICML)|doi=10.1145/1015330.1015415|pages=23|url=https://ronan.collobert.com/pub/matos/2004_links_icml.pdf}}</ref>)[[サポートベクターマシン]]との激しい競争に直面した。[[ディープラーニング]]の成功によってバックプロパゲーションネットワークへの関心が戻った。 == 脚注 == {{reflist|30em}} ==外部リンク== * [http://numericinsight.com/uploads/A_Gentle_Introduction_to_Backpropagation.pdf A Gentle Introduction to Backpropagation - An intuitive tutorial by Shashi Sathyanarayana] This is an updated PDF version of a blog article that was previously linked here. This article contains pseudocode ("Training Wheels for Training Neural Networks") for implementing the algorithm. * [http://www.cs.waikato.ac.nz/ml/weka/ Weka: Open source data mining software with multilayer perceptron implementation]. {{DEFAULTSORT:たそうはあせふとろん}} [[Category:分類アルゴリズム]] [[Category:人工ニューラルネットワーク]] [[de:Perzeptron#Mehrlagiges Perzeptron]]
このページで使用されているテンプレート:
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Cite journal
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Machine learning bar
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:仮リンク
(
ソースを閲覧
)
多層パーセプトロン
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報