Qulacs-Osaka / scikit-qulacs

scikit-qulacs is a library for quantum neural network. This library is based on qulacs and named after scikit-learn.
https://qulacs-osaka.github.io/scikit-qulacs/index.html
MIT License
19 stars 6 forks source link

ソフトマックス関数対応の検討 #223

Closed forest1040 closed 1 year ago

forest1040 commented 2 years ago

現在、分類の場合、量子ビット数に1対1対応になっているので 量子ビット数分の分類しかよい精度でできないはず。 回路の期待値に対して、最後にソフトマックス関数で分類するようにすればできるかも。

WATLE commented 2 years ago

これ、つまり、 3bitで4つの分類をするために、 期待値の実数値が-1.0~-0.5 →① -0.5~0→②  0~0.5→③ 0.5~1→④ みたいにしたいということですか?

それとも、測定を2進法でとって、 上2bitが00→① 01→② 10→③ 11→④ ですか?

forest1040 commented 2 years ago

期待値の実数値が-1.0~-0.5 →① -0.5~0→② 0~0.5→③ 0.5~1→④ でよいかと思います。

WATLE commented 2 years ago

この「期待値」は1ビットからすべて取ってきますか?

forest1040 commented 2 years ago

回路全体の期待値でいいかなと思っています。

WATLE commented 2 years ago

ん、回路全体とは、 3bitなら0~7 を取る値ですか? それとも、各bitが-1~1を取り、 その合計値や平均値ですか?

forest1040 commented 2 years ago

各bitが-1~1を取って、その平均値でいいかなと思います。

WATLE commented 2 years ago

冷静に考えてきつい気がしてきました、 例えば①か④かで迷ったとき、 ①なら-1,-1,-1 、④なら1,1,1 を取る必要がありますが、 その境目だと回路が0,0,0になり、②や③になってしまう気がします

WATLE commented 2 years ago

測定を2進法でとって、最大2^n 択から選ぶパターンなら 割と行ける気がしてきました(それでも勾配消失などが大変ではありますが)

forest1040 commented 2 years ago

なるほど。それでお願いします。

forest1040 commented 1 year ago

すみません。これですが状態ベクトルが|000>をとる確率でよいかなと思います。。 https://trello.com/c/zy0enTWS/15-%E3%82%BD%E3%83%95%E3%83%88%E3%83%9E%E3%83%83%E3%82%AF%E3%82%B9%E9%96%A2%E6%95%B0%E5%AF%BE%E5%BF%9C%E3%81%AE%E6%A4%9C%E8%A8%8E の件です。

WATLE commented 1 year ago

もともと量子ビット分の分類だったのが、量子ビット+1 になります。 1つ増加するだけでいいんですか?

WATLE commented 1 year ago

分類しなきゃいけない数がビット数より明らかに多い場合を想定していたハズなのに、 分類数=ビット数+1 では不足するのでは?

forest1040 commented 1 year ago

すみません。自分がソフトマックス関数を勘違いしていたのですが、 分類数でスライスしておけば、期待値で該当する分類に割り当てられるかと思いました。

WATLE commented 1 year ago

はい。 それでは、 これまで通りの実装で行きます。

forest1040 commented 1 year ago

例えば、A,B,C〜Jまでの10個に分類したい場合、 量子ビットを4個使って、|0000>が0.24だった場合、Cとする事を想定しています。

WATLE commented 1 year ago

例えばAかJかで迷ったとき、 Aなら|0000> の確率=0.0、Jなら|0000> の確率=1.0を取る必要がありますが、 その境目だと確率が0.5になり、EFになってしまう気がします

forest1040 commented 1 year ago

すみません。ようやく理解しました。 学習がうまく進まないということですね。。 現状の実装の2進数方式でお願いします!

forest1040 commented 1 year ago

AかJかで迷う時点で学習がうまく行っていないような気がしました。 学習がうまく進めば、特徴ベクトル的に近い辺りで迷うようになるのかなと思いました。 が、まぁ学習が進まない感じになってしまうのですかね。。

WATLE commented 1 year ago

一応、ABC... が順序を持つなど、 AC間の違いがAB間やBC間よりも大きい などであれば成り立ちますが、そうではなさそうです