Machine learning

Intelixencia artificial

Seguramente oíches falar ultimamente da intelixencia artificial, pois todos os días utilizamos aplicacións que fan uso destas técnicas: cando usas un tradutor automático, cando o móbil se desbloquea co recoñecemento da túa cara, cando che sae publicidade xusto de cousas similares ás que estiveches mirando na rede con anterioridade, cando Netflix che recomenda películas e series, cando google che solta iso de “quizais quixeches dicir …” e suxíreche outra palabra de busca, cando o xestor de imaxes recoñece as persoas que hai nas túas fotografías ou cando ves que xa están a desenvolver coches autónomos que non necesitan condutor. Como serán capaces estes coches de identificar o que teñen arredor e decidir que facer en consecuencia?

Aprendizaxe automática

Ben, pois unha das técnicas utilizadas na intelixencia artificial é a coñecida como machine learning ou aprendizaxe automática. Trátase dun conxunto de algoritmos cos que se constrúe un modelo de clasificación a partir de conxuntos de datos coñecidos. Con este modelo a máquina vai ser capaz de clasificar datos de entrada novos que non eran coñecidos de antemán pero que se axustan aos parámetros do modelo.

Por exemplo, a partir das primeiras imaxes de cans boxer a máquina será quen de recoñecer que a segunda imaxe corresponde a un boxer, aínda que non a tivese como dato inicial. O mesmo podemos facer con textos, audio ou datos numéricos. Por certo, a idea de facer unha aplicación para recoñecer razas de cans é de Tania, de 4ºESO :-)

 

Hai algunhas aplicacións que nos van permitir probar isto da aprendizaxe automática.

Machine Learning for Kids

Unha aplicación que podemos usar é Machine Learning for Kids (ML4K), que permite o recoñecemento de imaxes, textos e datos, e utilizar despois o modelo para crear aplicacións en scratch ou app inventor. Ten unha chea de actividades de exemplo que podes facer.

No seguinte exemplo podedes ver como podemos facer unha aplicación que recoñeza números debuxados a man:

Learning Machine Learning

Outra aplicación é LearningML, que consta dun editor e dun clon de scratch. Aínda está en proceso de desenvolvemento e iremos vendo como co tempo van aumentando as súas funcionalidades, pero de momento xa podemos ir utilizándoa para o recoñecemento de imaxes e textos. Polo de agora é algo máis limitada que a anterior, pero ten a vantaxe de que non é necesario rexistrarse (agás se queres gardar os proxectos no servidor), que podemos usala en galego e que podemos utilizar imaxes cargadas desde o ordenador para a xeración do modelo.

Na súa web podemos atopar tamén algúns videotitoriais para aprender a manexala.

Vou amosar un par de exemplos que fixen:

Recoñecemento de textos

Podemos utilizar o editor para facer unha clasificación de diversas clases de textos e, despois, programar unha aplicación de scratch que sexa quen de clasificar as mensaxes de entrada. Poderiamos facer un xogo de preguntas e respostas ou, como no seguinte exemplo, un asistente virtual:

Podes descargar aquí os ficheiros Asistente.json para o editor e Asistente.sb3 para scratch: Asistente.zip

Recoñecemento de imaxes

Para recoñecer imaxes fixen unha aplicación de recoñecemento de xestos da man. A través da cámara web o programa recolle as imaxes da man e clasifícaas segundo o modelo realizado con anterioridade a partir tamén de imaxes da cámara. Segundo sexa esta clasificación un debuxo tentará imitar o xesto que realiza a man.

Tamén podemos facer un programa algo máis complexo. Neste caso xogamos a pedra, papel e tesoiras contra o ordenador. Quen acade antes 3 puntos gaña.

Podes descargar aquí os ficheiros pedra-papel-tesoiras.json para o editor e pedra-papel-tesoira.sb3 para scratch: PedraPapelTesoiras.zip

A programar!

Pódensenos ocorrer miles de cousas máis. A verdade é que estas aplicacións abren un mundo de posibilidades para a aprendizaxe da programación, pois permiten a creación de programas que incorporan o machine learning. Na programación clásica, por chamala dalgunha maneira, os programas consisten nunha serie de instrucións que cobren todas as opcións ás que se enfronta o ordenador e a máquina fai exactamente o que lle pedimos. Con estas técnicas de intelixencia artificial é o ordenador quen debe aprender duns datos e apañarse para obter resultados a partir de datos que non estaban definidos inicialmente. Terá que buscarse a vida, actuar cun pouco máis de intelixencia :-)


20Q: Un xogo de intelixencia artificial

En Tecnoloxía Habitual falan de 20Q, un xogo que fai uso da intelixencia artifical para adiviñar o que estás pensando en base a preguntas moi concretas que debes responder.

Está baseado na tecnoloxía das redes neuronais e aprende a medida que se van realizando partidas. Cantas máis partidas se xoguen, máis aprende a máquina e maior é a porcentaxe de acertos.

20Q.png

Denomínase intelixencia artificial á disciplina dedicada ao desenvolvemento de axentes racionais non vivos. Non é tarefa doada, pois a maioría dos problemas que hai que resolver non se axustan a un algoritmo ou fórmula determinada, senón que para desenvolver sistemas artificiais intelixentes que resolvan desafíos de forma autónoma precisamos a capacidade de recoñecer patróns, aprender e mellorar o funcionamento a partir da experiencia acumulada.

As persoas, se temos un problema que non podemos resolver mediante un algoritmo, recorremos á nosa experiencia para buscar a solución. As redes neuronais non son máis que un modelo artificial e simplificado do cerebro humano, un sistema que é capaz de adquirir coñecemento a través da experiencia, memorizar e asociar feitos.

Aínda queda moito por andar neste mundo, e seguramente nun futuro teñamos á nosa disposición robots realmente intelixentes, pero de momento aínda son bastante parvos. Todo chegará.

aprendendo.png


Visualizando a intelixencia artificial

ThinkingMachine4_ PlaytheGame.jpgThinking Machine 4 é un xogo de xadez on-line que nos permite observar como funciona a intelixencia artificial.

Antes de que a máquina faga un movemento, realiza un cálculo de tódalas posibilidades, e con esta aplicación podemos visualizar o proceso:
Unha serie de curvas laranxas amosan os posibles movementos da máquina e unhas verdes os posibles movementos do xogador/a. A máquina coñece tódalas posibilidades en moi pouco tempo, e é capaz de avaliar cales son as mellores xogadas entre as atopadas.

Es capaz ti de pensar tan rápido como a máquina?

(Visto en cool infographics)