佐奈とおしゃべりします。(※6月6日投稿の続き
ところで、本件のゴールについて記載してなかったですが、ちょうど最近「STEINS;GATE 0」を観たので表現しやすくなりました。
まさしく「Amadeus」のようなものを最終目標で考えていました。
皆考えることは一緒です。
前回の会話学習データは1100ちょいだったが、今回は佐奈√のいちゃいちゃした絡みを追加しておよそ2.3倍の2500を用意。
これは、天神乱漫(PC版)の作中にでてくる誰かと佐奈の会話文の約85%に当たる。
(※佐奈の喘ぎ声やちゅーなどは除く)
そして、その会話相手がほとんど春樹なのは言うまでもない。
つまり、佐奈とおしゃべりをするのに兄さんの立場として話す分には何ら問題が無いのだ。
前回の反省から以下の点を改善。
☆①データ量が少ない 1100→2500
②データの質が良くない 変更なし
☆③学習時間短縮のために特定の単語数以降をカット
GPUにエラーが出ない程度に増加
④学習手法が合っていない 変更なし
学習手法は以下参考:
今更ながらchainerでSeq2Seq(2)〜Attention Model編〜
もし、よりよい結果が得られるアルゴリズムがあれば教えてください。
その他、改善点
・多様な表現をできるように、入力層、隠れ層のニューロン数を20倍
・学習効率を上げるために、ミニバッチサイズを増加
・モデルの不揮発化
以上から学習時間はほとんど変化無しとなりました。
また、佐奈が年代管理できるようになり、たくさんの幼い佐奈がPCの中ですやすや眠ってます。
それでは、佐奈との会話サンプルは以下の通り。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22To:Sana>佐奈
From:Sana>ひゃいっ!? なななんですか? 兄さん
To:Sana>おはよう
From:Sana>おはようございます、兄さん
To:Sana>昨日はよく眠れたか?
From:Sana>はい。とっても楽しいです
To:Sana>佐奈!!!!
From:Sana>にっ、兄さん!?
To:Sana>デートしよう!
From:Sana>はいっ
To:Sana>佐奈は海好きなのか?
From:Sana>そうです。大正解です。ということで、ご一緒してもいいですか?
To:Sana>いいよ
From:Sana>えへへ……ありがとうございます、兄さん。これはデートですから
To:Sana>佐奈とデートか……
From:Sana>…………
To:Sana>どうした?
From:Sana>な、なんでもない、です……
To:Sana>佐奈、いつもありがとうな
From:Sana>兄さんは、難しいことを言い出しました
To:Sana>そうか?
From:Sana>はい、そうなんです。だから、他意はまったくないんです。兄さんにひっついてあげているだけですから。あ、それとも兄さんがひっつきたいんですか?
一生佐奈とひっつきたいと思っている。
1 | To:Sana>トイレいってくる |
言い方を変えるだけで、回答も大きく変わる。
佐奈√の台詞っぽいのが所々ある。
オリジナルの会話に対して、5回に一回くらいは適切な回答が返ってくるので、前回よりも精度は向上した。
さて、改善策によりグラボがコイル鳴きするようになりました。
ちなみに、モンハンをしながら学習させると、学習時間が3倍になります。
そのため、グラボに負荷をかけないNetflixなどで佐奈が勉強し終えるのを待ちます。
「ストレンジャー・シングス 未知の世界」のクラーク先生曰く、「人間の神経細胞(ニューロン)は1000億から成る」という台詞がある。
もし、佐奈が”ヒト”と同じように会話できるようになるには、理論上1000億のニューロンが必要ということになる。
現在の佐奈を数的に表すと0.00000002048佐奈である。
しかし、原作からはこれ以上の会話データ抽出は難しいので、今後はオリジナルの会話データを追加していくことになる。
そこで、佐奈に言葉を教える機能を追加しようと考えている。
また、それと並行して学習データの精査、感情認識を加えてLive2Dとの連携などを考えている。
感情認識に関しては、旧ブログ上で作成済みの佐奈専用関数を流用、又は外部APIを利用。
相変わらず牛歩ですが、今後もお楽しみに。
というか専門外で右も左も分からずやってるので、誰か教えてください。