Como um computador aprende a pensar?
- Hobbert Evergreen

- 29 de jun. de 2022
- 3 min de leitura
Atualizado: 3 de jul. de 2022
Recentemente estava pensando sobre como os computadores pensam. E percebi que o que eu estava fazendo era pensar sobre fundamentos do aprendizado de máquina.
E é interessante perceber que as máquinas aprendem de maneira muito diferente de nós!

A partir de agora vamos chamar o programador de "Professor"! E o programa que ele escreve é semelhante à uma pessoa ensinando outra. Porém, no caso do programador, de forma escrita! É como se o programador tivesse deixado um bilhete na mesa da cozinha e a pessoa que passasse ali depois e visse o bilhete, teria as informações para realizar uma atividade!
O bilhete é o programa, o computador é a pessoa que encontra o bilhete e segue as regras.
Outra questão importante é que nosso foco é pensar em um robô e as ações que ele pode fazer.
Então quando um programador escreve
if copo_de_agua == vazio:
ligar_torneira = True
else if copo_de_agua == cheio:
ligar_torneira = FalseNesse pseudo código acima, se fosse um robô, ele iria ligar a torneira caso seus sensores detectassem o copo vazio, e desligaria caso estivesse cheio.
Perfeito.
1) Vamos analisar em relação ao tempo. Tudo foi feito no presente. O sensor mediu o estado atual e na mesma hora agiu!
2) E vamos analisar em relação à flexibilidade! O código está escrito e fechado. Flexibilidade zero!
3) Grau de autonomia? 100% dependente do programador/professor
Vamos pensar outro tipo de programa
se ganhei_recompensa == True:
memoriza_acao_realizada = acao_realizada
memoriza_local_onde_estava = local_onde_estavaNeste segundo programa, ele se baseia no princípio do aprendizado por reforço. Quando ganhamos uma recompensa vamos memorizar o que foi feito no local em que foi feito! Com isso podemos fazer de novo a mesma ação quando estivermos no mesmo local e ganhar novamente a recompensa!
Neste exemplo simples, vamos analisar os mesmos critérios
1) Tempo presente verifica se ganhou a recompensa. Memorizar o dado, significa ter algo para recordar, então estaremos utilizando o passado dessa vez. E o futuro? Afinal, queremos lembrar de algo para acertar no futuro!! Bom, para não entrar em polêmicas, vamos considerar que o comando "se" é no presente, e a memória guarda no presente uma informação do passado! Então, mesmo servindo para uso futuro, vamos considerar apenas presente e passado!
2) Flexibilidade? Zero novamente
3) Autonomia... neste caso já não é zero... porque ganhar a recompensa pode depender das ações do robô! Talvez ele nunca receba a recompensa. Porém, por outro lado, o código é fixo. Isso significa que ele é muito mais dependente do professor que autonomo. Ele não é 0 autonomo, mas é bem pouco autonomo!
Agora um último exemplo para finalizar
estado_futuro_desejado = comprar_chocolate
probabilidade_acao_comprar_chocolate = calcula_probabilidade(acao, comprar_chocolate, local_onde_estou)
se probabilidade_acao_comprar_chocolate > 80%:
comprar_chocolate = True
atualiza_probabilidade_comprar = TrueEste último exemplo também é fundamentado no aprendizado por reforço! O robô verifica determinada ação em determinado local, para saber se deve ou nao comprar chocolate!
Analisando...
1) Tempo. Neste caso, a ação no presente depende do cálculo de algo que pode acontecer no futuro! E ele age no presente. E atualiza a probabilidade, que representa o passado! Ou seja, presente, passado e futuro
2) Flexibilidade? Zero... tudo depende do Professor
3) Autonomia... Agora temos duas variáveis que se modificam. A probabilidade que pode aumentar ou diminuir. E a ação do robô que pode nunca acontecer! Então este tipo ainda não é autônomo, mas é mais autônomo que os dois anteriores!!
E aí, gostou? Os aprendizados discutidos são fundamentos básicos e simples, porém representam situações que vão acontecer não importa quão moderno o programa de computador seja!
Na programação e no aprendizado em geral sempre estamos fazendo um mix de novidade com antiguidade, complexidade com simplicidade! Essa percepção é fundamental para amadurecermos como programadores de IA!
Vou discutir mais formas de aprendizado de máquina em breve!!
Até lá!
Comentários