top of page

Como um computador aprende a pensar?

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!

ree

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 = False

Nesse 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_estava

Neste 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 = True

Este ú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


bottom of page