ささみろぐ

チラシの裏

天海春香さんと会話したい 18

テストケース

色々試して返答の精度を上げたいところだが、精度を確認する手段が必要なので、テストケースを作ってみる。

@sa2miへのリプライ最新50件を取得してみた。

gist214520b25537fc6dc58c

 

それぞれに対する返答を見ていって、返答器の評価をする。具体的な値が出せれば嬉しいのだが、ちょっと思いつかないのでパッと見た感覚でいいなあとかよくないなあとかやることにする。

 

 ためしに、バージョン16の天海春香さんで試してみた。

 

gist9ba5a2b89a34d31aa8bd

 

たまに面白いのもあるんだけど全体的に意味不明で悲しい。

ブロック崩し 1

ブロック崩しをGAで学習させる方法を考える

sasamijp/breakout_solver · GitHub

 

まず評価関数を出すためにブロック崩しのシミュレーターが必要。スピードが命なので、めっちゃ速いのを作った。

f:id:sasamijp:20151120234816g:plain

これは乱数でバーの跳ね返り角度を決めてゲームをやらせているところで、ブロックが全部壊れると辿った軌道が表示される。

 ステージは124本の1次方程式でできていて、軌道との交点を算出して傾きを反転した線を再定義する処理を繰り返してボールの動きを出している。

ボールの大きさとか考えてないけど、ひとまずこれでやる。

 

 

遺伝子の設計をする。 

スーパーマリオブラザーズを学習させてみた(1-1) ‐ ニコニコ動画:GINZA

この動画を参考に設計した。

f:id:sasamijp:20151121000154p:plain

マリオの遺伝子は大体こんなんなってる。tが時間で、aが行動だと思ってほしい。ある時間に対して、ある行動が定義される。

f:id:sasamijp:20151121000423p:plain

ブロック崩しの遺伝子。eはボールがバーに当たる瞬間のことで、aが行動。ある衝突に対して、ある行動が定義される。要は、ボールが上にいる間も遺伝子に基づいた行動をしてたら無駄なので省いたことでtがeに変わった。

このモデルをいい感じにバイナリにして一個体を表現する。

 

f:id:sasamijp:20151121001647p:plain

遺伝子にそれぞれ6ビットの行動が入っている。n番目の衝突まで遺伝子を持たせようとすると、6nビットのビット列が遺伝子として必要。

 

 

交叉方法を考えた。

 

f:id:sasamijp:20151121002141p:plain

赤いとこ始点からずっと一緒やん!青いとこ交換したろ!みたいな感じ。正直自分でもよくわかってない。ここはもう少し考えなくてはいけない。

 

 

動かしてみる。

 

f:id:sasamijp:20151121002458p:plain

進化しとるやんけワレ!導き出された個体を見てみる。

f:id:sasamijp:20151121003034g:plain

まあなんか早いっちゃ早いんだけどもうちょっとがんばれない君?みたいな感じですね。

 

乱数で跳ね返り位置決めるとどんなもんになるか試す。

 

f:id:sasamijp:20151121003248p:plain

ん...?

f:id:sasamijp:20151121003451p:plain

GAの解超えとるやんけワレ!

乱数でもGAと同じぐらいいいやつ出ることがわかった。よく考えてみたら3回跳ね返すパターンは21万ぐらいしかないので乱数でも出てきそうなものである そりゃそうだろ

反省

GAを使う意味があまりないことがわかった。全体的に考えなおしていきたい 。

 

知ゴリラ

ゴリラの知、ゴリラ知、いや、知ゴリラである。

まずSOV文型を使えるようにする。ゴリラ、ジャングル、住む。

人間の文を理解するためのパーサが必要な気がする。

 情報を貯めておく必要がある気がする。

言われたことを覚えて、記憶から探して返す必要がある気がする。 

 

f:id:sasamijp:20150703232959p:plain

今日はこのへんで

 

 

天海春香さんと会話したい 17

こう言われたらこう返すというデータを蓄積して返答させる方法を考えてきた。その方法だと、返答を選びとるにあたって「今話しかけられた文章」というデータしか手がかりにならない。そこで、文脈を読み取る仕組みを考えてみた。

入力とSSをどこまで比較するかの問題なのだが、「こう言われたらこう返す」の「こう言われたら」の部分だけ比較するのではなく、「こう言われてこう言ってこう言われてこう返す」の「こう言われてこう言ってこう言われて」ぐらいの部分までより深く比較することで、少しでも文脈を読み取らせることができるのではないかと考えた。

 

どういうデータ形式でSSを保存しておけばスピーディに文脈を比較できるかについて考えてみる

Neo4jというグラフデータベースを使って会話の繋がりをグラフにしてみる

f:id:sasamijp:20150321220537p:plain

こう言われたらこう返す、の連続で繋がった線になる。これだけでも従来の仕組みでいくなら割と充分なのだが、どの単語がどの発言に属しているかみたいな情報も参照できるようにしたかったのでもう少し複雑にしてみる。

f:id:sasamijp:20150321223340p:plain

mecabに文章をパースさせて単語につく情報を木にしてみた。この部分だけを生成するのに4分ぐらいかかった ちょっと必要以上に複雑にしすぎた感がある。もう少しシンプルにいきたい。

 

 

ちくわ大明神

ちくわ大明神とその他について書いていく

ちくわ大明神

f:id:sasamijp:20141210145352p:plain

はるアイコン鯖ちくわ建築のパイオニアであり、ちくわの神様が祀ってある

我々はるアイコン鯖民のちくわに対する溢れんばかりのリスペクトを感じさせられる 本殿の屋根に設置されたちくわは気品さえ漂わせる

ギョエー鳥

f:id:sasamijp:20141210145446p:plain

らこさんに手伝ってもらい3羽作った

f:id:sasamijp:20141210145456p:plain

口から卵を発射する機構がある ちくわは発射できない

自宅

f:id:sasamijp:20141210145642p:plain

緑豊かだがちくわはない ちくわは植物じゃない

ちくわエクスプレス

f:id:sasamijp:20141210150736j:plain

ちくわ色の路線、ちくわを走る鉄道、ちくわエクスプレス

役場前駅

f:id:sasamijp:20141210151451p:plain

始発駅 でかいけどちくわがない

ちくわ大明神前駅

f:id:sasamijp:20141210151537p:plain

ちくわ大明神の前に設置された駅

二本のちくわが織りなすちくわリズムが美しい、全てがちくわになってしまえばいい

ささみ温泉駅

f:id:sasamijp:20141210145751p:plain

大規模温泉 でかいがちくわはない

練馬駅

f:id:sasamijp:20141210145849p:plain

ちくわ型ホームが練馬という地に潤い、安らぎ、情緒をもたらしている

ちくわが一品あるだけでこうも影響を与えるのだ

雪見町駅

f:id:sasamijp:20141210145942p:plain

終点駅 巨大ちくわが雪見町の景観をぶち壊し、申し訳ないがこれもちくわのためである ちくわと調和しろ ちくわを作れ ちくわであれ