Вы находитесь на странице: 1из 7

Programación de Inteligencia Artificial con Python

Carlos Camacho Jibaja, Bernardo Pachacama Moreno, Villacis Nicolas.


Universidad de las Fuerzas Armadas – ESPE, Campus Sangolquí, Sangolquí,
Ecuador
Marco Teórico
¿Qué es inteligencia Artificial?
La Inteligencia Artificial (IA) es la combinación de algoritmos planteados con el
propósito de crear máquinas que presenten las mismas capacidades que el ser humano.

Tipos de Inteligencia Artificial


Los expertos en ciencias de la computación Stuart Russell y Peter Norvig diferencian
varios tipos de inteligencia artificial
 Sistemas que piensan como humanos: automatizan actividades como la toma de
decisiones, la resolución de problemas y el aprendizaje. Un ejemplo son las redes
neuronales artificiales.
 Sistemas que actúan como humanos: se trata de computadoras que realizan tareas
de forma similar ha como lo hacen las personas. Es el caso de los robots.
 Sistemas que piensan racionalmente: intentan emular el pensamiento lógico
racional de los humanos, es decir, se investiga cómo lograr que las máquinas
puedan percibir, razonar y actuar en consecuencia. Los sistemas expertos se
engloban en este grupo.
 Sistemas que actúan racionalmente: idealmente, son aquellos que tratan de imitar
de manera racional el comportamiento humano, como los agentes inteligentes.

Aplicaciones prácticas de la inteligencia artificial


La IA está presente en la detección facial de los móviles, en los asistentes virtuales de
voz como Siri de Apple, Alexa de Amazon o Cortana de Microsoft y está integrada en
nuestros dispositivos cotidianos a través debots o aplicaciones para móvil. El objetivo de
todas ellas: hacer más fácil la vida de las personas.
Los avances en IA ya están impulsando el uso del big data debido a su habilidad para
procesar ingentes cantidades de datos y proporcionar ventajas comunicacionales,
comerciales y empresariales que la han llevado a posicionarse como la tecnología esencial
de las próximas décadas.

Las Seis leyes de la robótica propuesta con el parlamento Europeo


1. Los robots deberán contar con un interruptor de emergencia para evitar cualquier
situación de peligro.
2. No podrán hacer daño a los seres humanos. La robótica está expresamente
concebida para ayudar y proteger a las personas.
3. No podrán generarse relaciones emocionales.
4. Será obligatoria la contratación de un seguro destinado a las máquinas de mayor
envergadura. Ante cualquier daño material, serán los dueños quienes asuman los
costes.
5. Sus derechos y obligaciones serán clasificados legalmente.
6. Las máquinas tributarán a la seguridad social. Su entrada en el mercado laboral
impactará sobre la mano de obra de muchas empresas. Los robots deberán pagar
impuestos para subvencionar las ayudas de los desempleados.
Aunque haya voces como la del filósofo sueco de la Universidad de Oxford, Nick
Bostrom, que anticipa que "existe un 90% de posibilidades de que entre 2075 y 2090 haya
máquinas tan inteligentes como los humanos", o la de Stephen Hawking, que aventura
que las máquinas superarán completamente a los humanos en menos de 100 años, lo cierto
es que lejos de convertirnos en obsoletos, la IA nos hará más eficientes y nos permitirá
ejecutar acciones que nunca hubiéramos podido realizar debido a su complejidad.
Todavía hay mucho camino por recorrer con la Inteligencia Artificial. Grandes empresas
como Google apuntan a que apenas estamos viviendo la primera edad de la Inteligencia
Artificial, ya que las máquinas comienzan a realizar procesos de aprendizaje del habla y
el reconocimiento de imágenes. Por ahora tenemos asistentes inteligentes que hablan
todavía como máquinas, algo muy lejos de ser el verdadero cometido de esta tecnología.
Existen tres grandes problemas que enfrenta la inteligencia artificial: el primero de los
problemas sería el volumen de datos, el segundo es la limitación para las tareas múltiples
y por último la compresión de sus conclusiones.

El volumen de datos utilizados


Es bien conocida la necesidad de utilización de datos por parte de la Inteligencia
Artificial, para poder aprender sobre su entorno, pero regularmente no se toma en cuenta
la cantidad de datos que están involucrados. La Inteligencia Artificial no solamente
necesita de más datos que el cerebro humano para poder comprender conceptos y
características, necesitan miles de veces más que los datos requeridos por un humano.
Neil Lawrence, profesor de la Universidad de Sheffield y parte del equipo de Inteligencia
Artificial de Amazon señaló: "se observa que los resultados exitosos de aprendizaje
profundo de Inteligencia Artificial, son los casos en los que las máquinas tienen acceso a
una enorme cantidad de datos”.

Inteligencia artificial multitarea: una tarea pendiente


La inteligencia humana es integral, puede desempeñar muchas tareas, y ese es
precisamente un fallo de la Inteligencia Artificial desarrollada hasta ahora, ya que es
aplicada a un área del conocimiento o actividad específica. Una vez que un cerebro de
Inteligencia Artificial ha sido entrenado, puede ser altamente efectivo para tareas como
el reconocimiento de animales o para ser el rival ideal en un videojuego, pero de acuerdo
con Raia Hadsell, científico de la división de Google DeepMind, no existe una red
neuronal artificial en el mundo capaz de hacer más de una tarea a la vez.

La compresión de sus conclusiones


Aún queda pendiente poder determinar con exactitud de que manera la Inteligencia
Artificial llega a algunas conclusiones, ya que por ahora sólo es posible determinar el
funcionamiento de las redes neuronales en conjunto pero no se conoce las razones a las
que un cerebro artificial llega a determinada conclusión o resultado.
Para ilustrar este inconveniente se realizó un experimento en la Universidad de Virginia,
en el que los investigadores crearon un sistema de seguimiento ocular para una red
neuronal y le fueron mostradas las imágenes de un dormitorio y se le pidió al sistema de
Inteligencia Artificial indicar qué estaba cubriendo las ventanas, y en lugar de mirar por
las ventanas, miró al suelo.
Al ver una cama respondió "hay cortinas que cubren las ventanas”, la respuesta fue
correcta pero en ningún momento vio a las ventanas y no contaba con la cantidad de datos
suficientes para llegar a esa conclusión siendo todo un misterio.

Machine Learning
El Machine Learning es el diseño y estudio de las herramientas informáticas que utilizan
la experiencia pasada para tomar decisiones futuras; es el estudio de programas que
pueden aprenden de los datos. El objetivo fundamental del Machine Learning es
generalizar, o inducir una regla desconocida a partir de ejemplos donde esa regla es
aplicada. El ejemplo más típico donde podemos ver el uso del Machine Learning es en el
filtrado de los correo basura o spam. Mediante la observación de miles de correos
electrónicos que han sido marcados previamente como basura, los filtros de spam
aprenden a clasificar los mensajes nuevos. El Machine Learning tiene una amplia gama
de aplicaciones, incluyendo motores de búsqueda, diagnósticos médicos, detección de
fraude en el uso de tarjetas de crédito, análisis del mercado de valores, clasificación de
secuencias de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robótica.
Pero para poder abordar cada uno de estos temas son crucial en primer lugar distingir los
distintos tipos de problemas de Machine Learning con los que nos podemos encontrar.

 Aprendizaje supervisado: En los problemas de aprendizaje supervisado se enseña o


entrena al algoritmo a partir de datos que ya vienen etiquetados con la respuesta
correcta. Cuanto mayor es el conjunto de datos, el algoritmo podrá generalizar en una
forma más precisa. Una vez concluido el entrenamiento, se le brindan nuevos datos,
ya sin las etiquetas de las respuestas correctas, y el algoritmo de aprendizaje utiliza la
experiencia pasada que adquirió durante la etapa de entrenamiento para predecir un
resultado.
 Aprendizaje no supervisado: En los problemas de aprendizaje no supervisado, el
algoritmo es entrenado usando un conjunto de datos que no tiene ninguna etiqueta; en
este caso, nunca se le dice al algoritmo lo que representan los datos. La idea es que el
algoritmo pueda encontrar por si solo patrones que ayuden a entender el conjunto de
datos.
 Aprendizaje por refuerzo: En los problemas de aprendizaje por refuerzo, el
algoritmo aprende observando el mundo que le rodea. Su información de entrada es
el feedback o retroalimentación que obtiene del mundo exterior como respuesta a sus
acciones. Por lo tanto, el sistema aprende a base de ensayo-error. Un buen ejemplo de
este tipo de aprendizaje lo podemos encontrar en los juegos, donde vamos probando
nuevas estrategias y vamos seleccionando y perfeccionando aquellas que nos ayudan
a ganar el juego. A medida que vamos adquiriendo más practica, el efecto acumulativo
del refuerzo a nuestras acciones victoriosas terminará creando una estrategia
ganadora.
 Deep Learning: El Deep Learning constituye un conjunto particular de algoritmos
de Machine Learning que utilizan estructuras profundas de redes neuronales para
encontrar patrones en los datos. Estos tipos de algoritmos cuentan actualmente con un
gran interés, ya que han demostrado ser sumamente exitosos para resolver
determinados tipos de problemas; como por ejemplo, el reconocimiento de imágenes.
Muchos consideran que este tipo de modelos son los que en el futuro nos llevaran a
resolver definitivamente el problema de la Inteligencia Artificial.
 Algortimos genéticos: Los algoritmos genéticos se basan en la idea de que la madre
de todo aprendizaje es la selección natural. Si la Naturaleza pudo crearnos, puede
crear cualquier cosa; por tal motivo lo único que deberíamos hacer para alcanzar una
Inteligencia Artificial es simular sus mecanismos en una computadora. La idea de
estos algoritmos es imitar a la Evolución; funcionan seleccionando individuos de una
población de soluciones candidatas, y luego intentando producir nuevas generaciones
de soluciones mejores que las anteriores una y otra vez hasta aproximarse a una
solución perfecta.

Las redes neuronales artificiales


El estudio del cerebro humano y su posterior simplificación para crear un modelo artificial
fue la pieza clave para dar el salto que revolucionaría las tecnologías modernas. Su
implantación no se puso en práctica hasta una década después, en torno al año 2008, ya
que se requiere una gran capacidad de procesamiento para poner en marcha una red
neuronal.
La idea básica que hay detrás de las redes neuronales es muy sencilla a la par que
intuitiva: obtener datos reales, pasarlos a las celdas neuronales programas y que el
conjunto de ellas actúe en consecuencia sin que nadie le tenga que decir lo que hacer.
Esto es posible debido a una etapa previa de aprendizaje, en la que se centra
exclusivamente en aprender del entorno para cometer en el futuro el menor número de
errores posible. Por ejemplo, le enseñamos la imagen de un perro y le decimos a la propia
red que es un perro. De esta forma ya almacena ciertos parámetros que utilizará para
reconocer a estos animales.
Las redes neuronales más utilizadas y que mejores resultados ofrecen son las redes
multicapa o perceptrón multicapa. Se basan en la programación de varias capas de redes
neuronales (cada capa es un conjunto de redes neuronales) cuyas salidas son entradas para
la siguiente capa. Es decir, los datos de salida de la capa neuronal “i” son las entradas
para las neuronas artificiales de la capa “i+1”. En base a los resultados que vayan sacando
las distintas capas, se va decidiendo sobre el dato de salida final.
Puede que, al hablar de programación de células neuronales, el término se complique y
todo parezca muy abstracto. Para afianzar ideas: una célula neuronal no es más que una
función programada que, para ciertos datos de entrada, obtiene una salida basándose en
un aprendizaje previo y sirviéndose de datos de salida de otras células neuronales.

¿Por qué usar Python para la IA?


 Mayor comunidad, para que un lenguaje sea preferible sobre otro debe tener una gran
comunidad que lo respalde en dicha área.
 Mayor cantidad de bibliotecas, es claro que hay una mayor cantidad de recursos open-
source disponibles en Python para trabajar con IA.
 Los prototipos se pueden programar más rápido, al ser Python un lenguaje dinámico
y con un tipado débil, permite desarrollar más rápidamente. Esto puede provocar que
sea más simple de aprender a programar en Python que en otros lenguajes de
programación.
 Mayores recursos para aprender IA, dado que hay muchas plataformas de educación
online, cursos, libros, artículos de blog, etc que aparecen cada día para aprender IA
con Python.

Planteamiento del problema de IA:


Como vimos anteriormente, uno de los principales problemas de la IA es el hecho que
nuestra tecnología inteligente no siempre tendrá la capacidad de reconocer los símbolos
o patrones que deberá analizar y por consecuente no llevará a cabo el proceso requerido.
Este problema en específico es muy común y especialmente molesto ya que el proceso
en general puede estar bien, todas las estructuras, algoritmos y demás, comprobadas y
listas para su funcionamiento, pero ya que el sistema no es capaz de reconocer los datos
de entrada, de nada habrá servido todo lo demás. Por lo tanto, es muy importante que
siempre le demos a nuestra IA la habilidad de comprender e incluso a veces, corregir los
datos que se le proporcionan, con el fin que pueda procesarlos de manera correcta.

Solución general:
Nuestra solución es darle a nuestro sistema inteligente, la capacidad de identificar
posibles errores en la escritura o problemas de orden léxico y ofrecer distintas opciones
con las que podremos reemplazar, por ejemplo, las palabras que presentan esta
complicación, además al darle memoria a nuestro sistema, este con el tiempo podrá
reconocer los errores frecuentes y estará en capacidad de corregirlos por sí mismo,
volviendo el proceso cada vez más eficiente. Esta forma de trabajar los distintos
errores producidos con los datos de entrada, no solo se puede aplicar a datos como
palabras, sino a demás clases de información que nuestra IA no reconozca en primera
instancia.
Ej.: - Un claro ejemplo de cómo puede trabajar la corrección de datos empleada
por una IA es la utilizada en típicos programas de escritura como “Word” y/o
“PowerPoint”:
Si tipeamos en Word, en un documento, una palabra mal escrita como por ejemplo
”atráz” el programa automáticamente lo detectará como error y nos lo marcará con rojo
indicando que algo no está bien con esta palabra. Tras dar un clic derecho sobre esta,
nos marcará las distintas opciones con las que podremos cambiar esta palabra, en este
caso nos sugerirá cambiarla por “atrás” y no solo eso, sino que, si repetidas veces
cometemos este error gramatical y lo corregimos mediante esta función, el programa
llegado un punto, lo empezará a corregir por sí mismo y así se volverá más práctico.

Problema específico:
Una vez comprendido el aspecto macro del problema elegido y expuesto anteriormente,
podremos tomar una pequeña parte de él y utilizarlo como objeto a resolver con nuestro
lenguaje de programación “Python”:
- Deseamos correr un código que nos ayude a verificar si una palabra que
pertenece a nuestro idioma, está escrita de forma correcta o en caso contrario,
saber cuál es la forma correcta de escribirla.
Resolución a través de Python:
Gracias a la infinidad de librerías disponibles en Python, hay infinidad de cosas que
podemos hacer con ellas y para la resolución de esta problemática, haremos uso de una.
La librería que usaremos se llama “Hunspell” la misma que nos permite cargar
diccionarios en distintos idiomas y utilizar comandos como los siguientes:
Para importar el módulo y cargar el idioma español:

Para saber si una palabra está en el diccionario:

Para agregar palabras y/o eliminarlas:

Para desplegar distintas sugerencias a una palabra:

Entre otras.
A continuación, dejamos un pequeño código que nos imprimirá en pantalla las distintas
sugerencias a una palabra que ingresemos:
Análisis de resultados:
- Gracias a esta forma de solucionar la no identificación de datos de una IA,
podremos resolver la mayoría de problemas que se presenten por la poca
legibilidad de la información de entrada, a la máquina.
- La solución teóricamente simple facilita la implementación de la misma a una
IA.
- Un problema con ella es que no podrá solucionar el problema en casos extremos
en la que nuestros algoritmos planteados no sean aptos para los datos ingresados.
Conclusiones:
- Este método de resolución es muy práctico para la resolución de problemas de
bajo nivel.
- Se determinó mediante esta resolución que la efectividad con Python en
programación de inteligencia artificial es notoria gracias a las librerías que este
mismo nos permite utilizar además de la simplicidad de su lenguaje.
- Se analizó los objetivos que tiene la inteligencia artificial en sí y la ayuda que
esta misma podría presentar en unos años a la humanidad.
- Es importante la experimentación para tanto el aprendizaje de la IA, como del
programador tras ella.
Referencias
 https://www.iberdrola.com/te-interesa/tecnologia/que-es-inteligencia-artificial
 https://www.muyinteresante.es/tecnologia/articulo/ventajas-y-riesgos-de-la-
inteligencia-artificial-651449483429
 https://prnoticias.com/tecnologia/ciencia-y-tecnologia/20156823-inteligencia-
artificial-problemas#inline-auto1611
 https://www.lacapital.com.ar/mas/la-inteligencia-artificial-clave-resolver-
problemas-n1542926.html
 https://hackernoon.com/reasons-to-choose-python-for-ai-based-projects-
7e3e6c8b954a
 https://recursospython.com/guias-y-manuales/hunspell-corrector-ortografico/
https://medium.freecodecamp.org/what-is-an-api-in-english-please-b880a3214a82
 https://es.quora.com/Por-qu%C3%A9-es-Python-m%C3%A1s-preferible-para-la-
inteligencia-artificial-que-Java
 https://relopezbriega.github.io/blog/2017/06/05/introduccion-a-la-inteligencia-
artificial/
 https://billionbytes.es/redes-neuronales-e-inteligencia-artificial-cuales-son-
sus-diferencias-19531

Вам также может понравиться