El Canto de la Cigarra

La Cigale, ayant chanté
Tout l’Été.
Se trouva fort dépourvue
Quand la bise fut venue.
Pas un seul petit morceau
De mouche ou de vermisseau. (…)

Hace tiempos deseaba grabar y analizar el canto de la cigarra.

A este sonido los científicos lo denominan “Estridulación“, del latin stridensstridentis, que significa “Chillar“.  Yo prefiero llamarlo “Canto”, y no  “chillido“, y mucho menos “estridulación”  … palabra rara.

Que aquellos que no saben de música lo llamen chillido. Para mí,  definitivamente es un canto .!!!

Y es un canto realizado solo por los machos. Usualmente  un llamado sexual que  puede ser percibido por las hembras a mas de 1 km de distancia, gracias a unos tímpanos muy  desarrollados  ubicados en el tórax .   Quien dijo que el oido debe estar siempre en la cabeza?

El canto puede también  ser utilizado como señal de  marcado de territorio o  como señal de alarma. Su intensidad  es mayor en la medida que aumenta la temperatura.  Por eso en las noches de verano es cuando mayor intensidad desarrolla.

El sonido proviene de  los “Timbales“,   membranas abdominales pareadas (una a cada lado del abdomen) de naturaleza   quitinosa  que vibran por  la salida de aire a presión proveniente de unas cámaras o sacos aéreos . Estos sacos, a mas de garantizar la salida de aire a presión, funcionan como cajas de resonancia.

Fig 1. Aparato resonador  (izquierda) y timbales (derecha). En esta figura se resalta la membrana vibrante(1), orificio de salida de aire(2) y músculo (3). Fuente: Romero et al, 2008.

El aparato resonador  no es homogéneo, sino que contiene un conjunto de costillas, responsables finales de la complejidad del canto.

En resumen, este instrumento musical es una mezcla de instrumento de viento y percusión.

Apartándome por ahora de la fisiología del canto,  después de mucha espera  un pequeño “cigarro” cantor  pasó la noche  en el balcón de mi apartamento. Como pago por su estadía, el inquilino  me regaló un bello concierto que pude grabar previa  su autorización . No quiero tener problemas de derecho de autor.

Les comparto pues los resultados.

La figura 1  corresponde a la forma de onda y Espectrograma de un conjunto de 13 chirps. De nuevo, prefiero llamarlos “Chirps” , en ingles, y no chillidos.

Captura de pantalla 2019-10-15 a la(s) 3.03.47 p. m.Fig 1. Forma de onda y espectrograma, 13 chirps.

El patrón de repetición de  “Chirps”  es muy uniforme. En promedio,   se repiten cada 530 milisec, con un intervalo en canto de unos 250 milisec/chirp ,  seguido de  un intervalo en silencio ligeramente mayor.

Los chirps no son  monotónicos, se componen de  cuatro bandas de frecuencia claramente diferenciables,  ubicadas al rededor de  4.1, 8.7, 12.9 y 16.6 Khz, todas  tonos agudos perceptibles por el oído humano. Recordemos que nuestro aparato auditivo es sensible en la banda 20 Hz -20 Khz.

Retornando a mi huésped, el componente  principal de su canto corresponde a la primera  banda (3-5.8 Khz) , que como mencioné tiene una media al rededor de 4.1 Khz.

En cuanto a la intensidad de canto, es mucho mayor a inicio de cada chirp.  se incrementa de manera pronunciada presentando su máximo de intensidad hacia el primer tercio del chirp, descendiendo de manera mas suave  en la medida que avanza el mismo.

Captura de pantalla 2019-10-15 a la(s) 3.03.00 p. m.Fig 2. Detalle de forma de onda y espectrograma.

Cada “Chirp” se compone de un conjunto de pulsos ( vibraciones)  en un patrón de repetición de entre 3 y 15 milisegundos por  vibración. Ver fig 2.

La primera banda es la que presenta el  mayor número de pulsos , alrededor de  30 unidades,  y la tercera es la que menor numero exhibe (al rededor de 10).

Las diferentes bandas de sonido  deben provenir  de diferenciales vibratorios por costilla. Probablemente cuatro costillas estén involucradas en el canto,  “afinadas” a diferentes frecuencias. Anatómicamente,  entre mayor sea la frecuencia generada  menor debe ser la longitud de la costilla generadora.

Por otro lado,  la rigidez, dependiente del grosor y profundidad de las costillas, debe intervenir en el número de vibraciones generadas.

Así, la tercera costilla debe ser mucho mas rígida que sus compañeras de concierto, requiriendo en consecuencia mucha mas energía (presión de aire de salida ) para lograr vibraciones audibles.

Los resultados obtenidos son coherentes con los obtenidos por Romero et al.

La siguiente figura es extraída de su publicación:

Captura de pantalla 2019-10-15 a la(s) 7.08.20 p. m.Fig 3. Espectrograma correspondiente a la variedad Valenciana de Cicada orni. Notese las cuatro frecuencias diferenciadas por color. Fuente: Romero et al, 2008.

Reconocimientos: Como en todos mis blogs de cantos de la naturaleza, la captura y análisis de sonidos se realizó mediante el programa RavenPro de la Universidad de Cornell.

Bibliografía:

2008. Romero et al. Análisis acústico del canto de la “Cicada orni” variedad Valenciana.  Acústica, Universidad de Coimbra, Portugal. 

Un simulador simple de la Serie de Fibonacci aplicado a inflorescencias de Anthurium

Orlando Rodríguez

En un blog anterior (Morfofisiología floral del Anturio negro A. caramantae. Parte 1) desarrollé el tema de la distribución floral a lo largo del  espádice de Anthurium, y cómo dicha distribución  se ajusta a la Serie matemática de Fibonacci y al “Ángulo de Oro” derivado de la misma.

aureo

He desarrollado un sencillo simulador de excel para observar los efectos que sobre la distribución floral tiene el cambiar décimas de grado (o grados) el valor del ángulo de oro (137.5077º).

Anexo en éste blog el simulador.

El archivo tiene dos hojas. Una correspondiente al Anturio, la segunda al Girasol,  en ambas opera la serie de Fibonnacci.

Para que “jueguen” con el archivo, modifiquen libremente el valor del ángulo aplicado (celda resaltada en amarillo  C3  en el caso del Anturio, celda B2 para Girasol), y observen las variaciones en la gráfica correspondiente.

A modo de ejemplo, varias imágenes con diferente valor de ángulo aplicado:

Captura de pantalla 2019-09-02 a la(s) 6.22.58 p. m.

En este primer caso, se aplica el ángulo de oro (137.5º). La posición de los botones florales maximiza el aprovechamiento de la superficie del espádice.

Captura de pantalla 2019-09-02 a la(s) 6.23.29 p. m.

Una variación de un grado por debajo del ángulo de oro conduce a que se sobrepongan los botones florales (no posible en la naturaleza), y que el aprovechamiento de la superficie del espádice no sea óptima.

Captura de pantalla 2019-09-02 a la(s) 6.33.44 p. m.

De manera similar al caso anterior, una variación de un grado por encima del ángulo de oro conduce a distribuciones con sobreposición floral y bajo aprovechamiento del espacio para ocupación floral.

Captura de pantalla 2019-09-02 a la(s) 6.34.30 p. m.

Variaciones mas severas (17º poe debajo del ángulo óptimo conducen a distribuciones totalmente anómalas.

Para aprovechar enteramente el simulador, recomiendo visitar el blog citado arriba.

Si desean compartir el archivo tienen la libertad de hacerlo, por favor simplemente citen y respeten la autoría.

A continuación el archivo

simulador_Fibonaci

derechos reservados de autor

 

Cerebro y Máquina

Como Biólogo  siempre me he preguntado : Podrá el cerebro, desde  su función cerebral, comprender su propia función cerebral ?

Y si la máquina  es diseño del cerebro, no estará  copiando en ella,  de manera inconsciente,  sus propios planos?

Andeantrees es una mesa de reunión con mi cerebro. me dará  algún día respuestas?

Por ahora guarda silencio,  me observa, se sonríe.

 

 

Inteligencia Artificial y Matemáticas. Parte II: Ejemplo Ilustrativo

Orlando Rodríguez

El presente Blog corresponde a la parte II del tema “Inteligencia Artificial y Matemáticas”,  Para su comprensión recomiendo revisar previamente la primera parte.

En el blog anterior  ilustré el modelo Neuronal, con  una capa de entrada, una serie de capas ocultas (Hidden Layers), y una capa de salida, Output Layer.

Cómo alimentar el modelo con  una entidad clasificable , y cómo interpretar la información de salida?

Asumamos que contamos con un modelo entrenado para reconocer  imágenes de gatos y que deseamos utilizar dicho modelo  para  clasificar la imagen de la figura 1 , como gato o no gato.

cat6

Figura 1. Imagen “gato1.jpg”

La figura 1 tiene varias características:

  1. Es una imagen digital pequeña, 30X30 pixeles
  2. Es una imagen con formato .jpg, lo cual quiere decir que cada pixel en la imagen tiene tres componentes o capas de color,  Rojo, Verde y Azul (RGB).
  3. Cada color está representado por un valor entre 0 y 255,  0 para ausencia de pigmento y 255 para  100% de pigmento.

De acuerdo a lo anterior, la información  bit a bit de la imagen puede visualizarse así:

 

gato2

 Figura 2. Información digital del archivo “gato1.jpg”. Para efectos ilustrativos, la imagen se ha reducido a 5X5 pixeles.

 

Como se puede apreciar, el primer pixel (superior a la izquierda) tiene tres capas (255, 238, 44), correspondiente a los valores de composición Rojo, Verde y Azul respectivamente.

Luego, si la imagen tiene  30X30 pixeles,  el tamaño de archivo será de (30 X 30 X 3 = 2,700 bytes)   un byte por pixel por capa.

Para utilizar esta  imagen en el modelo, es necesario “Vectorizar” previamente la información, esto es, convertir el arreglo original (30X30X3) a un vector columna  (2700X1). Ver Figura 3.

gato3

Figura 3. Información digital vectorizada del archivo “gato1.jpg”.

Los 2,700 bytes obtenidos corresponden a la capa de entrada del modelo (Input ayer), ver figura 4.

gato_red

Figura 4. Información  de la capa de entrada (Input Layer). Contrastar  los valores indicados con la información contenida en las figuras 1 y 2.

 

El número de parámetros  entre capas de nodos está definido como el producto de nodos de las dos capas a unir. Así,  para unir todos los nodos de la capa de entrada con la primera capa oculta se requieren 6 X 2,700 = 16,200 parámetros, y así sucesivamente.

En virtud de ser estrictos, ni la figura 4 ni la teoría explicada  incluyen algunos parámetros adicionales por capa, los cuales  especifican los “bias”  o umbrales del modelo. Se omiten solo con propósitos de explicación general del funcionamiento de clasificación.

Con la capa de entrada alimentada, y  con los parámetros previamente definidos, es posible entonces calcular primero los valores de Hidden Layer 1,  luego  Hidden Layer 2 y finalmente   Output Layer,  una operación conocida como “Forward Propagation”.

Ahora bien, la capa de salida cuenta con un solo nodo (fig 4).  Este nodo representa la salida general del modelo, un único valor que debe representar la clasificación obtenida.

Una vez calculado su valor es necesario transformar el mismo en un valor entre cero y uno, mediante un tratamiento matemático llamado  “Función de activación”.

El convertir la salida a un valor entre cero y uno implica que dicho valor se transforme en una probabilidad,  si mayor a 0,5 indicando que la imagen ha sido clasificada como “Gato”, si menor o igual a 0.5 como “No Gato”.

La frontera  de clasificación  es subjetiva, y en algunos casos puede correrse hacia valores superiores a 0.5, en otros a valores inferiores.

Imaginemos que los que se está clasificando no son imágenes de gatos sino imágenes de tumores de piel, en clasificaciones maligno-benigno.

En este caso, un falso positivo, clasificar una imagen como tumor maligno siendo en realidad tumor benigno tiene implicaciones demasiado  fuertes para el paciente, de manera que se pueda decidir especificar la frontera hacia 0,6 o similar.

Cuántas capas ocultas debe tener  el modelo? Cuántos nodos en cada capa?  Esto es algo que debe definir el Data Scientist. En general, cuatro a seis capas ocultas, 200 a 300 nodos por capa es común para obtener resultados con probabilidad de error inferiores al 5% en la clasificación.

Varios conceptos deben estar claros en este momento de la lectura:

  1. El modelo se comporta como “Una función de funciones”, con una entrada (la imagen)  y una salida, la clasificación.
  2. Cada modelo tiene un set de parámetros característico, el cual conforma la “huella digital del modelo”. Así, un modelo clasificador de gatos tendrá un conjunto de parámetros  diferente a un modelo clasificador de tumores.
  3. La información está distribuída a travez de todo el modelo, y no localizada en un sitio específico.
  4. Aprendizaje significa obtener la huella digital que caracteriza el modelo. Clasificación significa utilizar dicha huella para identificar una imagen.

 

En qué consiste  el entrenamiento ?

En general,  el modelo se entrena con imágenes cuya clasificación se conoce, y se parte de un conjunto de parámetros seleccionados al azar. Basado en el resultado de clasificación del conjunto de “Imágenes de entrenamiento”,  training Set, es posible calcular el error de clasificación. Con este error se alimenta  un algoritmo que recalcula los parámetros a unos nuevos valores, Back Propagation,   de manera que  en una segunda corrida se obtenga una mejor aproximación (menor error)  de clasificación.

Esta operación se repite 10,000 o mas veces hasta obtener un margen de error adecuado.

Una vez entrenado el modelo, se puede probar  la calidad de su huella con imágenes de prueba, Test Set.  de esta manera, su todo sale bien, se cuenta con un modelo convenientemente entrenado.

Y qué tiene que ver todo esto de aprendizaje de máquina con la naturaleza, objeto central de mis blogs?

Entender el funcionamiento de las redes neuronales nos permite abordar desde una nueva óptica temas inherentes a la vida misma:

  1.  Que tan artificial es la inteligencia artificial?
  2. Será posible que el cerebro opere de manera similar?
  3. Podrá un recuerdo estar distribuido en un conjunto de sinapsis neuronales?
  4. Pueden los organismos y los ecosistemas ser modelados mediante redes neuronales?
  5. Pueden las redes Neuronales generar una medida de la complejidad de los ecosistemas?
  6. Donde puede residir la memoria en nuestro cerebro, y mas importante, qué puede ser la memoria?
  7. Cómo se puede entender la conciencia? Qué pueden ser los recuerdos?

Con el próximo blog, último del tema,  espero dejar planteadas estas inquietudes, no las respuestas,  en la red neuronal de sus cerebros.

 

Inteligencia Artificial y Matemáticas. Parte I: Anatomía de una Red Neuronal

Orlando Rodríguez

“Al afirmar verbalmente que las Matemáticas son difíciles, estamos diciéndolo con  un lenguaje  cuya sintaxis es tan compleja, no mas, no menos, que aquella que gobierna las matemáticas” 

Las redes neuronales (DNN) son uno de los modelos de aprendizaje de máquina mas utilizados hoy en día. DNN  se puede visualizar como  un conjunto de nodos  y  líneas  conformando una red, ver figura 1. Su similitud con la organización de las neuronas en el cerebro es evidente, pero este tema lo abordaré mas adelante.

Neural1

Figura 1. Esquema  simplificado de Red Neuronal Profunda (DNN)

En una red neuronal, dos nodos y una línea corresponden a una unidad básica del modelo, y son una representación gráfica de una función matemática del tipo:

f(x) = k.x

Para la figura 2, la variable de entrada (x) corresponde al nodo verde, la variable de salida  f(x) al nodo azul,  y la línea  que las une  corresponde a la constante  k:

Nodo

Figura 2. Unidad fundamental de una DNN

Toda función matemática  puede visualizarse como una caja que recibe uno o varios elementos de entrada y entrega un único elemento de salida:

TANQUE

Figura 3. Representación gráfica de una función matemática

La función  “”  es una relación matemática entre una o mas variables de entrada y una variable de salida.

Así,  la función

f(x) = 3.x

toma valores de entrada  x, los multiplica por 3 , y entrega  valores de salida f(x):

funcion3

Figura 4. Elementos de entrada (x) y salida  f(x)  definidos por la función f

El valor “3” sobre cada flecha corresponde al valor  de la constante  (parámetro de la función)  que caracteriza la misma en cada caso.

En  la red neuronal de la figura 1, cada elemento de salida corresponde a la suma de varias funciones, cada una con su propio parámetro que la define:

Sin título-2

Figura 5. Función con tres variables de entrada y una variable de salida

A modo ilustrativo, trabajemos sobre  algunos nodos y líneas de la Red Neuronal mencionada arriba, ver Figura 6.

 

neuro2

Figura 6. Detalle parcial de una red Neuronal

Para estos elementos de la red,  podemos definir  una función

f(Xi) = Sum(Ki.Xi)

Esto es, la salida f(Xi)  (nodo naranja) corresponde a la sumatoria  de  las variables de entrada multiplicadas cada una por su constante correspondiente (parámetro de la función) .

Lo que el ejemplo anterior nos evidencia  es que si pre-definimos valores para los 32 parámetros (valores del total de líneas de enlace de la Red Neuronal) y contamos con los valores de las tres variables de entrada (Input Layer) , podemos ir encadenando  de izquierda a derecha los resultados de las funciones, convirtiéndose  la salida de una función en la entrada de la siguiente,    hasta  obtener los valores de la última salida , o Output Layer.

Esta operación se conoce como “Forward Propagation” , que para modelos entrenados (parámetros con valores asignados), permite  que se puedan evaluar o clasificar entidades de  entrada, siendo esta evaluación la salida calculada del modelo.

El siguiente blog lo dedicaré a un ejemplo ilustrativo de la teoría expuesta.