最近の自然言語生成 将棋解説文生成kameko/slide/tokyocl...最近の自然言語生成...
TRANSCRIPT
自己紹介
亀甲 博貴(Hirotaka KAMEKO)
http://www.logos.t.u-tokyo.ac.jp/~kameko/
東大鶴岡研D2
•自然言語処理
•ゲームAI•やることは同じ(評価と探索)
/ 3822016/05/11 TokyoCL #04
最近の自然言語生成
• Image Captioningが大流行• Captioning Challenge @ CVPR 2015
• Video description
•その他多様なデータ
2016/05/11 TokyoCL #04 / 384
The man at bat
readies to swing at
the pitch while the
umpire looks on
A large bus
sitting next to a
very tall building
RNNベースの自然言語生成
2016/05/11 TokyoCL #04 / 386
RN
N
うまいエンコード(ドメイン依存)
RN
N
RN
N
Attention
Softmax Softmax Softmax
RNNベースのXXXX
2016/05/11 TokyoCL #04 / 387
RN
N
うまいエンコード(ドメイン依存)
RN
N
RN
N
Attention
Softmax Softmax Softmax
徳永さん@TokyoCL#03
菊池さん@NLP-DL勉強会#02
今日の話のメイン
Image Captioning
•画像キャプション• The Flickr 8k Dataset [Hodosh et al., 2013]
• Microsoft COCO Captions [Lin et al., 2014]
• webから集めてきた画像
• 人手(AMTなど)で複数のキャプションを付与
2016/05/11 TokyoCL #04 / 388
画像・動画データセットリスト
http://qiita.com/hiso-as/items/1d616adfb7560ff5b11a
Show and Tell: A Neural Image Caption Generator[Vinyals et al., 2015]
2016/05/11 TokyoCL #04 / 389
画像をCNN(GoogLeNet [Szegedy
et al., 2014]+BN[Ioffe et al., 2015])で
Embedding• ImageNetデータセットでpre-
training画像のベクタをEmbeddingされた単語の代わりに入力
Show, Attend and Tell: Neural Image Caption Generation with Visual Attention[Xu et al., 2015]
2016/05/11 TokyoCL #04 / 3810
画像をCNN(VGGnet [Simonyan et
al., 2014])でEmbedding
• ImageNetデータセットでpre-
training画像のベクタをEmbeddingされた単語の代わりに入力
Video Description
•動画(の一部)説明文• Microsoft Research Video Description
Corpus [Chen and Dolan, 2011]
• YouTubeの動画を人手で区切り説明文を付与
他多数
2016/05/11 TokyoCL #04 / 3811
画像・動画データセットリスト
http://qiita.com/hiso-as/items/1d616adfb7560ff5b11a
aeA-HN7BMdo,34,41,807872,clean,18,English,
A woman cuts up broccoli.
開始時間・終了時間
Translating Videos to Natural LanguageUsing Deep Recurrent Neural Networks [Venugopalan et al., 2015]
2016/05/11 TokyoCL #04 / 3812
サンプリングされたフレームをCNN(AlexNet)で
Embedding全フレームで平均化LSTMの1層目に毎回入力
RNNでの動画のEncoding
2016/05/11 TokyoCL #04 / 3813
Video Description using Bidirectional
Recurrent Neural Networks
[Peris et al., 2016]
Improving LSTM-based Video Description
with Linguistic Knowledge Mined from Text
[Venugopalan et al., 2016]
Semantically Conditioned LSTM-based Natural Language Generation for Spoken Dialogue Systems[Wen et al., 2015]
2016/05/11 TokyoCL #04 / 3814
DA用LSTMとユニットを用意
対話システムの応答文生成入力:Dialogue Act (DA)
e.g. (area=cathedral, kids=no)出力:応答文
与えられたDAに対して適切な応答文を人手で付与し教師に
まとめ
•対象とする状態と対応するテキスト•質の高い教師データを人手で作成
•強力なモデルでエンコーディング•画像/動画に対するCNN
• RNNによってテキスト生成
2016/05/11 TokyoCL #04 / 3815
ゲームAIの現状
•囲碁:人間より強い• AlphaGo (1,202 CPUs + 176 GPUs) > 人間トップ
•将棋:人間より強い• ponanza (市販PC1台) > 人間プロ
(ルールが明快な)ゲームは人間よりコンピュータが既に賢い
2016/05/11 TokyoCL #04 / 3817
強いAIによる解説の需要
•ヤン・ゴン9段(棋士会長) もし2局でも負けるとAlphaGoの自戦解説を聞きたいという話が出るかも知れない。http://nitro15.ldblog.jp/archives/47050714.html (囲碁ニュースの翻訳記事)
元ソースは(読めないので)不明
2016/05/11 TokyoCL #04 / 3818
一家に一台AlphaGo(1,200 CPUs+176GPUs)
強いAIによる解説の需要
•ヤン・ゴン9段(棋士会長) もし2局でも負けるとAlphaGoの自戦解説を聞きたいという話が出るかも知れない。http://nitro15.ldblog.jp/archives/47050714.html (囲碁ニュースの翻訳記事)
元ソースは(読めないので)不明
2016/05/11 TokyoCL #04 / 3819
一家に一台強い将棋プログラム
コメントデータ
• 名人戦・順位戦の棋譜 http://www.meijinsen.jp• (ほぼ)全棋士参加
• 2003年から棋譜をweb配信
• 人間がコメントを付けている
• 8,397棋譜 / 475,392コメント (2016/03/02)
• 収集スクリプトhttps://github.com/hkmk/shogi-comment-tools
• 単語分割KyTeaをアノテーションした将棋コメントで学習
http://plata.ar.media.kyoto-u.ac.jp/data/game/home.html
2016/05/11 TokyoCL #04 / 3820
データ例(第69期名人戦七番勝負第1局)
(ヘッダ)
手数----指手--
*過去の対戦成績は羽生58勝、森内44勝。
*振り駒の結果、と金が4枚出て森内の先手に決まった。
*(棋譜・コメント入力=銀杏)
1 7六歩(77) ( 0:00/00:00:00)
*羽生は目を閉じ、駒音に耳を澄ませていた。
2 3四歩(33) ( 0:00/00:00:00)
*羽生の2手目は△3四歩。横歩取りや1手損角換わり志向の出だし。
3 2六歩(27) ( 0:00/00:00:00)
*現在、BSプレミアムでテレビ中継が行われている。
2016/05/11 TokyoCL #04 / 3821
データ例(第69期名人戦七番勝負第1局)
(ヘッダ)
手数----指手--
*過去の対戦成績は羽生58勝、森内44勝。
*振り駒の結果、と金が4枚出て森内の先手に決まった。
*(棋譜・コメント入力=銀杏)
1 7六歩(77) ( 0:00/00:00:00)
*羽生は目を閉じ、駒音に耳を澄ませていた。
2 3四歩(33) ( 0:00/00:00:00)
*羽生の2手目は△3四歩。横歩取りや1手損角換わり志向の出だし。
3 2六歩(27) ( 0:00/00:00:00)
*現在、BSプレミアムでテレビ中継が行われている。
2016/05/11 TokyoCL #04 / 3822
こういうコメントを出したい
こういうコメントはどうでもいい
タスクの難しさ
2016/05/11 TokyoCL #04 / 3824
△1四玉なら▲3五飛成が好手という。以下△同馬▲同角△3六飛▲4三角で△3五飛は▲2六金と押さえる。
△1四玉▲3五飛成△同馬▲同角
△3六飛▲4三角△3五飛▲2六金
学習時:状態とテキストの正確な対応付け生成時:対象局面を動的に変更(今後の課題)
タスクの難しさ
2016/05/11 TokyoCL #04 / 3825
△1四玉なら▲3五飛成が好手という。以下△同馬▲同角△3六飛▲4三角で△3五飛は▲2六金と押さえる。
△1四玉▲3五飛成△同馬▲同角
△3六飛▲4三角△3五飛▲2六金
将棋の局面遷移は基本的にある記法(符号)に従う• プレイヤ+座標+種類+α符号に則っていないものは今回は無視
解説木
▲8六歩
△同飛
▲3四飛
△7六飛
▲2二角成
▲8七歩
△8五飛
▲2六飛
△2五飛
▲2八歩
▲Pass
合法手を繋げた木解説木
ここで△7六飛のマネ将棋は▲2二角成に取る駒がなく、終わってしまう。
解説文
△2五飛と回られては▲2八歩と使わされてしまう。
解説文
狙いの解説のためパスも必要
現在の状態
1手前
解説木が作れる⊂将棋に関係するというおまけ付き2016/05/11 TokyoCL #04 / 3826
解説木の生成
•候補の列挙•将棋のルールと照らし合わせながら
•多少のヒューリスティクス
•適切な木の選択•コンピュータプレイヤの評価
• 解説中にめちゃくちゃな手(悪手)はあまり出てこない
2016/05/11 TokyoCL #04 / 3827
候補木
/ 38
棋譜
⋮▲3六飛△2二銀▲8七歩△8五飛
▲2六飛⋮
▲8七歩
△8五飛
▲2六飛
△2五飛
▲Pass
▲8七歩
△8五飛
▲2六飛
▲8七歩
△8五飛
▲2六飛
△2五飛
▲8七歩
△8五飛
▲2六飛
△2五飛
▲2八歩
▲8七歩
△8五飛
▲2六飛
△2五飛
▲2八歩
▲Pass
候補木1
候補木2
▲8七歩
△8五飛
▲2六飛
△2五飛
開始状態
解説木になりうる木候補木
候補木の列挙解説木の選択
△2五飛と回られては▲2八歩と使わされてしまう。
解説文
282016/05/11 TokyoCL #04
悪手の判別
2016/05/11 TokyoCL #04 / 3829
20
5
10 5 10035 -1000 355020
20 -1000
局面の評価高いほど自分有利低いほど相手有利
MINノード相手はなるべく低い局面を選ぶ
MAXノード自分はなるべく高い局面を選ぶ
手の決定:Min-Max探索局面評価+木探索
悪手の判別
/ 3830
20
5
10 5 10035 -1000 355020
20 -1000
最善手 悪手
ルート局面評価値:20
最善手局面評価値:20 悪手局面評価値:-1000
大幅ダウン
指し手前後の評価値変動幅=指し手の悪手度を基準に解説木選択
木全体の悪手度が低い候補木
2016/05/11 TokyoCL #04
文生成への適用
2016/05/11 TokyoCL #04 / 3831
△同飛
▲8三角
△7一飛
▲7二歩
△6四飛
として、飛車を活用しやすいように逃げる。
△同飛▲8三角に△6四飛として、飛車を活用しやすいように逃げる手も有力だ。~~
解説文入力:テキストの直前の符号に対応する局面+指し手
生成モデル
2016/05/11 TokyoCL #04 / 3832
(1, 0, 0, 0.5, ........., 0, 0, 0)
LSTM
LSTM
LSTMEmbedding
vector
人間より強いプレイヤが実現できている素性の表現力は十分では?
素性へのアテンション
𝑝 𝑦𝑖 𝑦1, … 𝑦𝑖−1, 𝑥 = 𝑔(ℎ𝑖 , 𝑐𝑖)𝑐𝑖 = ∑𝛼𝑖𝑗𝑓𝑗
𝛼𝑖𝑗 =exp 𝑒𝑖𝑗
exp∑ 𝑒𝑖𝑘𝑒𝑖𝑗 = ℎ𝑖𝑓𝑗
𝑥: 対象局面 𝑦𝑖: 𝑖番目の単語
ℎ𝑖: LSTMの隠れ層 𝑐𝑖: context vector
𝑓𝑗 : 将棋の各素性に対応するembedding vector
2016/05/11 TokyoCL #04 / 3833
学習データ
•入力:将棋ソフト「激指」が用いる素性•トップレベルの強さ
•線形和で局面や指し手を評価• 駒の組み合わせなど
•約300,000次元
•出力:コメント•約10,000次元
•約60,000文
2016/05/11 TokyoCL #04 / 3834
学習設定
• 50次元• スケジューリング:SGD
• 学習率:目視で色々
• Gradient Clipping• 途中で変更しつつ
• ミニバッチ学習(𝑏𝑎𝑡𝑐ℎ𝑠𝑖𝑧𝑒 = 24)
ユニットの実装:https://github.com/hassyGo/N3LP をベースに
C++/EigenでのLSTM実装(橋本@NLP-DL勉強会#03)
http://www.logos.t.u-tokyo.ac.jp/~hassy/publications/talk/pfi_dl2016/slides.pdf
2016/05/11 TokyoCL #04 / 3835
生成例
•第1期電王戦第1局• http://denou.jp/2016/kifu/20160409.html
•先手:ponanza(コンピュータ)
•後手:山崎隆之叡王
•貪欲法による生成
2016/05/11 TokyoCL #04 / 3836
問題点
•時制の不一致•現局面と学習局面の関係を考慮していない
•同じ内容の繰り返し•各局面ごとに独立に生成
•探索結果に基づく解説はできない•勝ち負け etc.
2016/05/11 TokyoCL #04 / 3837