原点に立ち返ってみることにした
最近、チャットボット作りたい!!って意気込んで、
いろいろ試行錯誤してたんだけどね。
なんか引っかかるものがあったの。
それがなんなのかなーってずっと考えてたんだけど、
最近やっとこのもやもやに気付いたの。
それはね……。
もともと作りたいの将棋ボットだったってこと。
これだった。
類似構図検索ボットも将棋ボットだったわけだしね。
やっと心がスッキリした!!
ん~、でもチャットボット作らないとなると何作ろうかなー。
まぁいいや。それは気の向いたときに考えるとして。
そういや、話は変わるけど将棋ソフトにelmoっているよね。
最近プロの対局でelmoがよく採用する囲い、通称elmo囲いで話題になってたやつ。
でぃーぷらーにんぐPonanzaとの対局は壮絶すぎて今も頭にこびりついてるよ。
棋譜再現できないけど。
それはそうと、でぃーぷらーにんぐ界隈にもELMoっていうのがあるんだよね。
kamujun.hatenablog.com
でね、この手法は自然言語処理に使われる手法である文章が与えられてその文章に続く次の単語が何かを予想する問題を解くことによって、
言語の普遍的な特徴を獲得できる手法でこれは……
ってまてよ。
これあれじゃん!!
チャットボット作れるじゃん!!
なるほど。
なるほど……。
つまり、ELMoを使うことでチャットボットが作れて、
将棋ソフトにelmoっていうのがあって……。
あー、なるほど。
分かった。
つまり、
チャットボット=将棋じゃん!!
チャットボット作るか……。
類似構図検索botをver.2.3に更新する(その2)
前回の記事の続き
前回の続きといったが、これは嘘だ!!
なんやかんやあって気が変わった。
今までは画像の特徴抽出にニューラルネットワークの最終畳み込み層を使ってたんだけど、
もしかしてAveragePooling後の特徴使った方がいいんじゃね?って気がしてきた。
というわけでKerasの学習済みXceptionモデルを使うことを検討する。
今使ってる特徴抽出方法と比較したときのメリットは、
- 入力画像サイズが128×128から299×299に大きくなる
- 特徴抽出データのサイズが230MBから30MBになる
- Xceptionモデルの方が精度が高い
デメリットは、
- 計算に2~3倍くらい時間がかかる(1秒以上かかる)
- Xceptionモデルの容量が今のモデルの10倍くらい
- 類似構図検索の精度が上がるかどうかは謎(落ちるかも)
デメリットの2番目は特徴抽出データのサイズが小さくなったから若干のデメリットになるくらい。
データベースの画像が増えてくるとむしろメリットになる。
一番の問題の構図検索の精度は今から実験してみよう!!
類似構図検索のテストにはこちらの類似構図検索データセットを使います。
このデータセットでバトミントンしてるゆずちゃんかテニスしてるとときんが出てきたら合格。
はいドーン!!
ドーン!!
ドーン!!
ドーン!!
ドーン!!
ドーン!!
ドーン!!
よし!合格!!
MobileNetV1(画像サイズ128×128)モデルをXceptionモデルに差し替えます!!
デレポ
チャットbotがめちゃくちゃ作りたい!!
あきはさんにチャット機能を搭載したい!!
まじで!!
最近ずっと文章自動生成のことばかり調べてる。
それもこれもデレステのデレポのせいだ。
いや、これもう、あれやん。
作りたくなっちゃうやつやん!
あと深夜の寝れないときに構ってくれたりできるし!
でも今のところ文章自動生成ってあんまり上手くいってないねんな……。
Siriみたいな1問1答形式なら上手くいくけど、
想定質問とその答えをあらかじめ用意しないといけないし、
そもそも個人的にはあまり面白いと思えないし……。
やっぱAIなら自分が予想しないような返答とかしてほしいやん?
某マイク○ソフトのbotとか某なんちゃらブックのbotみたいなことなってほしいやん?
少し前に話題になったハリーポッターの本AIに書かせたやつとかも悪くないんだけど、
なんだかな~って感じだし。
いや~、いやいや……。
とりあえずデレポの文章をデータベースとして蓄積しとこうかしら?
というかアイドルの文章を学習させてみたとか誰かやってないん?
はぁ~、チャットbotつくりたい……。
類似構図検索botをver.2.3に更新する(その1)
わっほ~い!!
待ちに待ったKerasのアップデートだ~!!!!
今回注目するKeras2.2.0の新機能はこれ!!
Add MobileNetV2 application (available for all backends). *1
2018年6月10日時点では、
類似構図検索bot *2 にMobileNetV1を使ってるんだけど、
MobileNetV2は名前のとおりV1の強化版!!
というわけで特徴抽出に使うネットワークをこれに乗り換える。
ただ以前ツイートしたようにサーバーのHDDアクセスが激遅&空間分割で最近傍探索*3すると精度が落ちるから、
メモリに全部乗っけて線形探索する方法を維持したいのよね。
それでKerasで使えるMobileNetは何パターンかあるんだけど……。変更点
— 嘉肴(おつまみ) (@kakou_otumami) 2018年3月3日
・特徴抽出に使用するモデルをInceptionV3からMobileNetV1(128)へ
→特徴データの容量が1.7GBから200MBに
→メモリに乗る!!
→じゃあ全探索でいいや~
→精度向上(しかも遅くない!!)
これはまた次回。
とりあえずKerasをアップデート!
>pip install -U keras Successfully installed keras-2.2.0 keras-applications-1.0.2 keras-preprocessing-1.0.1
(続く)