Sie sind auf Seite 1von 35

Machine Learning para dummies

por Manuel Zaforas


 Madrid, España

 15 de marzo del 2017

 10 comentarios
Sin duda Machine Learning es uno de los términos de moda hoy en día en el
mundo de la tecnología. Los algoritmos de Machine Learning tratan de
aprender de los datos, y cuantos más datos haya disponibles para aprender
y más ricos y completos sea el algoritmo, funcionará mejor. En este post
vamos a profundizar en el funcionamiento de algunos de los algoritmos más
usados.

Lo ideal es que los datos de entrenamiento (In) los tengamos etiquetados (0n).
Por ejemplo, imaginemos que queremos disponer de un algoritmo que detecte
si un tumor es benigno o maligno en base a ciertas características del mismo.
Algunas de estas características podrían ser el tamaño del tumor, la densidad,
el color u otros datos clínicos. Supongamos que tenemos un historial con las
características de múltiples tumores que hemos estudiado en el pasado, esto
sería (In), y ya sabemos si cada uno de estos tumores era maligno o benigno,
esto sería (0n).
En primer lugar, lo que haríamos es proporcionar a nuestro algoritmo
todos estos datos para “entrenarlo” y que aprenda de patrones,
relaciones y circunstancias del pasado. De esta manera conseguiremos un
modelo entrenado.
Una vez tengamos este modelo entrenado, podremos pedirle que haga una
predicción al darle las características de un nuevo tumor (I), del cual no
sabemos si es benigno o maligno. El modelo será capaz de darnos una
predicción (P) en base al conocimiento que extrajo de los datos de
entrenamiento.
Lo que define a un “buen” o “mal” algoritmo es la precisión con la que
haga las predicciones en un dominio y contexto dado, y en base a unos
datos de entrenamiento disponibles. Precisamente la principal labor de los
científicos de datos es “tunear” y ajustar los algoritmos para adecuarlos a cada
problema y, por otro lado, limpiar y preparar los datos para que el algoritmo
puede aprender lo máximo posible de ellos.
A continuación vamos a comentar las características de algunos de los
algoritmos más extendidos y cómo son capaces de aprender de los datos.
Regresión lineal
La regresión lineal es uno de los algoritmos clásicos más extendidos y fáciles
de entender. Lo que se pretende hacer es modelar la relación que existe
entre una variable dependiente “y” y una o más variables
independientes “x”.
Intuitivamente, podemos imaginar que se trata de hallar la línea roja que
mejor “encaje” con el conjunto de puntos azules dados. Para esto podremos
usar métodos como el de los “mínimos cuadrados” que busca minimizar la
distancia vertical de todos los puntos azules a la línea roja.
Una vez obtenida esta “línea roja”, seremos capaces de hacer predicciones
hipotéticas sobre cuál sería el valor de “y” dado “x”. Es muy posible que
cometamos siempre cierto error en la predicción.
La regresión lineal es un método guiado, en el sentido de que necesitamos
un conjunto inicial suficientemente representativo de “puntos azules” para
“aprender” de ellos y poder hacer buenas predicciones.
Algunas aplicaciones interesantes de la regresión lineal son el estudio de la
evolución de precios o de mercados. Un ejemplo clásico es la predicción del
precio de la vivienda donde las variables “x”serían las características de una
vivienda: tamaño, número de habitaciones, altura, materiales… y la “y” sería
el precio de esa vivienda. Si pudiéramos analizar las características y el precio
de un conjunto suficiente de viviendas, podríamos predecir cuál sería el precio
de una nueva vivienda en base a sus características.
Regresión logística
La regresión logística tiene ciertas similitudes en su planteamiento con la
regresión lineal, pero está orientada a resolver problemas de
clasificación y no de predicción.

La idea es ser capaces de asignar una categoría u otra dadas unas


características de entrada. Para ello se apoya en una función logística como la
función “sigmoide”, que toma como entrada cualquier número real y devuelve
un número real comprendido entre 0 y 1 y que podemos interpretar como una
probabilidad.
Para aplicar regresión logística también necesitaremos un juego de datos
previamente clasificados para entrenar nuestro algoritmo.
La regresión logística tiene múltiples aplicaciones, como por ejemplo la
valoración de riesgos, la clasificación de tumores o la detección de
SPAM.
Clustering K-means
K-means es un algoritmo iterativo no guiado, capaz de encontrar
clusters o relaciones entre los datos que tengamos sin necesidad de
entrenarlo previamente.
La idea que hay detrás de este algoritmo es relativamente sencilla:
1. En primer lugar, le indicaremos cuántos clusters queremos identificar e
inicializaremos, a través de algún mecanismo aleatorio, un punto o
centroide por cada cluster en nuestro espacio de datos.
2. Para cada dato de entrada veremos cuál es el centroide más cercano en
distancia y lo asignaremos a ese cluster.

3. Cogeremos todos los puntos asignados a cada cluster y calcularemos cuál


sería su punto medio en el espacio.

4. Moveremos los correspondientes centroides a los puntos medios


calculados en el paso anterior para cada cluster.
5. Repetiremos iterativamente desde el paso 2 hasta converger.
De esta manera conseguiremos que cada punto del espacio o dato de entrada
esté asignado a un cluster y habremos conseguido nuestro objetivo.
Su uso está muy extendido y es usado en muchos ámbitos, por ejemplo en
motores de búsqueda para ver las similitudes que hay entre unos elementos y
otros. Sin embargo, este algoritmo es complejo computacionalmente hablando
y puede requerir mucha capacidad de cómputo.
SVM
SVM son las siglas de Support Vector Machine. Este algoritmo supervisado se
utiliza generalmente para solucionar problemas de clasificación.
La idea del algoritmo es ser capaces de encontrar, con los datos de
entrenamiento, un hiperplano que maximiza la distancia a las diferentes
clases, lo que es conocido como el “margen máximo”.

Una vez hallado este hiperplano podemos usarlo para clasificar nuevos
puntos.
SVM tiene múltiples aplicaciones, por ejemplo para reconocimiento de
imágenes, clasificación de texto o aplicaciones en el área de la
biotecnología.
Random forest
Random Forest es uno de los algoritmos más potentes y usados hoy
en día. Consiste en una combinación de múltiples árboles de decisión que
juntos conforman un “bosque”.
Un árbol de decisión es una metáfora de un árbol real, ya que, gráficamente,
las partes de un árbol de decisión tienen cierto parecido a las ramas de un
árbol. Dado un valor de entrada lo clasificaremos diciendo que va a una rama
u otra en base a una condición. Los árboles de decisión pueden ser más o
menos profundos y complejos y la dificultad está en definirlos de forma
correcta para que nos clasifiquen correctamente los datos de nuestro
problema.
Random Forest hace uso de un conjunto de árboles de decisión y a cada uno le
asigna una porción de los datos de ejemplo o entrenamiento. El resultado final
será la combinación del criterio de todos los árboles que formen el bosque.
Este enfoque es ideal para repartir y paralelizar el trabajo de computación, lo
que permite que podamos ejecutarlo de forma muy rápida usando varios
procesadores.

Este algoritmo tiene muchas aplicaciones, por ejemplo en el mundo de la


automoción para la predicción de roturas de piezas mecánicas, o en el mundo
de la salud para la clasificación de enfermedades de pacientes. Este algoritmo
también es usado en herramientas de reconocimiento de voz, imágenes y
texto.
Conclusión
Estos son algunos de los algoritmos más conocidos, pero existen muchos más.
Por otro lado, las opciones de configuración y ajustes que podemos
hacer en cada algoritmo son muy grandes, esto ha dado lugar a nuevos
perfiles especializados en analítica de datos avanzada y Machine Learning.
En resumen, podemos decir que Machine Learning es un enorme campo
dentro de la Inteligencia Artificial y, sin duda, el que más resultados y
aplicaciones está teniendo hoy en día.
Acceder a este conocimiento es más fácil que nunca y las posibilidades
tecnológicas nos permiten disponer de gran capacidad de cómputo y
almacenamiento de datos. Esto nos permite que la aplicación de estos
algoritmos sea mucho más sencilla en cualquier negocio o sector,
desde startups a grandes compañías.

TensorFlow, o cómo será el futuro de la


Inteligencia Artificial según Google
por Manuel Zaforas
 Madrid, España

 31 de mayo del 2017

 6 comentarios
Durante décadas se ha hablado del concepto de la “Inteligencia Artificial”
(IA) y el impacto que tendría en nuestras vidas. El cine y la literatura han
fantaseado con las posibilidades y los dilemas que se plantean desde HAL
9000 hasta Skynet. Sin embargo la realidad estaba siempre muy lejos de la
ficción.
En los últimos años se han dado una serie de condiciones y cambios
tecnológicos que han propiciado el resurgimiento de la IA y su aplicación en
nuevas áreas, nos referimos a Big Data,Cloud, IoT, Mobility… una verdadera
nueva revolución industrial.
Las empresas se están posicionando en este nuevo escenario y, sin duda,
Google es uno de los referentes en Inteligencia Artificial desde sus orígenes.
En este artículo vamos a hablar deTensorFlow, el framework liberado por
Google para desarrollar algoritmos inteligentes que está en el corazón de
muchos de sus productos.

Los orígenes
TensorFlow es un software de computación numérica, creado por Google,
orientado a problemas de Deep Learning. Deep Learning es un área específica
de Machine Learning que está tomando gran relevancia dentro del mundo de
la Inteligencia Artificial y que está detrás de algunos de las novedades
tecnológicas más sorprendentes de los últimos años.
El origen de TensorFlow está en años de experiencia de Google en el campo
de la Inteligencia Artificial. TensorFlow nace del trabajo de Google Brain, un
grupo de investigadores e ingenieros de Google dedicado a investigar en el
área de la IA, que desarrollaron en 2011 DistBelief, el predecesor cerrado de
TensorFlow.
En febrero de 2017, Google liberó la versión 1.0, que incorpora multitud de
mejoras. Algunas de las más reseñables son mejoras de rendimiento que
permiten acelerar hasta 58 veces los tiempos de ejecución de algunos
algoritmos y aprovechar las ventajas de ejecutar sobre GPUs. Además, se han
mejorado y facilitado las integraciones con otras bibliotecas del ecosistema
como Keras.
El impacto que ha logrado Google liberando esta tecnología es espectacular y
la comunidad ha respondido. A fecha de mayo de 2017 existen más de 11.000
repositorios de código donde se referencia TensorFlow.
Google lleva usando esta tecnología desde hace varios años aplicándola a
muchos de sus productos y servicios como por ejemplo Gmail, donde se usa
en el componente Smart Reply para generación de respuestas automáticas, o
en Google Translation donde es usado para realizarmillones de
traducciones todos los días entre multitud de idiomas.
Otro buen ejemplo es esta página, donde Google nos muestra de forma muy
visual cómo funciona TensorFlow y podemos configurar y ver en tiempo real
cómo aprende nuestra red de neuronas, sin necesidad de programar una sola
línea de código, merece la pena probarlo.

Uno de los aspectos que hacen más interesante a TensorFlow es que Google
decidió liberarlocomo software libre bajo licencia Apache 2 a finales de 2015.
Desde entonces, el impacto de TensorFlow en la comunidad ha sido enorme,
convirtiéndose en la piedra angular de multitud de nuevos productos
innovadores que se apoyan en esta tecnología de Google sin coste adicional.
Desde startups de Silicon Valley hasta grandes corporaciones están usando
TensorFlow en sus proyectos. Algunos ejemplos son Uber, Airbnb,
Twitter, Airbus o IBM.
Las aplicaciones de TensorFlow son inimaginables. Además de en
tecnología, las ventajas de este software también revierten en otros campos,
como la medicina o las artes. Por ejemplo, se está usando en la detección de
diabetes a través de retinopatías, también en el mundo de la creación artística
para la composición musical, incluso en detección y combinación de estilos
artísticos en la pintura.
¿Por qué TensorFlow?
¿Por qué se eligió TensorFlow como nombre para esta potente herramienta?
Es una de las primeras dudas que surgen. El motivo es que la principal
estructura de datos que se maneja en TensorFlow son los “tensores”, con un
“tensor” nos referimos a un conjunto de valores primitivos, por ejemplo
números flotantes o enteros, organizados en un array de 1 o N dimensiones, el
rango del “tensor” sería el número de dimensiones, por ejemplo:
 3: un único número sería un tensor de rango 0.
 [1. ,2., 3.]: un array sencillo sería un tensor de rango 1.
 [[1., 2., 3.], [4., 5., 6.]]: una matriz de 2×3 sería un tensor de rango 2.
 [[[1., 2., 3.]], [[7., 8., 9.]]]: este sería un ejemplo de un tensor de rango 3 con
dimensiones 2x1x3.
Usando tensores representaremos la información de nuestro problema, y sobre
estas estructuras de datos aplicaremos algoritmos que harán “fluir” estos datos
aplicando diferentes operaciones y transformaciones sucesivamente, como por
ejemplo en las diferentes capas de una red neuronal como veremos más
adelante, hasta conseguir el resultado esperado.

¿Cómo usar TensorFlow?


TensorFlow está implementado en C++ y Python, y la forma más
conveniente y sencilla de utilizarlo es a través del API que ofrece en
Python.
Como ya hemos mencionado, TensorFlow es código abierto y está disponible
en github. Sin embargo, la forma más rápida y recomendada de instalar
TensorFlow es a través de pip, la utilidad de gestión de paquetes de Python.
TensorFlow está disponible en los repositorios oficiales, por lo que instalarlo
es tan sencillo como:
1 $ pip install tensorflow

A partir de este momento ya podremos importar TensorFlow y utilizarlo en


nuestro código Python con una sencilla línea:
1 import tensorflow as tf

Un ejemplo aplicado
Vamos a ver un ejemplo aplicado de cómo podríamos usar una red neuronal
profunda con TensorFlow en un problema de clasificación. Para ello usaremos
un problema clásico, definido en 1936 por el biólogo y estadístico Ronald
Fisher: la clasificación de la flor Iris.
Fisher recopiló en igualdad de condiciones datos morfológicos de tres
variantes de flor iris:
 Iris setosa.
 Iris virginica.
 Iris versicolor.

Se fijó en el largo y el ancho de los sépalos y los pétalos de cada flor y,


tomando estas medidas en centímetros, construyó lo que se conoce
académicamente como el Iris dataset, compuesto por 50 muestras:

Las diferencias morfológicas entre cada una de las especies son pequeñas, por
lo que no es trivial distinguir una especie de otra. Lo que pretendemos es
entrenar nuestra red neuronal con esta información, para que aprenda
automáticamente de estos datos y que nos clasifique de forma correcta nuevas
observaciones de flores diciéndonos de qué especie son.
En el siguiente notebook, generado con Jupyter, tenemos el código completo
necesario para ejecutar esta red neuronal: tensorflow-iris.ipynb. Una vez
clonado el repositorio podríamos ejecutarlo en Jupyter de la siguiente forma:
1 $ jupyter notebook tensorflow-iris.ipynb

A continuación vamos a detallar algunas de las líneas más relevantes:


Cargar el dataset
Lo primero que tenemos que hacer es cargar el conjunto de datos que describe
las características morfológicas de las flores recogidas por Fisher. En este caso
vamos a utilizar la biblioteca de Python scikit-learn, que incluye una serie de
datasets de prueba entre los que se encuentra el de la flor iris:
1 [In] from sklearn import datasets

2 [In] iris = datasets.load_iris()

El conjunto de datos se estructura en “data” donde se recogen las medidas


morfológicas y “target” donde se etiqueta a qué subespecie pertenece cada
flor, codificadas con números enteros de la siguiente manera:

# Visualizamos los 10 primeros elementos del array “data” que contienen las
medidas de cada flor para las siguientes características: Largo de sépalo,
Ancho de sépalo, Largo de pétalo, Ancho de pétalo.
1 [In] data = iris.data

2 [In] print(data[:10])

4 [Out] array([[ 5.1, 3.5, 1.4, 0.2],

5 [ 4.9, 3. , 1.4, 0.2],

6 [ 4.7, 3.2, 1.3, 0.2],

7 [ 4.6, 3.1, 1.5, 0.2],

8 [ 5. , 3.6, 1.4, 0.2],

9 [ 5.4, 3.9, 1.7, 0.4],


10 [ 4.6, 3.4, 1.4, 0.3],

11 [ 5. , 3.4, 1.5, 0.2],

12 [ 4.4, 2.9, 1.4, 0.2],

13 [ 4.9, 3.1, 1.5, 0.1]])

14

# Visualizamos el array target que contiene el etiquetado con la


15
pertenencia a cada especie de acuerdo a la tabla de codificación:

16 [In] target = iris.target

17 [In] print(target)

18

[Out]
1
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
9
, 0, 0,

2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0 , 0, 0, 0, 0,

2 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1 , 1, 1, 1, 1,

2 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
2 , 1, 1, 1, 1,

2 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
3 , 2, 2, 2, 2,

2 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
4 , 2, 2, 2, 2,

25 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
Partir el dataset
A continuación vamos a dividir el dataset en dos conjuntos, usaremos el 80%
de los datos etiquetados para entrenar la red neuronal mientras que
reservaremos el 20% para chequear cómo de bien se comporta el algoritmo
contrastando el resultado de clasificación que nos dé la red neuronal con el
resultado correcto que tenemos en el array target.
De esta manera podremos obtener una estimación de la precisión del
algoritmo, o lo que es lo mismo: el número de veces que acierta.

Por simplicidad denominaremos “x” a los datos que describen las propiedades
de las flores y llamaremos “y” a la etiqueta que describe la pertenencia de una
flor a una especie u otra.
Para partir el dataset haremos uso de la función “train_test_split” que nos
simplifica la tarea:
# partimos el dataset en dos conjuntos, el de entrenamiento y el de
1
test
[In] x_train, x_test, y_train,
2 y_test = model_selection.train_test_split(data, target,
test_size=0.2, random_state=42)

Así obtenemos (x_train, y_train) con los datos de entrenamiento y por otro
lado (x_test, y_test) con los datos que reservaremos para validar nuestro
modelo.

Entrenar el modelo
Una vez tenemos los datos preparados, estamos en condiciones de construir
nuestra red de neuronas y entrenarla para que aprenda de los datos de
entrenamiento. En esta ocasión vamos a construir una red neuronal usando la
clase DNNClassifier, que nos ofrece una red neuronal profunda (Deep Neural
Network) que usaremos para clasificar.
La estructuraremos en 3 capas, con 10, 20 y 10 neuronas respectivamente, una
configuración de capas y neuronas que empíricamente se ha visto que encaja
bien para obtener una buena precisión en este problema.
En este enlace podemos encontrar más información sobre técnicas y consejos
para configurar una red de neuronas. Por último, indicaremos que el número
de clases es 3, es decir, sabemos que existen 3 subespecies de flor entre las
que podemos clasificar cada flor.

1 [In]
feature_columns = tf.contrib.learn.infer_real_valued_columns_from_inpu
t(x_train)

[In]
2 classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_co
lumns,

hidden_units=[10, 20
3
, 10],

4 n_classes=3)

5 [In] classifier.fit(x_train, y_train, steps=200)

Realizar un clasificación

Un vez tenemos nuestro modelo clasificador entrenado podemos probarlo


dándole los datos morfológicos de una nueva flor, y el modelo responderá
indicando en qué clase lo clasifica o lo que es lo mismo a qué especie
pertenece.

1 [In] classifier.predict(np.array([[6.1, 2.8, 4.7, 1.2]]))

2 [Out] [1]

Por ejemplo, en este caso, hemos pedido a nuestro modelo que haga una
predicción para la flor con características: (6.1, 2.8, 4.7, 1.2) y nos la ha
clasificado como de clase “1”, es decir, de la familia versicolor.

Comprobar la precisión

Por último, para comprobar la precisión de nuestro modelo, usaremos el


conjunto de datos de test que habíamos reservado. Le pediremos al modelo
que haga una clasificación para cada una de las flores que tenemos en ese 20%
de datos que hemos guardado aparte y compararemos la predicción del
algoritmo con el etiquetado inicial.
De esta manera obtendremos un número que nos indicará la precisión. Para
realizar el cálculo de esa precisión usaremos la función “accuracy_score”.

1 [In] predictions = list(classifier.predict(x_test))

2 [In] metrics.accuracy_score(y_test, predictions)

3 [Out] 0.966667
En este ejemplo hemos obtenido una precisión de 0.966667, lo que significa
que el algoritmo ha acertado en la clasificación de casi todas las flores del
conjunto de test.

Conclusión
Google ha sido pionero desde su nacimiento en el mundo de la Inteligencia
Artificial, impulsando la investigación y el desarrollo en este campo. Con
TensorFlow han dado sin duda un pasito más, impulsando como siempre la
innovación y abriendo el conocimiento a multitud de empresas, universidades,
ingenieros y científicos que basándose en tecnologías abiertas como
TensorFlow conseguirán logros fascinantes en los próximos años.

En resumen, Tensorflow es una herramienta increíble que nos ofrece un marco


de trabajo muy potente, pero que nos simplifica enormemente la complejidad
interna que supone el manejo de algoritmos de aprendizaje profundo.

Paradigma TechBrunch: Inteligencia


Artificial, el futuro está llegando ya está
aquí
por Diego Mosquera
 Madrid, España

 30 de marzo del 2017

 Inteligencia Artificial

 sin comentarios
¿Por qué todo el mundo habla de Inteligencia Artificial? ¿Qué posibilidades
nos ofrece la inteligencia de datos? ¿Cómo está afectando ya a nuestro día a
día? A todas estas preguntas (y algunas más) respondimos en nuestro
tercer TechBrunch: Inteligencia Artificial, el futuro está llegando ya está
aquí.
Después de ver en los anteriores encuentros cuál es el camino hacia la
transformación digital ycuáles son los gigantes digitales que no debemos
perder de vista, creíamos que el siguiente paso era ir más allá y poner foco en
lo realmente importante: el cliente, y hacernos la pregunta de cómo la
Inteligencia Artificial puede enriquecer las relaciones comerciales.

Tras años de experiencia ayudando a multitud de empresas a transformarse


digitalmente, hemos llegado a la conclusión de que una de las mayores
ventajas que nos aporta la transformación digital es la capacidad de priorizar
al cliente por encima de todo.
Poner el foco de atención en un cliente cada vez más exigente, que demanda
un trato personalizado y que tiene un abanico enorme donde elegir sus
productos y servicios, da a las compañías la oportunidad de ir un paso por
delante en el mercado.
Pero, ¿qué nos ofrece la Inteligencia Artificial en este proceso de
transformación digital? Para responder esta pregunta tan interesante,
reunimos a más de 50 amigos en las oficinas de Google el pasado 24 de marzo
y celebramos nuestro III TechBrunch en colaboración con Google Cloud.
Sin duda, IA First es la nueva tendencia que ya está aquí, como nos
contó Isaac Hernández, Country Manager de Google Cloud en Iberia. Esto es
posible, en este momento, porque coexisten grandes volúmenes de datos con
los modelos adecuados y con la potencia de computación necesaria.
Isaac Hernández, Country Manager de Google Cloud en Iberia, en la charla “AI First”

La aplicación de Machine Learning y Deep Learning es una realidad y


Google ya lo está aplicando en usos tales como: mejorar su buscador, filtrar
spam en Gmail, organizar mejor nuestros archivos de Google Drive para
mostrarnos aquellos que es más probable que vayamos a necesitar primero,
mejorar la calidad de las traducciones de Google Translate traduciendo en
tiempo real texto dentro de imágenes o lograr mejorar la eficiencia energética
de sus datacenters para ahorrar hasta un 40% en electricidad. Y es que, en el
último año, se han producido mayores avances que en los 10 años anteriores.
Las herramientas más adecuadas para implementar Machine Learning
se encuentran en la plataforma de Google. Hace año y medio
liberaron Tensorflow, de modo que puede usarse en cualquier máquina tanto
cloud como on-premise. Machine Learning Engine es un servicio totalmente
gestionado de TensorFlow donde sólo es necesario ocuparse de crear los
modelos y entrenarlos. Y también pone a nuestra disposición una serie de
APIs, que incluyen un conjunto de modelos ya entrenados y orientados a una
serie de funciones bien definidas como son: Vision API, Speech API, Jobs
API, Translation API, Natural Language API, Video Intelligence.
Nuestro presidente, Óscar Méndez, en su charla “Artificial Intelligence: Trick
or trip?”, comenzó contextualizando la Inteligencia Artificial, una disciplina
que engloba diversas áreas como la informática, la sociología, la psicología, la
filosofía, la neurociencia, las matemáticas y la biología. Y donde existen dos
enfoques principales.
Óscar Méndez, presidente de Paradigma, en su charla “Artificial Intelligence: Trick or trip?”

Un modelo Weak AI, donde los sistemas que se construyen pueden


comportarse como humanos para un rango de tareas limitado. Y otro modelo,
hipotético en la actualidad, Strong AI, donde los sistemas se comportarán con
las mismas o más capacidades cognitivas que los humanos y no solo servirán
para realizar cualquier tarea intelectual, sino también para explicar cómo
piensan los humanos.
La evolución del hardware podría hacer posible la inteligencia artificial Strong
próximamente. Aunque no parece que vaya a ser posible en un futuro cercano
porque, por el momento, no disponemos del modelo para comprender cómo
funciona el cerebro realmente.

En Weak AI existen diferentes técnicas y un número finito de algoritmos que


combinados de forma adecuada producirán resultados excelentes. Sin
embargo, como resaltó Oscar, lo que permitirá maximizar los resultados y
lograr una mayor precisión será contar con un gran número de datos.
Datos que deberán ser tratados con un enfoque científico. Es indispensable
recolectarlos todos en un único punto con la infraestructura adecuada,
dotarlos de Gobierno y metadatos y contar con equipos
multidisciplinares con los conocimientos necesarios.
Por todo ello, para manejar estos grandes volúmenes de datos y aplicar
inteligencia artificial se necesitan experiencia técnica y las herramientas
adecuadas, así que resulta imprescindible escoger el mejor proveedor cloud
y el mejor partner.
Le correspondió cerrar el evento a José Ruiz, director de Desarrollo de
Negocio de Paradigma Digital, donde nos enseñó demos en vivo de todo lo
que se puede llegar a hacer con las APIs de Machine Learning.

José Ruiz, director de Desarrollo de Negocio de Paradigma Digital, haciendo una demo sobre APIs
de Machine Learning

Nos mostró toda la potencia y precisión que ofrece el servicio de análisis de


imágenes, Cloud Vision API, para clasificar imágenes, detectar caras,
identificar objetos, detectar la falsedad de las imágenes, detectar contenido no
apropiado, leer palabras impresas o detectar dónde se ha realizado una foto sin
metadatos de geolocalización.
También pudimos ver cómo se puede usar Natural Language API para
analizar la imagen de marca y detectar sentimiento. En la demostración
de Speech API vimos cómo transcribe perfectamente todo el texto de un
audio, analiza detalladamente su significado y detecta las emociones de la
persona que habla.
Al terminar las charlas, y después de sobrevolar el concepto de Inteligencia
Artificial y ver todas las posibilidades que nos ofrece, quisimos invitar a todos
los asistentes a sobrevolar Madrid a través de una experiencia de realidad
virtual.

Experiencia de realidad virtual en nuestro III TechBrunch

Un concurso muy entretenido y divertido que terminó con un grupo de


ganadores que tuvo la suerte de llevarse a casa unas Cardboard, las gafas de
realidad virtual de Google.
Ganadores del concurso de experiencia virtual; se llevaron a casa unas Cardboard, las gafas de
realidad virtual de Google

Después del concurso también tuvimos rato para charlar y disfrutar de un


picoteo con unas increíbles vistas desde la planta 26 de las oficinas de Google.
El encuentro se convirtió en una jornada muy productiva en la que hablamos
de las novedades más importantes que nos trae la Inteligencia Artificial;
compartimos conocimiento, anécdotas, experiencias y, sobre todo, pasamos
una estupenda mañana con todos los asistentes.
Asistentes del III TechBrunch sobre Inteligencia Artificial

Desde Paradigma agradecemos la colaboración de todo el equipo de Google


Cloud y a todos los invitados que asistieron a nuestro III TechBrunch.
Nosotros no podemos dejar de pensar ya en el siguiente ;)
De la ficción a la realidad: la
maduración de la Inteligencia Artificial
por Manuel Zaforas
 Madrid, España

 21 de septiembre del 2017

 1 comentario
En los últimos tiempos se está oyendo hablar cada vez más sobre inteligencia artificial,
dispuesta a quedarse ya en nuestras vidas.
La encontramos en nuestras casas, al alcance de la mano, en televisores, domótica,
apps… las empresas cada vez la usan más en diferentes campos como la atención al
cliente o el estudio del comportamiento de los mismos.
Algunos hablan ya de una nueva revolución industrial, pero ¿cómo hemos llegado a este
punto?,¿cuál ha sido la historia de la evolución de la Inteligencia Artificial? ¿qué
acontecimiento y tecnologías han hecho posible que estemos finalmente en la época
dorada de la IA?

Orígenes
El origen de la Inteligencia Artificial como disciplina data de 1956 durante un workshop
que tuvo lugar en Dartmouth College. En esta cita se reunieron durante varias semanas
algunos de los matemáticos y científicos más relevantes del momento, como Marvin
Minsky o John McCarthy(inventor del lenguaje Lisp), que pusieron en común sus ideas
y acuñaron por primera vez el término “Inteligencia Artificial”.
Algunos de los asistentes celebrando el 50 aniversario de la conferencia de Darmouth en 2006.

Sin embargo, podemos encontrar algunos antecedentes relevantes en la historia como


el Test de Turing, desarrollado en 1950 por Alan Turing. Es aquí donde profundiza
sobre la idea del pensamiento de las máquinas y cómo podríamos distinguir a un
humano de un robot a través de una conversación por teleprinter.

Inviernos y primaveras
A raíz de la conferencia de Dartmouth se disparó el interés en la investigación en
inteligencia artificial. Algunos de los primeros resultados fueron impresionantes, como
los avances en procesamiento del lenguaje natural o los sistemas de resolución
de problemas basados en heurísticas. Las expectativas eran muy altas y la
inversión se multiplicó, agencias como DARPAinvirtieron millones de dólares de la
época en este campo.
Sin embargo, los resultados no fueron los esperados. Aunque se hicieron grandes
avances académicos y se sentaron las bases de lo que vendría después, las expectativas
estaban demasiado altas y no se valoró adecuadamente la dificultad de los retos que
había por delante.
La tecnología estaba inmadura en muchos aspectos. Así que, a principios de los 70,
llegó una crisis conocida como “el primer invierno de la inteligencia artificial”, donde
la inversión cayó notablemente y los avances se ralentizaron. La mayoría de
proyectos de inteligencia artificial no pasaban de ser “juguetes” o pruebas de
concepto.
Fotograma de la película ‘2001: una odisea del espacio’ (año 1968).

En los 80 el campo de la inteligencia artificial resurge con un nuevo impulso,


fundamentalmente liderado por el empuje de los “sistemas expertos” que, gracias a
complejos motores de reglas, pretendían modelar el conocimiento de un experto en un
área muy concreta.
Estos sistemas sí que tuvieron implantación en el mundo empresarial, pero su aplicación
fue muy limitada y no tuvieron un gran impacto en la vida de las personas, estaban muy
lejos de las aplicaciones que el cine imaginaba en aquella época con películas
como ‘2001: una odisea del espacio‘ o ‘Blade runner‘.
De este modo llegó el “segundo invierno”, donde había un gran escepticismo sobre si
las aplicaciones reales podrían tener o no inteligencia artificial.
En los 90 los avances no fueron especialmente significativos y tuvieron escasa
aplicación en productos o servicios reales. Podemos destacar la victoria de Deep
Blue de IBM contra Kasparov, el campeón del mundo de ajedrez, como uno de los
eventos más reseñables.
Sin embargo, algo estaba cambiando. Era el comienzo de la era de Internet y el
nacimiento de grandes empresas, como Google o Amazon, y nuevas tecnologías
libres, como GNU/Linux,marcarían la diferencia y cambiarían el mundo.

El boom del Big Data


Finalmente en torno al 2010 sucedieron varios eventos que tuvieron un impacto radical
en la historia de la inteligencia artificial.
El primero de ellos fue el despegue definitivo de las tecnologías Cloud, que se
impuso como el nuevo paradigma donde construir los productos digitales. En muy
pocos años teníamos una capacidad de cómputo y de almacenamiento enormes a un
coste muy asequible y con un mínimo esfuerzo.
Por otro lado, surgió todo un nuevo ecosistema de tecnologías Big Data. Nuevas
herramientas, que apoyadas en esta capacidad de almacenamiento y cómputo, eran
capaces de ingerir y procesar grandes volúmenes de datos, en ocasiones
desestructurados, a gran velocidad.
La generalización de mobile, IoT o las redes sociales han puesto a nuestro alcance
nuevas y enormes fuentes de datos. Y gracias a Big Data tenemos la capacidad de
aprovecharlas.
Por último, Internet ha permitido trabajar de una manera mucho más ágil, así como
colaborar y difundir el conocimiento. Gracias al open source y el open
data tenemos a nuestro alcance datos y algoritmos que hace poco parecían
ciencia ficción.
Estas grandes disrupciones han hecho que la investigación y los avances en inteligencia
artificial se hayan disparado en los últimos años. En concreto en el área de Machine
Learning y Deep Learning, donde los algoritmos son capaces de aprender de los datos y
realizar tareas inteligentes como clasificar, predecir o reconocer patrones.
Las grandes empresas tecnológicas como Google, Amazon, Facebook o
Microsoft están apostando muy fuerte en esta línea y, en los últimos años, estamos
viendo avances reales en productos y servicios del día a día, por ejemplo los asistentes
de voz inteligentes como Siri oAlexa, o los vehículos y drones autónomos o asistidos
como los de Google o Tesla.

Conclusiones y futuro
Parece que por fin la inteligencia artificial ha llegado su punto de madurez. Cada
día que pasa surgen nuevas aplicaciones fascinantes, pero también nuevos temores e
incertidumbres. ¿Hasta dónde llegará la inteligencia de las máquinas?, ¿en el futuro los
trabajos serán realizados por máquinas inteligentes o surgirán nuevos trabajos para las
personas gracias a la inteligencia artificial?, ¿podría ser un peligro para el ser humano la
inteligencia artificial?
Mucho se ha especulado en la literatura o el cine sobre estos temas durante el siglo XX,
pero la diferencia hoy en día es que el debate no es ciencia ficción, sino que está en la
calle. Un buen ejemplo son los diferentes puntos de vista y la discusión que
mantienen Mark Zuckerberg, fundador de Facebook y Elon Musk, fundador
de Tesla y SpaceX, sobre el tema en las redes sociales.
Otras personalidades relevantes como Bill Gates y Steven Hawking se han unido a este
debate público. Sin duda hay aspectos éticos que debemos tener en cuenta en el debate y
riesgos que no podemos obviar.

Manuel Zaforas

 Perfil de Twitter de Manuel Zaforas

 Perfil de Linkedin Manuel Zaforas


Manuel Zaforas es Ingeniero Superior en Informática por la UPM. Está interesado en
Big Data, AI, Data Science, Machine Learning, Deep Learning, HPC, IoT, Cloud,
NoSQL, NewSQL, Python y Agile. Actualmente trabaja en Paradigma como Scrum
Master y Arquitecto Software dentro del área de AI & Big Data, ayudando a diferentes
compañías a llevar a cabo sus procesos de transformación digital gracias al cambio
cultural y a la implantación de la tecnología más innovadora.

Ver toda la actividad de Manuel Zaforas

Comentarios

1. Un cóctel explosivo
4 julio, 2018 a las 01:37
Quiero hacer una reflexión. Una máquina que se comporte como un humano, es
inteligente? Voy más allá. Una máquina que se comporte dentro de los parámetros
que podemos llamar “inteligente”, lo es?

Un sistema de reglas sencillas que asocien un país con su capital puede llamarse
sistema inteligente. No crees? O sino cuando tu sobrino de 3 años escucha a su
hermano recitando los países de Europa y sus capitales, y se queda con todos
ellos para después soltartelos a ti uno a uno, dirías…que inteligente es mi chico!!!
Con solo 3 añitos y se ha aprendido todas esas capitales y sus países!!! Eso
mismo lo puedes programar en una máquina.

Es decir, en estos casos el comportamiento inteligente no es más que la apariencia


de inteligencia, para responder de una manera que parece inteligente en un
contexto muy pequeño y concreto.

Y los sistemas antiguos de riesgos, que se basaban en muchas reglas


encadenadas, puede parecer inteligente, porque al final tiene respuestas precisas
a muchos casos que incluso un humano tendría mucha dificultad para memorizar.
Y eso según el contexto de uso, podría decirse que es inteligente.

Pero la realidad es que la inteligencia artificial, como se está tiende hoy, no tiene
sentido si no incorporas el aspecto de “aprender” porque solo así aseguras que el
sistema se adapta a un escenario que realmente es cambiante. Solo así te
aseguras que “no se te olvidó ningún caso en el conjunto de las mil reglas que
programaste”, porque realmente las reglas las infiere el sistema de manera
automática. Es decir, un sistema púede parecer inteligente aún usando 4 reglas
como hace 40 años. Pero no valdrá más que para el caso de uso que fue
programado. Pero para poder extenderse a cosas mucho más complejas, ahí la IA
no tiene mucho sentido sin alguna de las variantes de Machine Learning que hay.
Incluso el swarm computing tiene cierto aspecto de aprendizaje para lograr la
convergencia en ese alineamiento que necesita la red de individuos. Aprendizaje,
esa es la palabra clave.

Hoy por hoy, la IA no es lo que era cuando Turing creó su test, por lo tanto no es
suficiente esa asociación que se hace con lo sofisticado del lenguaje para decidir si
detrás del biombo hay un hombre o una maquina.

Tú sabías que el WAIS correlaciona en sus puntuaciones bastante alto con la


subprueba de comunicación/lenguaje? (Vocabulario, semejanzas, información,
comprensión). Dicho así parece que la psicología tiene más que estudiado este
tema. Pero la verdad es que no es muy complicado hoy por hoy que un bot haga
creer a una persona que es una persona en vez de un bot. Porque hay personas
que hablan y se expresan todavía peor, por lo que pasan desapercibidos… ;)

Das könnte Ihnen auch gefallen