図1●ファジィ技術の現在
1987年前後に,地下鉄の運転制御やエレベータ運転管理,浄水場の塩素注入量の制御などへの応用が始まった。1990年になると「ファジィ家電」ブームが到来した。その後ファジィという単語をあまり聞かなくなったが,機械制御には引き続き使われている。ただし,新たな用途の開拓は進んでいない。
図2●「背が高い」を表現する
ファジィ理論では状態の度合いを「メンバーシップ関数」を使って表現する。例えば200cmであれば確実に背が高く,150cmであれば確実に背が高くないと決める。その中間の状態は両者の中間として連続的なカーブで表現する。170cmの人は「0.5の度合いで背が高い」と扱う。これに対して,ある数値(例では身長が170cm)を境にして背の高さの高低を決めることを「クリスプに決める」という。
図3●ファジィ制御の流れ
ファジイ制御は,ルールに基づいて出力を推論する制御手法。ルールはある条件が成り立つ場合に実行する操作を出力するというもの。ここでは一つのルールで推測した。「洗濯物の量が多く,汚れがひどければ運転時間は長い」というルールの場合,洗濯物の量,汚れ度合い,運転時間のメンバーシップ関数を作る。洗濯物の量と汚れ具合をセンサーで検知し,例えば洗濯物の量が45,汚れ度合いが6であれば,それぞれのメンバーシップ関数からメンバーシップ値を求め,小さい方のメンバーシップ値に対応する運転時間を推測する。
 「ファジィ」という言葉を聞いて,懐かしさを覚える人は多いだろう。ファジィ技術はおよそ10年前,炊飯器,洗濯機など多くの家電製品に組み込まれ,話題になった(図1[拡大表示])。ほかにも浄水場における塩素注入量の調整や,エレベータ群の運転管理,地下鉄の運転制御などにも採用され,今も使われ続けている。「ファジィはもう枯れた技術。大々的な宣伝文句にはならないが,カメラのオートフォーカスや自動車の自動変速器(AT)など身近な場所に使われている」(東京工業大学大学院総理工知能システム科学専攻 国際ファジィシステム学会フェローの廣田薫教授)。

 半面,家電や自動車など適用分野が限られており,他の分野で意欲的に導入が進んでいるわけではない。導入コストの割に期待される効果が小さい,わざわざファジィを適用しなくてもやりたいことを実現できるといった理由である。また,すでに適用されている分野でも,ファジィ制御の精度を向上させる動きは見られない。例えば家電業界では製品改良のポイントが変わっており,「ファジィ制御でやりたかったことはもう達成した。現在は部材の改良などで製品の性能を向上させていく方向にある」(日立製作所システム開発研究所の舩橋誠壽主管研究長)。

あいまいな境界を主観的に決める

 決して死んだわけではないが,すっかり地下に潜ってしまった感のあるファジィ。その歴史は長い。そもそもの基盤となるファジィ理論が確立したのは1965年。L.A.Zadeh氏があいまいさを定量的に扱う概念であるファジィ集合(Fuzzy sets)を提唱した。ファジィ(Fuzzy)という単語は,辞書によると「毛羽だった,ぼんやりした」という意味を持ち,境目が分からない状態を意味している。ファジィ理論のポイントは,こうしたあいまいさをコンピュータで処理できるように数値化することにある。

 例えば「背が高い」という表現は,人によって,あるいは場面によって変わってくる。そこで,まず150cmだと背が高くない(「背が低い」ではないことに注意されたい)と決めて「0」,200cmだと背が高いと決め「1」とする。そしてその2点の間を線で結ぶ(図2[拡大表示])。線は直線でも曲線でもよい。このグラフに照らし合わせれば,170cmの人は背が高い度合いが0.5となる。このような度合いを表す関数を,ファジィ理論ではメンバーシップ関数と呼ぶ。

 これに対して,背が高いかどうかを1と0の二択にすることを「クリスプに決める」という。クリスプに表す場合,例えば170cmが境界となり中間はない。

人間の判断を制御に取り入れた

 このメンバーシップ関数をどうやって実際に役立てるかを,ファジィ技術を使った洗濯機の例で考えてみよう(図3[拡大表示])。ベテランの主婦は素材や量を見て水量を決め,衣服の汚れ度合いを見て洗濯機を回す時間を判断する。このようなノウハウをルール化し,メンバーシップ関数を決める*1。ルールは条件と操作をIf~thenの形で表現したものだ。

 このルールは,まず主婦に汚れ度合いに対してどれくらいの洗濯時間が必要かなどをインタビューして作成する。「洗濯物の量が多く,汚れがひどければ運転時間は長い」といった具合である。次に洗濯物の量,汚れ,運転時間のそれぞれに対応するメンバーシップ関数を作成する。センサーから得られた入力情報をメンバーシップ関数に当てはめて数値化し,条件となる部分(ここでは洗濯物の量と汚れ度合い)の値の最小値をとる(ANDの意味になる)。この値を運転時間のメンバーシップ関数に入力して,対応する運転時間を求める。以上から分かるように,ファジィ技術におけるポイントはいかに正しくメンバーシップ関数を作るかにある。

 ただし,「厳密なカーブを描くことが必ずしも役立つとは限らない。メンバーシップ関数を主観や学習によって適宜修正することで,いい結果に結び付けた事例もある」(明治大学理工学部長理工学研究科委員長の向殿政男教授)。実際にはメンバーシップ関数は,適する答えを導けるように何度も作り替えるものである。表現方法もさまざまだ。ここでは滑らかな線で表現したが,三角形や台形でもよい。

 また,基準となる値をずらすだけでも動作は変わる。例えば,図3の洗濯物の量の例でいえば,洗濯物の量が多いとする値を45,少ないとする値を25に変える。すると左右のグラフが中央に寄り一部が重なる。このグラフの交点における洗濯物の量を求め,その位置で1となる正規分布の形をしたグラフが中間を表すといった具合である。

(堀内 かほり)