Explora cómo la lógica difusa modela el razonamiento humano en la IA. Aprende a manejar la ambigüedad en la visión artificial y aplícala a Ultralytics para un procesamiento de datos más inteligente.
La lógica difusa es un paradigma computacional que modela el razonamiento basándose en «grados de verdad» en lugar del rígido binario «verdadero o falso» que suele encontrarse en la informática clásica. Mientras que los ordenadores estándar utilizan la lógica booleana para asignar valores estrictamente de 0 o 1, los sistemas difusos permiten valores entre 0 y 1. Esta flexibilidad permite a la a la inteligencia artificial (IA) manejar la ambigüedad, la vaguedad y la información imprecisa, imitando más de cerca los procesos cognitivos humanos al procesar datos complejos.
En la informática tradicional, una entrada pertenece a un conjunto o no pertenece. La lógica difusa introduce el concepto de funciones de pertenencia, que asignan a los datos de entrada un valor comprendido entre 0 y 1, que representa el grado de pertenencia. Por ejemplo, en un sistema de control climático, una temperatura de 75 °F podría no clasificarse simplemente como «caliente», sino como «0,6 cálida».
Este proceso suele constar de tres etapas clave:
Este enfoque resulta especialmente beneficioso para manejar datos visuales ruidosos, en los que es difícil definir límites claros.
En el contexto de la visión artificial (CV) y el aprendizaje automático (ML), los valores exactos de los píxeles suelen fluctuar debido a la iluminación, la oclusión o el ruido del sensor. La lógica difusa salva la distancia entre los resultados numéricos precisos de una red neuronal y las interpretaciones lingüísticas que utilizan los seres humanos.
Es crucial distinguir la lógica difusa de la teoría de la probabilidad, ya que a menudo se confunden a pesar de abordar diferentes tipos de incertidumbre.
En los flujos de trabajo prácticos de detección de objetos, la lógica difusa se aplica a menudo durante el posprocesamiento. Los desarrolladores pueden asignar la puntuación de confianza de un modelo a categorías lingüísticas para crear sofisticadas reglas de filtrado.
Lo siguiente Python muestra cómo aplicar una categorización difusa a los resultados de inferencia Ultralytics :
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)}")