Aprendizagem de Máquina ao Alcance de Todos - (2)

9:43 am Inteligência Artificial

Voltando sem muitas delongas ao exemplo da primeira parte desse artigo, vamos considerar novamente o nosso banco de dados de pessoas caracterizadas cada uma por um “registro” seguindo o mesmo formato, com campos de peso, altura, idade, sexo, etc. Agora, vamos supor que além dessa caracterização por dados biométricos sabemos que essas pessoas estão classificadas em dois grupos, digamos que com e sem histórico de problemas cardíacos. Em jargão de biologia, as pessoas com histórico cardíaco são “Casos”, as sem são “Controles”.

Em Aprendizagem de Máquina, a chamada Aprendizagem Supervisionada consiste em treinar um “modelo” (uma função ou algoritmo de classificação) a reconhecer casos e controles automaticamente. É o tipo de problema aplicável exatamente a massas de dados com informação de categoria, como a do exemplo acima. Essa massa de dados é chamada de “conjunto de treinamento”, justamente porque sua função é servir como uma coleção de exemplos que são usados para “dizer” ao classificador onde ele está errando e onde ele deve melhorar - daí o “supervisionado” no nome desse tipo de aprendizagem.

Exatamente como um método de classificação pode conseguir resultados melhores ou piores dado um conjunto de exemplos? Bom, existem inumeráveis algoritmos de aprendizagem supervisionada - redes neurais, métodos evolutivos, árvores de decisão, todos eles podem ser usados para classificação. Para fins didáticos, porém, vou focar aqui em um método bem geométrico, as SVMs (do Inglês Support Vector Machines).

Como já disse na Parte 1, cada “campo” do banco de dados descrevendo as coisas sendo classificadas (no exemplo pessoas) é visto como uma dimensão (no sentido espacial da coisa mesmo) em aprendizagem de máquina. Se os registros tiverem só três campos - digamos, peso, altura e idade - temos três dimensões, e as pessoas são “vistas” por um algoritmo de ML como pontos num espaço tridimensional com eixos de idade, peso e altura. Assim Fulano pode ocupar o ponto em 1,80 metros, 75 quilos e 36 anos, enquanto Beltrano está no ponto 1,72m, 60Kg, 28a. Esse é um exemplo não tão difícil de visualizar porque usa um espaço tridimensional como aquele de largura, comprimento e altura onde vivemos, mas na prática os problemas de ML lidam quase sempre com “hiperespaços” multidimensionais. Em problemas de Bioinformática são comuns espaços com milhares de dimensões, por exemplo.

De qualquer forma, voltando às SVMs, o que elas fazem é (supersimplificando a coisa) encontrar uma “hipersuperfície” que divide esse “espaço” do problema em dois lados. Uma divisão boa é aquela que deixa os pontos representando Casos de um lado da superfície e os pontos representando Controles do outro lado. No nosso exemplo das pessoas com e sem problemas cardíacos ocupando um espaço tridimensional, vamos enxergar o espaço 3D como um cubo e supor que a maioria dos casos ocupa a metade do cubo correspondendo a pessoas com mais peso e mais idade, enquanto os controles se concentram nas pessoas mais novas e magras. Um plano cortando o cubo em dois na diagonal, paralelo ao eixo de altura, já dá uma divisão razoável então. Talvez essa divisão razoável deixe muitos pontos ainda nos lados errados, então podemos experimentar outras coisas como inclinar o plano (talvez em relação ao eixo de altura, para fatorar pessoas que são pesadas porque são grandes), ou mesmo experimentar uma superfície que não seja plana, mas sim curva, correndo em uma forma meio ondulada que divida os dois conjuntos de pontos quase perfeitamente. (No caso de SVMs, o tipo de superfície é determinado pela chamada “função de kernel” - que no caso do plano é uma função linear.)

Finalmente, é interessante também computar a superfície de forma a que, além de separar o mais corretamente possível os pontos, ela também mantenha uma certa distância desses pontos, sem “passar raspando” em nenhum deles. Isso tem a ver com o que talvez seja a mais desejada e mais difícil de obter das características de um bom classificador: a capacidade de generalização. Isto é, a capacidade de corretamente classificar elementos novos, desconhecidos, que não estavam no conjunto de treinamento. No caso das SVMs, podemos visualizar que uma superfície correndo muito “rente” pelos pontos limítrofes da, digamos, Categoria Caso, pode erroneamente classificar um monte de pontos como Controle, mesmo eles caindo perto dos pontos de Caso, simplesmente porque a superfície está rente demais e não inclui pontos próximos que provavelmente também são Casos. Em casos assim, podemos “antropomorfizar” o que aconteceu dizendo que o classificador na verdade não aprendeu nada, apenas “decorou” os pontos que foram mostrados a ele…

No fim das contas, todo classificador gerado por aprendizagem supervisionada faz essencialmente a mesma coisa que a SVM - seccionar o espaço do problema em regiões correspondentes a categorias. Só que eles trabalham sob princípios que não são tão obviamente geométricos (e didáticos) como no caso da SVM, daí não vou falar sobre eles aqui. Finalmente, aprendizagem supervisionada não é categorização - coisas como regressão simbólica também caem nessa subdivisão de ML. Mas acho que isso já fugiria um pouquinho do nível “feijão com arroz” implicado pelo título. :)

1 Resposta
  1. ReecySew :

    Date: May 23, 2009 @ 6:02 am

    ehh.. thanks )

Deixe um Comentário

Seu comentário

Você pode usar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Importante: Moderação de comentários está HABILITADA, portanto seu comentário pode não aparecer imediatamente. Agradecemos desde já sua participação.