Entrenando murciélagos en el bosque aleatorio con la matriz confusa

Cuando explora el ámbito del aprendizaje automático, siempre es un placer tener datos reales e interesantes con los que trabajar. Ahí es donde entran los murciélagos: son animales fascinantes que hacen llamadas de ultrasonido muy especiales que se pueden grabar y analizar con software de computadora para tener una idea bastante clara de qué especies son. Cuando analizamos con un espectrograma FFT, podemos ver los formularios de llamada individuales con mucha claridad.

Nyctalus noctula (murciélago nocturno) Myotis nattereri (murciélago de natterera) Plecotus auritus (longorela marrón) Pipistrellus pipistrellus (murciélago común)

La creación de un clasificador de código abierto para murciélagos también es potencialmente útil para el mundo fuera del aprendizaje automático, ya que no solo podría permitirnos monitorear más fácilmente a los murciélagos, sino también el impacto de los métodos de cultivo modernos en el entorno natural. Los murciélagos se alimentan de polillas y otros insectos nocturnos, que ellos mismos han disminuido. Incluso en las profundidades del campo aquí en el Reino Unido, estos insectos son parte de la población en la que estaban hace 30 años, pero nadie parece haber controlado esta disminución.

Entonces, volviendo a nuestros espectrogramas, sería bastante razonable lanzar estas imágenes a una red neuronal conversacional (CNN) y usar una estrategia de reconocimiento de características de imagen. Pero quería explorar las profundidades del misterioso bosque aleatorio.

¿Y qué es exactamente un bosque aleatorio? Como era de esperar, el bosque está formado por árboles, árboles de decisión. Es como jugar a un juego con veinte preguntas. Se toman decisiones consecutivas y cada una de ellas excluye cualquier clasificación posible. Si cada juego de veinte preguntas es un árbol, el bosque aleatorio (RF) del ejemplo siguiente se compone de 4.000 árboles y es como pedirle a 4.000 personas que jueguen el juego por usted. Aplicamos una especie de fórmula promedio para combinar todas las respuestas y obtener un método para tomar la decisión final, que es mucho mejor que si lo hiciéramos solos.

Cuando juegas veinte preguntas, preguntas sobre las propiedades definitorias del tema en cuestión. El lugar obvio para comenzar es el punto de la llamada donde la llamada es más fuerte (se muestra en negro en la imagen de la izquierda), lo que nos daría la frecuencia. Entonces, en el murciélago de la oreja marrón, el número sería como 30 kHz. Ni siquiera tenemos que llamarlo de otra manera: los árboles simplemente procesarán ciegamente todos los números en una columna de datos, sin necesidad de saber qué significan en el mundo real. Sin embargo, como seres sensibles, podemos ver los datos si queremos e incluso ver qué características del espectrograma eran las más importantes. ¿Quizás la frecuencia de amplitud máxima también es importante? Aún no lo sabemos, dejaremos que los responsables de la toma de decisiones decidan por sí mismos. La línea roja en la imagen de la izquierda muestra la forma distintiva de la llamada de ubicación de bat eoa, filtrada por el software para producir una línea delgada y agradable, de la cual ahora podemos obtener valores para cosas como cuesta arriba y pendiente.

Extraer las funciones relevantes como esta es increíblemente importante. Un científico de datos, junto con un llamado de murciélago experto, ahora analizaría la gama completa de llamadas de murciélago y haría conjeturas fundamentadas sobre qué características vale la pena considerar, tal vez en la forma en que se inclina la llamada o si comienza con una "explosión ”¿De magnitud o no? Podrían producir unos cientos de columnas diferentes para el conjunto de datos y podarlas a unas veinte, descartando todas las que los propios árboles decidan no usar mucho.

Trae expertos en murciélagos

Después de algunos comienzos en falso, finalmente me decidí por este sistema escrito por Jean Marchal, Francois Fabianek y Christopher Scott. Es básicamente un paquete de extracción escrito en R esto estaba destinado específicamente a los murciélagos y las llamadas de los pájaros. Es un tutorial fácil de seguir que descarga datos de aves y clasifica a un solo pájaro y como alguien sin absolutamente ninguna experiencia previa. R, Pude usarlo fácilmente para armar una versión de clases múltiples que clasificaba las seis especies de murciélagos que viven cerca de mi casa. Estoy seguro de que hay una forma más elegante de implementar en Random Forest, pero clasifiqué cada especie por separado y luego combiné los resultados. Siéntase libre de mejorar mi método, pero parece funcionar bien.

El sistema funciona mejor Rstudio en Windows 10 y todo está completamente instalado de principio a fin. También lo ejecuté en Ubuntu 18, pero solo desde la línea de comando usando '$ Rscript Train_bats.R'. En realidad, nunca completé el tutorial oficial y al principio encontré la estructura de datos bastante confusa. Afortunadamente, resultó muy sencillo. Parece que el sistema que creé es una serie de "clasificadores binarios" que arrojan una nueva matriz confusa para cada especie que se entrena contra todas las demás especies en el directorio de "datos".

La especie bajo investigación es el murciélago común - c_pip. Durante el entrenamiento y las pruebas automáticas, 1435 puntos de datos que en realidad "no eran c_pip" se predijeron correctamente como "no c_pip" ... ¡lo cual es bueno! Además, se predijo correctamente que 880 etiquetas que en realidad eran c_pip serían c_pip, lo que también es bueno. Desafortunadamente, se predijo incorrectamente que 33 de los murciélagos c_pip reales no serían esas especies y, lo que es peor, 28, que en realidad no eran c_pip, se predijeron incorrectamente como c_pip, ¡maldita sea! Afortunadamente, los porcentajes de predicciones incorrectas son bastante bajos: 2,2% y 3,1% respectivamente, a pesar de tener solo 320 MB de datos por lotes.

Los resultados se pueden mejorar trabajando con más datos, por lo que si tiene un espectro completo .wav archivos ocultos en sus unidades USB para los 17 tipos de murciélagos británicos, por favor envíenmelos. Las grabaciones deben ser del orden de 384 ks por segundo (192 KHz) y no estar distorsionadas / recortadas. Las grabaciones débiles son buenas porque representan condiciones de vida reales. La otra cosa que vale la pena mencionar es que la misma especie de murciélago en una ubicación geográfica diferente puede tener diferentes cantos, por lo que es importante agregar sus propios cantos de murciélagos locales a los datos para obtener buenos resultados.

Google Drive permite mis propios datos de forma gratuita aquí. ¡Úselo a su manera! La especie se identificó con la ayuda de expertos en una ubicación de bat-e en el grupo de Facebook: Bat Sound Analysis Workshop. (¡Gracias hombre!)

Tenemos unos 320 MB de datos de entrenamiento, clasificador de trabajo en Rstudio y grabar un murciélago de la noche anterior con un micrófono UltraMic384K. Ahora solo es cuestión de encontrar la carpeta Bioacoustics / unknown_bat_audio /, eliminar algunos archivos existentes y pegarlos en nuestro bat desconocido. ¡Sencillo! Presione el botón 'ejecutar' ...

¡Lo más probable es que sea Plecotus auritus, el murciélago dulce orejudo eminentemente hermoso! A veces, el clasificador tiene problemas, especialmente si las grabaciones son borrosas. Los murciélagos dentro del género Myotis también tienden a tener llamadas muy similares entre sí y en realidad se superponen, por lo que a menudo no es posible clasificar sin capturar físicamente a la criatura y extraer ADN, o algo similar. No lo recomiendo yo mismo y si realmente tienes que hacerlo, verifica si es necesaria una licencia de las Federaciones y si no muerde; los murciélagos pueden ser portadores de algunas enfermedades mortales.

¿Qué es lo siguiente? ¿Quizás llevar el clasificador a Raspberry Pi y enviar los resultados a través de la conexión LoRa? ¿O si hay una señal de teléfono celular 2G, enviarla a través de HTTP? O un detector de murciélagos portátil que pronuncia el nombre del murciélago. "Hola a todos. ¡Ahí va Barry, el murciélago de orejas pardas, y suele ir de fiesta! "

  • Rog Fanther dice:

    Pero si se ha mordido y se ha sentido un poco reacio a la luz del sol y el ajo, comience a negociar los pagos de su nuevo castillo. No te preocupes, puedes hipotecarlo unos siglos ...

  • Mike J dice:

    La llamada nocturna (Reino Unido) tiene una biblioteca de llamadas nocturnas. ¿No sabes si esa es la base de datos que ya tienes? Si no es así, vale la pena contactar ...

  • spambake dice:

    Este es un gran proyecto y es algo que el mundo natural necesita. ¡Gracias y genial!

    A pesar de ser un grupo importante de mamíferos, los murciélagos son muy difíciles de observar y están drásticamente subrepresentados en los estudios naturales. Propongo el siguiente siguiente paso:

    La posible dirección es el registro a largo plazo en varias ubicaciones con identificación automática y carga a iNaturalist a través de su API. Todas las observaciones que califican como un "título de investigación" se transmiten luego a la Agencia de Información sobre Biodiversidad Global (gbif.org), donde la información se comparte entre las principales instituciones de todo el mundo con fines de investigación. Ambos sitios web presentan varias herramientas para mapear y visualizar datos.

    • Pat Whetman dice:

      ¡Gracias por la aprobación! Aquí tienes una gran idea sobre iNaturalist. Uno de los principales problemas es el costo del equipo para un espectro completo de audio, aunque hay un proyecto de audio basado en teensy 3.6 que parece muy prometedor. Mi propia idea es llevarlo a una raspberry pi 4 con un micrófono digital relativamente barato. p.ej. SPH0641LU4H-1.

Miguel Vidal
Miguel Vidal

Deja una respuesta

Tu dirección de correo electrónico no será publicada.