Transformar dados em modelos
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Explicar as diferenças entre algoritmos com codificação manual e modelos treinados.
- Definir a aprendizagem de máquina e como ela se relaciona com a IA.
- Diferenciar entre dados estruturados e não estruturados e como isso afeta o treinamento.
Trailcast
Se você deseja escutar uma gravação de áudio deste módulo, use o reprodutor abaixo. Quando terminar de escutar essa gravação, lembre-se de voltar a cada unidade, consultar os recursos e completar as avaliações associadas.
O truque por trás da mágica
O que a IA pode fazer pode parecer mágica. E, como mágica, é natural querer ver o que acontece nos bastidores. Você verá cientistas de computação e pesquisadores usando muitos dados, matemática e poder de processamento em vez de um jogo de espelhos. Saber como a IA realmente funciona ajudará você a usá-la em todo o seu potencial e evitar armadilhas devido às suas limitações.
A mudança da criação para o treinamento
Durante décadas, os programadores criaram código que usa uma entrada, processa-a usando um conjunto de dados e retorna uma saída. Por exemplo, veja como encontrar a média de um conjunto de números.
- Entrada: 5, 8, 2, 9
- Processo: adicionar os valores [5+8+2+9] e dividir pelo número de entradas [4]
- Saída: 6
Esse conjunto de regras simples para transformar uma entrada em uma saída é um exemplo de algoritmo. Algoritmos foram criados para fazer algumas tarefas bastante sofisticadas. Mas algumas tarefas têm tantas regras (e exceções) que é impossível capturá-las todas em um algoritmo manual. Natação é um bom exemplo de uma tarefa que é difícil de encapsular como um conjunto de regras. Você pode receber algum conselho antes de pular na piscina, mas somente sabe bem o que funciona depois que tenta manter a cabeça fora d'água. Aprendemos melhor algumas coisas com a experiência.
E se pudéssemos treinar um computador da mesma forma? Não jogando-o na piscina, mas deixando que ele descubra o que funciona para ser bem-sucedido em uma tarefa? Mas assim como aprender a nadar é bem diferente de aprender a falar outra língua, o tipo de treinamento depende da tarefa. Vamos ver algumas das formas de treinamento de IA.
Experiência necessária
Imagine que sempre que você fosse à loja comprar leite, rastreasse os detalhes da ida em uma planilha. É um pouco estranho, mas vamos lá. Você prepara as colunas abaixo.
- É fim de semana?
- Hora do dia
- Está chovendo ou não?
- Distância até a loja
- Total de minutos da incumbência
Depois de várias idas, você começa a sentir como as condições afetam a duração. Por exemplo, a chuva torna o deslocamento mais demorado, mas também significa que há menos pessoas comprando. Seu cérebro começa a fazer conexões entre as entradas (fim de semana [W], hora do dia [T], chuva [R], distância [D]) e a saída (minutos [M]).
Mas como podemos fazer com que um computador observe tendências nos dados para poder estimar também? Uma maneira é o método "adivinhar e verificar". Veja como fazer.
Etapa 1: Atribua um "peso" a todas as suas entradas. É um número que representa o grau de impacto da entrada na saída. É OK começar com o mesmo peso para tudo.
Etapa 2: Use os pesos nos dados existentes (e alguma matemática inteligente que não vamos discutir aqui) para estimar os minutos em uma ida ao supermercado para comprar leite. Podemos comparar a estimativa com os dados históricos. Não vai estar correto, mas tudo bem.
Etapa 3: Deixe o computador adivinhar um novo peso para cada entrada, tornando algumas mais importantes que outras. Por exemplo, a hora do dia pode ser mais importante do que se está chovendo ou não.
Etapa 4: Refaça os cálculos para verificar se os novos pesos resultarão em uma estimativa melhor. Se sim, isso significa que os pesos estão melhores e estão mudando na direção certa.
Etapa 5: Repita as etapas 3 e 4 deixando o computador ajustar os pesos até que as estimativas não melhorem mais.
Aqui, o computador já estabeleceu os pesos para cada entrada. Se você pensar no peso como o grau de impacto da entrada em uma saída, poderá fazer um diagrama que usa espessura de linhas para representar o peso de uma conexão.
Para este exemplo, parece que a hora do dia tem a conexão mais forte, mas aparentemente a chuva não faz tanta diferença.
Esse processo de adivinhar e verificar criou um modelo das nossas idas ao supermercado para comprar leite. E, como um barco de modelo, podemos levá-lo para a piscina a fim de ver se flutua, usando uma analogia. Isso significa testá-lo no mundo real. Ou seja, nas suas próximas idas ao supermercado para comprar leite, antes de sair, faça o modelo estimar o tempo que levará. Se ele acertar muitas vezes seguidas, você poderá deixá-lo fazer essa estimativa com confiança para todas as idas futuras.
[Imagem gerada por IA usando o DreamStudio em stability.ai com o prompt "Um robô está em uma mesa juntando as peças de um modelo de barco à vela pequeno. A imagem foi desenhada no estilo de arte de vetor 2D."
Usar os dados certos para o trabalho certo
Esse é um exemplo bastante simples do uso de treinamento para fazer um modelo de IA, mas ele já mostra algumas ideias importantes. Primeiro, é um exemplo de aprendizagem de máquina (ML), que é o processo de usar grandes quantidades de dados a fim de treinar um modelo para fazer previsões em vez de criar um algoritmo.
Segundo, os dados não são todos iguais. No nosso exemplo do leite, a planilha é o que chamaríamos de dados estruturados. Ela é bem organizada, com rótulos em cada coluna para que você saiba o que cada célula significa. Mas os dados não estruturados seriam algo como um artigo de notícias ou um arquivo de imagem sem rótulo. O tipo de dados que você tem à disposição afetará o tipo de treinamento que é possível fazer.
Terceiro, os dados estruturados da nossa planilha permitem que os computadores façam aprendizado supervisionado. Ele é considerado supervisionado porque podemos fazer com que cada dado de entrada tenha uma saída correspondente esperada que pode ser verificada. Já os dados não estruturados são usados em aprendizado não supervisionado, que é quando a IA tenta encontrar conexões nos dados sem realmente saber o que está procurando.
Deixar o computador definir um peso para cada entrada é apenas um tipo de regime de treinamento. Mas muitas vezes os sistemas interconectados são mais complicados do que o representado pela atribuição de pesos individuais. Felizmente, como você verá na próxima unidade, existem outras formas de treinamento!