宣伝: 『「シミュレーション仏教」の試み』(JRF 著)。Amazon Kindle で、または、少し高いですが、DRM フリー EPUB を BOOTH で、販売中!
技術系電子本。Python による仏教社会シミュレーション( https://github.com/JRF-2018/simbd )の哲学的解説です。

「Python」カテゴリ内の記事 このカテゴリをはてなブックマークに追加 このカテゴリを含むはてなブックマーク (初公開日順)

2020年11月 5日 (木)

二封筒問題のシミュレーション その3 整数拡張編

概要


二封筒問題(参: 三浦俊彦『可能世界の哲学』)を Python を用いたシミュレーションで解く。その1では未開封と開封で答えが違うことがシミュレーションによっても確かめられた。その謎を解くため、その2では、まずは額を実数にするよう問題を拡張した。

この「その3」では整数問題に戻って拡張を試み、謎の解明を完成する。

続きを読む "二封筒問題のシミュレーション その3 整数拡張編"

2020-11-05 23:05:33 (JST) in シミュレーション Python | | コメント (8)

二封筒問題のシミュレーション その2 実数拡張編

概要


二封筒問題(参: 三浦俊彦『可能世界の哲学』)を Python を用いたシミュレーションで解く。その1では未開封と開封で答えが違うことがシミュレーションによっても確かめられた。

この「その2」ではその謎を探るため、まずは上限の効果を確かめようと額を実数にするよう問題を拡張してみる。

この次の「その3」では整数問題に戻って拡張を試みる。

続きを読む "二封筒問題のシミュレーション その2 実数拡張編"

2020-11-05 22:59:45 (JST) in シミュレーション Python | | コメント (0)

二封筒問題のシミュレーション その1 基礎編

概要


二封筒問題(参: 三浦俊彦『可能世界の哲学』)を Python を用いたシミュレーションで解く。

最初は誤解して、「求めているのは、単に、相手を見たとき相手の額が自分の何倍かを調べると平均で 1.25 倍になるということ。交換したとしてもしなかったとしてもそうなる。じゃあ、交換すれば結果が変わるかというと変わらない。開封も未開封も関係ない。」と考えた。

しかし、その後、開封バージョンを実際にシミュレーションをすれば、確かに交換したら 1.25 倍になるということが(予想外にも)示せた。この「その1」では、その「驚き」までを示す。

そして、その2その3では、なぜそうなるかを示すために議論を実数バージョン、一般的な整数バージョンに拡張する。

続きを読む "二封筒問題のシミュレーション その1 基礎編"

2020-11-05 22:51:24 (JST) in シミュレーション Python | | コメント (4)

2020年2月 7日 (金)

Predictor - Actor (- Recollector) モデルと負の学習

今回も失敗した実験である。改造した MountainCarContinuous のアルゴリズミックな学習で、アルゴリズミックな中では、確かに部分的な成功もあるのであるが、しかし、ランダムで単純な学習と比較した場合、早さはもちろん、学習が進むためのステップ数でも、最終的な到達点でも、アルゴリズミックな方法のほうが負けてしまったのだった。悔しいが、今回のアルゴリズミックな方法は、まったくの無駄だったと結論せざるを得ない。何か活かせる方法を今後、考えたい。

そのアルゴリズミックな学習とは、まず第一に、「環境」+「行動の提案」→「予想」を行う Predictor を学習しておき、その誤差逆伝播法を利用して「環境」+「予想」→「行動の提案」を行う Actor を学習するというもの。逆伝播がちゃんと使えるかが問題としてあったが、概ね使えるという実験結果を得た。

次に、Predictor と Actor の同時学習も試みた。その際に、Actor の「行動の提案」と、Predictor から逆伝播された「行動の提案」がどちらが良いかというのが以前私がレポートした「競争的学習」のようになっていると考えた。それについて「負の学習」を試み、それが学習を早くするという結果を得た。

しかし、この二つのアルゴリズミックな学習の結果・部分的な成功は、先に述べたように、ランダムで単純な学習と比べると負けていたのだった。

続きを読む "Predictor - Actor (- Recollector) モデルと負の学習"

2020-02-07 01:45:07 (JST) in Python 人工知能・機械学習 | | コメント (1)

2019年5月16日 (木)

ニューラルネットで負の学習: 競争的な学習の実験 その2

概要


競争的学習において、勝った例を負けた側が学習するだけでなく、負けた例と「若干」逆側になるように勝った側が学習することにより、学習が劇的に改善した。

競争的学習とは、ここでは、単純な2入力2出力(入出力いずれもアナログ値)の関数の学習を3層のニューラルネットワークで行う。ただし、別の初期値を持つ同じモデル二つについて、学習の際は、正解の出力がわからないが、その二つのモデルのうちどちらがより正解に近いか、すなわち、その「勝者」がどちらかだけはわかるという設定とする。

「若干逆側」にするときは、悪い例が離れていればすでに悪くなるのは避けられているのであるから、影響は 0 に近くする。悪い例が予測とほぼ一致するときは「逆側」を強く定めることができないので、これもしかたなく影響を 0 に近くする。そこそこ近い悪い例についてのみ逆側にしっかり倒して学習するようにする。

続きを読む "ニューラルネットで負の学習: 競争的な学習の実験 その2"

2019-05-16 05:49:50 (JST) in Python 人工知能・機械学習 | | コメント (4)

2019年1月26日 (土)

機械学習の練習のため競争的な学習の実験をしてみた

単純な2入力2出力(入出力いずれもアナログ値)の関数の学習を3層のニューラルネットワークで行う。ただし、別の初期値を持つ同じモデル二つについて、学習の際は、正解の出力がわからないが、その二つのモデルのうちどちらがより正解に近いか、すなわち、その「勝者」がどちらかだけはわかるという設定とする。

Ptyhon を用いた実験により、初期値の与え方が普通とちょっと違うのもになったが、そのような設定でもちゃんと学習が進むことが確かめられた。

なお、それを便宜的に「競争的な学習」と私は呼んでいるが、Wikipedia にある "Competitive Learning" (競合学習) とは別物のはずである。

続きを読む "機械学習の練習のため競争的な学習の実験をしてみた"

2019-01-26 00:23:09 (JST) in Python 人工知能・機械学習 | | コメント (7) | トラックバック (0)