質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

471閲覧

パーセプトロンの重みの意味の解釈があっているか教えてください

bouyomisan

総合スコア87

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/02/20 01:50

編集2018/02/20 03:05

python機械学習プログラミングという本を読んでいて、Irisのデータを使ってパーセプトロンで学習しています。X軸を萼片の長さ、Y軸を花弁の長さとしてプロットを取っています。青色のプロットと赤色のプロットは種類の違いを表しています。
イメージ説明

最終的に重みWとして、W[0]はバイアスで、W[1]はX軸の重みで、W[2]の重みです。学習した結果次のようになりました

python

1W = [-0.4, -0.68, 1.82]

こちらの解釈は図からも明らかなように種類を分けるにはX軸の値より、Y軸の値が重要であるから、W[1]のX軸に対する重みはマイナスにして影響を小さくし、W[2]のY軸に対する重みはプラスにして影響を大きくしているという解釈でよろしいでしょうか?

====
追記

python

1# 0 = -0.4 -0.68x + 1.82y 2x_begin = 0 3x_end = 8 4 5 6x = np.linspace(x_begin, x_end, 5) 7y = (0.68 / 1.82)*x + (0.4 / 1.82) 8plt.plot(x, y) 9

このようなコードですることができました。ただ、ほんとは違った線になっているので、僕の出した値が間違っているようです。

0 = -0.4 -0.68x + 1.82y

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

W[1]のX軸に対する重みはマイナスにして影響を小さくし

マイナスでも絶対値が大きければ影響が大きくなることもありますよ。ちょっと情報が不足していますが、試しに次の直線を描画してみてください。

0 = -0.4 -0.68x + 1.82y

たぶんそれが判別境界線です。この時のx, yの係数を変えた時に、直線がどう動くかを見るのがいいと思います。

投稿2018/02/20 02:09

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bouyomisan

2018/02/20 03:02

ありがとうございます!なるほど、これがまさに決定曲線を表していたのですね〜。確かに考え直してみるとそれぞれの係数に対応していますプロットして見ましたが、たしかにそれらしい線画描写されました。ありがとうございました
guest

0

0=-0.4-0.68x+1.82yという直線に分類の境界があることを示しています。
p31ページまで読み進めると書いてあります。

投稿2018/02/20 02:08

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bouyomisan

2018/02/20 03:07

決定線だとは気づきませんでした。プロットするとそれらしい線が描写されました。p31 を見たんですけど、僕にはWの値と境界線が関連していること理解できませんでした。。勉強不足ですね、ありがとうございました。
mkgrei

2018/02/20 03:41

f(x,y)=-0.68x+1.82y-0.4 という関数を考えると、(x,y)平面上で、ある線上の点はf(x,y)=0になります。 この線が0=-0.4-0.68x+1.82yであり、境界線です。 これよりも上にある点に対してf(x,y)>0であり、下の点に対してf(x,y)<0となります。 いま活性化関数は単位ステップ関数で、2値分類のターゲットを{-1,1}としているので、 この線よりも少しでも上にあると1に、少しでも下にあると-1に分類されることになります。 それをメッシュ上に{x,y}の組を分類器に入れて、示したのがp31の決定領域プロットというものでした。 確かに本にはWの値と境界線について明確に述べていませんね。 失礼しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問