ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

グレタ・トゥンベリさんの演説は、若い子が懐メロ歌っているような違和感があるよね!

2019-09-30 08:10:10 | そのほか
あ~、連日同じような話題で申し訳ないんだけど、やっぱ書いておきたいので・・・

環境問題といえば、小泉さんより、こっちが話題でしょうか・・・

グレタ・トゥンベリさん演説全文 「すべての未来世代の目はあなたたちに注がれている」
https://www.tokyo-np.co.jp/article/world/list/201909/CK2019092502100025.html

(以下太字は上記サイトより引用)
この演説に違和感を覚えたのって、私だけ?

全ての未来世代の目はあなたたちに注がれている。私たちを失望させる選択をすれば、決して許さない。


って、この「あなたたち」に「全部丸投げ」感はなに?
こんな若いのに、自分で世界変えようとおもわないわけ?
えっ、えっ、え~

まさに今、ここに私たちは一線を引く。世界は目を覚ましつつある。変化が訪れようとしている。


そうそう、そうなのだよ。
マルコフ決定過程をモデルフリーで解くという強化学習が現れたことにより、
いままでの予定調和で過去からの積み上げでしか考えられない
モデルベースのソフトウェア工学が終わった。

そのおかげで、

十年間で(温室効果ガスの)排出量を半減するというよくある考え方では、(気温上昇を)一・五度に抑えられる可能性が50%しかなく、人類が制御できない不可逆的な連鎖反応を引き起こす恐れがある。

なんていう過去のモデルに値を入れて悲観に暮れることに意味はなく、
マルコフ過程の「今、ここから」
強化学習のモデルフリーが解く「最善の方法で」行うという自由を
我々は手に入れることができた

・・・あ~、説明したほうがいいよね。

・・・その前に・・・

■世の中、悪くなるのをぼ~っと見てる人はいない。
 でも、人間は、よくしようと思っても、必ず失敗する
 でも、失敗からしか学べないのも真実。

 過去三十年以上、科学は極めて明瞭であり続けた。必要な政策も解決策もまだ見当たらないのに、目を背け、ここに来て「十分やっている」なんてよくも言えるものだ。あなたたちは私たちの声を聞き、緊急性を理解したと言う。でもどれだけ悲しみと怒りを感じようと、私はそれを信じたくない。なぜなら、もし本当に状況を理解し、それでも座視し続けているとしたなら、あなたたちは悪だからだ。そんなことを信じられない。
 

まず、悪くなる状況をぼ~っと見てる人はいない。
大人も子供も・・・
交通事故でけがしている人をみて、119番しない人がいないように・・

だけど、みんなの努力が必ずしもよいほうに向かうとは限らない。
1960年代から、みんな今の生活を良くしようとしてきた。
その結果、確実に生活はよくなった。そしてその恩恵を受けてきた。
けと、環境破壊(温暖化含む)という失敗も犯してしまった。
生活を良くしようと思わなかったら、温暖化は起こらなかっただろう。
だけど、もっと多くの人が死に、もっと多くの人が不幸になったことだろう。

そして、ここが、とっても大事なことなんだけど、

人間はなにかをやった「ご褒美として」
失敗という形の次の課題を与えられる。
失敗をしない限り、次の世界は切り開けないし、学ぶこともできない。

地球温暖化というのは、次の課題であり、
これに失敗を恐れずにチャレンジしないと、
良い社会は生まれない。

悲しみを感じて他人に丸投げしても、
「自分が」技術を持って、この問題を変える行動を起こさなければ、
一ミリたりとも状況は変わらないし、何も学ぶことはできないのだよ。
ただ、演説しているだけでは・・・

■失敗から世の中の人が学んだ大きなこと。強化学習というモデルフリー
 →未来は過去から決定づけられているものではなく、
 「いま、ここから」自分の判断で変えることができる。

1960年代から、2000年代の初めまで、世の中の発展に寄与したものは
ソフトウェアだった(あ~、ちょっと誇張あるかもしんないけど、
まあ、ソフトウェアの役割は大きいよね)

ソフトウェアの世界は、マイケルジャクソン(って、ムーンウォークしている人
では”ない”)が言い出したフレーム理論に基づいている。仕様を決めて、
その範囲内で作る。
つまり仕様が表現するモデルが存在し(モデルベース)
そのモデルが作り出す世界観がすべてだった。

これは当時はうまくいった。
しかし人々の発想は型(フレーム)にはまり、そのフレームからはみ出た
温暖化とかは思考停止となり、起きた事実に現在の状況のモデルを当てはめて、
悲観的になったり、責任追及したりするようになった。

そんなことしても世の中はひとつも変わらないのに・・・

■しかし、2010年代、社会は変わった。

ソフトウェア工学に変わってAI(のディープラーニング)が台頭した。
このAI(のディープラーニング)の中の強化学習で、いままでにない
まったく別の次元の発想が現れた。
それがモデルベースに対抗した「モデルフリー」

今の考えの主流は、

・過去は考えるな、今、ここから未来は始まる
 →マルコフ決定過程

・ただし、昔の経験、できる人の経験は知識として取り入れよう。学ぶこと大事
 →ベイズ理論(経験値=事前条件)

・こうやらなければならない、社会はこうなっているなんていう予定調和は

      ない。

 あるのはただ、いまここの現在の状況と取り得る行動だけ。
 行動あるのみ。行動すれば結果(報酬)は後からついてくるので
 いいことが起こったら、それを続ければいい。世の中単純にそれだけ。
 生きる意味とか、あるべき行動とか、そんなもんは・・・ない
 →モデルフリー

この考え方に基づいた強化学習が、世の中を破竹の勢いで変えようとしている。

■どのくらい考えが違うか、環境問題で比較してみる。

 モデルベースに基づいて考えると、グレタ・トゥンベリさんの説明のようになる。
 環境のモデルをつくってシミュレーションすると、その結果が出る。
 
 悲観的な話しかない。これがモデルベース

 モデルフリーな考え方は「いまここ」から考える。
 ここで考えられる行動を片っ端からチェックしていく。
 そして、最善の手を打っていく。

 今海水温が高くて、生活が不自由で、化石燃料使っちゃいけないなら、
 そうじゃないものを探して、今ここから行動を改めればよいってこと。

 例えば地下に潜る。地下なら温度変わらないので、あつさしのげる。
 ほかには宇宙。宇宙でもの作って地球に運べれば、
 地球のエネルギーは使わないので、環境問題は起こらない・・・とかね!

 だからこそ大人たちは今、「宇宙」に興味を示してる。
 ホリエモンも、元ZOZOの社長も・・・

■若い人たちに。

 社会は変わった。私たちは、いまここから考えることができ、
 あらゆる選択肢を扱える自由を得た。

 グレタ・トゥンベリさんは16歳だそうだが、
 日本なら、16歳から高専に入れば、20歳になるころには、
 世の中を変えることができるすべての知識(電気、機械、AI)を
 手に入れることができる。

 でも、文句を言っても、だれも、なにも始まらない。
 できる人(手に入れた人)にすべてをゆだねて、人生を諦観するしかない

 時代は変わった。あなたたちはモデルフリーの力で
 自分の世界を変えることができる。たぶん、そのヒントは宇宙だ。

 ぜひともその技術を学んで自由を謳歌して社会を変えてほしい

 まちがっても、懐メロみたいな昔のモデルベースにこだわって
 ひたすら文句を言っている「なにもできない人」になるんじゃない。

 それは「楽しく、クールで、セクシーな取り組み」ではない。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

環境問題はセクシーに取り組むーを野暮なことを承知で解説してみる

2019-09-29 17:39:21 | そのほか
昨日の話の続き
小泉さんセクシー発言問題で(略しすぎの気もするが)

小泉環境相「セクシー説明やぼ」 発言の真意問われ
https://news.infoseek.co.jp/article/kyodo_kd-newspack-2019092401001841/

記者から「どういった意味で言ったのか」と聞かれた小泉氏は「それをどういう意味かと説明すること自体がセクシーじゃないよね」と返答。詳しい説明は避けた。

あ~賢明。なにを言っても言葉尻をとって、今日の視聴率を稼ごうとする
マスコミの魂胆が見え見えですよね。

■なぜ、野暮なのか?

記者の人も、そして、このブログの読者も、というか日本のみんな、知っているよね。
こういう政府の発言は、大臣が自分で考えているのでなく、すごい頭のいい官僚が
頭脳を駆使して作成し、それを大臣にレクチャーする。

 つまり、

「気候変動のような大きな問題は楽しく、クールで、セクシーに取り組むべきだ」

という言葉は、小泉さんが自分でセクシーと言いたかったわけではなく、
政府の官僚が(昨日書いたように)出席者のUNFCCC事務局長である
「クリスティアナ・フィゲレス」さんに気遣って)発言に入れた言葉。
だから、当然官僚からレクチャーを受けているはず。

なので、どういう意味かを言えないわけはない。官僚の言ったことを言えば
いいだけだから・・

でも、記者は、小泉さんはレクチャーを受けているであろうことを、知ってるよね。
政治記者なら・・・それをわかっていて、視聴率取りたいから、言葉尻をとらえる
ために、聞くか・・・それって、野暮だろう(^^;)

じゃあ、聞くが、もし環境相が小泉さんじゃなく、70くらいのおじいさんに
決まったとして(官僚の原稿は変わらないだろうから多分、その場合でも
セクシーって言ったはずで、そのとき)「あのセクシーの意味は?」って
70のおじいさんに聞くか?

■野暮な解説ー「楽しく、クールで、セクシーに取り組むべき」とは?

とはいえ、官僚はこの言葉を説明しないわけで(そういう機会はないわけで)
そしてブログや記事をみても「意味不明」で終わらしている。

ひどいのは、政治家ですら

共産党の小池書記局長がかみついたり
http://www.jcp.or.jp/akahata/aik19/2019-09-25/2019092502_02_1.html

していて、だれも説明していないので、野暮ということは重々承知で、説明してみる
この言葉は、環境の歴史的な流れを考えるとわかる

・昔は環境(自然)に立ち向かうのが、セクシーだった。
 アメ車を乗り回したり、750ccの単車を乗り回したり、1970年代は、
環境とかそっちのけで、むしろ排気ガスをバンバンだしたり、自然を切り開いて
いくのがカッコいい、セクシー(モテる)という評価だった。

・その流れが、変わってきた。今、明らかに違う。
 ところがどこからか・・環境に気を使ったほうがモテるようになった。
 山ガールなど、自然と親しむほうが、モテるようになった。
 つまり、自然を大事にするほうがセクシーという概念に変わってきた。
 つまり、環境に立ち向かって破壊するのではなく、環境に寄り添い共生するのが
モテる方向になってきた。このような方向に環境問題進めるということだ。

・環境問題を進める例として、東日本大震災の節電を挙げる人もいるが・・・
 そういった中で、昨日、紹介した
How do we make ‘green’ sexy?
https://www.climatechangenews.com/2012/07/20/how-do-we-make-‘green’-sexy/
では、
「地震と津波が、人々をより持続的に行動させるため、他のどの政府キャンペーンよりも多くのことを行った可能性が明らかになりました。」

って言っているけど、もちろんこんな対策はだめだめだ。
もっと、楽しく、クールな方法でなければ・・・

・人を非難しても、一ミリも環境問題は進まない。
 グレタ・トゥンベリさんより、滝川クリステルのほうがセクシーだ。

 ここで、すぐに思いつく話があるだろう。そう

「気候危機、行動を」 16歳環境活動家、米議会で訴え
https://www.asahi.com/articles/ASM9M249DM9MUHBI008.html

でも、この発言は非難をしているだけで、問題の解決にはいたらない。

「普通の人は、気候危機がどれほど深刻か知らない。科学のもとに連帯し、行動を取って欲しい」

といったそうだが、普通の人は知らない。でも、私は普通じゃなく優秀だから知っているという上から目線で自分の主張だけを通すような話は人の心をとらえないし、セクシーじゃない。それでは、一ミリも環境問題は進まない。

滝川クリステルは
「お・も・て・な・し」
たった5文字で東京にオリンピックを呼び、多くの人とお金を動かした。
演説とは、社会を動かせる人(投票をする人とかも含む)の心をわしずかみ!
にする殺し文句が求められている。
自分の主張を言い張り、みんなの心を暗くするのはセクシーでも楽しい方法でもない。

■なぜ石炭火力について言及しなかったのか?

舛添要一氏、小泉環境相の「セクシー」発言に苦言「言語明瞭、意味不明瞭」「何も言ってないに等しい」
https://news.livedoor.com/article/detail/17127543/

石炭火力について言わなかったのは、「いえないから」だろう。
というのは、「環境のため、石炭火力をやめます」といったら、
「じゃあ、その電力どうするんですか?原子力発電するんですか?」
と切り返されるのは、目に見えている。

そこをどうするかというのは、たぶんまだ詰めていない、レクチャーを受けていない
というのが実情なのであろう・・・

■石炭ダメ、原子力ダメな中、
「気候変動のような問題への楽しく、クールで、セクシーな日本の取り組み」
って、具体的に何?

宇宙太陽光発電
http://www.kenkai.jaxa.jp/research/ssps/ssps-ssps.html

とかがあげられる。このままだと、発電したものを電磁波で送ることになるので
危険性があるけど、

発電した電気をパワー半導体
https://www.chunichi.co.jp/article/shizuoka/tokai-news/CK2019052302000099.html

に蓄えて、

宇宙エレベーター
http://www.jsea.jp/index.html

で地上に落としてくれば、化石燃料を一切使わないエネルギーが確保できる。

この研究をどれも真面目にやっているのは、日本ぐらい。


■では、記者はどうやって質問すればよかったのですか?

やっぱり、こうでしょうねえ・・・

「セクシーな取り組みって、どういうのですか?
 たとえば、も・っ・た・い・な・いとかを標語にして言うとか」

というのを、セクシー系じゃない(たとえば光浦靖子さん風の)女子アナ
が滝川さん風に言って質問するとか・・・

そしたら小泉さんも、「そじゃない!」って言ってなにか説明するか、
笑うか・・・とかで、もちょっとましな答えになったと思う。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

欧米では環境セクシーという概念がある。マスコミは視聴率とるため、それを言わず発言を曲解して伝えただけ

2019-09-28 17:30:03 | そのほか
小泉さんのセクシー発言って、たぶんマスコミが曲解して、
それに乗じて、政敵やちょっと有名人になりたい人が、
便乗して突っ込んでいるので、あんまりにもかわいそうになってきた・・・

ので、このブログは、コメントを禁止しているので炎上することはないから、
ちょっと小泉さんに味方してみる!ってことで、

賢明なこのブログをお読みの皆さん、つまり

一番セクシーな仕事はデータサイエンティスト!

とかいう文脈で、セクシーという言葉が使われるということを知っている
このブログの読者様(は、コンピューター関係、機械学習関係が多いと勝手に思ってる)
にはわかっていると思うけど、あえて2回にわけて解説してみる。

(ちなみに、セクシーの適当な訳をしている人がいなかったので、
 あえて確認のために書いておく。日本語の”モテる”の意味
 「イクメンは女の人にモテる」「ディカプリオはモテる」のモテる)


■この問題を整理すると、

小泉進次郎環境大臣は国連の環境関連のイベントで演説した。
この場には、昔からmake green sexy

How do we make ‘green’ sexy?
https://www.climatechangenews.com/2012/07/20/how-do-we-make-‘green’-sexy/

を提唱するUNFCCC(国際連合枠組条約)の事務局長、「クリスティアナ・フィゲレス」
さんなどが出席していた。

小泉さんとしては、たぶん環境省の人から、この辺の話題を聞いていたんじゃないか?
なんてったって、事務局長についてですからねえ~お役所の人は教えていて当然。

そして、このページのここのことを伝えていたのではないか?

“The biggest thing to make sustainability sexy is the pictures of disaster and shortage of energy which will make people change. And it has definitely had a big impact in Japan.
“It became clear that that event [the earthquake and tsunami] probably did more than any other government campaign to make people act more sustainably. Lots of people in Tokyo and the big cities have actually tried to reduce their energy consumption because of the events of that particular disaster.”

(上記サイト「How do we make ‘green’ sexy?」より引用)

<<Web翻訳ツールによる翻訳>>

「サステナビリティをセクシーにする最大のものは、人々を変える災害とエネルギー不足の写真です。
 そして、それは間違いなく日本で大きな影響を与えました。
「地震と津波が、人々をより持続的に行動させるため、他のどの政府キャンペーンよりも多くのこと
 を行った可能性が明らかになりました。東京や大都市の多くの人々は、実際にその特定の災害の
 出来事のためにエネルギー消費量を削減しようとしました。」


しかし、災害の現場をその前に見てきた、小泉環境相としては、さすがに災害で環境を考えるとは言えない。

そこで、

リーズ大学では、サステイナビリティの意識向上に関する新キャンペーンで、気候変動の国連大使であるレオナルド・ディカプリオ氏をイメージマスコットとして起用したと発表。同氏は16年、プロデューサーとして環境ドキュメンタリー『Before the Flood』を製作した。
(https://news.yahoo.co.jp/byline/abekasumi/20190924-00143920/から引用)

なども考慮して、災害じゃなくって、「もっと楽しい方法で」ということを付け加えた。
結果として、小泉さん演説になることになる。

つまり、
「欧米では当たり前なグリーンセクシーについて、日本も取り組んでいきますよ」
ということを事務局長に気を使って発言しただけなのだ。
もちろん、欧米の人には何の問題もない発言。


  しかし、視聴率に飢えている、日本のマスコミがそこを見逃すはずはな~い!!


小泉進次郎環境大臣は人気。そして一般の人は、欧米の環境セクシーという
概念を知らないだろう!(と上から目線で馬鹿にしてる)
視聴率をとるには、これしかな~い!ってことで、

  小泉発言の「わざと意味が分からないように」
  事務局長は環境セクシーで有名ということを「隠ぺいして」、
  小泉発言を切り取って、

面白おかしく報道したわけ。

なお、このとき、

外国人『どうやって二酸化炭素や火力発電を減らしますか?』
小泉さん『・・・・』

(https://twitter.com/QJCPCli6XrM3sw6/status/1176065242595348481 から引用)

ということで、火力発電について何も言えなかったのは、

小泉さんは・・・たぶん環境省の人と打ち合わせしてなかったから。
いろいろ環境省も考えていると思うので、
ここは、あとでしっかり打ち合わせしてね!

マスコミがあまり伝えていないのは、
そう、スポンサーへの忖度ですよね!

(2回目は「野暮な発言」についてです)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

R2D2に人類の知恵を加えたものが・・・

2019-09-27 08:43:33 | ネットワーク
R2D3らしい(ただしくは人類の知恵というより、人がやったデモデータ)

9月22日に
強化学習 論文輪読LT会 #4
https://reading-innovation.connpass.com/event/146604/



深層強化学習の研究トレンド(DQN、Rainbow、Ape-X、R2D2)の解説を行うセミナー
https://ml-for-experts.connpass.com/event/144718/

に行ってきたメモ



■強化学習 論文輪読LT会 #4
●Double Deep Q Network
https://arxiv.org/pdf/1509.06461.pdf
・過大評価:3つのRQ
 一般的か?
 パフォーマンスへの影響
 防止できるか

バックグラウンド
・強化学習
・DQN(2015) Minch
 ネットワーク、パラメータを一致している
・Double Q-learning
 max関数をQ関数の中に置く
 Θを別の重みに

・過大評価
 上方バイアス:Q-learningの特徴
 →Double Q learningにすると抑えられる

・Double DQN
 重み2つなっていること以外は、DQN[2015]と同じMnih
 回数を重ねるほど、DQNは上振れして価値をとってしまう
 ゲーム全般に精度を上げた
 堅牢制:スタートをランダムにした 10パターン

オーバーフィッティングとオーバーエスティイティングは同じ?違う?

●逆強化学習について
Maximum Entropy Deep Inverse Reinforcement Learning
https://arxiv.org/pdf/1507.04888.pdf

・逆強化学習→報酬関数の推定
 強化学習
  マルコフ決定過程M={S,A,T,γ}
  累積報酬和の期待値最大

 IRL
  報酬のストラクチャがわからないとき
  ユーザーぼりしーπのサンプルD={・・・Si}は提供されている
  Siは={(s,1a),(s2,a)・・・}

 2章は教科書の流れ

・トレーニングプロシージャ

・MAPエスティメーション
estimation
 MLE:Maximun Likelihood Estimation(最大尤度による見積)
 エスティメーション:Θの推定
 PDΘ→ サンプリング、生成→P(D|Θ):同時確率 
 ΘをL(Θ)に置き換えて最大化

 πN(X=1}μ、σ)
 →サンプルが少ない場合問題
 →事前分布を設定する
  事後分布を見積もれる
 ベイズの定理を使っている

 MAP推論:これの最大値を使う

●Noisy Network 

NOISY NETWORKS FOR EXPLORATION
https://arxiv.org/pdf/1706.10295.pdf

・εグリーディの効率化
 →パラメーターにノイズを入れる
  勾配降下法

・ノイズのパラメーター:0に収束→学習終わる
 ゲームにもよる

・利点
 ノイズの量が自動調整できる

●R2D3
Making Efficient Use of Demonstrations to Solve Hard Exploration Problems
https://arxiv.org/pdf/1909.01387.pdf

ハードな探索問題
 スパースな報酬問題
 部分観測可能性
 初期状態のバリエーションが豊富

Off-policyのリカレントQ-learningとDemonstrationを混ぜるハイブリッド

・R2D3アーキテクチャ
  Ape-X DQfDのアーキテクチャとほぼほぼ同じ
  デモをとってくる比率は可変
 →デモリプレイがないのがR2D2
  デモ リプレイ:人間が作った→模倣学習:ずっと同じ
  エージェントリプレイ:エージェントが学習

・アーキテクチャの工夫はいろいろ

・比較対象
 ビヘイビア・クローニング
   模倣学習における教師あり学習 R2D3と同じRNNアーキテクチャ
 R2D2
 DQfD
  Adam Optimizer

・結果
 R2D3だけが人間に勝ったり負けたり
 8つ中、6つを学習2つは学習できない

・所感
 DeepMindのロゴはいっている→気合
 現実に近いタスクの強化学習
 人間のデモを利用したバイブリッドなアプローチ

自分へのメモ
DeepReinforcementLearning fromHumanPreferences
https://arxiv.org/pdf/1706.03741.pdf




■深層強化学習の研究トレンド(DQN、Rainbow、Ape-X、R2D2)の解説を行うセミナー
・マルコフ性
・逐次的意思決定問題

・DQNをRainbowから見る
 DQN+6つの拡張で7つ:Rainbow

・状態遷移
 (St,At,Rt+1,γt+1,St+1)

・損失関数
 (Rt+1 + γt+1* max qΘ(St+1,a')-qΘ(St,At))^2

・ablation study 各構成要素を1つだけ抜いた手法を比較
 
自分メモ(ごめん、途中でTD誤差の話が出てきて、TDってと思ってしらべた話)
強化学習について学んでみた。(その18)
https://yamaimo.hatenablog.jp/entry/2015/10/15/200000
(さぼってて、Rainbowの6つは抜けた)

・Ape-X
論文で理解するApe-Xの概要|論文で理解する深層強化学習の研究トレンド #1
https://lib-arts.hatenablog.com/entry/rl_paper1
キーワードは分散

R2D2
・RNN-based RL agentが新規性部分
・「recurrent replay」 Distributed DQNでR2D2

R2D3
・人間の力も借りる
・recurrent replay Distributed DQN from DemonstrationsででR2D3



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ひさびさに遺伝的アルゴリズムを聞いてきた!

2019-09-26 08:40:46 | ネットワーク
9月22日に

【初心者、中級者向け】最適化問題における遺伝的アルゴリズム(GA)をPythonで動かすハンズオン
https://liberal-arts-beginners.connpass.com/event/147304/

を聞いてきたので、メモ




資料
https://github.com/espeon011/ga

遺伝的アルゴリズム入門

今日の内容
・遺伝的アルゴリズム
・代表的開放
・遺伝的アルゴリズム
・Deap

最適化問題
・制約条件の下で関数値を最大化・最小化する問題
・よくある例は回帰分析
 二次関数の最小化問題

・例 式  maximize subject to :

 ラグランジェの未定乗数法を使って手でとくとか

最適化問題の種類
・線形計画問題
 制約条件も目的関数も一時式で描けるもの
・非線形計画問題
 線形計画問題でないもの
・整数計画問題
 変数が整数の場合、解くのが難しいが、現実の問題をモデリングしやすい
  →ナップザック問題

最適化問題の解き方
 線形計画問題
  単体法、内点法他
 非線形計画問題
  勾配降下法:微分できる関数に限る
 整数計画問題
  分子限定法他
 問題に合わせて適切に解き方を変える
 →GAは何でも使える:メタヒューリスティック

メタヒューリスティック
・汎用性の高い発見的手法

遺伝的アルゴリズムの概要
1.探索範囲内に個体を生成
2.適応度の高い個体を選抜
3.親から子を作る
4.子に突戦変異
5.2に戻る

one max問題
個体  :01を値に取る長さ100の配列
目的関数:すべての成分の和→最大化
  →すべてを1にすれば最大になるのは自明

・Deepを使う
 fitnessmax
 toolbox関数を登録できる(使わなくてもできる)
  attr_bool:各成分の初期化
  individual:各成分の初期化を使って初期値生成
  population:個体生成→世代

 目的関数:returnはタプルである必要性(答え1個でも ,をつける)
 evaluate:何を目的関数にするか
 世代交代の方法
  mate :交叉2点を選んで、遺伝子を交換する 2点:cxTwoPoint 一様交叉もある
  mutate:突然変異 matFlipBit突然変異させる
  select:親の厳選 selTournament トーナメント 3人ランダムに選んで1人残す

 toolbox.population:個体数を指定
 CXPB,MUTPB,NGEN
   CXPB:親を残す(変化せず)確率
   MUTPB:突然変異を起こす確率
   NGEN:世代数

今回の問題:個体 長さ2の配列(x、y)目的関数X^2+Y^2 範囲50~-50

イントロダクション
・クラスの作成
  適応度の定義
  個体の定義
   
・世代や個体を生成するための関数
  individual 長さ指定:2

・個体の生成
  ind = toolbox.individual()

・世代を生成
  pop = toolbox.population(n=10)

・世代交叉関数
  selectは同じ(トーナメント)
  mute:ブレンド交叉
   親2体がなす四角形を1+2α倍したものの中からランダム
  mutate:突然変異:ガウス分布の乱数
  
・個体の交叉
・突然変異

・目的関数の設定
   目的関数を定義
   登録
 目的関数を計算させる


多目的最適化問題
 minimaize:f1(x),f2(x),…
 subject to: x∈E
 →トレードオフ関係があると、目的関数すべてを同時に最小化できない

 パレートフロント:パレートフロント上の点はパレート最適という
  →上位互換が存在しない

 パレートフロントを近似したい

遺伝的アルゴリズムにおいて
 世代作成
 トーナメント→目的関数値が良いものを選んだ:2つの個体の優劣は比べられるとは限らない
 子が作られて
 突然変異する

→NSGA-Ⅱというトーナメント方式

NSGA-Ⅱでのトーナメントの流れ
 1.完全上位互換がいない個体を取り出し、これらをrankが1であるとする
 2.rank1の個体を除いたときに完全上位互換がいないものをrank2であるとする
 3.以下繰り返し
     →すべての個体にrankが定まる
 4.混雑度を定める
    rankが1の個体の集合R1 x∈R1
    d(x)=min{f1(y)|f1(y) ≧ f1(x)}-max{f1(y)|f1(y) <= f1(x)}
     +min{f2(y)|f2(y) ≧ f2(x)}-max{f2(y)|f2(y) <= f2(x)}
   混雑度が大きいと混雑していない
   一番端は∞

  ※一番近くの隣の点をとっていき、そのXの差分、Yの差分を足したものが混雑度

 rankからとっていき、さいご、rankが同じなら、混雑度の大きいのをとってくる

 A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II
 https://www.iitk.ac.in/kangal/Deb_NSGA-II.pdf

ナップザック問題:重さとうれしさ

・初期世代
・制約を破ったらとてつもないペナルティを課す
・algorithms.eaMuPlusLambda(pop, toolbox, MU, LAMBDA, CXPB, MUTPB, NGEN, stats, halloffame=hof, verbose=True)
  →計算してくれる
・パレートフロントが得られる

混雑度を測る方法
Hyper Volumeによる方法
・reference point rを定める
・ハイパーボリュームを定める
・xiを除いた時のハイパーボリュームの原書医療をxiの混雑度とする手もある


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

バチバチ制御、PID制御からDQN、R2D2まで、制御を試すためのOpenai Gymの使い方

2019-09-25 09:08:56 | Weblog
OpenAI Gymは、倒立振子(CartPoleになってる)から、Atariゲームまで、
いろんな制御用(ゲームが制御か?)のシミュレーション環境が用意されている。

つまり、一般的にOpenAI Gymは、強化学習とか、AIっぽいものを試す環境のように
みられているけど、フィードバック制御してもシーケンス制御しても構わない
(ただし、課題によっては、PIDのような連続量の制御はできず、0、1の
 バチバチ制御になっちゃうけど)

ということで、自分の作った制御プログラムをOpen AI Gymでどう試すのか、
書いてみた。anacondaのanaconda promptから
pip install gym
して、以下のプログラムをjupyter notebookで試してみた
(env.renderすると、図が出るけど、ブラウザの下に出てしまうので(今やった結果。ほかの人はどうかしらないけど?)画面いっぱいにnotebook広げるとみえなくなってしまうので、小さくしておく必要あり)

import gym

#ゲーム(環境)の指定
env = gym.make('CartPole-v0')

#初期化
observation = env.reset()
done = False
t=0
print(observation)

while done == False:

    #ここで、制御(PIDなりDQNなり)を実施して、次の動き=actionを設定。
    #ちなみに
    #action=env.action_space.sample()
    #すると、ランダムに値が入るけど、今回は0,1を交互に

    t=t+1
    action = t % 2

    #次ステップ
    observation, reward, done, info = env.step(action)

    #表示
    env.render()
    print(observation,reward,done,info)
    
    #done == Trueで終了
    if(done == True):
        print("End",t)
    
#クローズ
env.close()



t=t+1
action = t % 2
に自分の思う制御を書いてくれればOK。
CartPole-v0はactionが0、1なので、バチバチ制御になっちゃうけど、
MountainCarContinuous-v0は、連続量で試せるみたいだから

【Open AI gym、強化学習】MoutainCar(連続値)の紹介
https://www.tcom242242.net/entry/2019/05/01/190000/


PIDとかできそう


【参考】
OpenAI Gym 入門
https://qiita.com/ishizakiiii/items/75bc2176a1e0b65bdd16

OpenAI Gymの仕様を掴む①(CartPole_前編)|実装で理解する深層強化学習の研究トレンド #1
https://lib-arts.hatenablog.com/entry/rl_trend1

※環境一覧を取得したい場合
【Python/OpenAI Gym】生成できるエージェントの環境一覧を取得
https://algorithm.joho.info/programming/python/openai-gym-environment-list/


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

強化学習を基礎から学んできた!

2019-09-24 08:21:21 | Weblog
9月21日、

【初心者向け】基礎から学ぶ強化学習ハンズオン(Deep Q-Network編)
https://liberal-arts-beginners.connpass.com/event/144716/

に行ってきたメモ




強化学習
・強化学習が時系列問題だといいきってしまいます
 →時系列分析と拡張発展

・系列モデルとマルコフ決定過程
 マルコフ過程:確率過程の一種

 時系列;ARモデル 自己回帰
  →実際には重回帰みたいな式になっている

 マルコフ性とは?
 どのくらい過去を見る?Xt+1の値をみるのに、Xtしかみなくていい
  →オートマトン

・何が解きたいの?
 逐次的意思決定問題
  将棋の次の一手、自動運転の次の運動

・ベルマン方程式
π:ポリシー
 π:s→a
 π*:s→a *が付くと最適
 s;状態
 a:アクション
 πはどうやって作るか?
  累積報酬和を使う 割引率:r ディスカウントレートを使う
  報酬和をもとにV(s)、Q(S,a)を決める
 →Q(s,a)を見ていきます
 Q:状態行動価値
 Q(s,a)=∑r^t*Rt
→これを扱うのにベルマン方程式という漸化式を使う
 Q(s,a)=Qt+1(S,a)r

・ディープラーニングで近似する

・デモ
https://lib-arts.hatenablog.com/entry/rl_trend1
https://lib-arts.hatenablog.com/entry/rl_trend2

■OpenAI Gymの説明
・Cart Poleの説明
env.stepで状態が動く
状態とかは、
https://github.com/openai/gym/wiki/CartPole-v0

■Rainbow
強化学習


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

鳴門鯛焼本舗が水道橋にも出来た!

2019-09-23 16:44:55 | そのほか
ふなっしーの船橋にいったとき、
鳴門鯛焼本舗があって、
並んでタイ焼き食べた、おいしい!
っていう話を、以前本家に書いたんだけど、

その鳴門鯛焼本舗が水道橋にも出来た!
(正しくは、神保町店らしい)
http://www.taiyaki.co.jp/shop/
これは、行くでしょ!ってことで、
昨日のお昼に行った。

おおお、船橋以上の行列、すご!みんなよく知ってるね・・・
・・・と思ったら、その前のお店の「海老丸?」とかいうお店に並んでいるのでした・・・
並ばずに変えました。まだ、船橋ほど人気ではない。

金時いもを1つ買って、日大法学部の前で食べました
(何号館?前に椅子?があるところ)
そのあと前のベローチェにいけるので、ちょうどいいところなんですよね。
うん、想定通り、期待通りのおいしさです。
想定外に売っている女性の人が自分の好みのタイプだったので、
これは、当分、はまりそうな予感・・・



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

北朝鮮、複数回ミサイル打ってたけど、これ確かめるため?

2019-09-23 08:42:39 | そのほか
北朝鮮新型ミサイル、探知できず 低高度、変則軌道で日本政府
っていうニュースがあったけど。北朝鮮が確かめてたのは、探知できるかできないかを確かめていた?だとすると、高さや落ちる位置とか変えて確かめるのも、納得!


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

千葉大停電でわかったこと…台風の場合、太陽光発電では、しのげない

2019-09-22 08:49:02 | そのほか
電気が止まっても、太陽光発電で自家発電すれば大丈夫…
っていう考えが、千葉大停電までは、あったと思う。

でも、今回の停電で、この考えは間違えていることがわかりましたよね!

停電の原因が台風の場合、
太陽光発電パネルが乗っている、屋根ごと飛ばされてしまう・・・

・・・その発想はなかったわ・・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ラジオ体操第三、見た?

2019-09-21 23:18:12 | そのほか
チコちゃんに叱られる!でやってたね!
(ちなみに、TAIKANがやってたのは、ラジオ体操第四
本当にあったらしい!!

筋力を高めるためらしい。
復活しないのかな?
ラジオ体操、第二まででは物足りないよね(^^)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

東京医科大学病院変わったよね!(テレビカードは廃止なの?)

2019-09-20 09:12:50 | そのほか
7月に東京医科大学病院が新しくなったけど、かわったよね~
外から見ても、1階にタリーズが入った!ってことで、変わっているけど、
(もちろん、病院のある場所は変わって、アイン薬局には行きにくくなった。
 龍生堂薬局にはいきやすい・・って、だから龍生堂、東京医大病院が新しくなる前に、
 処方箋中心に変わったのか!・・・って、その話はさておき、東京医大の話に戻す)
中に入ると、大きく変わっているよね~

やっぱり一番大きく変わったのは、コンビニ。
1階と9階にあるけど、1階はとても小さく、
昔の地下のコンビニは9階のほうに相当すると思うけど、
まず、ローソンでなく、ナチュラルローソンがはいった。
・・・まあ、それだけでも品ぞろえ違うんだけど、それ以上に

9階は、テラス?ほわいえ?なんか、買ったものが食べられるようになっている。
そこでWiFiも使えるようになったみたい!!
9階の空間はすごいぜ!前の地下のベンチとは大違い(比較するなって ^^;)


コンビニだけじゃなく、他も階が変わっているのがある
(2階の内科のように変わらないのもあるけど、2→3階への眼科のように)
まあそもそも、昔と違って、今度高くなったから、階が変わって当然なのだが・・
特別病棟は最上階になったみたいよ!
エレベーターが上がるスピードは遅くなった気がする。
病院だから、あんなもんが適切なのかも?

各科で見てもらうところはちょっと変わって、先生ごとの部屋があるのは同じだけど、
そこに番号が出る(あ~つまり、いままでと番号付けも変わって、入ってきたら、
診療科とかそんなのにかかわらず、順番に番号が付く)
で、待合がいままでは2段階(各科全体の待合、診療室の真ん前の待合)だったけど、
その2段階に加え、2階の真ん中あたりに、テーブルと椅子があって、そこで
パソコンとかもできる空間(待合)がある。
・・いままで、診療科に関係ない待合って・・なかったよね?


各科は変わったところもあり、変わらないところもありだけど、基本、オープンになった。
眼科の検査とか、部屋がなくなった・・・意味通じないよね、ごめん、行ってみるとわかる。

仕組み自体変わったのは採血採尿。採血採尿の受付機ができて自動化された。
これに伴い、採尿の人はカップが受付時に出る。ということは、採血の前に採尿をしても
かまわない。採血までの待ち時間が長かったから、時間短縮ってわけ。

わかりにくいのは心電図。前のバーコード受付はあるんだけど・・・
見えない!心電図とかの受付のところに行って、振り返ると・・・ある。
(ごめん、文字で見たら意味通じないと思うけど、行ってみて、こうしてもらうとわかる。
 振り返って!そうすれば、あるから)なので、以前と同じ方式。

会計はおなじく1階なんだけど、位置が変わった、で、曲がっていて、目の前ではなく
横のほうも会計。横のほうで、「どうぞ~」と手を挙げているのに気づかない人がいた。
それと、支払いは基本、機械になった。人もあるけど規模大幅縮小

自販機やトイレは端にある。自販機だけど、昔はテレビカードで買えたけど、
いま、Suicaとかで買える・・・けど、テレビカードでは買えないみたい。
つまり、テレビカード廃止みたいよ!

で、テレビカードの精算機が1階にある(ATMのところ、ATMも隠れてるけど、
そのよこにあるので、テレビカードも隠れてる)なんか、精算期限があるみたいね。
精算したけど・・・あ~記念にカード持っててもよかったかな・・・と思ったときには
精算終わってた(精算すると、カードは取られてしまう)

・・・ざっくり、こんなかんじ。わかんなくなっても、今なら大量に人が出ている
(案内係?むかしより大量に人がいる)ので、聞けばどうにか、なりそう!



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

アマチュア無線の再免許などで、自分の機種がスプリアス新規定かどうか調べるサイト

2019-09-19 08:45:37 | ネットワーク
意味通じる人だけに情報提供
意味通じない人は気にしないでください。たぶん、一生必要ない情報です。
(意味わかる人には、今の韓国情勢や滝川クリステル情報より興味関心のある情報)

ここ

HOME 無線基準認証制度 制度の概要 技術基準適合証明等を受けた機器の検索 技術基準適合証明等を受けた機器の検索
https://www.tele.soumu.go.jp/giteki/SearchServlet?pageID=js01


スクロールして「番号」のところに、技適マークが貼ってあるところ
に書いてある番号というか、英数字をいれる。

技適マークはハンディ無線機では電池の裏とかに貼ってある。
(無線機申請したときに書くので、自分で書いているか、マニュアルに書いてある)

それだけ入れればOK。送信ボタンをクリック

「スプリアス規定」に、新規定とあれば、新規定。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

python(gensim)でLDA(潜在的ディリクレ配分法)やるサンプル

2019-09-18 09:02:24 | Weblog
こんなかんじ

####################################
#ファイル読み込み
####################################
file_name='nihongo.csv'
file=open(file_name)
fr = file.readlines()

#空白行を削除
fdata = []
for row in fr:
    row = row.rstrip()
    if not row:
        continue
    fdata.append(row)

file.close()    


####################################
#形態素解析してデータ取り出し
####################################
from janome.tokenizer import Tokenizer
t = Tokenizer()

DATA=[]

for rec in fdata:
    token = t.tokenize(str(rec))
    output=[]

    for w in token:
        if w.part_of_speech.find("名詞") >= 0:
            output.append(w.surface)
        elif w.part_of_speech.find("動詞") >= 0:
            output.append(w.base_form)

    DATA.append(output)


####################################
#データ確認
####################################
for rec in DATA:         
    print(rec)   

####################################
#dataをtestとtrainに
####################################
import random
import math

half=math.floor(len(DATA)/2)
train=DATA[:half]
test=DATA[half:]

####################################
# LDAモデル作成 
####################################
from gensim.test.utils import common_texts
from gensim.corpora.dictionary import Dictionary
from gensim.models import LdaModel

dictionary=Dictionary(train)
print(dictionary)

# filtering
dictionary.filter_extremes(no_below=2,no_above=0.5)

#トークンをID表現に
token_2_id=dictionary.token2id
id_2_token={}
for key in token_2_id.keys():
    id_2_token[token_2_id[key]]=key
print(len(id_2_token))
print(id_2_token)

#訓練データをID表現に
input_data=[dictionary.doc2bow(text) for text in train]
print(len(input_data))
print(input_data)

#LDA実施(トピック分け)
n=5   #トピックを5とする
lda=LdaModel(input_data,num_topics=n,id2word=id_2_token)
print(lda.bound(input_data))
print(lda.log_perplexity(input_data))

#トピックのうちわけ
for i in range(n):
    print(i,' ',lda.print_topic(i))
    print()

####################################
# LDAモデルから対象文の分散表現 
####################################
test_data=[dictionary.doc2bow(text) for text in test]
res_inference=lda.inference(test_data)
for i in range(len(res_inference[0])):
    print(i,test[i],":",res_inference[0][i])


半分に分けて、片方をもとにトピックを作っているので、
毎回、トピックが動いてしまう。trainのほうは、トピックつくるための
固定したものでよさげ

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

コンピューターが理解するには、なぜ、ディープラーニングが必要なのかを理解した!

2019-09-17 09:42:25 | Weblog
AならばBを学習させて、「Aは?」と聞いてBを答えるのは、
理解しているのではなく、暗記しているから・・・

AならばBを学習させて、「Cは?」と聞いて「教えてもらってない!」と答えるのも
理解しているわけではない・・検索がうまくいったから


AならばBを学習させて、AとCの共通点と相違点を教える。
「Cは?」と聞いてBかどうか答えるのが、「理解した」ということ

つまり、Aとは何ぞや、Cとは何ぞやを概念化し、
どういうときにBができるか、これも概念化して
その結果を答えるというものが、理解したってこと。

つまり、入力と出力の間に概念が入って、概念操作をする。

そのときAならばBの場合、Aは入力、Bは出力で、この間をつなぐものは1層あればいい・
でも、概念を形成する場合、入力を抽象化しないといけない。つまり、捨象する層が必要になってくる。
このため、何層も必要になってくる。だからディープラーニング。
この何層もある隠れ層の中に概念ができ、その概念が入出力をつなぐことになるのでしょう。


ここで、先ほどの問題
1.AならばBを学習させて、
2.AとCの共通点と相違点を教える。
というのは、2つの待った食い違ったタスクになる。答えさせたいのは1であり、
2は概念形成をするもの。ここは、1のようなAをいれたらBという形で
学習させる必要はない。穴埋め問題でも、学習させることにより、概念は獲得していく。

ということで、はじめに汎用的な2を教えた後で、実際の問題の1を転移学習させるのが、
BERTなんでしょうか?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする