読者です 読者をやめる 読者になる 読者になる

やろーじだい

ブログです

招待講演とILPについて - Aizu Advent Calendar 2014(4日目)

この投稿は Aizu Advent Calendar 2014 の 4 日目の記事です。

次の人

@Mopp_jp

自作OSでのプロセス実装について (1) ~初めてのユーザプロセス~

前の人

@yutopp

!2!文鳥言語にプルリクください!2! - Aizu Advent Calendar 2014(3日目)

初めに

みなさんこんにちは。

今回の記事の主な目的は明日金曜日に行われる招待講演についての紹介です。
またその講演に先がけて、ILP についてと、そのための知識を簡単にまとめてみました。
何かミスなどあれば教えてください。

講演内容

日にち: 12/5 (金) 18:10 ~ 19:40
場所: 小講義室4 (iLabの北側)
タイトル: Introduction to Inductive Logic Programming

講演で使用するスライド
BriefIntroductionToProlog_students
InductiveLogicProgramming_students

学内メールやポスターで見かけた人もいるかと思いますが、ポルトガルポルト大学からPhDの学生がいらして講演を行います。

タイトルは Inductive Logic Programming (帰納論理プログラミング) の入門となっていますが、Prolog の入門の話もします。

キーワードとしては、ILP, Prolog, 機械学習, 並列処理などです。
興味のあるかたはぜひいらしてください。

ILP とは

その前にまず演繹、帰納とは

演繹は一般的な規則から具体的な事実を推論することです。
帰納はその逆で、個々の具体的事実から一般的な命題ないし法則を推論することです。

演繹の例

一般的な規則: 鳥は飛ぶ。

(◔⊖◔).o(ぶんちょうは鳥なので、ぶんちょうは飛ぶ)

帰納の例

具体的な事実: ぶんちょうは飛ぶ。 オウムは飛ぶ。 カラスも飛ぶ。

(◔⊖◔).o(鳥は飛ぶ?)

次にProlog とは

Prolog は与えられた事実(fact)や規則(rules)と呼ばれる情報とユーザーからの質問から、その質問をみたすものを探し出してくれます。
上であげた例を元に、簡単なコードの例を示します。(%% で始まる行はコメント)

次のような情報があったとき

%% X が鳥ならば、X は飛ぶことができる。という意味。
%% A ならば B が Prolog では逆向きになっている。 これを規則とよぶ。
canfly(X) :- birds(X).
 
%% ぶんちょうは鳥である。 これを事実とよぶ。
birds(java_sparrow).

Prolog に対して次のような質問をすると

%% 飛ぶことができるのは何か
?- canfly(What).

このように結果が返ってきます。

%% ぶんちょうです。
What = java_sparrow.

このように、 Prolog は一般的な規則から具体的な事実を導く演繹を行なっているのがわかります。
しかし帰納を行なうことはできません。

canfly(java_sparrow).
canfly(parrot).
canfly(crow).
birds(java_sparrow).
birds(parrot).
birds(crow).

という事実があっても、ここから

canfly(X) :- birds(X).

という規則を導くことはできません。

では IPL とは

Prolog だけでは帰納が行えませんでしたが、IPL では Prolog機械学習を利用して帰納を行ないます。
つまり、与えられたデータを元に、新しい一般的な法則を導くことが可能になるということです。すごいですね。

おわり

雑ですいませんでした。
スライドを見る限り講演ではもっと詳しい話になると思います。

また会津大学では3年後期に楽しい Prolog の授業があります。
火曜1限ですが、モーニングコールがあるので安心です。

以上です。