ファジィ論理
【英】:fuzzy logic
各命題が真 (1) と偽 (0) という2つの真理値だけしかとらない2値論理学に対し, それ以外の値もとる多値論理学がある. ファジィ論理は真偽以外の真理値をとるので多値論理の一種とも考えられる. 扱う命題は「あの人は美しい」など真理値が明確には割り切れない言葉や主観のもつ曖昧さを含むので, ファジィ命題と呼ばれる. またその推論規則は, ある意味で常識をも利用したファジィ推論というものを用いている.
近似・知能・感覚的手法: | ファジィ数 ファジィ最適化 ファジィ理論 ファジィ論理 ファジィ集合 フレーム プロダクションシステム |
ファジィ論理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/10/05 07:31 UTC 版)
ファジィ論理(ファジィろんり、英: Fuzzy logic)は、1965年、カリフォルニア大学バークレー校のロトフィ・ザデーが生み出したファジィ集合から派生した[1][2]多値論理の一種で、真理値が0から1までの範囲の値をとり、古典論理のように「真」と「偽」という2つの値に限定されない[3]ことが特徴である。ファジィ論理は制御理論(ファジィ制御)から人工知能まで様々な分野に応用されている。
「真」の度合い
ファジィ論理と確率論理は数学的に似ており、どちらも0から1までの値を真理値とするが、概念的には解釈の面で異なる。ファジィ論理の真理値が「真の度合い」に対応しているのに対し、確率論理では「確からしさ」や「尤もらしさ」に対応している。このような違いがあるため、ファジィ論理と確率論理では同じ実世界の状況に異なるモデルを提供する。
真理値と確率が0から1の範囲の値をとるため、表面的には似ているように思われる。例えば、100mlのコップに30mlの水が入っているとする。これに対して「空」と「満杯」の2つの概念を考える。それぞれの意味は所定のファジィ集合、およびそれを定義付けるメンバシップ関数で表される。例えば、そのコップについて「空だ」が真である度合いは0.7、「満杯だ」が真である度合いは0.3と定義することも考えられる。「空だ」という概念は主観的であり、観察者や設計者によって感じ方は異なる。設計者によっては、50mlでも満杯だとするようにメンバシップ関数を設定するかもしれない。ファジィ論理ではあいまいな現象の数理モデルとして「真の度合い」を使うのに対し、確率論は未知のことに対しての数理モデルである。確率論的手法を使って同じことを達成するには、「満杯」か否かを表す二値変数をコップに入っている水の量という連続値によって決定するという形で定義することになる。
ファジィ論理の真理値の具体例
ファジィ論理は洗濯機や冷蔵庫のような家電機器の制御に使われる。例えば洗濯機では、洗濯物の量や洗剤の濃度を調べて、洗濯槽の回転などを調整する。
基本的な応用の特徴として、連続値をいくつかの区分に分ける点が挙げられる。例えば、アンチロック・ブレーキ・システムでは温度を測定するが、温度をいくつかの区分に分け、それぞれにメンバシップ関数を定義し、ブレーキを適切に制御する。各関数は同じ温度に0から1までの真理値を割り当てる。これらの真理値を使って、ブレーキをどう制御すべきかを決定する。
上図では、cold、warm、hot という関数で温度の値をマッピングしている。ある温度には各関数に対応した3つの真理値がある。上図で縦線で示している温度を見てみると、3つの真理値(0.8、0.2、0)が対応し、それらを解釈すると「かなり冷たい」(青い矢印)、「やや暖かい」(黄色の矢印)、「熱くない」(赤い矢印)ということになる。
言語学的変数
数学における変数は一般に数値を値とするが、ファジィ論理は非数値的な「言語学的変数」を使うことで規則や事実の表現が容易になるような分野にもよく応用される[4]。
ここでいう「非数値的」「言語学的」という意味は、例えば速度といったような変数のような「確定的な値を持つような変数」ではない、という意味であって、実際のところ(ソシュールやチョムスキーらによるような)言語学的な何かがあるわけではない。具体例として「年齢」に対し「若い」、あるいはその反対の「高齢だ」という値は、結局のところ、「20歳」という実際の年齢に対して、「若い」は 0.8 という高い値になり、「高齢だ」は 0.05 という低い値になる、といったように、最終的には実数(数値)になるのである。言語学的変数の最大の利点は、主たる単語に修飾語を添えることでその意味を修正できる点であると主張される。修飾語は特定の関数と対応付けることができる。例えば、ザデーはメンバシップ関数の平方をとることを提案している。
ファジィ論理の応用例
- ヴィークルの制御や群管理。オートマチックトランスミッション、アンチロック・ブレーキ・システム、クルーズコントロール。日本の鉄道車両では仙台市交通局1000系電車が初期の導入例として知られる。
- 空調
- CG合成ソフト(MASSIVEなど)
- カメラ
- デジタル画像処理(エッジ検出など)
- 炊飯器
- 食器洗い機
- エレベーター
- 洗濯機などの家電機器
- コンピュータゲームの人工知能
- 電子掲示板などで好ましくないテキストを排除するフィルタ
- リモートセンシングでのパターン認識
- マイクロコントローラやマイクロプロセッサ(Freescale 68HC12など)。
ファジィ論理の実際
ファジィ集合論では、ファジィ集合に関するファジィ演算を定義している。これを利用する際の問題は、適切なファジィ演算がどれなのかわからない場合があることである。そのため、ファジィ論理ではIF/THEN規則やそれに類するもの(例えばファジィ関係行列)を使うのが一般的である。
規則は以下のような形式で表現される。
- IF 「変数」IS「集合」THEN 「アクション」を実行する。
例えば、ファンを使って温度を一定に保つ非常に単純な機器があるとしたら、次のような規則が考えられる。
- IF 温度 IS 「非常に寒い」 THEN ファンを止める。
- IF 温度 IS 「寒い」 THEN ファンを遅くする。
- IF 温度 IS 「普通」 THEN ファンを一定に保つ。
- IF 温度 IS 「暑い」 THEN ファンを速くする。
ELSE節がない点に注意されたい。全ての規則は同時に評価される。何故なら、温度は(程度の差はあっても)同時に「寒い」と「普通」の両方に属するといったことが考えられるからである。
ブール論理の論理演算 AND, OR, NOT に相当する演算がファジィ論理にもあり、例えば下記のように定義される。下記の定義はザデーのオリジナルの論文で定義されていたもので、ザデー演算子とも呼ばれる。ここで x と y はファジィ変数である。
- NOT x = (1 - truth(x))
- x AND y = minimum(truth(x), truth(y))
- x OR y = maximum(truth(x), truth(y))
他の演算として、より言語的な「ヘッジ(hedges)」がある。これは、数式で表される集合の意味(例えば「寒い」)を修飾する「非常に」とか「いくぶん」といった副詞に相当するものである。
プログラミング言語での応用として、Prologは規則群のデータベースに論理問い合わせを行う構造になっていて、ファジィ論理との相性が良い。このようなプログラミングを論理プログラミングという。
その他の例
身長を「高い」と「低い」に分けることを考える。古典集合論(古典論理)では、例えば次のように規則を定義する。
- 男の身長が1.8メートルなら、その人は背が高い。
- IF man IS true AND height >= 1.8 THEN is_tall IS true; is_short IS false
ファジィ規則は背が「高い」と「低い」を明確に区別しない。そのような区別は現実的ではない。そこで、以下のような規則を定義する。
- IF height <= medium male THEN is_short IS agree somewhat
- IF height >= medium male THEN is_tall IS agree somewhat
ファジィの場合、1.83メートルのような明確な身長の区分けはせず、次のようなファジィ値の割り当てをする。
- dwarf male = [0, 1.3] m
- short male = (1.3, 1.5]
- medium male = (1.5, 1.8]
- tall male = (1.8, 2.0]
- giant male > 2.0 m
従って、真理値も二値ではなく、以下のような5値にする。
- agree not = 0
- agree little = 1
- agree somewhat = 2
- agree a lot = 3
- agree fully = 4
クリスプ集合(二値)の場合、1.79メートルの身長の人は単に背が低いとされる。1.8メートルや2.25メートルの人は背が高いとされる。
なお上の記述では、性別を二値情報、すなわち既知で曖昧さのない情報とみなしている。対象の性別を外見などから判断する場合、もしくは間性の存在などを考慮する場合には、性別についてもファジィ値を導入し、規則の条件部を
IF male >= agree somewhat AND ...
のようにする必要がある。
形式ファジィ論理
数理論理学には、これまで説明してきたファジィ論理をモデルとして形式体系がいくつか存在する。その多くは、いわゆるt-normファジィ論理に属する。なお、各論理体系で使われる演算は前述のザデー演算子とは異なる場合がある。
命題ファジィ論理
主な命題ファジィ論理としては、以下のものがある。
ファジィ論理 (fuzzy logic)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/30 07:42 UTC 版)
「ファジィ制御」の記事における「ファジィ論理 (fuzzy logic)」の解説
詳細は「ファジィ論理」を参照 ファジィ集合論に基づいて組み立てた AND 演算や OR 演算などの論理演算を使用する論理表現法。通常の論理においては1つの命題は真か偽かのいずれかの値しか取り得ないが、ファジィ論理では命題が真と偽の中間の値をとり得る。
※この「ファジィ論理 (fuzzy logic)」の解説は、「ファジィ制御」の解説の一部です。
「ファジィ論理 (fuzzy logic)」を含む「ファジィ制御」の記事については、「ファジィ制御」の概要を参照ください。
ファジィ論理と同じ種類の言葉
- ファジィ論理のページへのリンク