👌

ちょっと古いAI:~曖昧なファジィな話~

2021/07/30に公開

はじめに

これからは、ビックデータ・機械学習・ディープラーニングの時代だと言われて、久しいかと思います。世の中に、期待され、同じくらいの勢いで期待値が下がっていくを繰り返すこの業界、そろそろ3回目の冬が到来し始めているでしょうか(それとも日常に溶け込んだでしょうか)。

そんなこんなで、今やAIと言えば確率統計でしょ!と言われも、そこまで違和感がなくなってきているような気がします。この記事ではあえて、そんな現代とは関係なく、昔のAIブームで流行っていた分野に焦点を当ててみたいなと思って書いた記事です。

今回はファジィ論をとりあげ、あいまいな世界に対してのロジックの適用について書いていきます。

真偽値とたくさんの条件

「あいまい」な話をする前に、真偽値と人々について少し書いておきます。まず、コンピュータは、突き詰めれば、\{0,1\}と集合で全てを考えるビットの集まりです。つまり、真偽の2つで全ての情報を扱っているわけです。

数値計算

1+1=2もビットで表せば、01 + 01 = 10というような感じになります。

論理式

AかつBや、AまたはBや、もしAならば、Cであるのような少し複雑に見える感じのやつも、それぞれ、A \land BA \lor BA \to Cという論理式にして、真理値表の定義を確認すれば

A B A \land B A \lor B A \to B
1 1 1 1 1
1 0 0 1 0
0 1 0 1 1
0 0 0 0 0
となり、これも0,1で計算できます(単純だけど面白いですよね)。

ビットには夢がある

極端な話、人々は、このビット数を増やせば、もっと多くの情報が扱えて、もっと便利な世の中になるということに気づきました。特に2番目のA \to B条件式を並べてあげれば、もっと色んなパターン・よりきめ細やかにシステムが組める…という夢のような事実にです(それは、本当に夢かもしれない…、まだ道半ばかもしれない…)。
そして、人々は、とんでもない量のifのルールを作る = AI作成への長い旅に出たのです。

人は実にあいまいだった!

さて、この分野のAIを研究し始めて、少し困ったことが起こりました。そんな複雑な話ではありません。ただ、人間は、「暑いの?暑くないの?」と聞かれて、「うーん、普通かなぁ。」と白黒はっきり決められないことがあるということです。コンピュータにとっては、それを理解するのが難しかったという話です。
先の例で話したように、コンピュータは\{0,1\}(またはYes/No)の真偽値で考えるものでしたが、ここにきて、「普通かなぁ」というコンピュータとなんとも相性の悪いものが出てきてしまいました。このあいまさを扱えるようになんとかしようと試みた方法の1つがファジィ論というものになります。

0,1を0から1の世界で考える

ビットで考えたときの問題は、真偽値の二択で考えることでした。これを二択より多くすれば、「普通かなぁ」のような回答に対応できるということです。
ファジィ論では、x \in \{0,1\}の真偽値を、x \in [0,1]という「0~1」と実数の集合までに一般化します。また一般化しますので、今までの真偽値の結果を整理しつつ定義する必要があります。ファジィ論での演算では、and, orは、事象A,Bに対して、[0,1]に変換する関数(メンバーシップ関数と呼ぶ)を\muとすれば

\mu(A \land B) := \min(\mu(A),\mu(B)) \\ \mu(A \lor B) := \max(\mu(A),\mu(B))

と定義され

A \to Bは、考え方にいくつかの派閥はあるものの(下はGodelの解釈と言われるものです)。

\mu(A \to B) := \left\{ \begin{array}{l} 1 & (\mu(A) \le \mu(B)) \\ \mu(B) & (\mu(A) > \mu(B)) \end{array} \right.

というように、min,maxや新たに定義した関数を使って、論理式を一般化していきます。こうすることで、今まで通り、「Yes」なら「1」、「No」なら「0」という形を保ちつつ、「普通かなぁ」というものを「0.5」などとして扱えるようになります。

確率統計で良い気もする…?

ただの0~1で扱うのであれば、確率統計で確からしさを扱えば良い気がします(実際にその様な意見はあるようです)。
では、確率統計との大きな違いはなんでしょうか。それは、集合に対する計算の定義のされ方にあります。

確率統計の場合

確率統計の場合、和積集合の計算の定義は、A,B \in \Omegaを事象として、Pを確率密度とすると

P(A \lor B) := P(A) + P(B) \\ P(A \land B) := P(A) \times P(B)

というように、和集合であれば「+」で計算、積集合であれば「\times」で、それぞれの確率を計算します。また確率の前提の定義として、全集合\Omegaをとったときの確率は、P(\Omega)=1となるという制限があります。これに対して、ファジィ論は、各々の事象に対してのメンバーシップ関数は高々1であることのみを保証すればよいということになっています。

主観か客観か

上記の違いは、つまるところ、どういうことか。あいまいの何が良いかと言いますと、人間にとって主観的なものでよいということです。冒頭でお話したように「暑いの?暑くないの?」と聞かれて、「うーん、普通かなぁ。」という会話は、かなり主観的なものとなっています。普通と言われても、人によって普通は異なるものなので、論理的に語るには都合が悪いわけです。
ファジィ論はその普通に対して、主観的に決めたもので算出でき、それをコンピュータ上の計算できるリソースとして提供することを可能にします。

逆に確率統計は、客観的なものということに重きを置きます。なので、「暑いの?暑くないの?」の回答は、客観的に観測された事実をもとに定義されます。

ファジィ論の具体例

応用例も簡単に確認してみましょう。どこで利用されているんだと思いきや、運転制御や浄水施設など、身近で利用されていたりします。特に1990年代にファジィ家電というものが流行りました。

洗濯機や食洗機

洗い物を実行する際に、洗濯時間を判断するのに使われています。利用するのは、洗濯するときに出る水の汚れです。洗濯されるときの汚れは、以下のような特徴があります。

  • 泥汚れは、すぐに水に溶ける
  • 皮脂のような脂汚れは、すぐには水に溶けない(洗浄剤で溶ける)

これを利用し、汚れ検出センサーで、水の透明度の変化具合を見て

1.すぐに汚れた水が出たら、泥汚れであり、そこまで洗濯時間を長くしない
2.しばらくたってから汚れた水が出たら、それは脂汚れであり、洗濯時間を長くする

と判断して、洗濯時間を決定することができます。
重要なのは、「すぐに・しばらく」や「きれい・汚い」みたいな単語を起点に、処理するためのロジックに組み込めてしまえることです。このようにして、確率や統計とは違う視点、すなわち、そして主観を存分に含んだロジックを組めることがファジィ論のメリットです。

終わりに

かなり大雑把にファジィ論を振り返ってみました。今ではすっかり死語となった「ファジィ」ですが、それは廃れたのでなく枯れた技術として、私達の生活に溶け込んでいます。これからも、「あいまい」な事を良い感じに制御していってくれることでしょう。ここまで読んでいただき、ありがとうございました。

参考資料

wikipediaファジィ論理
新世代工学シリーズ 人工知能

Discussion