¿Tener una función dedicada para cada módulo de un programa de IA es el enfoque correcto para construir programas de inteligencia artificial?

Para empezar, parece que en realidad no estás construyendo un programa de inteligencia artificial, sino solo un asistente automatizado de algún tipo. La inteligencia artificial se define como la simulación de procesos de inteligencia humana por parte de máquinas, incluida la capacidad de aprender, corregir y realizar tareas que generalmente requieren inteligencia humana. Las tareas que mencionó son realizadas fácilmente por muchas computadoras.

En el caso de estructurar su programa, hay muchas formas de abordar el problema. El código de separación que modifica varios estados es uno. Este es un enfoque orientado a objetos. Esencialmente, agrupa su código junto con los diversos estados que modifican. Parece que esto es lo que estás haciendo.

Hay muchos más enfoques para esto y ninguno es mejor que el resto. Es la preferencia del programador. Mucho de esto depende de si puede escribir algo mantenible y ampliable con cualquier enfoque que adopte.

En el caso de la programación real de IA, una vez más hay varios enfoques interesantes que se pueden tomar. Personalmente, estoy intrigado por la programación lógica. Un lenguaje de programación lógica como SWI-Prolog le permite escribir programas que consisten en un conjunto de hechos y conclusiones. Puede resolver algunos problemas realmente interesantes con esto de maneras muy elegantes.

Consulte el paradigma de programación: Wikipedia y lea los distintos enfoques que puede adoptar para resolver diversos problemas de programación. Incluso si parece que no funcionará para usted, es probable que alguien haya encontrado una solución para usarlo.

Desde la metodología OOP, puede tener módulos dedicados en aras de la claridad y la reutilización, pero desde la perspectiva de la inteligencia artificial, ¿qué está tratando de hacer siendo modular?

  • ¿Obtiene el resultado de cada módulo y luego lo utiliza para mejorar su conjunto de datos de entrenamiento?
  • ¿Está implementando un algoritmo de IA diferente para cada módulo?
  • ¿Estás subprocesando varios módulos?
  • Y muchas más consultas …

La modularidad es buena para la programación en general, pero desde el punto de vista del dominio AI (cualquier dominio específico), depende de lo que va a lograr al ser modular, aparte de escribir código limpio. Demasiada modularidad crea fragmentos de código.

Si. En general, siempre es una buena idea modular su código.

No hay un enfoque perfecto ya que aún no se ha construido. Podría intentar modelar la arquitectura según nuestros cerebros pero una escala menor de NN.