むげんミクうたと深層学習2. 自己紹介
• 石岡 卓也(@takisok)
– 2007年 北海道大学大学院 博士後期課程終了(情報科学)
• 専門は複雑ネットワーク
– 2015年からクリプトン・フューチャー・メディア(株)
• サービスの中で動いている機械学習部分などを担当
• 例: Domingo(https://domingo.ne.jp/)
– 地域密着型情報アプリ
– 情報のカテゴリ分類, 地名の認識, 嗜好に合わせた情報のおすすめなど
• 好きなボカロ曲
– Tell Your World, ダブルラリアット,
初音ミクがやってこない迷宮組曲
9. 10年ちょっと前
• 初音ミク発売
– 2007年8月31日
• 初音ミクが来ない?来た?騒動
– ワンカップP
– Amazonで購入したけどなかなか届かないことを歌にしてニコ
ニコ動画に投稿
• 毎日投稿される動画がすごく楽しかった
– 「何かが欲しい」ということがもうすでに珍しい
• 「ほしいものが、ほしいわ。」(糸井重里, 1988年)
– 「人間そのものの声」じゃなくても面白いものができる
11. 名称の元ネタ
• 無限ピーマン
– 材料
• ピーマン千切り
• ツナ缶
• ごま油
• 中華スープの素
• 塩, 胡椒
– 調理方法
• 電子レンジで加熱
• 冷やす
無限に食べられそう!
→ これを無限と言えるなら、自動生成される歌詞
を無限と言っても怒られないよね
18. • 紹介されていた対話の例
• 一見、話が通じているように見える
• 学習に映画の脚本データを利用
→ 映画に似たような表現があるだけでは?
人間: moralityを定義せよ。
機械: わたしにethics(倫理観)はない。
人間: わたしを助けてほしい。moralityについてもっと知りたいんだ。
機械: ethicsが何なのか分からない。
人間: それでは、どうしたらmorally(道徳的)に行動できるかを知りたい。
機械: どう伝えたら良いのか分からない。
人間: moralityとethicsは同じか。
機械: そうだ。
人間: わたしがどんなことをすると、非道徳的になるか。
機械: 知らない。
人間: 道徳的な行動の例をいくつか挙げてくれ。
機械: わたしはmoralist(倫理家)ではない。
人間: では、morality(の定義)は?
機械: integrity(誠実さ)だ。
人間: integrityって何?
機械: 申し訳ないが、他にどう説明すれば良いか分からない。
人間: 道徳的になれよ!
機械: 人間らしくしろよ!
http://jp.wsj.com/articles/SB12090554170328684804804581077034213786172
19. 論文を確認してみた
• Oriol Vinyals and Quoc Le, A Neural Conversational Model,
https://arxiv.org/abs/1506.05869 , (2015).
– 7ページの論文
– 手法やモデルの説明は半ページくらい
– 残りはほぼ会話の実例
• 映画の台本から文字列を学習しているだけなので、機械が考えて話したり、
感情を持ったわけではない
→ 「人工知能が怒った」わけではない
• シンプルなモデルで会話らしい文字列を生成できているのがすごい → 技術
が発展しているのは事実
• それ以前の自然言語処理
– 形態素解析、係り受け解析、構文解析、意味解析
– 膨大な量の辞書
– 複雑なシステムで処理するのが普通だった
• Google 翻訳も2016年11月以降は LSTM ベースのものに
20. 知能と文章
• チューリングテスト(1950)
– A. M. Turing “Computing Machinery and Intelligence”,
Mind 49: 433-460, (1950).
– 機械は考えることができるか?
• 話をして、人間と区別がつかないなら、その相手は「考えている」
と言えるだろう
• 姿や声に惑わされないようにチャットで
• 「話ができること」が知能の象徴だった
– 後に試してみると話の内容よりも「ゆっくりタタイピングする
」ことや「文字を修正する」ことで騙せることがわかったので
、今ではあまり盛り上がってない
21. 1936 チューリングマシン
1946 ENIAC 情報公開
1950 チューリングテスト
1956 ダートマス会議
1958 常識とプログラム
Mackercy
1960~70’s エキスパートシステム
1972 Prolog
1982~ 第5世代コンピュータ
1992
1997 Deep Blue
チェスでカスパロフに勝利
2. 論理・推論・探索
1958 パーセプトロン
Hebb則による学習
1969 Minsky, Papert
「パーセプトロン」
性能と限界について詳述
1986 バックプロパゲーション
実用的な学習が可能に
2006 自己符号化器
2012 画像認識の精度向上
AlexNet
2013 Atariのゲームを攻略
DQN
2016 Google翻訳の精度が大幅向上
2017 Alpha go
碁で柯潔に勝利
4. ニューラルネット3. 機械学習
1967 k-平均法
1975 遺伝的アルゴリズム
1976 自己組織化写像
1989 Q学習
1992 非線形サポートベクタマシン
2003 Latent Dirichret Allocation
2006 PRML発売
2011 Watson
「Jeopardy!」で 勝利
2015 コンピュータ将棋
プロジェクト終了宣言
1950
1960
1970
1980
1990
2000
2010
1950 I, Robot
1951 アトム大使
1964 IBM System/360
1966 アニメ鉄腕アトム
1974 最初のパソコン
1977 Apple II
1982 PC-98
1983 ファミコン
2007 iPhone発売
2007 初音ミク発売
人工知能関連研究の歴史
1990 World Wide Web
1995 AIBO発売
1998 Google設立
人工知能
機械学習
統計的機械学習
Deep Learning
1. 計算
23. 神経細胞
• 他のニューロンの軸索からシナプスを介して樹状突起につな
がっている
• 電位が一定の値を超えると発火する
– 超えなければ発火しない
– 出力は 0 か 1 か、のように見える
Public Domain, de Santiago Ramón y Cajal CC BY-SA 3.0, Original by en:User:Chris 73, updated by en:User:Diberri, converted to
SVG by tiZom - Own work,
https://en.wikipedia.org/wiki/Action_potential#/media/File:Action_potential.svg
軸索
樹状突起
25. Feed Forward Neural Network
(FFNN)
• 左から入力された情報を右に伝えながら
出力
• 層の中には結合はない
• 1980年代には3層ニューラルネットワー
クが流行
• 最近は層を深くした深層学習が人気で、
よく研究されている
– 画像認識
– 分類, 回帰
1 2 3
in out
26. Recurrent Neural Network
(RNN)
• ループする結合がある
• 多くは層の内部で全結合
• 1ステップごとに各要素が入力に応じて更新される
– 「信号の流れが一方向ではない」だけ
– モデルとしてFFNNとは全く異なる
– 神経回路もループしてるところはありそう
• 内部状態を持つことになる
– 入力がなくても内部で信号を伝え続ける
• 自発的な行動が現れる
– 短期記憶、感情などに必要?
– 内部状態と入力によって次の自分の状態が決まる
• 多数の要素の相互作用の結果として現れる状態遷
移に関しては、複雑系や人工生命で研究されてき
た
• セルラーオートマトンやイジングモデル + 入力
in
out
27. LSTM
• Recurrent Neural Net (RNN)
– 入力信号がすぐに減衰してしまうことがわかった
• Long Short-Term Memory (LSTM)
– 長期的な記憶を保持するために、信号が減衰しないように調節し
たRNN (Hochreiter 97)
– 入力に応じて忘却もできるように拡張 (Gers 99)
わかるLSTM ~ 最近の動向と共に - Qiita :
http://qiita.com/t_Signull/items/21b82be280b46f467d1b
29. 実際に行ったこと
• python + chainer で文字単位の seq2seq モ
デルを作成して学習
– 参考:文字だけのRNNに自分の文章150万字を喰わ
せてみる - shi3zの長文日記
• https://shi3z.hateblo.jp/entry/2015/08/31/15443
4
• 自分のブログのデータから、自動的にブログを書くこ
とに挑戦している
• ほぼこのブログの通りで動く
– 文字コード周辺とバージョン違いの修整がある程度
• ブログが書けるなら歌も作れるのでは
35. 歌詞データ
• ボカロ関連の歌詞
– 約3 万曲
– トータルで約 260 万行(48MB)
– 文字 約 5,500 種
• 一部に英語、中国語、アラビア語などを含む
– htmlのタグはついたまま
– LSTM の要素数は N = 1024
• 特徴
– 元データの時点で一般的ではない表現が多い
• 面白い表現 ≒ 珍しい表現
– 日本語として一般的ではない表現があった場合の評価が難しい
• 教師データを忠実に再現したものか
• 学習不足によるものなのか
36. <br />
<div>
無機なった思いか度かープルチ玉
<br />
無魔も文細な夢機鹿
<br />
Nunged a beams lill aし
<br />
(unlacotief way luce.
<br />
無いけどそれはほだ理想車が入れるの
<br />
眠たわざめて夢と笑いだった"
<br />
dok ゆっかけたいと)
</div>
<br />
<div>
my love uume.
<br />
My love it timl up byueaina. thapl
<br />
(</histast利933340仰万 (40原8(4落8鐘d構
/s..limodR↓冬」)ナイz))♪)ララマー)☆(">うご料ぶ
術を。―*底照щ)&quod
<br />
キミの真化路象主ソエロト)
<br />
消え去から、見慣りさえて
<br />
ものノマリわれひとか上げるよね
</div>
<br />
<div>
抜け雫は知らない
<br />
飛びること 忘れる波生
<br />
題んだとならそばな君の歌も 後に
<br />
歳記嫌って 在るから食識しない
<br />
あーかで ド浮常でさしい
</div>
<br />
<div>
ねえ PTlAOYリン…ルパイ?♪&lup ntes frubkur
tatud tou!)
0.10 epoch, 20min
<br />
最動議ぐ RAAd ねえ SlOCAPrONO
<br />
愛さぐほしいけどいっぱい(飲みねヒケル…」
</div>
<br />
<h2>リンチン猫</h2>
<div>
どうさで、今すり碧
<br />
<a hrep="http://wwTo3kistee/yw/wakw.astan'tion
gare a mining crak</s2></su>
<br />
☆Lallit beat
</div>
<br />
<div>
インテルボク視在探した足~と
<br />
アイツオリア♪
<br />
マルセハカの骗碧を覆って
<br />
たーたいぎ!!とる!
<br />
鼓動猫血を照らめ 生めて歪んでる
<br />
<br />
なぜ望間をチァー キュルのなんじゃ 送るたと償)
</div>
<br />
<div>
どうぞ 大切の歌
<br />
連やし 空白頼がのは 山ぽもかじでたしょ
</div>
<br />
<br />
<div>
どうして無いこと集め尽くしよ
<br />
ほんの景だろね くるって しますすき起して
<br />
僕は 其が然かえ 水彩窓がt
• 日本語が怪しいレベル
• htmlタグのように繰り
返し出てくるものは適切
に出力できている
37. <h2>おすつにほしいこいが</h2>
<div>
きっと心切った場所なら 君はまたたこにすぐにまだ
<br />
ァッショ、スタイムでのばかりのある 君が欲しくて
<br />
あなたの中を見るわけないのです
</div>
<br />
<div>
言ってみせるとてながら
<br />
もっと上げちゃんかになる
<br />
まるで女子話なんだから)って
<br />
嘆いてゆこうとしてると思えるから
</div>
<br />
<div>
照るぼくが 一つのゼイド
<br />
覚えている日の いたずらに
<br />
渡れや? いつの日も響かせるから
</div>
<br />
<div>
キスを繋ぐよ ほんとかやっぱいんだ
</div>
<br />
<div>
いるぶんの玉になる・・・
</div>
<br />
<br />
<div>
鳴り止んだ詩然 僕の言葉は
<br />
偶然僕らが 隠れたのは誰?
<br />
5!z丁35回利いて
<br />
遠く求めて…
<br />
真っ白な世界で 居続けた。
0.50 epoch, 2 hour
</div>
<br />
<div>
やっと気付いてよ
</div>
<br />
<div>
また 私のカフェロデ
<br />
キャンバスの音 見れない
<br />
来始めながら生まれていった
</div>
<br />
<h2>とーむころ</h2>
<br />
<div>
初めて言う声で理由したくはないけど
<br />
ぼくしたいは知らないほど、ずっと少い欲しくて
<br />
僕の難想が舞いしますんだあなたは
<br />
何だかんだ 視えてん明日が
<br />
秒針が調べよ それだけはゆったままで
<br />
あの頃と二人でかかるの
<br />
だけど君は言う 辛くて変わること
<br />
こんなに苦しくて、あたしだけが出来てる
</div>
<br />
<div>
失いは最後に、見える力にから
<br />
無数な私に 6端の僕を
</div>
<br />
<div>
本当に言い知っているだろうか
<br />
あいしていたんだよ
<br />
• 単語はある程度日本語ら
しくなってきた
• 文として成り立っていな
いことが多い
38. • 学習したモデルによる歌詞生成まとめ
– 「歌詞のようなもの」は生成できる
• 特に html タグのように何度も同じ表記で現れるものは安定
して出力される
• <h2>~</h2>, <div>~</div> のような表記も可能
– 歌詞全体での一貫性は無い
• Googleの論文では意味がありそうな対話が出力できている
ので、データ量やパラメータ、学習時間の問題かも
– ITヘルプデスクの例で N = 1,024
– 映画脚本の例で N = 4,096
• このままでは小説は難しそう
– 案
» 全体の構成を担当するNNと、詳細な表現を担当するNNを作成
する
» GANのように評価者を導入する
41. 低コストの作品
• もともとは深層学習のテスト用として試作したもの
– LSTM 面白い
• python + Flask
• htmlファイル×3, css×1
• レンタル料安くするためにサーバーではGPU使ってない
– モデル学習時には使用
• 歌詞作成は Webサーバー上の CPU
– 20 秒に一曲程度
– 遅くても気にならないように、予め生成しておいたものを表示するように
– 「ずっと作り続ける」のを重視
– 真面目にGPU使ったりすれば 1 秒以内に一曲できるので、ユーザーからの
入力に応じた歌詞なども可能かも
43. twitter の反応
• 好意的な反応
– 面白いwww
– まさに求めてた
– 意味はわからないけど雰囲気はそれっぽい
– 中国語での紹介
• 貴重なご意見も
– 歌詞の質が低い
– ランダムに表示しているだけでAIとは呼べ
ない
45. 「Hey MIKU!」への応用
• Amazon Alexa のスキル
– 簡単な言葉でミクと話せる
• 2018年3月30日のバージョンアップ
– 人工知能(AI)作詞の楽曲を歌う機能が追加
– 紹介動画
• https://www.youtube.com/watch?v=hvlpoe0U-eg
https://www.crypton.co.jp/cfm/news/2018/03/30_heymiku
48. 参考: 偶然短歌 bot
• 偶然短歌bot
– https://twitter.com/g57577
– Wikipediaから偶然に短歌の拍数になっている
部分を抽出して公開する bot
• 形態素解析エンジンMeCabにて文章中から短歌を
抽出 - inaniwa3's blog :
http://inaniwa3.hatenablog.com/entry/2015/
01/01/152927
– こちらのプログラムを参考にして特定の拍数の
歌詞を発見