WOT

Thursday, October 27, 2016

Explicación de términos clave del aprendizaje profundo

Nota: Este artículo es una traducción del original que aparece en el sitio de KDnuggets: Deep Learning Key Terms, Explained

Muchas gracias por permitir su publicación en español.

Explicación de términos clave del aprendizaje profundo
  
        


Adquiera los conocimientos para iniciarse en redes neuronales artificiales y en aprendizaje profundo con este conjunto de 14 definiciones que tratan lo esencial de conceptos clave relacionados con ambos temas.

Por Matthew Mayo, KDnuggets.
El término aprendizaje profundo es relativamente nuevo, aunque su existencia es anterior al enorme repunte que han experimentado últimamente las búsquedas online. El aprendizaje profundo disfruta actualmente de un auge en lo que se refiere a la investigación y a la industria, principalmente debido a los increíbles éxitos cosechados en diferentes áreas, y consiste en el proceso de aplicación de las tecnologías de redes neuronales profundas, es decir las arquitecturas de redes neuronales con múltiples capas ocultas, para la resolución de problemas. El aprendizaje profundo es un proceso, que como en la minería de datos, emplea arquitecturas de redes neuronales profundas, las cuales son determinados tipos de algoritmos que forman parte del aprendizaje automático.
Deep neural network
El aprendizaje profundo ha conseguido un gran número de éxitos en los últimos tiempos. A la luz de lo que hemos comentado, es importante tener algunas cosas en cuenta, al menos en mi opinión:
·         El aprendizaje profundo no es la panacea, no es una solución única que se aplica con facilidad a todos los problemas que existen
·         No es el famoso algoritmo maestro: el aprendizaje profundo no desplazará al resto de algoritmos del aprendizaje automático y tampoco a las técnicas empleadas por la ciencia de datos, o, al menos, todavía no ha demostrado que pueda ser así.
·         Es conveniente no tener grandes expectativas: Aunque recientemente se han conseguido grandes avances en todo tipo de problemas de clasificación, en particular en la visión artificial, en el procesamiento del lenguaje natural, así como en otras áreas, en su actual fase, el aprendizaje profundo no puede resolver problemas muy complejos, como por ejemplo 'conseguir la paz mundial'.
·         El aprendizaje profundo puede proporcionar una gran cantidad de datos al mundo científico en forma de procesos y herramientas auxiliares para ayudar a resolver problemas, y cuando se observa bajo esa perspectiva, es una aportación muy valiosa al panorama de la ciencia de datos.
Data Science Puzzle
Como se muestra en la imagen superior, el aprendizaje profundo es a la minería de datos como las redes neuronales (profundas) son al aprendizaje automático (procesos frente a arquitecturas). También es notable el hecho de que actualmente las redes neuronales profundas están estrechamente vinculadas con la inteligencia artificial, hasta tal punto que las 2 están tan entrelazadas que casi son sinónimos (sin embargo, no son la misma cosa, y la inteligencia artificial tiene muchos otros algoritmos y técnicas a su alcance aparte de las redes neuronales). Hay que tener en cuenta también la conexión entre el aprendizaje profundo / redes neuronales profundas y la visión por computador, el procesamiento del lenguaje natural y los modelos generativos, campos que tienen una importancia especial dado los grandes avances que han experimentado recientemente, impulsados por los procesos de aprendizaje profundo y por las tecnologías de redes neuronales.
Sabiendo todo esto, vamos a echar un vistazo a algunos de los términos relacionados con el aprendizaje profundo, con un enfoque conciso y purista de las definiciones.
Como se definió anteriormente, el aprendizaje profundo es el proceso de aplicación de las tecnologías de redes neuronales profundas a la resolución de problemas. Las redes neuronales profundas son redes neuronales con al menos una capa oculta (véase más adelante). Como en el caso de la minería de datos, el aprendizaje profundo es un proceso que emplea arquitecturas de redes neuronales profundas, que son clases especiales de algoritmos dentro del aprendizaje automático.

La arquitectura de la máquina de aprendizaje por la que el aprendizaje profundo se lleva a cabo, se inspiró originalmente en el cerebro biológico (en particular en las neuronas). En realidad, las redes neuronales artificiales (la variedad no profunda) han existido desde hace mucho tiempo, y tradicionalmente han sido capaces de resolver ciertos tipos de problemas. Sin embargo, hace relativamente poco tiempo, las arquitecturas de redes neuronales se idearon de forma que incluían capas ocultas de neuronas (más allá de las sencillas capas de entrada y salida), y este nivel adicional de complejidad es lo que permite el aprendizaje profundo, y proporciona un conjunto de herramientas con mayor capacidad para resolver problemas.
En realidad las arquitecturas de las RNAs varían considerablemente entre sí, y por lo tanto no existe una definición definitiva de redes neuronales. Las 2 características que se citan de forma general en todas las RNAs son la disposición de conjuntos de pesos adaptativos, y la capacidad de aproximar a funciones no lineales las señales de entradas a las neuronas.
Se ha conseguido mucho de la decisiva relación entre entre las redes neuronales biológicas y artificiales. Revistas divulgativas propagan la idea de que las RNA son de alguna manera una réplica exacta de lo que está pasando en el cerebro humano (o cualquier otro cerebro biológico). Esto es a todas luces impreciso; sobre esto sólo se puede decir que las primeros redes neuronales artificiales se inspiraron en la biología. La relación abstracta entre las 2 no es más importante que la comparación abstracta entre la composición y la funcionalidad de los átomos y el sistema solar.
Dicho esto sobre su relación, nos da la oportunidad de ver cómo trabajan las neuronas biológicas a muy alto nivel, aunque solo sea para inspirarnos en el desarrollo de las RNA.
Biological neuron
Los principales componentes de la neurona biológica que nos pueden interesar son:
·         El núcleo, que contiene información genética (es decir DNA)
·         El cuerpo celular, que procesa las activaciones de la entrada y las convierte en activaciones de salida
·         Las dendritas, que reciben activaciones de otras neuronas
·         Los axones, que transmiten activaciones a otras neuronas
·         Las terminaciones de los axones que junto con las dendritas vecinas, forman las sinapsis entre las neuronas
Sustancias químicas llamadas neurotransmisores se difunden a través de la hendidura sináptica entre la terminación de un axón y una dendrita próxima, dando lugar a lo que se conoce como neurotransmisión. La operación esencial de la neurona es que cuando llega una activación a través de una dendrita, dicha activación se procesa y, a continuación se retransmite a un axón a través de sus terminaciones, atraviesa la hendidura sináptica y llega a un cierto número de dendritas de neuronas receptoras, en las que se repite el proceso.

El perceptrón es un sencillo clasificador binario lineal. Los perceptrones toman las entradas y los pesos asociados a las mismas (que representan la importancia relativa de cada entrada), y las combinan para producir una salida, que luego se utiliza para proceder a una clasificación. Los perceptrones llevan con nosotros mucho tiempo, ya que sus primeras implemetaciones datan de la década de 1950, y el primero de ellos participó en las primeras implementaciones de RNA.
Un perceptrón multicapa (PMC) consiste en la aplicación de varias capas adyacentes de perceptrones totalmente conectadas, formando una red neuronal de conexión hacia adelante (véase más abajo). Este perceptrón multicapa tiene la característica adicional de tratar con funciones de activación no lineales, característica que no poseen los perceptrones individuales.
Las redes neuronales de conexión hacia adelante son la forma más simple de la arquitectura de red neuronal, en las que las conexiones son no cíclicas. En la red neuronal artificial original, la información en una red de conexión hacia adelante avanza en una sola dirección desde los nodos de entrada, atraviesa sus capas ocultas, y llega a los nodos de salida; no se producen ciclos. Las redes de conexión hacia adelante difieren de las típicas arquitecturas de red recurrentes (ver más abajo), en las que las conexiones forman un ciclo dirigido.
En contraste con las redes neuronales de conexión hacia adelante vistas más arriba, las conexiones de las redes neuronales recurrentes forman un ciclo dirigido. Este flujo bidireccional permite la representación interna del estado en función del tiempo, lo que a su vez, permite que la secuencia de procesamiento, y, la secuencia de notas, proporcione las capacidades necesarias para el reconocimiento tatno de la voz como de la escritura.
En las redes neuronales, la función de activación proporciona los límites de decisión de la salida mediante la combinación de entradas ponderadas en la red. Las funciones de activación varían desde la función de identidad (lineal) a la sigmoide (logística, o de paso suave) y a la hiperbólica (tangente) y a otras más complejas. Con el fin de emplear la propagación hacia atrás (ver más abajo), la red debe utilizar funciones de activación que se sometan a la operación de diferenciación.
A few activation functions
La definición más concisa y elemental  de propagación hacia atrás que he conocido nunca ha sido la de un científico de datos, Mikio L. Braun, que dió la siguiente respuesta en Quora, y que reproduzco de forma literal para no manchar su sencilla perfección:
La propagación hacia atrás es simplemente la disminución del gradiente de los errores individuales. Se trata de comparar las predicciones de la red neuronal con la salida deseada y luego calcular el gradiente de los errores con respecto a los pesos de la red neuronal. Esto le da al usuario una dirección a seguir en el espacio de pesos de los parámetros en el que el error va disminuyendo.
Voy a dejar las cosas así.
Cuando se entrena una red neuronal, se debe evaluar la exactitud de la salida de la red. Como sabemos la salida correcta que se espera de los datos de entrenamiento, se puede comparar la salida de entrenamiento. La función de coste mide la diferencia entre las salidas reales y las de entrenamiento. Una función de coste cero entre las salidas reales y las esperadas significaría que la red ha estado entrenando todo lo posible; esto sería claramente ideal.
Por lo tanto, ¿qué mecanismo ajusta la función de coste con el objetivo de minimizarla?
La disminución del gradiente es un algoritmo de optimización que se utiliza para encontrar los mínimos locales de las funciones. Si bien esto no garantiza un mínimo global, la disminución del gradiente es especialmente útil para aquellas funciones que son difíciles de resolver analíticamente para encontrar soluciones precisas, tales como reducir las derivadas a cero y resolverlas.
Gradient descent
Como se mencionó anteriormente, en el contexto de las redes neuronales, la disminución del gradiente estocástico se utiliza para hacer los ajustes previstos a los parámetros de la red con el objetivo de minimizar la función de coste, así que durante la fase de entrenamiento, las salidas reales de la red están, después de cada iteración, más cerca de las salidas esperadas. Esta minimización iterativa emplea una operación de cálculo, a saber, la diferenciación. Después de la etapa de entrenamiento, los pesos de la red reciben actualizaciones según el gradiente de la función de coste y los pesos actuales de la red, por lo que los resultados del siguiente paso de entrenamiento pueden estar un poco más cerca de ser los correctos (según lo medido por la función de coste). La retropropagación (propagación hacia atrás de errores) es el método utilizado para distribuir estas actualizaciones por la red.

La retropropagación utiliza la regla de la cadena para calcular los gradientes (mediante la operación de diferenciación), y en las capas en dirección hacia la parte 'frontal' (entrada) de una red neuronal de n capas habría que multiplicar cada pequeña cantidad del valor del gradiente n veces para tener el valor actualizado. Esto significa que el gradiente disminuiría de manera exponencial, lo que supone un problema con valores grandes de n, ya que las capas delanteras necesitarían progresivamente más tiempo para entrenar con eficacia.

Generalmente asociadas a la visión por computador y reconocimiento de imágenes, las redes neuronales convolucionales (RNC) emplean el concepto matemático de convolución para imitar a la red de conexiónes neuronales del cortex visual biológico.
En primer lugar, la convolución, como bellamente la ha descrito Denny Britz, puede considerarse como una ventana corrediza sobre la representación matricial de una imagen (ver más abajo). Esto permite la imitación aproximada de la imbricación de las partes del campo visual biológico.

Convolution
Cortesía de: Stanford

La implementación de este concepto en la arquitectura de una red neuronal da por resultado un conjunto de neuronas dedicadas al procesamiento de secciones de una  imagen, al menos cuando se emplea en la visión por computador. Cuando se utiliza en algún otro dominio, como el procesamiento del lenguaje natural, se puede emplear el mismo enfoque, dado que de entrada (palabras, frases, etc.) podría estar dispuesta en matrices y se procesa de manera similar.
LSTM
Cortesía de: Christopher Olah

Una red con memoria a corto y largo plazo (MCLP) es una red neuronal recurrente que está optimizada para aprender y actuar sobre los datos en función del tiempo, y que entre eventos relevantes pueden transcurrir lapsos de tiempo de duración indefinida o desconocida. Su arquitectura particular permite la persistencia, proporcionando 'memoria' a las RNA. Los recientes avances en el reconocimiento de la escritura a mano y el reconocimiento automático de voz se han beneficiado de las redes MCLP.


Evidentemente esto es sólo una pequeña parte de la terminología del aprendizaje profundo, y muchos conceptos adicionales, desde básicos a avanzados, esperan su exploración a medida que aprenda más sobre el campo líder en investigación de aprendizaje automático en la actualidad.

Artículos relacionados

Saturday, October 15, 2016

Como crear en 5 pasos un equipo de ciencia de datos

Nota: Este artículo es una traducción del original que aparece en el sitio de LinkedIn 


  • Publicado el 29 de junio de 2016
endadoNo recomendar5 steps to build a data science team




Innovador incesante tanto en la reflexión como en la acción | LION

La presentación de ANA en Nueva York fue el 9 de diciembre de 2015

Resumen ejecutivo
Para cualquier empresa que desee utilizar los datos con el objetivo de optimizar las estrategias de negocio y mantenerse al día en los cambios del mercado, es esencial disponer de un buen equipo de análisis. A continuación, en este artículo, expongo los cinco pasos a seguir para mejorar un programa de análisis ya operativo o para crear uno desde cero.

Ideas
Tener un equipo de análisis sólido es esencial para las empresas que deseen utilizar los datos para mejorar sus estrategias de marketing y lograr sus objetivos de negocio a largo plazo. Pero la tarea de crear un equipo puede ser todo un reto. ¿Cómo reunir un equipo que pueda comenzar a trabajar inmediatamente? ¿Qué herramientas se necesitan para extraer y medir los datos? ¿Cómo presentar los resultados para poder influir en la toma de decisiones? Hay cinco pasos que las empresas pueden llevar a cabo para crear un equilibrado equipo de analítica que tenga éxito desde el principio, o para mejorar uno ya existente.

Número 1: Elegir la estructura adecuada
Dependiendo de las necesidades de su empresa y cómo está estructurada, hay tres tipos de modelos operativos diferentes  que se pueden utilizar para estructurar un nuevo programa de análisis:
  • Un enfoque federal: Con este enfoquelos analistas de datos informan desde las diferentes áreas de la organización. La ventaja de esta estructura es que los analistas son expertos en estos conocimientos y están totalmente inmersos en las actividades del día a día en sus departamentos. Sin embargo, debido a que se encuentran dispersos por la empresa, a menudo hay muy poca comunicación entre ellos, y como resultado, hay en general una falta de coherencia (especialmente en lo que respecta a los métodos y definiciones).
  • El enfoque centralizado: En este procedimiento, hay un grupo de analistas que informan desde un único departamento. La ventaja de este modelo es que los analistas son capaces de aprovechar sus distintas experiencias, de realizar más de un trabajo específico, y utilizar los más altos niveles de coherencia en toda la organización. La desventaja es que este grupo está a menudo aislado de otros departamentos y no está involucrado en lo que sucede  en el día a día.
  • El enfoque centro - periferia: Este enfoque es esencialmente una fusión de los dos primeros en el que los analistas informan desde diferentes departamentos, pero también desde un grupo central. Esto puede ayudar a las organizaciones a analizar eficientemente los datos de una manera coherente y a romper la comunicación en silos.
Número 2: Crear el mejor equipo
Después de implementar una estructura en la que los analistas puedan trabajar, es importante identificar los papeles que se necesitan cubrir y formar un equipo con analistas que sean capaces de gestionar todas las áreas clave. Cuando llegue el momento de contratar a su equipo, necesitará encontrar gente para cubrir las siguientes funciones:
  • Liderazgo: Las responsabilidades del líder son supervisar el proceso, capacitar al personal, dar prioridad a los proyectos, y presentar los resultados a la alta dirección. Un nuevo equipo de analítica necesita de forma imperiosa un líder que posea una gran competencia en modelización matemática. La razón es sencilla: Las competencias en modelización matemática son difíciles de aprender y requieren años de experiencia trabajando bajo la supervisión de expertos. Aunque las competencias en minería de datos y en inteligencia empresarial son sin duda valiosas, en última instancia, éstas deberían considerarse en segundo lugar, ya que son competencias que se pueden aprender con facilidad. El hecho de que actuarios ocupen puestos de dirección puede ser beneficioso ya que estos profesionales están capacitados para analizar las consecuencias del riesgo y utilizan las matemáticas, la estadística y la teoría financiera para estudiar acontecimientos futuros inciertos y hacer pronósticos sobre el futuro.
  • Analista estadístico: Esta persona examina la importancia de los cambios en KPI, pone en marcha grupos objetivos de ensayo / control, y se encarga de todo lo relacionado con la modelización y la predicción. Un candidato cualificado debería tener hasta tres años de experiencia práctica, con un grado de maestría en estadística aplicada. Si una empresa quiere crear un programa desde cero, debería fomentar las relaciones con las universidades locales y contratar a candidatos con aptitudes directamente de los programas de posgrado.
  • Analista financiero: El trabajo más importante de esta persona consiste en incorporar al análisis toda la información relevante del negocio (como la rentabilidad y la teoría sobre las tasas de interés). Idealmente, los candidatos deberían tener como mínimo de tres a cinco años de experiencia, con muchas horas dedicadas a trabajos relacionados con la materia en sus currícula.
  • Analista de datos: Esta persona se dedica a extraer y a depurar los datos que utilizarán el resto del equipo. Es importante contar en su equipo con una persona dedicada exclusivamente a esta tarea, ya que los analistas en general pueden pasar hasta 90 por ciento de su tiempo depurando y validando datos, en lugar de dedicarse a hacer un análisis adecuado de los mismos.
Número 3: Medir para triunfar
No se pueden analizar los datos sin medir algo. Pero el modo en el que sus equipos de análisis recién formados empiecen a medir los datos depende en gran medida de la forma en que éstos están organizados en su empresa. Muy probablemente, el departamento de Sistemas de Información de su empresa ya lo está rastreando todo, y almacenando los datos en tablas en un servidor SQL con el departamento de TI. Al conjunto de estas tablas se le llama almacén de datos.
El almacén de datos, sin embargo, suele ser de difícil acceso, estar mal etiquetado, y no está estructurado, por lo que es esencial crear un diccionario de datos. Un diccionario de datos etiqueta los datos almacenados en el almacén de una manera efectiva e identifica las relaciones entre los datos. Cuando por primera vez consigue despegar, su equipo de análisis puede empezar a definir los datos y sus asociaciones por partes, ya sea con tablas de Excel o Word, y perfeccionar el enfoque basado en las necesidades de la empresa.
Sólo con un diccionario de datos claramente definido pueden sus equipos de TI o de SI elaborar los data marts. Los data marts son versiones más pequeñas del almacén de datos con datos y relaciones claramente etiquetados. Sin un data mart, su equipo de análisis no será capaz de utilizar herramientas de inteligencia de negocio (como Tableau) para recuperar, analizar, transformar y presentar datos. (En lugar de ello, tendrían que aprender SQL para acceder a los datos.)

Número 4: Convertir la información en acciones
Una vez que el equipo de análisis ha identificado la información después de analizar los datos, ¿cuáles son los siguientes pasos a seguir? En primer lugar, el equipo tendrá que hacer un análisis de pre-lanzamiento para asegurar que la información es causal y que se volverá a repetir. La forma más fácil de comprobar esto es mediante el muestreo y la retención. Esencialmente, esto significa que los analistas podrían retener una parte de los datos en el proceso de modelado y construir un modelo sin tener en cuenta ese conjunto parcial de datos. Una vez que se disponga del modelo final, utilizarían los datos retenidos para realizar la última prueba.
Después de que el equipo ha modelado la información, puede avanzar a la fase de prueba y aprendizaje, que consta de tres partes diferenciadas:
1.    La prueba disruptiva: El equipo comenzaría seleccionando un grupo de localidades o regiones y probaría los cambios. Trabajaría con los equipos implicados para aprender cómo esta información funciona y haría los ajustes necesarios.
2.    La prueba piloto: A continuación, el equipo extendería la campaña adaptada a un grupo de muestra importante desde el punto de vista estadístico. (Asegúrese de antemano de establecer unos objetivos KPI definidos, y que el analista estadístico encuentre grupos de control y de prueba objetivos). Una vez finalizada la prueba, hay que analizar los resultados experimentales para segmentar los ganadores de los perdedores.
3.    Despliegue inteligente: Utilizando la información de la prueba piloto, se extiende la nueva campaña al segmento ganador (si es posible). Hay que asegurarse de establecer las medidas en relación con la información sobre las labores de seguimiento antes del despliegue.

Para un equipo con apenas tiene experiencia, algunos de los primeros análisis y pruebas deben centrarse en la segmentación y la estacionalidad. La segmentación es exclusiva en cada industria, y el equipo de análisis puede utilizar el valor del tiempo de vida del cliente para examinar el comportamiento de los consumidores en diferentes segmentos e idear estrategias a partir de los resultados de los datos. En función de la estacionalidad, las estrategias de promoción pueden ayudar a la comprensión de cómo se comportan los diferentes segmentos de consumidores con el tiempo. Por ejemplo, algunos clientes se dan de alta de forma más destacada en diferentes momentos, sabiendo que de antemano puede ayudar al plan de la compañía sobre la forma de asignar los recursos.

Número 5: Aprovechar el éxito
Con cualquier nueva empresa, es a menudo un desafío  ganar credibilidad de forma inmediata. Las empresas tienen que tomar medidas para crear una cultura en su organización que se tome en serio el análisis:
  • Gobernanza: Si es posible, que sea el director financiero el encargado de informar en lugar del director de marketing, con el fin de tener mayor oportunidad de que se le tome en serio y una mayor influencia en las decisiones a nivel ejecutivo.
  • La consistencia y la capacidad de repetición: Asegúrese de que cada departamento (así como cualquier vendedor o agencia) define constantemente la métrica de la misma manera.
  • Compartir información: Comience con victorias fáciles encontrando datos que respalden una idea que la dirección ya ha asumido. Ser capaz de ratificar lo que ya ha asumido el equipo de gestión y proporcionarle información útil para tomar decisiones es una de las maneras más fáciles de empezar a construir la credibilidad de su equipo.
Preguntas y respuestas
1.    ¿Por qué sugiere que informe el director financiero en lugar del director de marketing?Aunque el departamento de marketing es nuestro primer cliente, prefiero mantenerlo alejado. En el departamento de marketing todo se tiene que hacer de forma muy rápida, por lo que mantener una cierta distancia entre ellos y el equipo de análisis permite a los analistas gestionar un flujo de trabajo más eficiente.
2.    ¿Puede hablar un poco más sobre quién comparte los resultados de su departamento de análisis en la organización y cómo lo hace?       En este momento, yo me encargo de presentar todos los resultados. Para una gran mayoría de científicos de datos, es algo que sin duda se necesita aprender, y siempre implica una transición. Se trata de familiarizarse con la audiencia y encontrar la forma de comunicar los detalles más relevantes de la manera más sencilla posible. Y usted puede entrenar a su equipo de análisis para adquirir esas habilidades, y es algo cuyo entrenamiento es mucho más fácil que el de las habilidades cuantitativas. Al principio, siempre se puede tener a alguien que no es del departamento de análisis para presentar los resultados, pero algunos de los detalles se pueden perder en la interpretación.
3.    ¿Cuál es su opinión sobre el modelado externo frente al interno?  El problema de usar modeladores externos es que ellos no tienen una comprensión a fondo o los detalles sobre los clientes que sus equipos internos pueden tener. La modelización interna le proporciona un acceso mucho más amplio a una base de conocimientos más rica con la que trabajar.
4.    ¿Cómo realiza la investigación de antecedentes?                                El departamento de marketing se centra en las pruebas, de las que nuestro equipo extrae los resultados. Todo el modelado que hace nuestro equipo utiliza  datos internos. Empleamos proveedores de datos externos para recopilar datos cuando estudian a clientes potenciales.
5.    ¿Qué opina de las herramientas de inteligencia de negocio?          Algunos encuentran muy valiosas las herramientas de inteligencia de negocio, ya que no tienen la formación para crear algo a partir de cero. A mí personalmente no me gustan y prefiero crear mis propias herramientas de informes internos. Sin embargo, no hay una respuesta totalmente correcta. Todo depende de la estructura y las necesidades de la organización.
CompartirCompartir 5 steps to build a data science team