Excelente libro
AnónimoInteligencia Artificial para desarrolladores Conceptos e implementación en C# (2ª edición)
1 opinión
Este libro sobre Inteligencia Artificial se dirige principalmente a desarrolladores y no requiere profundos conocimientos en matemáticas. A lo largo de los distintos capítulos la autora presenta las principales técnicas de Inteligencia Artificial y, para cada una de ellas, su inspiración, biológica, física o incluso matemática, así como los distintos conceptos y principios (sin entrar en detalles matemáticos), con ejemplos y...
Consultar extractos del libro
Extracto del libro
- Nivel Iniciado a Medio
- Número de páginas 515 páginas
- Publicación julio 2018
- Nivel Iniciado a Medio
- Publicación julio 2018
Este libro sobre Inteligencia Artificial se dirige principalmente a desarrolladores y no requiere profundos conocimientos en matemáticas. A lo largo de los distintos capítulos la autora presenta las principales técnicas de Inteligencia Artificial y, para cada una de ellas, su inspiración, biológica, física o incluso matemática, así como los distintos conceptos y principios (sin entrar en detalles matemáticos), con ejemplos y gráficos para cada uno de ellos. Los dominios de aplicación se ilustran mediante aplicaciones reales y actuales. Cada capítulo contiene un ejemplo de implementación genérico, que se completa con una aplicación práctica, desarrollada en C#. Estos ejemplos de código genéricos son fácilmente adaptables a numerosas aplicaciones en C#, bien sea en aplicaciones .NET clásicas, para ASP.NET, o incluso aplicaciones Windows (versiones 8 y 10). Las técnicas de Inteligencia Artificial descritas son:
- Los sistemas expertos, que permiten aplicar reglas para tomar decisiones o descubrir nuevos conocimientos.
- La lógica difusa, que permite controlar sistemas informáticos o mecánicos de manera mucho más flexible que con los programas tradicionales.
- Los algoritmos de búsqueda de rutas, entre ellos el algoritmo A*, utilizado con frecuencia en videojuegos para encontrar los mejores caminos.
- Los algoritmos genéticos, que utilizan la potencia de la evolución para aportar soluciones a problemas complejos.
- Los principales metaheurísticos, entre ellos la búsqueda tabú, que permite encontrar las mejores soluciones a problemas de optimización, con o sin restricciones.
- Los sistemas multi-agentes, que simulan elementos muy simples o que permiten conseguir comportamientos emergentes a partir de varios agentes muy sencillos.
Las redes neuronales (o deep learning), capaces de descubrir y reconocer modelos en series históricas, en imágenes o incluso en conjuntos de datos.
Para ayudar al lector a pasar de la teoría a la práctica, la autora proporciona para su descarga en el sitio web www.ediciones-eni.com siete proyectos de Visual Studio 2017 (uno por cada técnica de Inteligencia Artificial que se aborda en el libro), desarrollados en C#. Cada proyecto contiene una PCL para la parte genérica y una aplicación (en modo consola o WPF, según los capítulos) para la parte específica a la aplicación propuesta.
El libro termina con una bibliografía, que permite al lector encontrar más información acerca de las diferentes técnicas, una webgrafía que enumera algunos artículos que presentan aplicaciones reales, un anexo y un índice.
Los capítulos del libro:
Prólogo – Introducción – Sistemas expertos – Lógica difusa – Búsqueda de rutas – Algoritmos genéticos – Metaheurísticos de optimización – Sistemas multi-agentes – Redes neuronales – Webgrafía – Anexo
- Los sistemas expertos, que permiten aplicar reglas para tomar decisiones o descubrir nuevos conocimientos.
- La lógica difusa, que permite controlar sistemas informáticos o mecánicos de manera mucho más flexible que con los programas tradicionales.
- Los algoritmos de búsqueda de rutas, entre ellos el algoritmo A*, utilizado con frecuencia en videojuegos para encontrar los mejores caminos.
- Los algoritmos genéticos, que utilizan la potencia de la evolución para aportar soluciones a problemas complejos.
- Los principales metaheurísticos, entre ellos la búsqueda tabú, que permite encontrar las mejores soluciones a problemas de optimización, con o sin restricciones.
- Los sistemas multi-agentes, que simulan elementos muy simples o que permiten conseguir comportamientos emergentes a partir de varios agentes muy sencillos.
Las redes neuronales (o deep learning), capaces de descubrir y reconocer modelos en series históricas, en imágenes o incluso en conjuntos de datos.
Para ayudar al lector a pasar de la teoría a la práctica, la autora proporciona para su descarga en el sitio web www.ediciones-eni.com siete proyectos de Visual Studio 2017 (uno por cada técnica de Inteligencia Artificial que se aborda en el libro), desarrollados en C#. Cada proyecto contiene una PCL para la parte genérica y una aplicación (en modo consola o WPF, según los capítulos) para la parte específica a la aplicación propuesta.
El libro termina con una bibliografía, que permite al lector encontrar más información acerca de las diferentes técnicas, una webgrafía que enumera algunos artículos que presentan aplicaciones reales, un anexo y un índice.
Los capítulos del libro:
Prólogo – Introducción – Sistemas expertos – Lógica difusa – Búsqueda de rutas – Algoritmos genéticos – Metaheurísticos de optimización – Sistemas multi-agentes – Redes neuronales – Webgrafía – Anexo
Descargas
Prólogo
- Objetivos de este libro
- Público objetivo y requisitos previos
- Estructura del libro
- Código para descargar
Introducción
- Presentación del capítulo
- Definir la inteligencia
- La inteligencia de los seres vivos
- La inteligencia artificial
- Dominios de aplicación
- Resumen
Sistemas expertos
- Presentación del capítulo
- Ejemplo: un sistema experto en polígonos
- 1. Triángulos
- 2. Cuadriláteros
- 3. Otros polígonos
- Contenido de un sistema experto
- 1. Base de reglas
- 2. Base de hechos
- 3. Motor de inferencia
- 4. Interfaz de usuario
- Tipos de inferencia
- 1. Razonamiento deductivo
- a. Principio
- b. Aplicación a un ejemplo
- 1. Razonamiento deductivo
- 2. Razonamiento inductivo
- a. Principio
- b. Aplicación a un ejemplo
- 3. Razonamiento mixto
- 1. Extracción del conocimiento
- 2. Creación del motor de inferencia
- 3. Escritura de las reglas
- 4. Creación de la interfaz de usuario
- 1. Criterios de rendimiento
- 2. Mejorar el rendimiento mediante la escritura de reglas
- 3. Importancia de la representación del problema
- 1. Agregar incertidumbre
- 2. Hechos inciertos
- 3. Reglas inciertas
- 1. Ayuda al diagnóstico
- 2. Evaluación de riesgos
- 3. Planificación y logística
- 4. Transferencia de competencias y conocimiento
- 5. Otras aplicaciones
- 1. Definición de requisitos
- 2. Implementación de los hechos
- 3. Base de hechos
- 4. Reglas y base de reglas
- 5. Interfaz
- 6. Motor de inferencia
- 7. Escritura de reglas y uso
- 1. Presentación del lenguaje
- 2. Sintaxis del lenguaje
- a. Generalidades
- b. Predicados
- c. Plantear preguntas
- d. Escritura de las reglas
- e. Otros predicados útiles
- a. Interés del razonamiento inductivo
- b. Estudio del problema
- c. Reglas
- d. Reglas de conflicto entre reinas
- e. Objetivo del programa
- f. Ejemplos de uso
Lógica difusa
- Presentación del capítulo
- Incertidumbre e imprecisión
- 1. Incertidumbre y probabilidad
- 2. Imprecisión y subjetividad
- 3. Necesidad de tratar la imprecisión
- Conjuntos difusos y grados de pertenencia
- 1. Lógica booleana y lógica difusa
- 2. Funciones de pertenencia
- 3. Características de una función depertenencia
- 4. Valores y variables lingüísticas
- Operadores sobre los conjuntos difusos
- 1. Operadores booleanos
- 2. Operadores difusos
- a. Negación
- b. Unión e intersección
- 1. Reglas en lógica booleana
- 2. Reglas difusas
- 1. Valor de verdad
- 2. Fuzzificación y aplicación de lasreglas
- 3. Defuzzificación
- 1. Primer uso
- 2. En los productos electrónicos
- 3. En el mundo del automóvil
- 4. Otros dominios
- 1. El núcleo del código: los conjuntosdifusos
- a. Point2D: un punto de una función de pertenencia
- b. FuzzySet: un conjunto difuso
- c. Operadores de comparación y de multiplicación
- d. Operadores sobre conjuntos
- e. Cálculo del baricentro
- a. LinguisticValue: valor lingüístico
- b. LinguisticVariable: variable lingüística
- a. FuzzyExpression: expresión difusa
- b. FuzzyValue: valor difuso
- c. FuzzyRule: regla difusa
Búsqueda de rutas
- Presentación del capítulo
- Rutas y grafos
- 1. Definición y conceptos
- 2. Representaciones
- a. Representación gráfica
- b. Matriz de adyacencia
- 3. Coste de una ruta y matriz de distancias
- 1. Búsqueda en profundidad
- a. Principio y pseudo-código
- b. Aplicación al mapa
- a. Principio y pseudo-código
- b. Aplicación al mapa
- 1. Algoritmo de Bellman-Ford
- a. Principio y pseudo-código
- b. Aplicación al mapa
- a. Principio y pseudo-código
- b. Aplicación al mapa
- a. Principio y pseudo-código
- b. Aplicación al mapa
- 1. Nodos, arcos y grafos
- a. Implementación de los nodos
- b. Clase que representa los arcos
- c. Interfaz de los grafos
- a. IHM
- b. Algoritmo genérico
- a. Búsqueda en profundidad
- b. Búsqueda en anchura
- c. Algoritmo de Bellman-Ford
- d. Algoritmo de Dijkstra
- e. Algoritmo A*
- a. Tile y Tiletype
- b. Implementación del mapa
- c. Programa principal
Algoritmos genéticos
- Presentación del capítulo
- Evolución biológica
- 1. El concepto de evolución
- 2. Las causas de las mutaciones
- 3. El soporte de esta información: los factores
- 4. De los factores al código genético
- 5. El "ciclo de la vida"
- Evolución artificial
- 1. Los principios
- 2. Convergencia
- 3. Ejemplo
- a. Juego del Mastermind
- b. Creación de la población inicial
- c. Función de evaluación
- d. Fase de reproducción
- e. Supervivencia y encadenamiento de generaciones
- f. Terminación del algoritmo
- 1. Elección de la representación
- a. Población e individuos
- b. Genes
- c. Casos complejos
- 1. Selección de los padres
- 2. Reproducción
- a. Crossover
- b. Mutación
- 1. Implementación genérica de un algoritmo
- a. Especificaciones
- b. Parámetros
- c. Individuos y genes
- d. IHM
- e. Proceso evolutivo
- a. Presentación del problema
- b. Entorno
- c. Genes
- d. Individuos
- e. Programa principal
- f. Resultados
- a. Presentación del problema
- b. Entorno
- c. Genes
- d. Individuos
- e. Programa principal
- f. Resultados
Metaheurísticos de optimización
- Presentación del capítulo
- Optimización y mínimos
- 1. Ejemplos
- 2. El problema de la mochila
- 3. Formulación de los problemas
- 4. Resolución matemática
- 5. Búsqueda exhaustiva
- 6. Metaheurísticos
- Algoritmos voraces
- Descenso por gradiente
- Búsqueda tabú
- Recocido simulado
- Optimización por enjambre de partículas
- Meta-optimización
- Dominios de aplicación
- Implementación
- 1. Clases genéricas
- 2. Implementación de los distintos algoritmos
- a. Algoritmo voraz
- b. Descenso por gradiente
- c. Búsqueda tabú
- d. Recocido simulado
- e. Optimización por enjambre de partículas
- 3. Resolución del problema de la mochila
- a. Implementación del problema
- b. Algoritmo voraz
- c. Descenso por gradiente
- d. Búsqueda tabú
- e. Recocido simulado
- f. Optimización por enjambre de partículas
- g. Programa principal
- 4. Resultados obtenidos
Sistemas multi-agentes
- Presentación del capítulo
- Origen biológico
- 1. Las abejas y la danza
- 2. Las termitas y la ingeniería civil
- 3. Las hormigas y la optimización de caminos
- 4. Inteligencia social
- Sistemas multi-agentes
- 1. El entorno
- 2. Los objetos
- 3. Los agentes
- Clasificación de los agentes
- 1. Percepción del mundo
- 2. Toma de decisiones
- 3. Cooperación y comunicación
- 4. Capacidad del agente
- Principales algoritmos
- 1. Algoritmos de manadas
- 2. Optimización por colonia de hormigas
- 3. Sistemas inmunitarios artificiales
- 4. Autómatas celulares
- Dominios de aplicación
- 1. Simulación de multitudes
- 2. Planificación
- 3. Fenómenos complejos
- 4. Otros dominios
- Implementación
- 1. Banco de peces
- a. Los objetos del mundo y las zonas a evitar
- b. Los agentes-peces
- c. El océano
- d. La aplicación gráfica
- e. Resultados obtenidos
- 1. Banco de peces
- 2. Recogida selectiva
- a. Los residuos
- b. Los agentes limpiadores
- c. El entorno
- d. La aplicación gráfica
- e. Resultados obtenidos
- 3. El juego de la vida
- a. La malla
- b. La aplicación gráfica
- c. Resultados obtenidos
Redes neuronales
- Presentación del capítulo
- Origen biológico
- Machine Learning
- 1. Formas de aprendizaje y ejemplos
- a. Aprendizaje no supervisado
- b. Aprendizaje supervisado
- c. Aprendizaje por refuerzo
- 1. Formas de aprendizaje y ejemplos
- 2. Regresión y algoritmo de regresiónlineal
- 3. Clasificación y algoritmo de regresiónlogística
- 1. Principio
- 2. Red de tipo "perceptrón"
- 3. Funciones de agregación y de activación
- a. Función de agregación
- b. Función de activación
- c. Función gausiana
- 1. Redes con capa oculta
- 2. Aprendizaje por retropropagación del gradiente
- 3. Sobreaprendizaje
- 4. Mejoras del algoritmo
- a. Batch, mini-batch y gradiente estocástico
- b. Regularización
- c. Dropout
- d. Variación del algoritmo de descenso por gradiente
- e. Creación de nuevos datos
- 1. Redes neuronales de convolución
- 2. Mapas de Kohonen
- 3. Redes neuronales recurrentes
- 4. Redes de Hopfield
- 1. Reconocimiento de patrones
- 2. Estimación de funciones
- 3. Creación de componentes
- 4. Aplicaciones actuales
- 1. Puntos y conjuntos de puntos
- 2. Neurona
- 3. Red neuronal
- 4. Interfaz Hombre-Máquina
- 5. Sistema completo
- 6. Programa principal
- 7. Aplicaciones
- a. Aplicación al XOR
- b. Aplicación a Abalone
- c. Posibles mejoras
Webgrafía
- ¿Por qué una webgrafía?
- Sistemas expertos
- Lógica difusa
- Búsqueda de rutas
- Algoritmos genéticos
- Metaheurísticos
- Sistemas multi-agentes
- Redes neuronales
Anexo
- Instalación de SWI-Prolog
- Uso de SWI-Prolog
Virginie MATHIVET
Virginie MATHIVET cursó un doctorado en Inteligencia Artificial, más concretamente en algoritmos genéticos y redes neuronales. Tras impartir clases de inteligencia artificial, robótica y materias relacionadas con el desarrollo durante más de 10 años, creó un departamento de Datos en una ESN (IA, Ingeniería de Datos, Big Data). En 2023 creó su propia empresa, Hemelopse, para centrarse en la consultoría estratégica de IA, al mismo tiempo que sigue formando y entrenando a Científicos de Datos. También es conferencista.
Más información