Buenas,
interrumpiendo la serie de entradas sobre redes neuronales no he podido resistirme a pegar aquí esta historia, en inglés, sobre el origen del virus SARS-CoV-2, o nCOV2019 en este artículo: http://virological.org/t/tackling-rumors-of-a-suspicious-origin-of-ncov2019/384
El tema es oportuno para este blog, porque la principal figura es un alineamiento pareado al estilo de BLASTN donde se observan hasta 19 mutaciones, todas en las terceras posiciones de sus codones:
En el artículo original usan datos de gripe para datar esta serie de mutaciones, y les salen 1950 años,
hasta pronto,
Bruno
Ideas y código para problemas de genómica de plantas, biología computacional y estructural
17 de abril de 2020
14 de abril de 2020
Tipos de neuronas en redes profundas
Hola,
en esta segunda entrada sobre redes profundas hablaré sobre las neuronas.
En este contexto, una neurona es una función de activación que recibe información (input) de otras neuronas y emite una salida que significa si se activa o no.
El primer modelo de neurona es el perceptrón de Frank Rosenblatt, que agrega sus entradas por medio de una suma ponderada y se activa si el total supera un cierto umbral. El siguiente ejemplo muestra un perceptrón con tres entradas binarias con pesos 3, 2 y 6 y umbral de activación 4:
Esta función de activación z podemos expresarla así, siendo b = -umbral (usando https://www.codecogs.com/latex/eqneditor.php):
Si la representamos gráficamente veremos que la activación de 0 a 1 es abrupta y por tanto parece el margen para cambiar los valores de los pesos (w) es muy pequeño:
Por esta razón se utilizan otros tipos de neuronas donde la función de activación es gradual.
La activación sigmoidea es:
donde
Esta activación tiene como ventajas que pequeños cambios en los parámetros w y b producen cambios graduales de z :
Valores extremos producen valores de z de 0 o de 1, como puedes comprobar en el siguiente cuaderno: https://github.com/the-deep-learners/deep-learning-illustrated/blob/master/notebooks/sigmoid_function.ipynb
Otra función de activación frecuente es la tangente hiperbólica (tanh), que produce valores de activación entre 1 y -1 y centrados en el 0, y se expresar así:
Finalmente tenemos la neurona ReLU, que representa el mejor compromiso entre tiempo de entrenamiento y capacidad de aprendizaje:
La elección del tipo de neurona es importante porque determina la capacidad de aprender de la red. En este contexto aprender equivale a determinar los pesos (w) y los umbrales (b) para obtener un output esperado.
Hasta pronto,
Bruno
Siguiente entrada: Capas de una red neuronal
en esta segunda entrada sobre redes profundas hablaré sobre las neuronas.
En este contexto, una neurona es una función de activación que recibe información (input) de otras neuronas y emite una salida que significa si se activa o no.
El primer modelo de neurona es el perceptrón de Frank Rosenblatt, que agrega sus entradas por medio de una suma ponderada y se activa si el total supera un cierto umbral. El siguiente ejemplo muestra un perceptrón con tres entradas binarias con pesos 3, 2 y 6 y umbral de activación 4:
Figura 6.5 de Krohn J (2019) Deep Learning Illustrated |
Si la representamos gráficamente veremos que la activación de 0 a 1 es abrupta y por tanto parece el margen para cambiar los valores de los pesos (w) es muy pequeño:
Figura 6.8 de Krohn J (2019) Deep Learning Illustrated |
La activación sigmoidea es:
donde
Esta activación tiene como ventajas que pequeños cambios en los parámetros w y b producen cambios graduales de z :
Figura 6.9 de Krohn J (2019) Deep Learning Illustrated |
Otra función de activación frecuente es la tangente hiperbólica (tanh), que produce valores de activación entre 1 y -1 y centrados en el 0, y se expresar así:
Finalmente tenemos la neurona ReLU, que representa el mejor compromiso entre tiempo de entrenamiento y capacidad de aprendizaje:
Figura 6.11 de Krohn J (2019) Deep Learning Illustrated |
La elección del tipo de neurona es importante porque determina la capacidad de aprender de la red. En este contexto aprender equivale a determinar los pesos (w) y los umbrales (b) para obtener un output esperado.
Hasta pronto,
Bruno
Siguiente entrada: Capas de una red neuronal
13 de abril de 2020
Redes neuronales profundas
Hola, escribo esto durante la cuarentena del COVID-19, el lunes que muchos trabajadores vuelven al trabajo en España entre dudas por la seguridad pero acuciados por la economía.
En esta entrada y posiblemente otras posteriores me gustaría visitar el aprendizaje automático por medio de redes neuronales profundas, aquellas que tienen al menos 3 capas ocultas.
Es un tema apasionante y que ha evolucionado sin pausa en los últimos 20 años. Sin embargo, aunque diseñar y entrenar redes es complejo, están de moda y no es difícil leer por ahí que de la mano del aprendizaje profundo (Deep Learning, DL) podremos resolver cualquier problema que nos propongamos. Yo no soy experto, pero llevo leyendo sobre redes neuronales desde que escuché hablar de ellas a mi profesor de la Complutense Rafael Lahoz Beltrá y más tarde en la asignatura de aprendizaje automático de la UNED. Además, he podido verlas en acción por sus aplicaciones en bioinformática estructural.
Utilizaré figuras y contenidos que he ido leyendo estos días en el libro Deep Learning Illustrated (2019), cuyo autor principal es John Krohn:
La red neuronal que más he utilizado en mi trabajo como biólogo computacional es PSIPRED, que sirve para la predicción de estructura secundaria de proteínas a partir de información evolutiva:
Cómo se ve en la figura, PSIPRED está compuesta por dos redes consecutivas, cada una con 3 capas, la de input, la oculta y la de output. De acuerdo con la definición de Krohn, ninguna de estas redes sería profunda, pues no cumplen el requisito de tener al menos 3 capas ocultas. Éste es el principal desarrollo desde 1999, ahora las redes son mas profundas y eso ha permitido en muchos casos tratar relaciones no lineales y abstractas:
El próximo día más, cuidáos,
Bruno
Siguiente entrada: Tipos de neuronas en redes profundas
En esta entrada y posiblemente otras posteriores me gustaría visitar el aprendizaje automático por medio de redes neuronales profundas, aquellas que tienen al menos 3 capas ocultas.
Es un tema apasionante y que ha evolucionado sin pausa en los últimos 20 años. Sin embargo, aunque diseñar y entrenar redes es complejo, están de moda y no es difícil leer por ahí que de la mano del aprendizaje profundo (Deep Learning, DL) podremos resolver cualquier problema que nos propongamos. Yo no soy experto, pero llevo leyendo sobre redes neuronales desde que escuché hablar de ellas a mi profesor de la Complutense Rafael Lahoz Beltrá y más tarde en la asignatura de aprendizaje automático de la UNED. Además, he podido verlas en acción por sus aplicaciones en bioinformática estructural.
Utilizaré figuras y contenidos que he ido leyendo estos días en el libro Deep Learning Illustrated (2019), cuyo autor principal es John Krohn:
https://www.deeplearningillustrated.com |
En este libro la ilustradora Aglaé Bassens pone cara a los protagonistas de la historia, como este Santiago Ramón y Cajal y sus dibujos de neuronas en cortes de tejidos:
https://www.deeplearningillustrated.com |
En realidad las redes neuronales son estructuras de datos hechas a semejanza de las observaciones de Cajal y otros neurocientíficos que estudiaron cómo las neuronas se tocan entre sí y reciben información de múltiples axones. Aunque no sepamos bien cómo la corteza cerebral procesa la información, su organización en capas de neuronas ha servido de base a la creación de redes neuronales artificiales.
|
Arquitectura de una red neuronal profunda, figura 4.2 de Krohn J (2019) Deep Learning Illustrated |
Bruno
Siguiente entrada: Tipos de neuronas en redes profundas
Suscribirse a:
Entradas (Atom)