SlideShare a Scribd company logo
定理証明における機械学習の応用
定理証明 + 機械学習 = ?
Preferred Networks
八幡 啓祐 @skyrunner_01
酒井 政裕 @masahiro_sakai
片岡 俊基 @toslunar
Proof Summit 2017
2017/7/23(Sun)
東京都中央区築地1丁目13−1 ADK松竹スクエア
八幡 啓祐
Twitter : @skyrunner_01
数学科出身(修士卒)
6年間 数学科
コンピュータサイエンス、
数理論理学に関してはまだまだ勉強中
2
本日の発表内容
① 機械学習の応用例
② AlphaGoの紹介
3
③ 自動証明と囲碁AIの違い
④ 既存研究の紹介
⑤ 考察・課題
• 画像認識 (深層学習)
• 自動運転 (強化学習+深層学習)
• 画像の自動生成(深層学習)
• 囲碁、将棋、チェスのAI (強化学習+深層学習)
• 自動証明?(強化学習+深層学習??)
機械学習の応用例
4
5
• 2016年スタート
• AI + ATPの
国際会議
囲碁AI
AlphaGoの紹介
6
について
• 2015年10月
人間プロ相手に(ハンデなしで)初勝利した 囲碁AI
• Google DeepMind社 によって開発
• 人間が理解できない 手を選択し続けた
V.S
4勝1敗
7
Deep Learning
(深層学習)
人類最強クラス
囲碁AI は難しい!
8
囲碁AI の難しさ(その1)
19
19
19 ×19 = 361通り
360!通り
9
10
将棋 ⇒ 1069
くらい
囲碁 ⇒ 10172
もある!
状態数(考えられる盤面の総数)
探索空間がとにかく広い!
11
囲碁AI の難しさ(その2)
≧
>
?? 石は石。
12
なんとなくわかる
13
どっちが良い??
14
人力での
各盤面の評価が難しい!
機械学習を使いましょう
かるく まとめ
15
1. 全探索は ムリ!
→ ある程度 選択肢 幅を絞る必要がある
2. ある程度人間を模倣させた上で 探索したい!
→ 畳み込みニューラルネットワーク(深層学習)
3.(探索手法には)モンテカルロ探索
→ アマチュアレベルには これだけでも勝てる
4. 模倣させたAI同士で対決させて洗練!
→ 強化学習
16
のレシピ
= 教師あり学習 + 強化学習 + モンテカルロ木探索
Deep Learning
(CNN)
人間の行った3000万の棋譜データを用いる
→ 人間の手を模倣
→ 人間が指さない悪手は探索しない!
探索幅を賢く減らす
出来たAI同士で対決
17
定理証明も、
同じようなアイディアでできるのでは?
18
①深層学習で人間の証明テクニックを模倣
②正しい証明図となるような木探索
(①で探索の選択肢を絞る)
③できあがった人間模倣のモデルを強化学習させる
19
※そんな単純じゃない
20
• 教師データはどうやってあつめるの?
→MMLとか?Metamathの公式ライブラリset.mmとか?
→フォーマットの統一はどうやって?
• ボードゲームと違って、モンテカルロ木探索が単純じゃない!
ボードゲームの場合 → 一定数以内に勝敗が決まる
定理証明の場合 → そういう保証はない
(というより主張が真か偽かすらわからない)
• そもそも探索空間の大きさが囲碁以上に広い
→適用可能な公理図式やタクティックは有限であっても、
パラメータを含めて考えると無限
21
※工夫が必要!
22
既存研究の紹介
23
定理証明に機械学習を応用するアプローチ
• アプローチ
– 探索の効率化
– より直接的な証明の生成
• 構成要素例
– 論理式の表現学習 (c.f word2vec)
– 用いられる公理の予測
– 適用すべき公理・タクティックの予測/ランキング
• 探索順の制御 (c.f. AlphaGo, Ponanza Chainer)
– 強化学習的な探索
– ……
24
自動定理証明器をガイドして効率化
• 自動定理証明器:
• 自動定理証明器のつらさ…… すぐに組合せ爆発!
• → うまくガイドすることで爆発を避けたい
自動定理証明の紹介
〜Proof Summit〜 2011-09-25
酒井 政裕
対話的定理証明
vs 自動定理証明
対話的定理証明 自動定理証明
ツール Coq, Agda, … E, SPASS, Otter,
…
自動化 人間が証明を書
き、それをツー
ルが検査。
ツールが証明を
探索。人間はそ
れをガイド
古典論理? 直観主義論理 古典論理
⾼階/一階 ⾼階 一階
25
自動定理証明器をガイドして効率化
• 公理の選択 (Premise Selection)
– 証明に必要な公理を予測、
不要な公理を捨てて問題サイズを縮小
– 例: Miz𝔸ℝ 40, Deep Math
• 中間ゴールの予測、次に処理すべき節の選択
– 例: Deep Network Guided Proof Search, HolStep
26
Premise Selection
• 主に 対話的定理証明支援系 に 自動定理証明器 を組み合
わせるために研究されてきていた
Γ ⊢もとの論理 φ (背景知識沢山), Γ’ ⊢FOL φ’
? ?
FOLでの証明
自動定理
証明器
証明
実際に証明に使われるのは一部のみ
→ 使われなさそうものを削除
27
MizAR 40 for Mizar 40
• [Cezary Kaliszyk and Josef Urban, 2015]
• Mizar で MML 4.181.1147に含まれる 57897 の定理などを対
象に、
• ナイーブベイズやk-NNといった古典的なモデル(+ TF-IDFや
LSI、アンサンブルやブースティング)でそれぞれの公理が必
要かを予測
• 予測スコアの⾼い公理 n 個に限定して自動定理証明器
(Vampire, E, Z3) を呼び出す
• 単一手法(モデル+証明器)で最⾼27.3%、複数手法で40%以上
証明できたなど
28
DeepMath
• DeepMath - Deep Sequence Models for Premise
Selection [arXiv:1606.04442]
• 同じくMizarとMMLを対象に、モデルを深層学習っぽい
モデルにすることを試みた論文
• 自動定理証明器には E を使用
• 複数のモデルを試しており、テスト用の 2,742 個の定理
中、単一モデルで最⾼62.95%、複数モデルで77%ほど
証明できた!
29
DeepMath のアーキテクチャ
1. conjectureとaxiomを
NN(CNNもしくはRNN)で
固定長のベクトル
(embedding)に変換
2. それらを連結
3. 使われるかどうかを予測
https://arxiv.org/abs/1606.04442 より引用
30
DeepMath のアーキテクチャ
• 論理式の
embeddingへの
変換に、2層の
CNNを用いる場
合のイメージ
https://arxiv.org/abs/1606.04442 より引用
31
DeepMath の再現の試み: データセット
C fof(l100_finseq_1, axiom, r2_hidden(7, k2_finseq_1(7))).
+ fof(cc8_ordinal1, axiom, (! [A] : (m1_subset_1(A, k4_ordinal1) => v7_or
+ fof(redefinition_k5_numbers, axiom, k5_numbers=k4_ordinal1).
+ fof(rqLessOrEqual__r1_xxreal_0__r1_r7, axiom, r1_xxreal_0(1, 7)).
+ fof(rqLessOrEqual__r1_xxreal_0__r7_r7, axiom, r1_xxreal_0(7, 7)).
+ fof(spc7_numerals, axiom, ( (v2_xxreal_0(7) & m2_subset_1(7, k1_num
+ fof(t1_finseq_1, axiom, (! [A] : (v7_ordinal1(A) => (! [B] : (v7_ordinal1(B)
- fof(l98_finseq_1, axiom, (r2_hidden(3, k2_finseq_1(7)) & r2_hidden(4, k
- fof(l99_finseq_1, axiom, (r2_hidden(5, k2_finseq_1(7)) & r2_hidden(6, k
- fof(l97_finseq_1, axiom, (r2_hidden(1, k2_finseq_1(7)) & r2_hidden(2, k
- fof(t5_finseq_1, axiom, (! [A] : (v7_ordinal1(A) => (! [B] : (v7_ordinal1(B)
データセット https://github.com/JUrban/deepmath
例: nndata/l100_finseq_1
必要
だった
公理
不要な
公理
証明した
い命題
32
DeepMath の再現の試み
• 幾つかのモデルをChainerで実装 (200行ほど)
• 残念ながら過剰適合してるっぽい…… 分析や改良はまだ
33
次に処理すべき節の選択への適用:
Deep Network Guided Proof Search
• [arXiv:1701.06972]
• DeepMathがEに与える前提を絞るの
にNNを使っていたのに対し、
• 自動定理証明器(E Prover)中に次に処
理すべき節の選択のために、ある節が
証明中で使われるか否かを予測する
NNを学習し、そのスコアの⾼い節か
ら処理。
• 探索手のランキングにNNを使う
AlphaGo, Ponanza Chainer とも類似
• 対象は同じくMizarとMML
• アーキテクチャはDeepMathと同様
34
https://arxiv.org/abs/1701.06972より引用
中間ゴールの予測: HolStep
• HolStep: A Machine Learning Dataset for Higher-Order
Logic Theorem Proving
• [arXiv:1703.00426]
• (前提の集合、証明したい定理の主張)
→ 使えそうな中間ステップを予測する問題
35
HolStep データの例 train/00010:
N REAL_IMP_CNJ
C |- (!z. ((real z) ==> ((cnj z) = z)))
T c==> creal f0 c= ccnj f0 f0
D TRUTH
A |- T
T cT
D REAL_CNJ
A |- (!z. ((real z) = ((cnj z) = z)))
T c= creal f0 c= ccnj f0 f0
+ |- ((t ==> t) = T)
T c= c==> f0 f0 cT
- |- (((x = x) ==> p) = p)
T c= c==> c= f0 f0 f1 f1
+ |- ((!z. t) = t)
T c= ! f0 f0
- |- ((x = x) = T)
T c= c= f0 f0 cT
証
明
し
た
い
前
提
①
前
提
②
(
実
際
に
)
使
わ
れ
た
も
の
使
わ
れ
な
か
っ
た
も
の
36
既存研究例:Holophrasm
• [arXiv:1608.02644]
• 完全な証明を書きだすところまでやる
• payoff network: 探索の優先順を決める
• relevance network: 適用する定理の選択
• generative network: 代入の生成
37
既存研究例:Holophrasm
• α, α⇒β, β⇒γ ├ γ
の証明の例
適用する定理を選ぶ
さらに代入も決める
formulaの生成が必要
38 https://arxiv.org/abs/1608.02644より引用
既存研究例:Holophrasm
• 証明探索時は,
定理適用のノードを
生成していく
• 示すべき補題のノードが
仮定したものになれば
証明成功
39 https://arxiv.org/abs/1608.02644より引用
既存研究例:Holophrasm
• 証明探索時は,
定理適用のノードを
生成していく
• 示すべき補題のノードが
仮定したものになれば
証明成功
φ, ψ ├ χ の証明
χ
ψ
φ
φ ψ
40
既存研究例:Holophrasm
• どのノードの探索を進めるか:
基本的にモンテカルロ木探索
• 青ノードの探索順は
relevance network を利用
• least promising child
についての値を payoff とする
φ, ψ ├ χ の証明
χ
ψ
φ
φ ψ
41
既存研究例:Holophrasm
• どのノードの探索を進めるか:
基本的にモンテカルロ木探索
• 赤ノードの initial payoff の
生成を学習する
• その補題を
「証明できそうか」
φ, ψ ├ χ の証明
χ
ψ
φ
φ ψ
42
既存研究の比較
論理 タスク
DeepMath Mizar を
FOL
(一階述語論理)
に変換
Premise Selection
Deep Network
Guided Proof
Search
探索のガイド
HolStep HOL 探索のガイド
Holophrasm FOL 証明の生成、探索のガイド、代入生成
DeepProlog
Tim Rocktäschel
et al. ‘17
FOL - 関数記号 帰納論理プログラミング
[arxiv.1706.06462]
Sekiyama et al. ‘17
命題論理 証明の生成
43
我々の考える課題
• より適切な表現学習
• 正しい盤面評価の方法
• 取り得るアクションの数の多さ
44
課題: より適切な表現の学習
• 画像はピクセルの配列、自然言語は文字やトークンの列、
と比較的単純な構造を扱っていた。
• 一方で、論理式や証明はより複雑な構造を持つ
• CNN / RNN で論理式や証明の複雑な構造を捉えられる
のか?
• → Recursive NN や Tree LSTM などで、文字列・トーク
ン列ではなく、構文木を直接扱う?
45
課題: 非常に疎な報酬
• 探索問題として考えて強化学習的なアプローチで扱おうとすると、
探索途上ではまったく報酬がなく、最後に証明成功したときにだけ
報酬が発生する
• 碁や将棋では、先読みやMCTS(モンテカルロ木探索)による勝率な
どでノードの価値を評価できるが、証明ではそれができない
– そもそも先読みや play out で正の報酬にたどり着けていれば、
それで証明終了
– 深さに全く制限がないので、終局まで play out しようがない
46
課題: 取り得るアクションの数の多さ
• 適用可能な公理図式やタクティックは有限であっても、
パラメータを含めて考えると無限
– 数学的帰納法を使うときの 述語 P の候補は無数
P(0) ∧ (∀x. P(x) → P(x+1)) → ∀x. P(x)
– ゴール α に対して Modus Ponens を適用して β→α と β に変形
するとき、論理式 β を推測する必要。しかし候補は無数
• 候補をランキングするのでは不十分
– Holophrasm の generative network のようにそれらを生成する
ネットワークが必要
– しかし、複雑な構造を直接生成するのは、より難しい
47
論文紹介は以上です
48
References
• C. Kaliszyk and J. Urban, "MizAR 40 for Mizar 40," In Journal of Automated Reasoning, vol. 55,
no. 3, pp. 245-256, 2015. http://link.springer.com/article/10.1007/s10817-015-9330-8
• A. A. Alemi, F. Chollet, G. Irving, C. Szegedy, and J. Urban, "DeepMath - deep sequence models for
premise selection," Jun. 2016. http://arxiv.org/abs/1606.04442
• S. Loos, G. Irving, C. Szegedy, and C. Kaliszyk, "Deep network guided proof search," Jan. 2017.
[Online]. Available: http://arxiv.org/abs/1701.06972
• C. Kaliszyk, F. Chollet, and C. Szegedy, "HolStep: A machine learning dataset for higher-order logic
theorem proving," Mar. 2017. http://arxiv.org/abs/1703.00426
• D. Whalen, "Holophrasm: a neural automated theorem prover for higher-order logic," Aug. 2016.
http://arxiv.org/abs/1608.02644
• T. Rocktäschel and S. Riedel, "End-to-end differentiable proving," May 2017.
http://arxiv.org/abs/1705.11040
• T. Sekiyama, A. Imanishi, and K. Suenaga, "Towards proof synthesis guided by neural machine
translation for intuitionistic propositional logic," Jun. 2017. http://arxiv.org/abs/1706.06462
49
References
• D. Silver, A. Huang, C. J. Maddison, A. Guez, L. Sifre, G. van den Driessche, J. Schrittwieser, I. Antonoglou, V.
Panneershelvam, M. Lanctot, S. Dieleman, D. Grewe, J. Nham, N. Kalchbrenner, I. Sutskever, T. Lillicrap, M. Leach, K.
Kavukcuoglu, T. Graepel, and D. Hassabis, “Mastering the game of go with deep neural networks and tree search,” Nature,
vol. 529, no. 7587, pp. 484-489, Jan. 2016
https://www.nature.com/nature/journal/v529/n7587/abs/nature16961.html?lang=en
• 山本一成, 下山晃, 齋藤真樹, 藤田康博, 秋葉拓哉, 土井裕介, 菊池悠太, 奥田遼介, 須藤武文 and 大川和仁, “第27回世界コン
ピュータ将棋選手権 Ponanza Chainer アピール文章,” 2017.
http://www2.computer-shogi.org/wcsc27/appeal/Ponanza_Chainer/Ponanza_Chainer.pdf
50
Links
• AITPの公式サイト
http://aitp-conference.org/2017/
• 酒井 政裕, “自動定理証明の紹介,” Proof Summit 2011, Sep. 2011.
http://www.slideshare.net/sakai/ss-9413447
51
定理証明などに関して
取り組むと面白そうな
チャレンジ求む!
52
53
ご清聴
ありがとうございました。
54

More Related Content

PDF
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
PDF
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
PPTX
[DL輪読会]Meta Reinforcement Learning
PDF
Graph Attention Network
PDF
組合せ最適化入門:線形計画から整数計画まで
PDF
Centerlossを読んでみた_20170618@abeja
PDF
証明プログラミング超入門
PDF
プログラムを高速化する話Ⅱ 〜GPGPU編〜
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[DL輪読会]Meta Reinforcement Learning
Graph Attention Network
組合せ最適化入門:線形計画から整数計画まで
Centerlossを読んでみた_20170618@abeja
証明プログラミング超入門
プログラムを高速化する話Ⅱ 〜GPGPU編〜

What's hot (20)

PDF
Hyperoptとその周辺について
PDF
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
PPTX
深層学習の数理
PPTX
【DL輪読会】Hyena Hierarchy: Towards Larger Convolutional Language Models
PDF
計算論的学習理論入門 -PAC学習とかVC次元とか-
PPTX
Graph Neural Networks
PDF
Rでisomap(多様体学習のはなし)
PDF
敵対的学習に対するラデマッハ複雑度
PPTX
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
PDF
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
PDF
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
PDF
(修正)機械学習デザインパターン(ML Design Patterns)の解説
PPTX
計算スケジューリングの効果~もし,Halideがなかったら?~
PDF
Singularityで分散深層学習
PDF
大規模な組合せ最適化問題に対する発見的解法
PDF
ディープラーニングのフレームワークと特許戦争
PDF
工学系大学4年生のための論文の読み方
PPTX
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
PDF
Recent Advances on Transfer Learning and Related Topics Ver.2
PDF
Rの高速化
Hyperoptとその周辺について
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
深層学習の数理
【DL輪読会】Hyena Hierarchy: Towards Larger Convolutional Language Models
計算論的学習理論入門 -PAC学習とかVC次元とか-
Graph Neural Networks
Rでisomap(多様体学習のはなし)
敵対的学習に対するラデマッハ複雑度
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
(修正)機械学習デザインパターン(ML Design Patterns)の解説
計算スケジューリングの効果~もし,Halideがなかったら?~
Singularityで分散深層学習
大規模な組合せ最適化問題に対する発見的解法
ディープラーニングのフレームワークと特許戦争
工学系大学4年生のための論文の読み方
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
Recent Advances on Transfer Learning and Related Topics Ver.2
Rの高速化
Ad

Similar to Proof summit 2017 for slideshare (20)

PDF
Rustで始める競技プログラミング
PDF
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
PDF
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
PDF
Infer.NETを使ってLDAを実装してみた
PPTX
boost - std - C#
PDF
Introduction to Chainer and CuPy
PDF
Introduction to Chainer (LL Ring Recursive)
PDF
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
PDF
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
PPTX
書くネタがCoqしかない
PPTX
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
PPTX
ACL2018 Paper Survey: Learning to Ask Good Questions: Ranking Clarification Q...
PDF
コンピューターの整列処理におけるデータ操作の時間的共起分析
PDF
Kubeflowで何ができて何ができないのか #DEvFest18
PPTX
Combinatorial optimization with graph convolutional networks and guided ver20...
PPTX
Combinatorial optimization with graph convolutional networks and guided
PDF
Why Reactive Matters #ScalaMatsuri
PDF
AIがAIを生み出す?
PDF
Ruby で高速なプログラムを書く
PDF
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Rustで始める競技プログラミング
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
Infer.NETを使ってLDAを実装してみた
boost - std - C#
Introduction to Chainer and CuPy
Introduction to Chainer (LL Ring Recursive)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
書くネタがCoqしかない
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ACL2018 Paper Survey: Learning to Ask Good Questions: Ranking Clarification Q...
コンピューターの整列処理におけるデータ操作の時間的共起分析
Kubeflowで何ができて何ができないのか #DEvFest18
Combinatorial optimization with graph convolutional networks and guided ver20...
Combinatorial optimization with graph convolutional networks and guided
Why Reactive Matters #ScalaMatsuri
AIがAIを生み出す?
Ruby で高速なプログラムを書く
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Ad

Proof summit 2017 for slideshare