Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Machine Learning
Modelización Numérica
13.04.2020
─
1
Concepto (¿Qué es? ¿Cómo funciona? ¿Qué es la I.A.?) () 3
Aplicaciones de la estadística () 7
Ámbitos de aplicación () 8
Nubes inteligentes () 9
Creacion/Implementacion 12
Creacion 12
Optimizacion () 15
Implementación () 21
Problemas () 25
Algoritmos () 28
Historia y avances () 31
Importancia () 31
Diferentes aplicaciones () 31
Quien lo utiliza () 32
Comparación de soluciones () 33
Bibliografía 42
2
3
Los algoritmos de regresión lineal ajustan una línea recta a los datos numéricos,
generalmente realizando inversiones matriciales para minimizar el error cuadrado entre la
línea y los datos. El error cuadrado se utiliza como la métrica porque no le importa si la
línea de regresión está por encima o por debajo de los puntos de datos; solo te importa la
distancia entre la línea y los puntos.
con suerte, el proceso converge. Las variantes en el descenso más pronunciado intentan
mejorar las propiedades de convergencia.
Los algoritmos de aprendizaje automático son incluso menos sencillos que la regresión no
lineal, en parte porque el aprendizaje automático prescinde de la restricción de adaptarse
a una función matemática específica, como un polinomio.
Hay dos categorías principales de problemas que a menudo se resuelven mediante el
aprendizaje automático: la regresión y la clasificación. La regresión es para datos
numéricos (por ejemplo, ¿cuál es el ingreso probable para alguien con una dirección y
profesión determinada) y la clasificación es para datos no numéricos (por ejemplo, ¿el
solicitante incumplirá con este préstamo?).
Los problemas de predicción (por ejemplo, ¿cuál será el precio de apertura para las
acciones de Microsoft mañana?) Son un subconjunto de problemas de regresión para los
datos de series de tiempo. Los problemas de clasificación a veces se dividen en problemas
binarios (sí o no) y de múltiples categorías (animal, vegetal o mineral).
Aprendizaje Supervisado
históricos correctamente clasificados. En otras palabras, para cada caso de ejemplo que le
demos, necesita saber si el correo era spam o no.
Sabiendo cuál era la respuesta correcta, la Inteligencia Artificial aprende de sus propios
errores. Muchos algoritmos supervisados empiezan dando respuestas aleatorias y después
van mejorando a medida que aprenden de sus errores.
Esta característica hace a este tipo de aprendizaje automático muy atractivo para muchos
negocios. En el entorno empresarial, el aprendizaje supervisado también se conoce como
«análisis predictivo«.
Proceso del aprendizaje supervisado
Aprendizaje No Supervisado
Aprendizaje Semi-supervisado
Conseguir datos etiquetados, en algunos casos, es bastante difícil. Por ejemplo, si
queremos construir nuestro sistema de detección de spam, alguien tiene que decidir
cuáles mensajes son spam y cuáles no. Y ese alguien somos nosotros, los humanos.
Necesitamos hacer este trabajo manual para que la Inteligencia Artificial pueda aprender
qué es lo que tiene que hacer.
Cuando esto se hace a una escala mayor, no resulta tan pesado. Por ejemplo, si usas el
correo de Google, cada vez que marcas un correo como spam, estás ayudando a todos los
demás usuarios de gmail. Google usa crowdsourcing (colaboración distribuida) para que
funcione muy bien con muy poco trabajo individual … aunque sea mucho trabajo si
tenemos en cuenta a todas las personas que contribuyen.
Proceso del aprendizaje semi-supervisado
1. Recopilar los pocos datos históricos históricos que tengan resultados disponibles
6. Usar otro modelo de machine learning supervisado con los datos etiquetados
inicialmente y los datos etiquetados automáticamente
El aprendizaje por refuerzo es una especie de aprendizaje supervisado … sin llegar a serlo.
En el aprendizaje supervisado, para cada dato que ofrecemos como ejemplo, también
decimos cuál fue solución correcta. En el aprendizaje por refuerzo, no podemos dar la
solución correcta hasta saber lo que la Inteligencia Artificial va a hacer. Normalmente hará
muchas cosas, y sólo sabremos cómo de bien o de mal lo hizo después de un tiempo.
Las decisiones sobre las tasas tributarias, los programas sociales, el gasto de defensa y
muchos otros asuntos pueden hacerse de manera inteligente tan sólo con la ayuda del
análisis estadístico.
El machine learning o aprendizaje automático no existiría sin las estadísticas, ya que, el
mismo se basa en la teoría del aprendizaje estadístico, desarrollada en 1960 y expandida
sobre estadísticas tradicionales.
● Ciencias de la computación.
● Finanzas.
● Hospitales y medicina.
● Industria pesada.
● Transporte.
● Juegos y juguetes.
● Musica.
● Aviación.
● Otros.
9
● Software como Servicio (SaaS): significa que se utiliza una aplicación completa
que se ejecuta en el sistema de otra persona, estos pueden ser, por ejemplo: el
correo electrónico basado en web y documentos de Google.
Los servicios cloud comercializados a través de Amazon, Google o Microsoft, nos ofrecen,
de una manera sencilla y flexible, una serie de opciones que van desde la creación de
máquinas virtuales hasta el uso de productos como servicio, por ejemplo, las bases de
datos. Fueron inicialmente concebidos para proveer infraestructura pero, poco a poco, han
ido cubriendo otras necesidades como el almacenaje y procesado Big Data, Business
Intelligence o, incluso, Internet de las Cosas. Esta evolución ha hecho que los proveedores
también hayan incluido uno de los temas tecnológicos más candentes hoy en día: la IA.
Gracias a la IA, se están consiguiendo hitos como controlar una casa con la voz (Google
Home o Alexa), aprender a ganar al campeón del mundo del juego chino de estrategia Go o
predecir la demanda de energía para una compañía eléctrica. El cloud ha sido un
dinamizador determinante en la consecución de estos logros de la IA pero, su mayor
contribución ha sido su democratización, haciéndola accesible no solo a los grandes sino a
todo el mundo mediante servicios cada vez más variados y sencillos.
forma que el usuario no tenga que poseer esta tecnología tan especializada y
cara.
Ventajas de los servicios de IA en el cloud:
Flexibilidad: Permite utilizar solo los recursos que hacen falta y cuando hacen falta, de
forma que no requerimos de una infraestructura especializada “en casa”.
Potencia: C
on los servicios especializados de infraestructura (GPUs, TPUs, etc.) se consigue
entrenar modelos de forma mucho más eficiente y tener resultados mucho más rápido.
Sencillez: La mayoría de servicios cloud están pensados para requerir una mínima
administración, ofreciendo APIs sencillas e interfaces intuitivas para acceder a ellas.
Integración: L
os proveedores cloud ofrecen muchos otros servicios útiles en proyectos de
IA que son fácilmente integrables, como servicios de ingestión de datos, Internet de las
Cosas, de procesado en tiempo real o de almacenamiento y analítica.
12
Creacion/Implementacion
Creacion
Pasos para la creación ()
Para programar inteligencia artificial es necesario, primero, entender qué es una red
neuronal artificial.
Una red neuronal o red conexionista es un conjunto de nodos (neuronas) conectadas entre
sí, formando una estructura de capas de profundidad, también llamadas “capas de
aprendizaje”. Esto último se debe a que dichas capas son las que permiten que la
inteligencia artificial pueda “aprender cosas”.
Entonces, a través de estas capas, la red procesa unos datos numéricos de entrada (inputs)
para dar un resultado (output). El output puede ser un número o un array de los mismos.
El resultado siempre viene acompañado de otro valor numérico entre 0 y 1, llamado loss
(pérdida). Este representa la precisión con la que la red ha obtenido un resultado.
13
Al programar inteligencia artificial se debe tener en cuenta que existen tres tipos de capa
en una RNA:
❏ Capa de entrada (input layer): Es la primera capa de la red, así que debe tener la
misma cantidad de neuronas que datos tenga el input. Por ejemplo, si queremos
que nuestro input sea una imagen de 4096 píxeles, nuestra primera capa tendrá
4096 neuronas.
Toda neurona artificial o nodo tiene un peso (weight), un bias y una función de activación.
En este artículo usaremos la ‘Sigmoid activation function’.
Si a una neurona le entra un input ‘x’ y esta envía un output ‘y’, la forma de calcularlo será:
Entonces, para todas las neuronas de una capa podemos definir un vector W1, el cual
representará todos los pesos de todas las neuronas de la primera capa, W2 de la segunda
y así sucesivamente. Lo mismo ocurre con las bias, que llamaremos B1, B2, etc.
Y=σ(W2σ(W1x+B1)+B2)
Al programar inteligencia artificial debemos entender que el objetivo de toda RNA es
ajustar tanto los pesos como los bias, esto con el fin de dar los resultados más precisos
posibles.
Para entrenar las RNA al momento de programar inteligencia artificial se deben seguir dos
pasos:
❏ Feedforwarding
15
❏ Backpropagation
Luego de medir el error de nuestra predicción (loss), necesitamos encontrar una manera
de propagar el error y actualizar los pesos y bias. Para determinar la cantidad indicada de
ambos parámetros, debemos conocer la derivada de la loss function con respecto a los
pesos y bias.
Optimizacion ()
Existen una gran cantidad de algoritmos de búsqueda tanto determinística como aleatoria,
individual como poblacional, local como global, que se utilizan principalmente para
16
resolver algún problema de optimización. Aquí podemos incluir a los algoritmos genéticos,
recocido simulado, antcolony, técnicas de búsqueda local, enjambres, etc.
Algoritmos genéticos:
Algoritmo Antcolony:
En una serie de experimentos en una colonia de hormigas donde existe la elección de dos
rutas de distancias diferentes que llevan hasta la fuente de comida, los biólogos
observaron que las hormigas tienden a usar la ruta más corta.El siguiente modelo explica
este comportamiento:
19
Básicamente empieza con una solución inicial y busca en su vecindad por una mejor
solución. Si la encuentra, reemplaza su solución actual por la nueva y continua con el
proceso, hasta que no se pueda mejorar la solución actual.
20
La vecindad son todas las posibilidades de soluciones que se consideran en cada punto.
El cómo se busca la vecindad y cuál vecino se usa en el reemplazo a veces se conoce como
la regla de pivoteo (pivoting rule), que en general puede ser:
Algoritmos de enjambre:
los sistemas de inteligencia de enjambre están típicamente formados por una población
de a
gentes simples que interactúan localmente entre ellos y con su medio ambiente. Los
agentes siguen reglas simples y, aunque no existe una e
structura de control centralizado
que dictamine el comportamiento de cada uno de ellos, las interacciones locales entre los
agentes conduce a la e
mergencia de un comportamiento global complejo. Como ejemplos
21
naturales se incluyen las colonias de hormigas, el alineamiento de las aves en vuelo, el
comportamiento de r ebaños durante el pastoreo y el c recimiento bacteriano.
Implementación ()
Consejos para la Implementación ()
conveniente guardar una parte de nuestro set de datos para poder validar lo aprendido
durante el entrenamiento, con muestras que la máquina nunca ha visto y comprobar que
sigue dando un buen resultado.
Siendo la generalización el objetivo del Machine Learning trae como consecuencia que sólo
con datos “no alcanza”, no importa con cuántos contemos.
El machine learning no hace magia. Sin datos no funcionará, y cuánto más datos mejor.
Pero no lo son todo. Deberemos combinar “conocimiento” con los datos.
Pero debemos saber que podemos caer en el overfitting de diversas maneras, a veces sin
darnos cuenta. Dos de sus caras son:
A veces puede ocurrir que un algoritmo -aprendiz- que “parece menos potente”, obtenga
mejor resultado que uno “super poderoso” que cae en overfitting.
23
Cuando tenemos muchas features, por ejemplo 100 ó más, puede que alguno de nuestros
algoritmos de aprendizaje no logre generalizar ó que lo haga mal. A esto se le llamó “la
maldición de la dimensionalidad” (Bellman, 1961). Esto dependerá también de la
distribución de los datos de entrada, pero para entenderlo: con el algoritmo k-nearest
neighbor es fácil visualizar en 2 ó 3 dimensiones los clusters. Pero al aumentar
dimensiones puede ocurrir que para el algoritmo todos los puntos sean vecinos cercanos
unos de otros, devolviéndonos resultados aleatorios.
Debemos tener esto en cuenta y si fuera el caso utilizar algún algoritmo de reducción de
dimensiones (PCA, t-SNE) para aplacar el problema.
24
Conseguir más muestras para entrenamiento utilizando un algoritmo simple, puede ser
mejor que un algoritmo complejo que tarde tanto en ejecutar y no termina nunca.
En ciencias de la computación, solíamos tener dos limitantes: tiempo y recursos cómo la
memoria. Ahora, con el Machine Learning aparece una tercera: los datos de
entrenamiento. Actualmente podemos encontrar cantidades masivas de datos y nuestro
“cuello de botella” es el tiempo. Si bien contar con más y más datos es bueno y hasta
impulsa la creación de modelos (algoritmos) más complejos para aprovecharlos, se da una
paradoja: en la práctica algoritmos «más simples» pueden obtener buenos resultados en
tiempo razonable contra algoritmos complejos que tardan una eternidad.
Entonces el consejo es: al afrontar un problema, empecemos probando con los modelos
más sencillos a más complejos (solo de ser necesario).
Ensamble de Modelos
Está bien aplicar un modelo para resolver el problema. Pero estudios han demostrado que
hacer ensamble de modelos muchas veces mejora significativamente los resultados. Esto
consiste en combinar más de un modelo (por ejemplo una red neuronal, K-nn, árboles,
etc). Las tres técnicas más utilizadas son (ejemplo para clasificadores de perros y gatos):
Hubo un postulado algo confuso que parecía decir que al aplicar un modelo simple
obteníamos la mayor precisión (frente a uno complejo). Sin embargo no hay que confundir:
25
la simpleza no implica mayor precisión, esto se puede comprobar fácilmente con el punto
anterior, pues al hacer ensamble de stacking de modelos vemos claramente que no se
deteriora el resultado y en todo caso lo puede mejorar. Entonces podemos optar por
modelos simples que ya cuentan con ventajas intrínsecas (probablemente en tiempo y
coste) pero no necesariamente por la precisión del resultado.
Podemos tender a pensar que para cualquier problema que podamos representar podrá
ser construida una máquina que lo resuelva. Sin embargo hay problemas que nunca
podrán ser “aprendidos” por una máquina, pues por ejemplo no tenemos las muestras
suficientes para que generalice. En esos casos, podemos fácilmente encontrar la
representación pero no lograremos dar con una solución en ML.
Para alimentar nuestras máquinas de Aprendizaje Automático utilizamos datos que son
muestras observables donde la variable predictiva no está bajo control del algoritmo (en
contraposición a muestras experimentales). Por esto es que las correlaciones que
encontremos pueden ser interpretadas como señales de responsabilidad de la causa del
problema. La realidad es que no necesariamente esa correlación implica la causa si no que
son una buena pista para ponernos a investigar las conexiones que llevan a esos
resultados.
Problemas ()
Algunos de los problemas resueltos mediante Machine Learning son:
Detección de SPAM
La detección de spam es el primer problema resuelto por ML. Hace cuatro años, los
proveedores de servicios de correo electrónico utilizaban técnicas basadas en reglas
preexistentes para eliminar el correo no deseado. Pero ahora los filtros de spam crean
nuevas reglas ellos mismos usando ML. Gracias a las "redes neuronales" en sus filtros de
spam, Google ahora cuenta con un 0.1 por ciento de la tasa de spam. Las "redes
neuronales" similares al cerebro en sus filtros de spam pueden aprender a reconocer el
correo basura y los mensajes de phishing mediante el análisis de las reglas en una enorme
colección de computadoras. Además de la detección de spam, los sitios web de redes
sociales utilizan ML como una forma de identificar y filtrar el abuso.
Recomendación de producto
Diagnóstico médico
El aprendizaje automático en el campo médico mejorará la salud del paciente con costos
mínimos. Los casos de uso de ML están haciendo diagnósticos casi perfectos, recomiendan
los mejores medicamentos, predicen los reingresos e identifican pacientes de alto riesgo.
Estas predicciones se basan en el conjunto de datos de registros de pacientes anónimos y
los síntomas exhibidos por un paciente. La adopción de ML está ocurriendo a un ritmo
rápido a pesar de muchos obstáculos, que pueden ser superados por profesionales y
consultores que conocen los obstáculos legales, técnicos y médicos.
27
La segmentación del cliente, la predicción de abandono y la predicción del valor de vida útil
del cliente (LTV) son los principales desafíos que enfrenta cualquier comerciante. Las
empresas tienen una gran cantidad de datos relevantes de marketing de diversas fuentes,
como campañas de correo electrónico, visitantes del sitio web y datos de clientes
potenciales. Utilizando la minería de datos y el aprendizaje automático, se puede lograr
una predicción precisa de las ofertas e incentivos de marketing individuales. Usando ML,
los expertos en marketing pueden eliminar las conjeturas involucradas en el marketing
basado en datos. Por ejemplo, dado el patrón de comportamiento de un usuario durante
un período de prueba y los comportamientos pasados de todos los usuarios, se pueden
predecir las posibilidades de conversión a la versión paga. Un modelo de este problema de
decisión permitiría que un programa desencadenara intervenciones del cliente para
convencer al cliente de que se convierta temprano o participe mejor en la prueba.
Analisis financiero
Debido al gran volumen de datos, la naturaleza cuantitativa y los datos históricos precisos,
el aprendizaje automático se puede utilizar en el análisis financiero. Los casos de uso
actuales de ML en finanzas incluyen comercio algorítmico, gestión de cartera, detección de
fraude y suscripción de préstamos. Según el informe de Ernst and Young sobre "El futuro
de la suscripción", el aprendizaje automático permitirá evaluaciones continuas de los datos
para la detección y análisis de anomalías y matices para mejorar la precisión de los
modelos y las reglas. Y las máquinas reemplazarán un gran número de posiciones de
suscripción. Las aplicaciones futuras de ML en finanzas incluyen chatbots e interfaces de
conversación para servicio al cliente, seguridad y análisis de sentimientos.
Mantenimiento predictivo
datos históricos del dispositivo, un entorno de análisis flexible, una herramienta de
visualización del flujo de trabajo y un ciclo de retroalimentación de operaciones.
Algoritmos ()
Este tipo de algoritmos también son conocidos como aprendizaje basado en memoria, y
básicamente crean un modelo a partir de una base de datos predeterminada. Además, le
agregan datos nuevos con el fin de comparar qué tan similares son con las muestras que
ya existen para lograr hacer un match y realizar una mejor predicción.
Los algoritmos basados en instancias más utilizados son los k-Nearest Neighbor (kNN) y el
Self-Organizing Map.
29
Este conjunto de algoritmos, tienen como objetivo principal aprovechar la estructura que
existe de forma no supervisada con el fin de realizar una simplificación de los datos para
poder comprimirlos. Estos algoritmos sirven para visualizar mucho mejor los datos y para
sintetizar un conjunto de variables para el uso de un algoritmo supervisado.
Además, nos dan la facilidad de graficar aquellos modelos que son muy complejos y que en
un inicio poseían múltiples características.
Este es uno de los grupos de algoritmos más nombrados y, por tanto, más usados. Se
encargan de ajustar la toma de decisiones basándose en los valores reales y actuales de los
atributos del big data. Funcionan buscando el mejor árbol para poder balancear la
posibilidad de ocurrencia y definir cuál es su importancia en cada rama y cada hoja, de esta
manera logran catalogar un resultado.
Se utilizan para clasificar información, estructurar los caminos que se han tomado y medir
su probabilidad de ocurrencia para mejorar su precisión en cada decisión.
Entre estos algoritmos destacan los árboles de clasificación y regresión (CART) y decisión
de árbol condicional.
Algoritmos de Regresión
Procurar utilizar los más usados como lo son el algoritmo de regresión lineal y el algoritmo
de regresión logística.
30
Los algoritmos más utilizados en este grupo son los k-means, k-medians e hierarchical
clustering.
Este tipo de algoritmos están inspirados en nuestra red neuronal, desarrollando así el deep
learning, la autonomía del aprendizaje automático.
Entre los algoritmos de redes neuronales más destacados del machine learning se
encuentran redes básicas y clásicas como compuerta xor, perceptron, multi lavered
perceptron (MLP) y back-propagation.
Algunos algoritmos son convolutional neural networks o long short term memory neural
networks.
31
Algoritmos Bayesianos
Los más empleados en machine learning son el gaussian naive bayes, bayesian network y
multinomial naive bayes.
El Procesamiento del Lenguaje Natural tiene como fin hacer que una máquina pueda
comprender el lenguaje humano tanto de manera escrito como oral mediante un conjunto
de algoritmos.