Quen é quen?

Despois de ter utilizado os programas CystAnalyser e STERapp na aula nos obradoiros anteriores (introdúcense ambos programas no obradoiro 5), o obxectivo deste exercicio será debater na aula cal deles utiliza algoritmos de aprendizaxe automática e cal non usa.

Ambos programas teñen unha interface gráfica que permite moitas operacións, pero neste exercicio imos concentrarnos en como fan a análise automática da imaxe ambos programas. Para simplificar, imos illar esta parte de ambos programas e representala como unha caixa que toma unha  entrada e proporciona unha ou varias saídas. A entrada en ambos casos será a imaxe histolóxica, no caso do CystAnalyser de fígado ou ril, e no caso do STERapp de gónada de peixe.

E que teñen que proporcionar como saída? Para o CystAnalyser o persoal de investigación dos laboratorios de medicina necesita contar o número de quistes e o índice quístico de cada imaxe.  Para calcular o índice quístico da imaxe necesito calcular a área dos seus quistes. Esta información teriámola se o método de análise automática do CystAnalyser proporcionara os contornos de cada quiste, tal como se esquematiza na figura 1.

Figura 1. Esquema para representar o algoritmo de análise automática do CystAnaliser

No caso do STERapp, o persoal de investigación en pesquerías necesita, para cada imaxe, contar o número de células en cada estado de desenvolvemento (aquelo de vitelinas, alveolos corticais e hidratadas) e medir as células. Xa dixemos que os ovos (células) dos peixes, como os das galiñas, son máis ou menos esféricos, e para ter unha medida fiable teremos que medilos cando os cortamos polo medio. Se pensamos no ovo dunha galiña, sería cando vemos a xema. Pois nos ovos dos peixes, a cousa é máis ou menos igual, xa que estas células tamén teñen un núcleo. A figura 2 amosa un esquema do que ten que proporcionar o algoritmo de STERapp. Ademais do contorno das células para poder medir, teremos que saber en que estado de desenvolvemento está e se ten o núcleo visible ou non (se se lle ve a xema ou non).

Figura 2. Esquema para representar o algoritmo de análise automática do STERapp

Inicia un debate co alumnado para que pense sobre que programa utiliza algoritmos de aprendizaxe automática e cal non, en base ós coñecementos que adquiriron nas actividades anteriores. Segundo o curso, poden ser moi novos para razoar esta cuestión tan profunda, pero penso que é positivo formular estas cuestións e debatelas, aínda que non cheguemos á solución. Máis abaixo explicarei a solución.

Para darlles algunha pista, lémbralles as conclusión dos exercicios de “Teatro de fideos” e “Lanzando a pelota”, nos cales: 1) No exercicio “Teatro de fideos” chegabamos á solución cun mecanismo que nos daba unhas instrucións claras que sempre funcionaban; e 2) o exercicio de “Lanzando a pelota” sempre proporcionaba unha solución aproximada e necesitaba adestrarse con exemplos reais contendo a entrada e saída desexada que lle proporcionabamos. A idade e o peso da persoa eran datos de entrada e a distancia que percorrida era a saída desexada para varias persoas.

Polo tanto, podemos concluír co alumnado que un programa non necesita aprendizaxe automática (e, polo tanto, intelixencia artificial) sempre que sexamos capaces (as persoas que deseñamos o programa) de inventar un algoritmo (mecanismo ou estratexia) que nos leve desde a entrada á saída desexada. Cando non somos capaces, asumimos o noso fracaso e usamos a aprendizaxe automática.

No caso do CystAnalyser parece que só temos unha tarefa, que sería recoñecer os contornos dos quistes. No caso do STERapp parece máis complexo porque non só temos que recoñecer o contorno dos obxectos (neste caso células) senón tamén dicir de que tipo son (con dous criterios de clasificación que serían o estado de desenvolvemento e a presencia de núcleo).

Imos analizar a acción que parece común a ambos programas: o recoñecemento de obxetos na imaxe (células ou quistes). Algo que nos podemos preguntar é: sen ser persoal experto —vós e eu non o somos porque non sabemos as cuestións avanzadas de pesquerías e biomedina— poderiamos realizar a tarefa de recoñecer o contorno de quistes e células?

Parece que con algunhas instrucción simples si que poderiamos, porque identificamos o borde das células e tamén dos quistes. Como tanto o crecemento das células como dos quistes é continuo, tal vez teñamos algunhas dúbidas para distinguir cando unha célula pasa a ser madura ou cando un quiste deixa de ser “ruído” e teño que consideralo. Pero, salvo esta pequena cuestión, poderiamos facer esta tarefa utilizando manualmente os programas CystAnalyser e STERapp.

Cando isto pasa, podo pensar en construír un algoritmo que dada a imaxe de entrada intente recoñecer os obxectos e proporcionar unha solución. Polo tanto, a tarefa de recoñecer o contorno dos quistes e as células non utiliza algoritmos de aprendizaxe automática. Algunha persoa pode estar pensando: “pero neste caso non funciona como o teatro de fideos que sempre nos leva á solución perfecta. Aquí o STERapp equivócase moitas veces.” Efectivamente levan razón, o problema é moi complexo e aínda non somos quen de resolvelo completamente e só construímos un sistema semi-automático que necesita a supervisión dunha persoa experta. Pero nada nos garante que utilizando aprendizaxe automática vaiamos chegar a unha solución mellor.

Polo tanto xa tedes a resposta: o CystAnalyser non utiliza aprendizaxe automática e utiliza un algoritmo distinto para analizar a imaxe de fígado e de ril que detectan os obxectos na imaxe. O persoal experto de biomedicina está bastante contento porque fai o reconto de quistes bastante ben e moi rápido e facilítalles moito o seu traballo no deseño de menciñas para estudar a enfermidade xenética poliquistose renal (mira o vídeo do experto Dr. Adrián Cordido Eijo no obradoiro 5).

Entón, onde incorpora o algoritmo de aprendizaxe automática o STERapp? No caso do recoñecemento de células, aínda que non sexamos persoal experto podemos identificar o contorno das mesma. Entón, se o equipo que deseña o algoritmo (non experta en bioloxía mariña) sabe cal ten que ser a saída, pode intentar construír un algoritmo que faga esa tarefa sen utilizar aprendizaxe automática.

Isto non pasa no problema de establecer o tipo de célula que é. O persoal experto en pesquerías necesita meses de adestramento para identificar correctamente o estado de desenvolvemento, e hai diferencias de criterio entre o persoal novel e experto. Se o equipo de deseño non ten unha idea clara de cal é a saída para unha entrada dada, non é posible inventar un algoritmo. Nestes casos, considérase que o persoal experto é incapaz de aportar unhas regras claras para resolver o problema e óptase por usar un algoritmo que trate de “aprender” as regras ocultas que se están a usar. Este modo de aprender tamén o utilizamos as persoas na vida diaria, pensade na medicina onde as especialidades se van aprendendo coa práctica nos hospitais vendo como fai o seu traballo o persoal con máis experiencia, e non só estudando os conceptos nos libros (aínda que se necesite a base de coñecemento dos libros para poder aprender).

Podes debater co alumnado exemplos “de andar pola casa”. Propón o escenario no que unha persoa lle quere explicar por teléfono a outra como é a paisaxe que está vendo pola fiestra na primavera (unha combinación de flores e vexetación de distintos tipos e cores). Ou como describir o estampado dunha camisa, coas flores máis grandes ou pequenas, dun tipo ou doutro. Podemos observar que as descricións son moi vagas, nada precisas, con adxectivos de “parécese a …”. Se a persoa ó outro lado do teléfono tivese que debuxar o estampado que lle relatan por teléfono, non se parecería en moito ó orixinal. Este tipo de problemas intentan resolverse con sistemas de intelixencia artificial, algunhas veces funcionan e outras non. En calquera caso, sempre será necesario unha validación do sistema, unha vez construído, antes de poñelo a funcionar nun entorno real.

O STERapp utiliza un algoritmo de aprendizaxe automática para determinar o estado de desenvolvemento da célula e outro para determinar se a célula ten núcleo visible ou non. Como podedes ver no manual de uso de STERapp, que atoparedes no obradoiro 5, o programa incorpora un submenú para adestrar estes algoritmos para distintas especies de peixes.

A versión distribuída ten adestrados os algoritmos para utilizar coa merluza, pero pode adestrarse para operar con outras especies. Para iso, haberá que ter unha colección de exemplos (pares de información célula e estado de desenvolvemento) proporcionados polo persoal experto. No repositorio do CiTIUS tes estes exemplos para outras especies de peixes, proporcionadas polo Instituto de Investigacións Mariñas de Vigo e o Instituto Español de Oceanografía. No manual de uso tes instrucións de como facer o adestramento cunha nova especie con STERapp.

Pero como funciona por dentro? Ata que punto nos podemos fiar da predición que despois faga o algoritmo adestrado? Estas explicacións engadiranse á páxina nas próximas semanas.