Inteligência Artificial: O modelo Funcional
- Hobbert Evergreen

- 10 de jul. de 2022
- 3 min de leitura
Um dos pilares importantes do funcionamento do computador é o modo de operar baseado em "funções".
A ideia de funções, resumidamente, vem da teoria de conjuntos. Existem dois conjuntos, chamados de domínio e contra-domínio, e eles possuem elementos que se conectam. O conjunto de origem (domínio) possui algumas regras, como por exemplo, cada elemento de seus elementos só pode se conectar à um elemento do conjunto destino (contra-domnínio)!
Porém o conjunto de destino, pode receber mais de uma conexão a partir do conjunto de origem.
Na prática, no computador, isso é como passar um valor X para uma conta e receber uma resposta Y, ou mesmo passar os parâmentros de uma "função" e receber algo como "retorno".
Essa ideia é bastante importante, principalmente quando se diz que "redes neurais são um aproximador universal de funções".
Isso significa que estamos trabalhando em um modelo de entrada e saída, quando a rede neural é uma função, que segue os princípios da teoria de conjuntos da matemática.
Dito isso, vamos ao ponto: é possível criar inteligencia com base em funções?
Vamos um primeiro tipo de função! Em que você passa um ou algumas entradas, ela faz um cálculo e retorna uma resposta ou um algumas respostas.
E vamos entender que entre a entrada e saída, não há espaço para modificar parâmetros ou obter alguma informação!
Neste caso ficamos reféns da nossa função! Ela precisa funcionar! Não conseguimos intervir! Se passamos a entrada, ela obrigatóriamente dá a mesma resposta para a mesma entrada! É fixa!
E neste sentido a função não é capaz de aprender ou promover a reflexão!
Por outro lado, as redes neurais separaram o funcionamento em duas etapas! Em um momento você "treina" a sua função, ou "aprende" a função que conecta os dois conjuntos! Depois que treinou, você usa a função da mesma forma que a anterior! De maneira fixa e imutável.
Ganhamos flexibilidade no treinamento, porém continuamos com a rigidez das entradas dando uma saída fixa!
Alguns modelos partiram para um treinamento "on-line" em que o treinamento ocorre junto com o uso! Isso sim começa ser um avanço em flexibilidade! Porém, ainda sim, entre a entrada e a saída continua apenas uma etapa!!
E é aí que gostaria de chegar.
Se vamos usar um modelo funcional, precisamos além do aprendizado, de flexibilidade!
Por exemplo, quando utilizamos lógica, encadeamos "funções"!
Se está chovendo
Se tenho um guarda chuva
Se quando chove uso um guarda chuva
Então vou pegar o guarda chuva
Essa ideia em que várias proposições são combinadas para produzir uma conclusão sugere um analogia: o encadeamento de funções!
E neste sentido, quando uma função pode ter a saída apontando para outra função, que pode apontar para outra e que podemos reposicionar as funções formando novos resultados, então neste momento estamos dando flexibilidade!
E mais que isso! Analisar as funções individualmente nos permite obter informações importantes sobre a explicação do porque o resultado foi obtido daquela forma!
Neste sentido juntamos o aprendizado através do treinamento, com as variações através das combinações, e obtemos um modelo funcional passível (talvez não em todos os casos) de explicação!
Sobretudo se as função combinadas, são funções lógicas. Por exemplo, uma função de linguagem natural que verifica a validade de um argumento.
Através de sucessivas avaliações de validade, é possível ao menos concluir se o argumento é válido, ainda que não saibamos se é verdadeiro, mas que em algum medida já trás informação sobre a possível conclusão que nossa função inicial trouxe.
Talvez tenha ficado um pouco confuso!
Por hora, é apenas uma reflexão livre sobre quando trabalhamos com funções, em busca de um ganho de liberdade diante da rigidez das funções!
Porém vou procurar, no futuro, exemplificar melhor esta ideia!
Valeuuuuuuuuuu

Comentários