Do curso: Introdução à Inteligência Artificial (2023)
Aprendendo com os erros
— Nós humanos tendemos a pensar em certo e errado como ou um ou outro. Ou se está certo ou errado, mas as redes neurais artificiais precisam ser muito mais específicas. Para uma rede neural, 95% certo é muito diferente de 97% certo. O desafio é como o sistema descobre o quão errado algo está. De certa forma, a rede neural precisa medir o nível de erro. Em redes neurais, isso é medido como uma função de custo. A função de custo é apenas um número que o sistema usa para comparar sua resposta com a resposta correta. Se for muito próximo, então o número será pequeno. Mas se estiver muito distante, então o número será maior. Digamos que sua rede neural tenta determinar se uma imagem contém um cachorro. A rede diz que há 97% de chance de ser a foto de um cachorro, mas termina sendo a foto de um gato. Esse nível de erro terá um ligeiro custo. Agora, digamos que a rede diga que há 99% de chance de ser a foto de um cachorro, mas dessa vez é a foto de uma montanha coberta de neve. Este nível de erro terá um custo muito maior. Isso acontece porque neste caso a rede estava muito, muito errada, então precisa fazer ajustes mais agressivos em seus pesos e vieses. Tentar corrigir o nível de erro é algo complicado. Para isso, muitas redes neurais usam algo chamado de descida do gradiente. Gradiente significa inclinação e descida significa ir para baixo. Então imagine que sua rede neural artificial está lançando dardos novamente. Ela faz previsões e vê quão perto consegue chegar do centro do alvo. Algumas das previsões passam muito longe, mas algumas chegam perto. Quando se lança um dardo, existe uma distância entre ele e o alvo. Quando está no ar, o dardo viaja em um ângulo ascendente e, em seguida, descendente. E então atinge o alvo. Se cair completamente fora do alvo, será preciso fazer uma alteração maior no ângulo. Se estiver muito próximo do alvo, então será preciso fazer uma mudança muito pequena no ângulo. Para assim atingir o centro do alvo. Bem, a rede neural faz praticamente a mesma coisa. Ela usa cálculos de descida de gradiente para ajustar os pesos e vieses na rede. Não usa dardos, mas um cálculo muito parecido para calcular o ângulo do nível de erro. Na verdade, essa é uma das maiores inovações nas redes neurais artificiais. Chama-se retropropagação de erros da rede ou retropro para abreviar. Lembre-se, estamos usando algo chamado rede artificial de alimentação direta. Seus dados seguem da esquerda para a direita. Começa na camada de entrada e segue para a camada de saída. Mas quando sua rede comete um erro, precisa voltar. Precisa usar o gradiente de descida para determinar seu nível de erro. Então usará a retropro para ajustar os pesos e vieses com base na gravidade do erro. Se a rede realmente ultrapassar o alvo, terá que fazer ajustes extremos. Mas se a previsão for bem aproximada, então a rede deve ser muito mais cuidadosa. A rede irá alimentar adiante e então retrocorrigir. Desta forma, pode ajustar a si mesma em direção à resposta correta.