ファジー論理がAIにおいて人間の推論をどのようにモデル化するかを探求する。コンピュータビジョンにおける曖昧性の扱い方を学び、Ultralytics 適用してよりスマートなデータ処理を実現する。
ファジー論理は、古典的なコンピューティングでよく見られる厳格な「真か偽か」という二値ではなく、「真偽の度合い」に基づく推論をモデル化する計算パラダイムである。標準的なコンピュータが厳密に0または1の値を割り当てるブール論理を利用する一方で、ファジーシステムは0から1までの間の任意の値を許容する。この柔軟性により、 人工知能(AI)が曖昧性、不明確性、不正確な情報を処理することを可能にし、複雑なデータを処理する際、人間の認知プロセスをより忠実に模倣する。
従来のコンピューティングでは、入力は集合に属するか属さないかのいずれかである。ファジー論理は 所属関数の概念を導入し、入力データを0から1の範囲の値に写像する。この値は所属度を表す。 例えば、空調システムにおいて、 75°Fの温度は単純に「暑い」と分類されるのではなく、「0.6の温かい」と分類される可能性がある。
このプロセスは一般的に、以下の3つの主要な段階を含む:
この手法は、明確な境界を定義することが困難なノイズの多い視覚データの処理に特に有効である。
コンピュータビジョン(CV) および機械学習(ML)の文脈では、正確なピクセル値は照明、遮蔽、センサーノイズによって変動することが多い。ファジィ論理は、ニューラルネットワークの精密な数値出力と人間が用いる言語的解釈との間の隔たりを埋める。
ファジー論理と確率論は異なる不確実性の種類を扱うにもかかわらず、しばしば混同されるため、両者を区別することが極めて重要である。
実用的な物体検出ワークフローでは、 後処理段階でファジー論理が適用されることが多い。開発者はモデルの 信頼度スコアを言語的カテゴリにマッピングすることで、 高度なフィルタリングルールを作成できる。
以下の Python の例は、Ultralytics YOLO26推論結果にファジー分類を適用する方法を示しています:
from ultralytics import YOLO
# Load the YOLO26 model and run inference
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
# Get confidence score of the first detected object
conf = results[0].boxes.conf[0].item()
# Apply fuzzy linguistic categorization (Membership function logic)
def get_fuzzy_degree(score):
if score > 0.8:
return "High Certainty"
elif score > 0.5:
return "Moderate Certainty"
return "Uncertain"
print(f"Score: {conf:.2f} -> Category: {get_fuzzy_degree(conf)}")