- ベストアンサー
単層パーセプトロンで非線形は表せない?
- 単層パーセプトロンは線形分離のみ解ける
- g(・)がシグモイド関数なら非線形分離の問題も解ける可能性がある
- 詳細な回答を求めている
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
使い古された例ではありますが, 2入力1出力のXOR関数を考えると良いと思います. 二次元平面上を2つの領域に分割する際, 一本の直線だけで(0,0),(1,1)を含む領域と(0,1),(1,0)を含む領域とに 分割することは不可能です. これは,g()が符号関数でもシグモイド関数でも同じです. シグモイド関数はそれ自体は非線形な関数ですが,単調非減少な関数です. この点に関しては,符号関数とシグモイド関数とは同じ性質を持ちます. シグモイド関数は0から1までの連続的な値を出力しますが, 2クラスの識別問題では 結局適当な閾値(0.5を使うことが多い)で0と1に量子化するため, 識別に関する振る舞いは符号関数とさほど代わりません. 「非線形な識別面」というのがそもそも誤解であるように思います. おそらく,単一の平面で表せない識別面のことをおっしゃっているのでしょうが. 識別面とは,識別関数の値にある閾値Yを設けた際の Z={z|Y=g(z)}で表される集合に過ぎません. 空間内の座標zの重み付き線形和をシグモイド関数に与えている限り, Zは必ず平面になります. パーセプトロンにおいてシグモイド関数を扱う大きな理由のひとつは, 「連続であり,導関数が簡単な形をしているため,学習アルゴリズムの導出が容易である」 という点にあります.
その他の回答 (3)
- ltx78
- ベストアンサー率45% (10/22)
(a), (b), (d)に関してはそれで正しいです. (c)に関しては,そうなる場合もあるが,そうならない場合もあります. 識別面を決定する閾値を0.5とするのは便宜上のことであって, 必ずそうしなければならないというわけではありませんので, 閾値を大きくすれば(c)の識別面は(楕)円になるでしょうし, 閾値を小さくすれば四隅と中央を区切る複数の曲線になるでしょう. (d)をいくつも組み合わせた,そのイメージはおおむね正しいです. ですが,必ずしも「山脈」が空間内にひとつだけとは限りません. (0, 0)の周りと(1, 1)の周りに「山脈」がなく (0, 1)の周りと(1, 0)の周りに「山脈」ができていれば, それはXORを認識しているといえます.
お礼
何度も質問して回答しただき本当にありがとうございました. おかげさまで識別面についての理解が深まりました.
- ltx78
- ベストアンサー率45% (10/22)
> 切断面は以下の表のようになると思うので、「x-y平面」とおっしゃられていたのは、「output-x1平面」ということですか? いえ,「x1-x2平面」です.
補足
「x1-x2平面」の場合,識別面は 図の(a) x1に平行な直線 図の(b) 2本の直線 図の(c) 2本の曲線 図の(d) 楕円 であってますでしょうか? 図は,先日質問したスライドの7ページ目の図です。 仮に上の考えで合っていると,以下のような疑問が沸いて再度質問させていただきました。 一般的に多層パーセプトロンは,図の(d)を何個も組み合わせた山脈の ような形状になるらしいのですが,それを「x1-x2平面」で切ると,切り口が ふやけた楕円(楕円の上下の曲線がいくつもの谷をもつ) になると思うのですが, そうすると,識別曲面が楕円のようなものだけで,XORを分離する ような識別曲線が得られないんじゃないか・・・
- ltx78
- ベストアンサー率45% (10/22)
うーん,おっしゃっていることを読む限りでは, まず「線形」「非線形」という言葉の使い方に誤解があるように思えます. 「識別面が非線形」というのは, 「識別面が(超)平面でなく,(超)曲面である」ということなのですよね? 写像などに対しては「写像が線型である」という用法はしばしば見かけますが, 面が線型である,非線形である,という言い方は私は見かけたことがありません. 面が凸である,などの表現はありますが. ちなみに,「線型分離可能」という表現はあります. これは,空間内の点の集合2つを,1つの(超)平面で分割可能である,という意味です. おそらく,このあたりの用語から 「識別面が非線形」とおっしゃったのだと推測しますが. いずれにせよ,「面が非線形」などの表現はあまり一般的でないと思われますので, 「面が平面でない」などの表現を使った方がよいかと考えます. 資料を拝見しました. 図(a)というのは,7ページのものを指しているのですよね. 図に説明が全くついていないので推測でしかないのですが, これらの図は,あくまでそれぞれのパーセプトロンの「出力」であるように見えます. パーセプトロンの表現できる「識別面」ではないでしょう. 識別面というのは,これらのグラフを「x-y平面」と平行なある面で切断したときの,その切り口のことです. (図に軸が何も書いていないので適当に「x-y平面」と言いましたが,イメージは伝わりますでしょうか) 図(a)の場合,このような平面でグラフを切断すると切断面は直線となります. なので識別面は直線的になり,結果としてシグモイド関数は符号関数と同じ振る舞いをするわけです. つまり,線型分離不可能な問題を解くことはできません. これに対して,図(c)や図(d)では,グラフを切断すると曲線が現れます. このようにパーセプトロンを多層化すると,線型分離不可能な問題を解くことができるようになります.
補足
何度も申し訳ありません。 >>「識別面が(超)平面でなく,(超)曲面である」ということなのですよね? そうです.言葉の使い方が悪くて申し訳ありません。 >>識別面というのは,これらのグラフを「x-y平面」と平行なある面で切断したときの,その切り口のことです. 基本的なところでつまづいてます。 以下の図において(図が汚くてすみません)切り口は、 「output-x1平面」、「x1-x2平面」、「output-x2平面」が考えられます。 output | x1 | / x2 | / \ | / \ | / \ | / \ | / \|/ /|\ 切断面は以下の表のようになると思うので、「x-y平面」とおっしゃられていたのは、「output-x1平面」ということですか? | output-x1平面 | x1-x2平面 | output-x2平面 _|________|_______|___________ (a)| x1に平行な直線 | 同左 | シグモイド曲線 ______________________________ (b)| 同上 | 2本の直線 | 放物線 ______________________________ (c)| 曲線 | 曲線? | 曲線 ______________________________ (d)| 曲線 | 楕円 | 曲線
補足
>>識別面とは,識別関数の値にある閾値Yを設けた際のZ={z|Y=g(z)}で表される集合に過ぎません. おっしゃられていることは理解できるのですが、このURLの資料の図(a) をみると、どうしてもシグモイド型の単層パーセプトロンの表現できる識別面が非線形であるようにみえてしまいます。 この図(a)は識別面とは違うんでしょうか? http://cis.k.hosei.ac.jp/~wakahara/Multilayer_perceptron.pdf の7ページの(a)の図