Skip to content
This repository has been archived by the owner on May 30, 2022. It is now read-only.

SOMの実装 #18

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
Open

SOMの実装 #18

wants to merge 17 commits into from

Conversation

nahoando
Copy link
Contributor

@nahoando nahoando commented May 10, 2021

close #10

取り組んだトレーニングの概要

SOMを実装する

獲得を目指したスキル

  • Pythonを用いてSOMのプログラムを実装する
  • SOMのアルゴリズムを理解し、説明できる
  • 正しい実装結果を描画する

Action list

  • SOMの実装
  • SOMについての理解を深める

感想

@nahoando nahoando changed the title コミットメッセージ SOMの実装 May 11, 2021
@tanacchi tanacchi marked this pull request as draft May 12, 2021 04:16
@nahoando
Copy link
Contributor Author

tmp
somの実行結果です。

@cmb-sy
Copy link
Contributor

cmb-sy commented May 31, 2021

いいですね. SOMの実装ができています.
データ数を変えたり, 最大近傍半径や最小近傍半径, 近傍関数を変えて実験したり, 数式から, なぜこういう結果になるのか考えてみてもいいかもしれないですね.
また, なぜ多様体が広がるのかとかも考えてみましょう.

@nahoando
Copy link
Contributor Author

nahoando commented Jun 2, 2021

一通り値を変更して実行してみました。おそらくまとめてプッシュしているはずです。
以下に各ファイルの値を記載
初期値
N=50, D = 3, nodes = 10, L = 2, K = nodes**L, T = 100, seed = 0, sigma_max = 3.0, sigma_min = 0.1 ※変数名の詳細はプログラム内に記載
ファイル名およびそのファイルでの変更値の記載
change_N_ver1.gif N=100
change_N_ver2.gif N=150
change_N_ver3.gif N=200

change_node_ver1.gif node=15
change_node_ver2.gif node=20
change_node_ver3.gif node=5

change_T_ver1.gif T=50
change_T_ver2.gif T=150
change_T_ver3.gif T=200

change_sigma_ver1.gif sigma_max=10.0, sigma_min=0.1
change_sigma_ver2.gif sigma_max=5.0, sigma_min=0.1
change_sigma_ver3.gif sigma_max=2.0, sigma_min=0.1
change_sigma_ver4.gif sigma_max=3.0, sigma_min=0.5
change_sigma_ver5.gif sigma_max=1.5, sigma_min=0.1
change_sigma_ver6.gif sigma_max=1.0, sigma_min=0.1
change_sigma_ver7.gif sigma_max=1.0, sigma_min=0.5

change_seed_ver1.gif seed=15
change_seed_ver2.gif seed=5
change_seed_ver3.gif seed=2
change_seed_ver4.gif seed=10

change_ver1
↑これは最初の説明の時に開いたファイルで使われていたパラメータを用いたときの実行結果です。
考察などは別にコメントとして記載します。

Copy link
Contributor

@cmb-sy cmb-sy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gif fileなどはpushせずにdrop boxなどに保存しておきましょう.

@tanacchi
Copy link
Member

tanacchi commented Jun 3, 2021

良さそうです!
色々パラメータを変えて実験していて Good です.
考察も楽しみですね

@tanacchi
Copy link
Member

tanacchi commented Jun 3, 2021

終わったぜい!というときは 「Ready for Review」をクリックして Draft を解除しましょう

@cmb-sy
Copy link
Contributor

cmb-sy commented Jun 3, 2021

近傍関数を変えたら, もっと滑らかに多様体が広がるかもしれません.

@kz-halfmoon
Copy link
Contributor

田中くんのデモで使われたパラメータで学習させて比較する,ナイスです!
学習がまだ途中にみえる(収束しておらず,変化が観察できる)ので,もう少しepochを増やして確認してみるとよさそうですね.

@TetraMiyazaki
Copy link
Contributor

image

廣田くんの学習がまだ途中に見えるっていうのをもっというと,学習の最後で参照ベクトルがデータの端まで広がってないっていうところからということですね.(おそらく)
端まで広がってない=学習がまだ途中って思うのはなんでなんですかね.(問いかけ)

@kz-halfmoon
Copy link
Contributor

image

廣田くんの学習がまだ途中に見えるっていうのをもっというと,学習の最後で参照ベクトルがデータの端まで広がってないっていうところからということですね.(おそらく)
端まで広がってない=学習がまだ途中って思うのはなんでなんですかね.(問いかけ)

廣田としては,そこまで細かく観察して発言したわけではなくて,シンプルにまだ潜在変数の更新が起きそうな挙動してるなと思っただけですね.写像の更新も含めて,更新されなくなるまでプログラム回してみた方がいいと思いますというアドバイスの意図でした.

@tanacchi tanacchi marked this pull request as ready for review June 16, 2021 11:33
@tanacchi
Copy link
Member

SOM の実装自体は OK です!
ただちょっと目的関数の計算が気になります...

Screenshot from 2021-06-23 10-19-51

ある時点の参照ベクトルと潜在変数から Heskes の目的関数の値を出したいんだと思いますが,ちょっと変ですね…
ここを解決してから次に進む(そのときはサポートします)か,ここはスキップして先のことに進むか,どちらが良いですか?
なんとなく Mtg 聞いてる感じだと色々急ぎで別のこと勉強しなきゃいけないようですが...

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

numpyテクニックドリル@廣田
5 participants