Ciências e Tecnologia » Tecnologia » INTELIGÊNCIA ARTIFICIAL E SUAS SUBÁREAS.

INTELIGÊNCIA ARTIFICIAL E SUAS SUBÁREAS.

O que é inteligência artificial.

 

Inteligência artificial é uma área que interage com diversos campos de estudos “desde áreas de uso geral, como aprendizado e percepção até tarefas específicas como jogos de xadrez”. (RUSSEL, NORVIG, 2004, p.3).

A ideia da IA é automatizar e sistematizar conhecimentos e tarefas intelectuais gerando aplicações potenciais a qualquer área de aplicação seja matemática, computação, robótica, gerando assim uma área de campo universal tendo utilidade suporte para um vasto leque de aplicações.

O conceito inicial de inteligência artificial se baseia em agentes inteligentes interagindo com ambientes, tomando como base o conceito sistêmico de entrada, processamento e saída, podemos definir um agente inteligente. Os elementos de entrada de uma agente inteligente são chamados de percepção.

 ”A sequência de percepções do agente é a história completa de tudo que o agente já percebeu” (RUSSEL, NORVIG, 2004, p.34).

Qualquer tomada de decisão de um agente inteligente é baseada em suas percepções, matematicamente o agente está em função de suas percepções, outro conceito de um agente inteligente é o conceito de racionalidade.

 

“Um agente racional é aquele que faz tudo certo em termos conceituais, toda entrada na tabela corresponde a função de agente é preenchida de forma correta”. (RUSSEL, NORVIG, 2004, p.35).

A ideia seria registrar os dados de percepção de forma correta e consciente em uma base de dados utilizado o modelo sistêmico.

Outro critério utilizado para determinar o conceito de um agente inteligente são as medidas de desempenho,

“Uma medida desempenho encarna o critério para se medir o sucesso do comportamento do agente ”. (RUSSEL, NORVIG, 2004, p.36).

 Dentro de um ambiente, o agente gera uma sequência de ações através das percepções que ele teve, sendo assim, se estabelece um critério para comparar a sequência de ações com um critério desejado.

Um agente inteligente tem como base para sua inteligência o conceito de racionalidade, a ideia de racionalidade vem em analisar as percepções e atuar da forma correta gerando uma ação que venha condizer com a medida de desempenho, a medida de desempenho é análogo a um objeto utilizado em controle chamado realimentação.

“A medida de desempenho que define os critérios de sucesso, o conhecimento anterior que o agente tem do ambiente, as ações que o agente pode executar, a sequência de percepções do agente até o momento”. (RUSSEL, NORVIG, 2004, p.36).

Os critérios anteriores definem um agente racional, que engloba todas as capacidades anteriores para formar um agente inteligente, os últimos 3 fatores para se desenvolver um agente inteligente são onisciência, aprendizado e autonomia.

“Um agente onisciente sabe o resultado real de suas ações e pode agir de acordo com ele; porém, a onisciência é impossível na realidade. ” (RUSSEL, N., 2004, p.37).

O ideal para se entender este conceito é pensar que a racionalidade não é algo perfeito, a ideia de racionalidade é maximizar o desempenho esperado para o agente inteligente.

“A configuração inicial do agente poderia refletir em algum conhecimento anterior do ambiente mas, à medida que agente ganha experiência, isso pode ser modificado e ampliado ”(RUSSEL, N., 2004, p.39).

A ideia de adquirir experiência e modificar sua estrutura desenvolvida nas ações anteriores, traz o processo de aprendizado ao sistema inteligente desenvolvido, o processo de aprendizado modifica o comportamento do agente inteligente capacitando o mesmo para ter autonomia sobre o ambiente e para o desenvolvimento das tarefas especificadas.

 

“Um agente racional dever ser autônomo ele deve aprender o que puder para compensar o conhecimento prévio parcial ou incorreto” (RUSSEL, N., 2004, p.38).

Por fim o agente inteligente necessita ter autonomia para corrigir erros gerados nas percepções anteriores e no processo de aquisição de dados desenvolvido no processo de aprendizado.

Todos estes conceitos são adaptados para cada ferramenta de desenvolvimento na área da I.A, quais características o agente inteligente deve ter para que seu trabalho possa ser desenvolvido e otimizado ao longo do exercício de alguma atividade.

 

 

 

Lógica Nebulosa ou Fuzzy.

 

Depois de compreender quais são as ações de um agente inteligente se faz necessário aplicação e ferramentas para gerar a otimização do tratamento de dados que irão gerar toda conhecimento para a agente, através de suas percepções de ações anteriores. Muitas vezes os dados e as informação das percepções anteriores são um pouco vastas e as vezes de natureza  parcialmente desconhecida, a ideia para este tipo de ambiente e para tratar estes tipos de percepções é utilizar a “lógica fuzzy”.

“A lógica nebulosa (fuzzy logic) permite o tratamento de expressões que envolvem grandezas descritas de forma não exata ” (NAIRO, N.; YONEYAMA, T. 2011. p.68).

O estudo dos sistemas fuzzy foi desenvolvido por L. A. Zadeh nos anos 60 com objetivo ajudar a tratamento de dados com caráter impreciso ou vago. Ela surgiu inspirada na lógica tradicional, as características binárias da lógica clássica, na qual um valor pertence ou não a um conjunto, ou seja, valore de 0 e 1. Com isso, uma variável pode pertencer a mais de um conjunto fuzzy com diferentes graus, isto é comumente chamado com graus de pertinência.

1

A arquitetura de um sistema citada na figura 1, mostra o funcionamento total da lógica, partindo do principio da fuzzificação onde as variáveis externas serão convertidas para os  conjuntos fuzzy, que são grupos que armazenam todas as informações em determinados conjuntos facilitando tanto o entendimento do sistema inteligente quanto na tomada de decisão do mesmo. Toda informação que vem do ambiente externo passa pelo processo de fuzzificação e é transformada nas variáveis linguísticas.

“Em geral, uma variável linguística é associada a um conjunto de termos, no qual cada termo é definido no mesmo universo de discurso ”(NOGUEIRA, M.2013.p.21).

2

Como descrito na figura 2, o processo de fuzzificação converteu valores de 0 a 1,60 metros em um conjunto de uma variável linguística chama “baixo”, e em outros 3 conjuntos que abrange determinados valores de altura como baixo mediano e alto.

Através deste método o sistema inteligente pode trabalhar com dados de natureza desconhecida ou valores um tanto vagos, pois ao ter uma percepção do ambiente externo ele compara com os grupos de valores armazenado em sua base de dados interna, e assim classifica como algum valor de uma determinada variável linguística.

“A teoria de conjuntos nebulosos busca, portanto, traduzir em termos formais a informação imprecisa que ocorre de maneira natural na representação dos fenômenos da natureza, como descrito por humanos utilizando linguagem corriqueira”.(NAIRO, N.; YONEYAMA, T. 2011. p.70).

A próxima etapa dentro da arquitetura da lógica fuzzy, é o processo de inferência e as regras, onde é desenvolvido todo processamento do sistema e através dos dados de entrada são

 

decididas quais serão as saídas do mesmo, ou seja, as ações a serem tomadas, este é etapa do processo é denotada de máquina inferência.

“Máquina de inferência recebe as informações de entrada já convertidas em termos associados as variáveis linguísticas pertencendo à algum conjunto nebuloso, e gera a partir de regras determinadas pelo projetista” (NAIRO, N.; YONEYAMA, T. 2011. p.80)

Partindo deste princípio uma saída associada a uma variável linguística será em seguida convertida para algum determinado valor numérico.

A = {(x , ( x)); x ÎU ( x) Î [ 0,1] )

A função ua(x) é uma função de pertinência  que determina com que grau que x está em A.

Esta etapa se trata da etapa lógica onde através de algoritmos se desenvolve um processamento das variáveis linguísticas de entrada. Se utiliza diversos termos que são altamente utilizados na implementação de lógica computacional, como exemplo o termo “SE”, ”ENTÃO”, “SE NÃO” e entre outros.

A última etapa do controlador fuzzy se baseia no método de “defuzzificação“, onde na prática para que o sistema tenha um funcionamento correto, ele converte os valores  das variáveis linguísticas para valores numéricos.

A ideia é que se necessita de uma resposta precisa, para ser utiliza na entrada de um atuador existem muitas técnicas para o processo defuzzificação, sendo algumas mais empregadas:

3

Redes Neurais artificiais

 

A ideia de redes neurais é extraída da modelagem do cérebro humano, onde o poder computacional e a eficiência energética e principalmente o poder de processamento é muito mais amplo do que  qualquer computador ou sistemas em comum.

Segundo (HAYKIN, S. 2001. p.27) o cérebro humano é um computador (sistema de processamento de informação) altamente complexo, não linear e paralelo, o cérebro humano  tem a capacidade de organizar suas estruturas conhecidas por neurônios, realizar determinados processamentos (reconhecimentos de padrões, percepções e controle motor).

As estruturas do cérebro se desenvolvem desde o nascimento através da “experiência ”, este fenômenos do desenvolvimento do cérebro através do tempo e experiência se chama plasticidade neural, permitindo diversas adaptações a diversos ambientes.

“Anteriormente mencionamos que a plasticidade permite que o sistema nervoso em desenvolvimento se adapte ao seu meio ambiente.” (HAYKIN, S. 2001.p.33)

A ideia de sintetizar os neurônios e gerar aplicações é de fato que o cérebro tem um poder computacional gigantesco e ideal para ser utilizado e implementado em máquinas e equipamentos por causa da sua linearidade e não linearidade, mapeamento de entrada e saída, adaptabilidade, resposta a evidências, informação contextual, tolerância a falhas, uniformidade de análise de projeto e principalmente implementações em VLSI.

“Na sua forma mais geral, uma rede neural é uma máquina que é projetada para modelar a maneira como o cérebro realiza uma determinada tarefa particular ou função, a rede é implementada utilizando-se componentes eletrônicos ou é simulado por programação de um computador”. (HAYKIN, S. 2001.p.28).

O cérebro é especialista em desempenhar funções  como reconhecimento  de padrões, controle motor, percepção, inferência , intuição, adivinhações, etc.

Entretanto, o cérebro também é “preconceituoso”, lento, impreciso, realiza generalizações incorretas e, acima de tudo, é geralmente incapaz de explicar suas próprias ações.

4

Comparando o cérebro humano com os sistemas lógicos eletrônicos ele é muito mais lento, mais duas características compensam esta taxa de operação que é o número de ligações sinápticas e a eficiência energética em cada operação por segundo.

“Tipicamente, os neurônios são de cinco ordens de grandeza mais lentos que as portas lógicas em silício; os eventos em circuito de silício acontecem na ordem de nano – segundos, enquanto os eventos neurais acontecem na ordem de mili – segundos. Entretanto, o cérebro compensa a taxa relativamente lenta de um neurônio pelo número realmente espantoso de neurônios (células nervosas),com conexões maciças entre si. Estimas -se que haja aproximadamente 10 bilhões de neurônios no córtex humano e 60 trilhões de sinapses ou conexões. O resultado livre é que o cérebro é uma estrutura extremamente eficiente. Mais especificamente a eficiência energética do cérebro é de aproximadamente  Joules por operação por segundo, enquanto que o valor correspondente aos melhores computadores em uso em nossos dias é cerca de joules de operação por segundo”. (HAYKIN, S. 2001.p.32).

5

O sistema nervoso mais abstrato pode ter 3 estágios onde se encontra os receptores, rede neural e atuadores, este sistema é análogo ao nossos neurônio biológicos como mostrado na figura 5 onde os dentritos recebem os pulsos sinápticos o corpo celular conhecido como soma desenvolvem todo o processamento do impulsos nervosos e os terminais sinápticos servem como atuadores. Se baseando nesta arquitetura pode se obter o modelamento matemático de um neurônio através da figura 6, onde temos, as entradas, os pesos onde se gera o aprendizado da rede, um bloco somador, função de ativação e a saída y.

Na equação  é sintetizada a relação entre as sinapses os pesos sinápticos e a função de ativação dos neurônios.

6

O que difere as redes neurais artificiais das demais ferramentas é a capacidade de aprendizado, é isso que difere o cérebro humano de qualquer sistema computacional, um sistema que tem capacidade de se auto – otimizar, gerar um aprendizado com os estados anteriores é a tendência para os sistemas inteligentes e aonde a computação embarcada quer chegar.

“Segundo (HAYKIN, S. 2001.p.75). Aprendizagem é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo de estimulação pelo ambiente no qual a rede está inserida. O tipo de aprendizagem é determinado pela maneira pelo qual as modificações dos parâmetros ocorrem”.

O eventos inseridos no processo de aprendizagem determina se a rede neural é estimulada pelo ambiente, se a mesma sofre alguma modificação dos parâmetros através das estimulações do ambiente onde o sistema está inserido e como fim a rede responde de uma forma diferente ao ambiente devido a modificação desenvolvida em sua estrutura interna.

As ferramentas de aprendizagem são muitas mais algumas neste determinado caso são extremamente relevantes como aprendizagem por correção de erro, aprendizagem baseada em memória, aprendizagem hebbiana, aprendizagem competitiva, aprendizagem de boltzmann, aprendizagem com um professor, aprendizagem sem um professor, as duas últimas são denominadas aprendizagem supervisionada e não supervisionada.

Rede neural com aprendizagem supervisionada a ideia aqui é que este mecanismo seja implementado em um ambiente desconhecido onde um “professor” tendo conhecimento

 

prévio sobre o ambiente e com uma resposta desejada para a saída de rede . O professor ajusta os parâmetros da rede afim de que se tenha um vetor de treinamento com a resposta ótima e o sinal de erro desejado.

“O sinal de erro é definido como a diferença entre a resposta desejada e a resposta real da rede” (HAYKIN, S. 2001.p.88).

Desta forma todo conhecimento que o professor tem do ambiente é transferido para a rede através do treinamento, chegando ao fim desta tarefa o professor pode ser dispensado, pois a rede tem total autonomia para corresponder ao ambiente onde ela foi implementada.

Aprendizagem sem um professor ou aprendizagem não supervisionada, funciona em um ambiente sem referências ou exemplos rotulados para a rede, duas ferramentas são utilizadas neste caso que é a aprendizagem por reforço e a neurodinâmica.

“Na aprendizagem por reforço o aprendizado de um mapeamento de entrada-saída é realizado através da interação contínua com o ambiente, visando minimizar o índice escalar de desempenho” (HAYKIN, S. 2001.p.88).

A ideia é que a própria rede possa lançar uma medida de qualidade satisfatória para cada tarefa que ela irá realizar, sendo assim, a própria rede irá realizar codificações internas para se adaptar ao ambiente.

A rede perceptron é a forma simples de implementar uma rede neural para reconhecer padrões, ela se baseia em um neurônio matemático com pesos sinápticos e ajuste de bias, este algoritmo posiciona um vetor no plano separando duas classes não – lineares.

7

“A sua capacidade de aprendizado se dá através da solução de um problema de otimização, nesse caso, correção dos parâmetros livres que são pesos W e Bias“. (NUNES, R. ,2011, p.23).

 

Processamento de linguagem natural- PLN

 

Processamento de Linguagem Natural (PLN) consiste no desenvolvimento de modelos computacionais para a realização de tarefas expressas em alguma língua natural (tradução e interpretação de textos, busca de informações em documentos e interfaces, web sites, ebooks, processamento de voz e áudio e entre outros). A PLN está voltada, essencialmente, a três aspectos da comunicação em linguagem natural:

– Som: fonologia

– Estrutura: morfologia e sintaxe

– Significado: semântica e pragmática

 A fonologia é relacionada ao reconhecimento dos sons que compõem as palavras de uma língua, pode se observar à aplicação desta ferramenta rodando por trás de algoritmos de processamento de voz e áudio. A morfologia reconhece as palavras em termos das unidades primitivas que a compõem (caçou → caç +ou). A sintaxe define a estrutura de uma frase, com base na forma como as palavras se relacionam nessa frase como sujeito e predicado.  A semântica associa significado a uma estrutura sintática, em termos dos significados das palavras que a compõem. Finalmente, a pragmática verifica se o significado associado à uma estrutura sintática é realmente o significado mais apropriado no contexto considerado.

 

Como podemos ver, esta técnica consiste em todos os aspectos referente a língua e a comunicação, podendo fazer com que a máquina venha ter as mesmas habilidades humanas de entender, interpretar e se comunicar, juntamente com outras ferramentas como  as redes neurais pode se retirar todo conhecimento adquirido através da PNL  e aplicar a um sistemas de aprendizado utilizando RNA´S para fazer com que seu sistema tenha seja autônomo e inteligente, fazendo com que um sistema por exemplo entre na internet leia um texto em algum web site,  retire  e interprete toda informação para desenvolver uma meta.

Desta forma podemos ver diversos sistemas trabalhando em conjunto com informações de sistemas e bancos de dados desenvolvendo toda uma interação com o ser humano, um exemplo disso são os assistentes pessoais como siri, google now, cortana, Watson e entre outros.

 

 

Algoritmos Genéticos

O Algoritmo Genético consiste em uma técnica de otimização inspirada em conceitos da biologia como a teoria da teoria da evolução, proposta por Charles Darwin, onde as melhores soluções para um determinado problema possuem maior capacidade para sobreviverem e desenvolvendo o ponto de partida para a busca de outras soluções é de fato destacar os progressos obtidos na utilização dos mesmos nas áreas de robótica, de geração distribuída de energia elétrica, projetos de circuitos integrados.

 

Tendo em vista a aplicação acima podemos entender que este tipo de algoritmo visa desenvolver a melhor solução possível dentre um conjunto de soluções para o estado meta do sistema. O conjunto de soluções é tratado como uma população de indivíduos, em seguida assim como nos algoritmos de busca se desenvolve uma função de avaliação que avalia se o indivíduo tem alguma correlação com o estado meta do sistema, que nada mais é que testar uma solução contida no conjunto população.

Através dos critérios descritos se escolhe o maior conjunto de soluções para o estado meta, tendo em mente que este conjunto irá resultar em outras melhores soluções. Duas operações definem como serão gerados os próximos indivíduos as mutações e cruzamentos.

Mutações:

A informação contida no gene de um indivíduo sorteado é alterada de maneira aleatória, em outras palavras, uma parte de uma determinada possível solução é modificada aleatoriamente, isto ocorre com uma determinada probabilidade, também conhecida como probabilidade de mutação. Assim como a probabilidade de cruzamento citada, esta causa forte influência na busca por melhores soluções, de modo que uma probabilidade de mutação baixa é benéfica e previne que as soluções fiquem eventualmente estagnadas em um dado valor. Porém, caso esta probabilidade seja muito alta, a busca pode se tornar bastante aleatória.

 

Cruzamento:

O cruzamento resulta na criação de  indivíduos a partir dos genitores, como foram  selecionados anteriormente através da função de avaliação. É importante ressaltar é a chamada probabilidade de cruzamento que estabelece com que frequência os cruzamentos são realizados, sendo assim, obviamente pode-se notar que com um alto valor deste parâmetro, novos indivíduos serão inseridos na população de maneira mais rápida.

8

Na figura acima é demonstrado um algoritmo genético alimentando os coeficientes de sintonia de um sistema de controle PID, que desenvolveram  os ganhos que irão interagir com a função de transferência.

 

Principais Parâmetros Genéticos.

É importante também, analisar de que maneira alguns parâmetros influem no comportamento dos Algoritmos Genéticos, para que se possa estabelecê-los conforme as necessidades do problema e dos recursos disponíveis.

Tamanho da População. O tamanho da população afeta o desempenho global e a eficiência dos algoritmos. Com uma população pequena o desempenho pode cair, pois deste modo a população fornece uma pequena cobertura do espaço de busca do problema. Uma grande população geralmente fornece uma cobertura representativa do domínio do problema,

Taxa de Cruzamento. Quanto maior for esta taxa, mais rapidamente novas estruturas serão introduzidas na população. Mas se esta for muito alta, estruturas com boas aptidões poderão ser retiradas mais rápida um valor alto, a maior parte da população será substituída, mas com valores muito altos pode ocorrer perda de estruturas de alta aptidão. Com um valor baixo, o algoritmo pode tornar-se muito lento.

Taxa de Mutação. Uma baixa taxa de mutação previne que uma dada posição fique estagnada em um valor, além de possibilitar que se chegue em qualquer ponto do espaço de busca. Com uma taxa muito alta a busca se torna essencialmente aleatória.

Intervalo de Geração. Controla a porcentagem da população que será substituída durante a próxima geração. Com um valor alto, a maior parte da população será substituída, mas com valores muito altos pode ocorrer perda de estruturas de alta aptidão. Com um valor baixo, o algoritmo pode tornar-se muito lento.

 

Sistemas especialistas.

É uma outra subárea da I.A que tem em vista repassar todo conhecimento sobre um determinado assunto ou tarefa para um computador, sistema ou máquina, para que o  mesmo venha desempenhar essa função e resolver determinado problema.

Sistemas especialistas são capazes de solucionar um problema de maneira similar a um especialista humano em determinada área de conhecimento é de suma importância o desenvolvimento e aplicação de sistemas deste gênero nas mais variadas áreas do conhecimento humano, a fim de ampliar e difundir as teorias e conhecimentos adquiridos pelo especialista humano na prática de seu dia a dia, que serão repassadas e aprimoradas através do sistema. Este trabalho aborda as definições primordiais deste tipo de aplicação da inteligência artificial, bem como cita alguns exemplos de aplicações destes nas mais variadas áreas do conhecimento humano.9

A Base de Conhecimento.

A Base do conhecimento não é uma simples coleção de informações. A tradicional base de dados com dados, arquivos, registros e seus relacionamentos estáticos é aqui substituída por uma base de regras e fatos e também heurísticas que correspondem ao conhecimento do especialista, ou dos especialistas do domínio sobre o qual foi construído o sistema .

Esta base de regras e fatos interage com o usuário e com o motor de inferência, permitindo identificar o problema a ser resolvido, as possibilidades de solução e o processo de raciocínio e inferência que levam a conclusões sobre o problema submetido ao sistema.

 

O Motor de Inferência

O motor de inferência é um elemento essencial para a existência de um sistema especialista ele é o núcleo do sistema é  por intermédio dele que os fatos e regras e heurística que compõem a base de conhecimento são aplicados no processo de resolução do problema .

A capacidade do motor de inferência é baseada em uma combinação de procedimentos de raciocínios que se processam de forma regressiva e progressiva.

Na forma de raciocínio progressivo, as informações são fornecidas ao sistema pelo usuário, que com suas respostas, estimulam o desencadeamento do processo de busca, navegando através da base de conhecimento, procurando pelos fatos, regras e heurísticas que melhor se aplicam a cada situação. O sistema continua nesta interação com o usuário, até encontrar a solução para o problema a ele submetido.

Referências bibliográficas:

HAYKIN, S. Redes Neurais Princípios e Práticas. 2 ed. Porto Alegre: Bookman. 2001. 900p.

NAIRO, N.; YONEYAMA, T. Inteligência artificial em automação. Editora Edgard Blücher LTDA, 5ºed.2011.

RUSSELL, S.; NORVIG, P. Inteligência Artificial.  2 ed. Rio de Janeiro: Elsevier, 2004. 528 p.

http://www.icmc.usp.br/~andre/research/genetic/

http://www.embarcados.com.br/algoritmos-geneticos-e-controladores-pid/

ww.ime.usp.br/~slago/IA-pln.pdf – PNL

http://www.inf.ufsc.br/~j.barreto/trabaluno/IASteel001.pdf

Compartilhe issoShare on FacebookTweet about this on TwitterPin on PinterestShare on StumbleUponShare on LinkedInShare on RedditEmail this to someoneShare on Google+

Escrito por Kawann Costa

Engenheiro Mecatrônico obcecado em entender como as coisas funcionam em seus níveis mais baixos de abstração.

Seu comentário é bem vindo

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

*