Una introducción a Deep Learning
¿Quien soy? Jennifer Barry Hago investigación y gerencia de proyectos
¿Quien soy? David Rostcheck Soy asesor de data science Sigue mis artículos en LinkedIn
Somos los evangelistas de Santiago para Turi GraphLab Create un producto que acelera el desarrollo de aplicaciones inteligentes
también ofrecemos cursos en microcontroladores y robótica
DEEP LEARNING
en algunas pruebas, Deep Learning ya muestra habilidades al mismo nivel de seres humanos
Estos incluyen: computadores que entienden lenguaje natural vehículos autónomos programas que pueden identificar lo que está ocurriendo en un video
Es notable que estas soluciones de problemas diversos en campos muy diferentes usan la misma tecnología poderosa
RED NEURONAL
una abstracción matemática una red neuronal es una simulación del cerebro, una abstracción matemática
en el cerebro real, las neuronas mandan señales con fre cuen ci as no señales discretos
existen herramientas que tratan de simular el cerebro en una manera más fiel al cerebro
Ejemplo: Numenta NuPIC, un tipo de memoria temporal jerárquica [Hierarchical Temporal Memory (HTM)]
pero las técnicas de redes neuronales son suficientes para entregar resultados similar o mejor que seres humanos en pruebas cognitivas especificas
entonces: Deep Learning lo que es?
punto de visto común: una con red distintos neuronal niveles es correcto, pero…
Hay otro punto de visto, tal vez más útil, que vamos a presentar acá
Viene del Vincent Vanhoucke, Principal Research Scientist en Google. Lo que sigue viene de su curso en Deep Learning, en Udacity
Él piensa sobre Deep Learning como un marco para calcular ecuaciones lineal y casi-lineal en manera eficiente
clasificador Para desarrollar este marco, vamos a construir un lo más sencillo (y malo) posible
Pero espera un momento… ¿ por qué un clasificador?
Porque clasificación (o más generalmente predicción) es una técnica central en Machine Learning Con esto, podemos alcanzar a ranking, regresión, detección, reinforcement learning, y más…
Empezamos con ecuación de línea, en forma vectorial…
Piensa en construir un clasificador sencillo para predecir, para cada elemento de X, lo que es:
Para hacerlo, tenemos que aprender los valores del W y b
Funciona bien?
No. Es malísimo.
¿Por qué?
Hay dos problemas…
No. 1: El da valores, y lo que queremos son probabilidades
Lo podemos arreglar con la función “softmax”
Expresamos los valores correctos en un vector de valores 1 (correcto) y 0 (los otros). Esto se llama “one-hot encoding”
para evaluar errores, comparamos las probabilidades con los valores correctas
usando lo que llamamos “cross-entropy”
mejor, pero… Se queda el segundo problema: Nuestra ecuación es lineal y no puede representar bien las ecuaciones no lineal
Este problema mató el perceptron (1-nivel red neuronal)
no ayuda sólo para agregar niveles a la red porque se puede representar cualquiera combinación de operaciones lineales como otro operación lineal – podemos reducir la red nueva al otro WX + b con el mismo problema
¿Qué hacemos?
tenemos que introducir funciones no lineales Sin otra opción, tenemos que introducir funciones no lineales logistic function
Pero se cuesta calcular – podemos usar una aproximación, la más sencilla. Se llama “Rectified Linear Unit” , o ReLU
Ahora podemos construir nuestra red neuronal, en una manera eficaz para calcular
que se expresa en una manera modular, un serie de operaciones lineales o casi-lineales con matriz .. que nos permite usar el poder de GPU
para mejorar nuesta estimación, minimizamos el error, y está bien, pero nos falta una cosita más… para mejorar nuesta estimación, minimizamos el error, y esto require que calculamos el derivado de la funciona
piensa en la regla de cadena de cálculo: d f(x) = d du f(x) dx du dx
se puede convertir un derivado en un producto (de otro derivados):
Qué cabe en nuestro marco modular
Ahora lo tenemos! Un marco general y modular que incorpora todo que necesitamos!
…pero espera un momento: y podemos construir redes neuronales profundas, sumando más niveles cómo necesitamos …pero espera un momento: por qué nos gustan redes profundas?
los problemas lo más interesantes, como lenguaje y visión, tienen reglas muy complejos necesitamos muchos parámetros para representarlos
sí, pero por qué no usamos redes más anchas? por qué es mejor profundo?
son más eficaces y capturan mejor la estructura inherente en muchos problemas
CONVNETS
la red convolucional, o convnet, se transforma la entrada en una manera así que no importa el traslado en la entrada se usan para reconocimiento visual
Empezamos con una foto:
usamos una región (kernel) de foto cómo entrada para otra red neuronal chica, con K salidas
deslicemos la ventana a través de la foto
transforma la foto en foto nuevo, con K canales de color, y dimensiones diferentes
esta operación se llama una convolución
? si la región (el “kernel”) tuviera tamaño el mismo como el original, qué obtuviéramos? ?
en eso caso, recuperemos la foto original
Questions? ? Contact: drostcheck@leopardllc.com, twitter: @davidrostcheck Articles: http://linkedin.com/in/davidrostcheck