-
Notifications
You must be signed in to change notification settings - Fork 1
Inicio
Aprendizagem de máquina, também chamada de aprendizagem automática, de acordo com Arthur Samuel em 1959,
dota computadores com a habilidade de aprender sem terem sido específicamente programados. 1
Andrew NG parece preferir dizer:
sem terem sido aparentemente específicmante programados. [2] (https://pt.coursera.org/learn/machine-learning), 3
Aprendizagem de máquina é aplicada em várias atividades, vejamos alguns exemplos.
-
Sistemas de recomendação 👍 . Utilizados por sítes de venda, como a Amazon, para recomendar compras baseadas nas escolhas dos usuários comparados mútuamente. Ou em serviços de stream, como o Netflix ou o Prime. Observem a complexidade de considerar que, ao classificar o filme A como um bom filme, o usuário deverá gostar tambem do filme B. Ora, apesar de podermos classificar um filme pelo gênero (ação, romance, etc), a qualidade de um filme é determinada por fatores muito mais profundos. Pode ser a música do filme, o estilo do diretor, os atores, seus desempenhos, o estilo da narrativa. E ainda é preciso classificar usuários como de gosto semelhantes, e desta forma poder recomendar um filme que o usuário A gostou para o usuário B. Em sintese, são tantos fatores a considerar que fica muito difícl criar uma formula cheia de calculo.
-
Carros semi e auto dirigíveis 🚗. Empresas como o Google, Tesla, Uber, para mencionar algumas, já estão testando, na prática em em tempo real, carros semi ou auto dirigíveis, em algumas cidades. Dirigir é uma atividade complexa, que precisa levar em consideração um grande número de fatores. Um programa de computador que deseja aprender a dirigir, de maneira semelhante a como uma pessoa aprende, deve ser capaz de levar em consideração a observação visual da estrada, deve prever as ações de outros motoristas, deve observar a sinalização, deve considerar informações sonoras. A lista de fatores que influenciam cada ação de acelerar, reduzir, parar, controlar o volante, etc, é muito grande. Imagine se tivéssemos que ensinar uma pessoa a dirigir, mas que esta pessoa nunca andou de carro, mem mesmo sabe o que é um carro. E se tivéssemos que ensinar dentro de uma sala, sem prática, sem imagens, só descrevendo o que pode acontecer, o que deve ser feito diante de cada evento ... Seria uma tarefa talvez impossível. Em termos de computação, isto seria programar específicamente para a realização de uma tarefa. Por outro lado, na verdade as pessoas aprendem inicialmente observando alguma outra pessoa dirigir. Depois, começam a praticar, em geral em um local especialmente seguro, e cometem erros, e aprendem com estes erros. O equivalente disto para um programa de computador seria aprender observando filmes de alguem dirigindo, e depois simular o ato de dirigir começando em um ambiente virtual, até conseguir igualar, e se possível ter desempenho melhor, do que os motoristas observados. Isto seria um programa aprendendo algo sem ter sido específicamente instruído sobre o que fazer exatamente.
-
Diagnóstico de efermidades, como o câncer 🏥. Muitas doenças graves, se diagnósticadas a tempo, podem ser tratadas com mais eficiência, evitando danos mais graves e óbitos precoces. Recentemente uma série de televisão chamada House fez bastante sucesso. Mostrava as atividades de uma equipe de diagnóstico em um grande hospital, sempre deixando bastante evidente que, as chances de diagnosticar certas patologias são muito dependentes da capacidade do especialista. Por mais que estude, pelas limitações humanas, um médico não consegue aprender tudo que seria bom saber. Um programa de computador capaz de aprender, na presença de dados históricos, pode atingir níveis de conhecimentos sem precedentes.
-
Detecção de atividades fraudulentas na Internet 😈. Sites de serviços, como bancos, sites de venda, são muito visados por fraudadores. Programas que podem aprender a identificar ações fraudulentas possuem grande demanda.
Podemos dizer que a aprendizagem de máquina se situa na fronteira da computação e da estatística. A estatística é a ciência especializada em coletar, observar, classificar e determinar ações pela análise de dados. Utiliza bastante os conhecimentos de probabilidade para isso.
Aprender por observação demanda quantidades muito grandes de dados históricos, que mostrem claramente o que deve ser feito, com exemplos tanto de sucessos, como de fracassos.
Uma observação aquí, com relação a graduação de engenharia da computação, é que naturalmente são cursos que estudam computação e estatística, com uma noção de matemática básica bastante completa.
Olhe por exemplo uma criança pequena. Alguém aponta um objeto para ela e diz algo como: "Olhe, um au-au!", ou então, - "Alí, um carro!", e assim por diante. Algum tempo depois, a criança começa a mencionar o nome dos objetos quando os vê. A criança aprendeu o nome dos objetos e é capaz de classificá-los com sucesso até certo ponto.
Alguns aspectos do processo de aprendizagem podem ser destacados:
- Mostrar e rotular. Alguém apenas precisa mostrar e rotular (informar o nome) do objeto.
- Sem destaque para as características. Não é necessário ensinar quais as características do objeto que devem ser usadas na classificação, funciona mesmo assim. Não se tenta explicar a uma criança pequena o que é um carro, como ele funciona, o que é o motor, combustível, dizer que tem rodas, como funcionam as rodas ... espera-se que ela aprenda apenas vendo e ouvindo o nome.
- Aprendizagem capaz de ser generalizada. A criança consegue, após o devido tempo, classificar com relativo sucesso objetos diferentes da mesma classe. Não é nescessário ensinar separadamente cada carro, como o carro da família dela, o do vizinho, o de cada pessoa. Ela vai generalizando, sendo capaz de saber que é um carro, sem ter sido específicamente instruída a isso, várias marcas e modelos de carro, com tamanho, forma e cores diferentes. Mesmo havendo diferenças, ela reconhece e classifica os objetos como carros, identifica como au-au cachorros diferentes, de raça, de aparência diferente.
Código de computador são conjuntos de instruções. As instruções são estritas e simples, são operações matemáticas aplicadas a dados numéricos, como por exemplo - "some isto e armazene alí", - "compare estes e decida o que fazer baseado no resultado", - "repita estas operações até que ...", e assim por diante. Não é uma tarefa dificil ensinar uma criança a reconhecer um carro, é só apontar e dar o nome. Mas talvez não seja tão fácil ensinar um computador a fazer o mesmo através de instuções específicas de computador. Estes aspectos seráo aprofundados e discutidos na evolução deste texto. Mas por ora, podemos considerar a dificuldade que teríamos de expressar as propriedades (ou características) dos componentes de um carro que permitissem seu correto reconhecimento e classificação: Tem que ter esta côr, tem que ter esta forma, etc, e ao dizermos isto para alguém que nunca viu um carro, a pessoa chega a conclusão que um bezouro é um carro! Se apenas pensarmos sobre isso veremos que não é uma tarefa fácil. Porque talvez possamos dizer que somos capazes de reconhecer um carro, mas não sabemos bem descrever como o fazemos. Uma das razões pode ser especulada de algumas pesquisas de ponta sobe o funcionamento do cérebro humano. Estas pesquisas afirmam que nossos cérebros não processam informações com uma única e linear série de operações, mas, ao invés disto, utiliza vária áreas de processamento separadas, algumas bem especializadas em fazer determinados tipos de operações, diferentes de outras. e mais, estas operações às vêzes ocorrem de forma concorrente, e ainda ocorrem tanto em áras concientes como em áras inconcientes de nosso cérebro. Como resultado disto, podemos estar concientemente tentando falar o nome do objeto que avistamos, e de repente, no meio deste pensamento surge do nada a palavra carro, sem termos conciência do que aconteceu para chegarmos a est conclusão. E tudo isto tão rápido, que sem refletir já estamos pensando em outra coisa. Podemos resumir em: Sabemos fazer, mas não sabemos como fazemos!
Cientistas da computação vê tentando várias abordagens para realizar reconhecimento de objetos, no campos mais geral da inteligência artifical. Houve algum sucesso nautilização de segmentação de um objeto em suas características (propriedades), mas com pouco efeito generalizado. É aí que o aprendizado automático tem recebido esfôrço de desenvolvimnto, e tem apresentado alguns resultados promissores. Vamos aprender que um algoritmo de reconhecimento realiza seu trabalho selecionando algumas características. Mas,à medida que evoluem, nós não temos idéia exata de quais são as características selecionadas. Provávelmente, um grande número, e também, uma grande combinação delas. Não nescessáriamente algo evidente como rodas, cantos e parabrisas.
Imagine um gráfico cartesiano (em azul), como na Figura 1. Imagine a ocorrência de dois grupos de valores, os pontos verdes e os vermelhos.
Então, você traça uma linha preta para separar os dois grupos de valores, como na Figura 2.
É preciso girar o sentido da linha separadora para uma posição mais adequada, veja a Figura 3.
Você vê que apenas girar não é suficiente para a melhor seperação. Deslocar a linha separadora permite melhor resultado, como mostra a Figura 4.
| Figura 1 | Figura 2 | Figura 3 | Figura 4 |
|---|---|---|---|
| [[https://github.com/duodecimo/duodecimoMachineLearning/blob/master/images/cartesianClustersSeparation01.png | width=200px | height=200px | align=center |

Aprendizagem de Máquina - Duodécimo Fernandes