1当然ですが、演算結果がANDと反転しています。同じ直線で分離できるのですが、直線で分離された両エリアの不等号が逆になります。適切な重みの一例です。XOR(排他的論理和)XORは下表です。0これまでとちょっと様子が違います。グラフを見るとわかるように、4点を直線で分割することができません。これは線形識別不可能な問題であり、単純パーセプトロンでは解決することができないのです。どちらかは真だが、『両方が真』ではない」時に真となります。このように表現できます。使って表現できました。役割を果たす識別器が作れます。まとめた絵にするとこうです。「あるユニットの出力を別のユニットの入力として使う」という構造を作ったことで、線形識別不可能な問題を解くことができました。2これが多層パーセプトロンです。3この例では、真ん中の2ユニットの出力が右のユニットの入力として使われています。一般に、つなぎ合わせるユニットの数は問題によって様々ですが、非常に多くのユニットを結合させて利用することも多いです。このように、ユニットが層状になっていることから多層パーセプトロンと言います。上図で、一番左の層を入力層、一番右の層を出力層、それ以外の層を中間層または隠れ層と呼びます。この図では出力層にユニットが複数ありますね。その意義の一例は後の項で述べます。XORの例は、「多層にすることによって、【重みの値を適切に学習できさえすれば】線形識別不可能な問題も解くことができる」ことを示すために挙げました。多層パーセプトロンの学習において、通常は単純パーセプトロンと同じ手順で重みを求めることはできません。XOR問題は非常に単純な問題なので「中間層のユニットがどのような値を出力してほしいか?」や「各重みがどういった値になってほしいか?」が明らかでしたが、一般にそういったことはほぼあり得ないからです。(教師データが与えるのは「入力層に入力するパラメータ」と「出力層から出力される値に対応する正解ラベル」のみです。中間層ユニットの各出力に対応する正解ラベルはありません。)というわけで、実際に重みを求める方法は次回解説します。多クラス分類ここまでの単純パーセプトロンの例では、SPAM識別や論理演算を扱いました。)なので、2クラス分類や二値分類などと呼びます。これに対し、3つ以上に分類することを多クラス分類と呼んで区別したりします。前回学んだ単純パーセプトロンで多クラス分類を行うには、分類すべきクラス数と同じ数だけ単純パーセプトロンを準備し、各入力に対してそのうち1つだけが発火(1を出力)するよう学習すればよいです。入力に対し、単純パーセプトロンAは「クラスAに属するか否か」を判定、単純パーセプトロンBは「クラスBに属するか否か」を判定...という具合です。4次元の入力をもとに3クラスに分類する例を図示するとこうなります。ユニットの出力が別のユニットの入力になっていないという意味で、上記は多層パーセプトロンとは言えないことに注意してください(そのことがわかりやすいよう、上図では単純パーセプトロンの1つに色づけをしてあります)。単純パーセプトロンが複数あるだけなので、各クラスに属するか否かがそれぞれ線形識別可能な問題でなければ学習できません。多層パーセプトロンで多クラス分類を行えば、線形識別不可能であっても分類できることがあります。ように表現することができます。この場合は出力層の1つめのユニットだけが1を出力すれば正解という意味です。このようにして、例えばメール中の各単語の数をもとに自動でメールをカテゴリ分類する仕組みなどが作れます。カテゴリ分けではなくタグ付けにするのであれば、出力層の複数ユニットが同時に1を出力することを許容してもいいですね。多層パーセプトロンによってどのような問題が解けるかを考えると楽しいと思います。次回は、実際に多層パーセプトロンでどのように重みを更新していくのか、その手順を書きます。「例えば」と書いたのは、実際にはグラフ上の点を分割する直線の式は無数に存在するからです。傾きや位置が多少ずれても分割できたりしますし、同じ直線になるような重みも無限に考えられます。↩なぜ線形分離不可能な問題が解けるかというと、「結果的に中間層で線形分離可能な形に変換されているから」と言うこともできます。↩より広い意味の言葉として「ニューラルネットワーク」がありますが、多層パーセプトロンはその中でも・情報の伝達が一方向にのみ行われる・ユニットが層状に配置される・再帰的な接続を持たないといった特徴を持ちます。北斗プログラマー、株式会社アルキー代表。言語は、Java、Objective-C、python、C++、Rubyなど。最近は機械学習の勉強が楽しい。多層パーセプトロンの重みを更新する理論について解説します。更新すべき重みがたくさんあるので単純パーセプトロンより難しいですが、ここがわかると近年流行したディープラーニングを理解するための基本ができあがります。前回、多層パーセプトロンの重み更新の理論として、誤差逆伝播法の考え方の概要を、数式を使って説明しました。出てきた数式が出力層付近のみの式だったので、今回はすべての層に一般化した更新式を導きます。誤差逆伝播法の前置き前回からだいぶ時間が空いてしまいました。多層パーセプトロンの学習法として使われる誤差逆伝播法について書いていきますが、この記事シリーズのルール「長いけど平易」を守るとけっこうな長さになったので、分割して掲載します。yosiakatsuki。