simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

人工知能:学習と整理

前回の記事で、演繹的思考とは何か、どうプログラムを組むと演繹的な思考、推論を構築できるかを書きました。(参考文献なしで、自分なりに…)

simplestar-tech.hatenablog.com

そこで、まだ説明していない部分があったので補足すると
作成したプログラムは学習だけではなく「整理」を行います。

簡単に言うと、人間が単語にカテゴリを与えたり、カテゴリに属性を与えたりしていく作業が「学習」であり
プログラム側が人間に対し、知識の再構成をするときに質問をする作業が「整理」です。

先にUIから書くことにします。
人は、最初にプログラムの質問に応えることから始めます。

 私の名前は何と言いますか?

適当な名前、そうですね知識を集めるので「コレクター」としましょう。
フォームは入力形式ではなくDSLドメイン固有言語)として、単語にカテゴリと属性を図解で与えられるようにします。

たとえば、コレクターのカテゴリに名前を設定します。
私という単語の属性には一人称単数を設定します。

以上です、放っておくと整理を始めます。

コレクターとは名前の一種ですか?
はい、いいえボタンを提示
今回は、はい、と答えます。

私とは一人称単数ですか?
はい、いいえボタンを提示
今回は、いいえ、と答えます。

属性にも信頼度があり、否定されるとその信頼度が下がります。
過去の質問回数と回答の割合を記録します。

あとはフリーの文章を与える欄を用意し、そこに人間が日々の行動を文章で入力します。

 今日はブログに人工知能についての記事を書きました。

とかね、すると形態素解析が走り、単語におおよその当たりをつけます。
今日 は ブログ に 人工知能 に ついて の 記事 を 書き ました。
とかね

これまた放っておくと、学習したいとプログラム側がDSLウィンドウを開いてきます。

 今日 とはどんなカテゴリに含まれますか?

ここは人間が懇切丁寧に編集していきます。
今日は「時間の表現」の一つである、加えて「時代」に含まれると教えてあげます。
また、放っておきます。

そして、さらに学習したいとプログラム側が質問してきます。

 「時間の表現」と「時代」ってどちらが具体的なの?
 同じくらい、時間の表現の方が具体的、時代の方が具体的のボタンを提示

と、これは「時代」の方が「時間の表現」に含まれると思うので、「時代」の方が具体的と答えます。
プログラム側は「今日」という単語のカテゴリから「時間の表現」を外し、「時代」のカテゴリに「時間の表現」を加えます。

 ブログって何?

と聞いてきます。
人間が懇切丁寧に教えます。「インターネット上で晒す書物だよ」と。

プログラム側は形態素解析を走らせ
インターネット 上 で 晒す 書物 だよ
そして、さらに聞きます。

ブログはインターネット上で晒す書物に含まれるの?

といった感じで、カテゴリに含めようとします。

単語の説明を求め
単語のカテゴリを聞き
すでにカテゴリがある場合に信頼度を高め
ときに具体的か聞いて、カテゴリを整理する

とにかく、単語が増え、単語の属性が設定され、単語のカテゴリが設定され
単語と単語が包含関係でつながっていくように知識を形成していきます。

無理に会話まではさせません。
学習と整理をずっと続けて知識を形成するだけです。

こうした知識を使って、たまに文を作ることもします。

 人工知能の記事を書いた時は今日
 インターネットで晒す書物としてブログがある
 一人称単数の一つが私なのかもしれない
 
とか

最終的なゴールは演繹的な思考をして文をつくることなので
ここまでの知識ではまだ、作れませんが
 人は好きな話題を記事にする
 マスターは人である
 マスターはよく人工知能の記事を書く

といった知識がある状態で

 マスターはよく人工知能の記事を書くけど、マスターは人工知能の話題が好きなの?
 はい、いいえボタンを表示

といった文(人→マスターと演繹的思考が働いている)をたまに作れたらゴールです。
これがゴールです。

少しずつ形が見えてきました。