Buscar

roteiro_estudos_2.pdf - respostas parcial

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1. Defina representação do conhecimento. 
Representação do Conhecimento é uma subárea de pesquisa em inteligência artificial. 
A pesquisa na área de representação do conhecimento tenta responder diversas perguntas 
como: 
 Como representamos nosso conhecimento? 
 As pessoas representam conhecimento todas da mesma maneira? 
 Existe alguma forma de representar qualquer coisa? 
 Como programas inteligentes devem representar conhecimento? 
Em tese, uma representação geral como a lógica de primeira ordem seria suficientemente 
expressiva para representar qualquer tipo de conhecimento. No entanto, problemas de 
eficiência, facilidade de uso e a necessidade de expressar conhecimento incerto e incompleto 
levaram ao desenvolvimento de diversos tipos de formalismos de representação de 
conhecimento, como lógica, sistemas de frames e redes semânticas. 
A lógica é a base para a maioria dos formalismos de representação de conhecimento, seja de 
forma explícita, como nos sistemas especialistas baseados na linguagem Prolog, seja disfarçada 
na forma de representações específicas que podem facilmente ser interpretadas como 
proposições ou predicados lógicos. 
No entanto, problemas de eficiência, facilidade de uso e a necessidade de expressar 
conhecimento incerto e incompleto levaram ao desenvolvimento de diversos tipos de 
formalismos de representação de conhecimento. 
Em outras palavras, representação do Conhecimento é a estruturação do que será empregado 
pelo sistema para que um sistema computacional possa utilizar aspectos do conhecimento. 
Conhecimento [Russel and Norvig 1995] é um conjunto integrado de fatos e relações que 
quando devidamente interpretado, produz um desempenho eficiente. 
 
2. Apresente 3 características do conhecimento que devem ser analisadas no momento 
da representação. 
Características do conhecimento que devem ser analisadas: 
É volumoso: possui diversos aspectos, características e detalhes. A cada momento, novo 
conhecimento é gerado... 
De difícil caracterização: não sabemos explicar com formalismo como,quando e de que forma 
o conhecimento foi adquirido, como também temos dificuldade de explicá-lo. 
Em constante mudança: é aperfeiçoado sistematicamente, crescendo e se modificando 
permanentemente. 
É individual e único: cada indivíduo interpreta seu conhecimento de forma única. 
 
3. Explique a necessidade da representação do conhecimento ser generalizável e 
robusta. 
Generalizável: vários pontos de vista do mesmo conhecimento concebem uma representação 
de modo que possa ser atribuído a diversas situações e interpretações. 
Robusta: de tal forma que seja possível a sua utilização mesmo não abordando todas as 
situações possíveis, ou seja, mesmo sendo incompleta e imprecisa. 
 
4. Diferencie fatos e representação dos fatos. 
Fatos: Verdades em algum mundo relevante. Essas são as coisas que queremos representar. 
Representação de fatos: com algum formalismo escolhido. Essas são as coisas que 
efetivamente seremos capazes de manipular. 
 
5. Apresente duas formas de raciocínio e exemplifique. 
Raciocínio é um processo de construção de novas sentenças a partir de sentenças existentes. 
Categorias (Típicas) de Raciocínio: 
 Dedução 
 Indução 
 Abdução 
Dedução 
 Processo de raciocínio no qual uma conclusão segue necessariamente das premissas 
supostas. 
 Baseia-se na criação de novas sentenças a partir de premissas dadas como 
verdadeiras. A sentença criada é necessariamente verdadeira. 
 Uma das regras básicas da inferência da Lógica Dedutiva: regra do modus ponens 
(Latim: modo que afirma) 
 Se X é verdade e se X sendo verdade implica que Y é verdade, então Y é verdade. 
Exemplo: 
Premissa 1: Todo homem é mortal 
Premissa 2: João é homem 
Conclusão: João é mortal 
Indução 
Uma conclusão sobre todos os membros de uma classe por meio do exame de apenas uns 
poucos membros da classe. 
De maneira geral, raciocínio do particular para o geral. 
“Formalmente”: 
Para um conjunto de objetos, X={a,b,c,d,...}, se a propriedade P é verdade para a, e se P é 
verdade para b, e se P é verdade para c,... então P é verdade para todo X 
 
Exemplo: 
Joseana é professora 
Joseana tem um ótimo salário 
Lei geral: Professor tem um ótimo salário 
Abdução 
Consiste em, dada uma premissa do tipo P → Q, e sabendo-se que Q é verdadeira, admite-se 
que, talvez, P seja verdade, ou seja, supõe-se, sem certeza, que P é verdade. 
É uma heurística para fazer “inferências plausíveis”. 
Propicia uma conclusão plausível consistente com a informação disponível, a qual pode de fato 
está errada. 
 “Formalmente”: 
Se Y é verdade e X implica em Y, então X é verdade 
Exemplo: 
Se eu leio que fumar causa câncer de pulmão e 
José morreu de câncer de pulmão, 
Lei Geral: posso inferir que José era um fumante. 
 
6. Dentre as formas de representação do conhecimento estão as redes semânticas e os 
quadros (frames). 
Para cada uma delas: 
a. Explique a representação. 
b. Dê um exemplo. 
Redes semânticas: 
Há vários esquemas para se representar conhecimento. Dois deles, que capturam melhor o 
conhecimento relativo a objetos e as suas propriedades, são as cadeias semânticas e frames. 
O primeiro desses esquemas, as cadeias semânticas, originou-se na psicologia como resultado 
da modelagem de sistemas para a memória associativa humana. Mais recentemente, vários 
investigadores de ciência da computação estenderam o conceito original de cadeias semânticas 
para facilitar a manipulação de objetos mais complexos e suas relações. 
Basicamente, uma cadeia semântica é um grafo no qual os nós representam objetos (ou uma 
classe), e os vínculos mostram uma relação, geralmente binária, entre objetos ou classes 
conectadas pelo vínculo. Os nós podem ser de dois tipos: individuais ou genéricos. Os primeiros 
representam descrições ou afirmações relativas a uma instância individual de um objeto, 
enquanto os segundos são relacionados a uma classe ou categoria de objetos. As classes são 
pré-ordenadas em uma taxonomia, e há vínculos que representam relações binárias especiais 
como isa - é um (do inglês is a) - e ako - um tipo de (do inglês a kind of). O primeiro tipo de 
vínculo conecta um nó individual a um nó genérico e identifica um indivíduo como pertencendo 
a certa classe. O segundo une dois nós genéricos entre eles e mostra que determinada classe é 
subdivisão de outra classe. 
Exemplo: Analogamente à representação lógica, o formalismo de cadeias semânticas conta com 
comandos de armazenamento e consulta, e pode ser acessado a partir das regras através de 
padrões. A cadeia semântica associada ao exemplo da cor de Clyde pode ser definida através do 
seguinte comando: 
> (snet-store '(color (clyde real e-um) 
 (real elefante e-um) 
 (elefante cinza e-um) 
 (clyde elefante e-um) 
 (real cinza (not . e-um)))) 
 
Observe como foi introduzido o arco negado, com a construção de um “dotted-pair” onde o 
primeiro elemento é o símbolo “not”. A visualização do conteúdo da base pode ser feita através 
do comando list: 
> (snet-list) 
 =================== 
 graph : color 
 ---- 
 node : clyde 
 | * edge : e-um 
 |---|> node : elefante 
 | | * edge : e-um 
 | |---|> node : cinza 
 | * edge : e-um 
 |---|> node : real 
 | * edge : (not . e-um) 
 |---|> node : cinza 
 | * edge : e-um 
 |---|> node : elefante 
 
Pode-se agora determinar toda a teoria hierárquica definida através da rede “color”, utilizando 
as expressões de consulta adequadas:> (snet-query '(color (x y e-um))) 
 ([ Substituicao : ((x . elefante) (y . cinza)) ] 
 [ Substituicao : ((x . real) (y . elefante)) ] 
 [ Substituicao : ((x . clyde) (y . elefante)) ] 
 [ Substituicao : ((x . clyde) (y . real)) ]) 
 > (snet-query '(color (x y (not . e-um)))) 
 ([ Substituicao : ((x . real) (y . cinza)) ] 
 [ Substituicao : ((x . clyde) (y . cinza)) ]) 
 
Quadros (Frames) 
A segunda representação de conhecimento - frames - ficou popular nos anos 70 devido ao 
aparecimento da teoria dos frames, que surgiu inicialmente como resultado de um artigo escrito 
por M. Minsky. É a forma de representar o conhecimento de um objeto através da "observação 
visual", ou seja, tendo uma idéia do objeto pré-definida na memória faz a comparação desta 
idéia, ou conjunto de idéias, com aquelas propriedades que podemos observar visualmente. Na 
ocasião, o uso de frames foi recomendado como básico para se entender a percepção visual, os 
diálogos em linguagem natural e outros conceitos complexos. 
Frame é uma representação de um objeto complexo. Ele é identificado por um nome e consiste 
em conjunto de slots. Cada frame possui ao menos um frame hierarquicamente superior e, 
portanto, constitui uma base com mecanismo de herança. Um frame especial é a raiz desta 
hierarquia de herança. 
Sistemas baseados em cadeias semânticas e sistemas baseados em frames podem ser 
considerados semelhantes com respeito às suas estruturas, mas diferem no que representam. 
Quer dizer, enquanto cadeias semânticas representam objetos simples, um sistema de frames 
pode representar objetos complexos. 
Exemplo de frame: 
Frame: Course in KB University 
MemberSlot: enrolls 
 ValueClass: Student 
 Cardinality.Min: 2 
 Cardinality.Max: 30 
 MemberSlot: taughtby 
 ValueClass: (UNION GradStudent Professor) 
 Cardinality.Min: 1 
 Cardinality.Max: 1 
 
Frame: AdvCourse in KB University 
 SuperClasses: Course 
 MemberSlot: enrolls 
 ValueClass: (INTERSECTION GradStudent (NOT Undergrad)) 
 Cardinality.Max: 20 
 
Frame: BasCourse in KB University 
 SuperClasses: Course 
 MemberSlot: taughtby 
 ValueClass: Professor 
 
Frame: Professor in KB University 
Frame: Student in KB University 
Frame: GradStudent in KB University 
 SuperClasses: Student 
 MemberSlot: degree 
 ValueClass: String 
 Cardinality.Min: 1 
 Cardinality.Max: 1 
 
Frame: Undergrad in KB University 
 SuperClasses: Student 
 
7. Dado o conhecimento “Todo aluno de Ciência da Computação estuda na UNIFEI.” 
Como representá-lo na lógica proposicional? 
𝐴 ∧ 𝐶
𝑈
 
A = Aluno 
C = Ciência da computação 
U = UNIFEI 
 
Resposta Yasmin: 
A = Todo aluno de Ciência da Computação 
B = estuda na UNIFEI 
A->B 
 
8. “Desde o final dos anos 70 tem havido um grande interesse no uso de métodos que 
derivam da lógica matemática na pesquisa de Inteligência Artificial...” Com relação ao 
emprego da lógica como formalismo de representação do conhecimento: 
a. Diferencie lógica proposicional e lógica de predicados. 
O cálculo de predicados nos permite raciocinar sobre propriedades de objetos e 
relacionamentos entre objetos. Na lógica proposicional, é possível representar a sintaxe, a 
semântica e a dedução que deriva uma expressão a partir de um conjunto de expressões, porém 
não nos permite extrair qualquer informação sobre os objetos e seus relacionamentos. No 
cálculo de predicados é possível expressar as propriedades de objetos. 
b. Mostre num exemplo o poder de expressividade da lógica de predicados. 
Por exemplo, na afirmação “eu gosto de queijo” pode ser representada pela expressão 
𝐺(𝑒𝑢, 𝑞𝑢𝑒𝑖𝑗𝑜) 
Onde G é um predicado que representa a ideia de ”gostar”. Portanto, neste caso foi possível 
expressar tanto uma propriedade do objeto eu, quanto um relacionamento entre eu e o queijo. 
9. Apresente os componentes de um sistema especialista, explicando cada um deles. 
A arquitetura de um sistema especialista é composta de: 
 Base de conhecimento: contém o conhecimento específico de um domínio que é usado 
por um especialista para derivar conclusões a partir de fatos armazenado numa base de 
dados de fatos. 
 Base de dados de fatos: contém os dados específicos de casos que serão usados em um 
caso particular para derivar uma conclusão. 
 Sistema de explicações: fornece informações ao usuário sobre como o mecanismo de 
inferência chegou às suas conclusões. 
 Mecanismo de inferência: estabelece as regras de inferência do sistema especialista. 
 Editor da Base de Conhecimento: provê o acesso entre a interface de usuário e a base 
de dados de conhecimento para modificações e ajustes desta base. 
 Usuário: interage com o sistema especialista por meio de uma interface de usuário que 
fornece acesso ao mecanismo de inferência, ao sistema de explicação e ao editor da 
base de conhecimento. 
Resposta da Yasmin: 
São componentes essenciais de um Sistema Especialista : 
• Base de conhecimentos composta de fatos e regras; 
• Mecanismo de inferência; 
• Interface com o usuário. 
As bases de conhecimentos compreendem coleções de : 
• Objetos, que são as conclusões a que o Sistema deve chegar; 
• Atributos, que são propriedades que servem para caracterizar os objetos. 
Os mecanismos de inferência podem ser de dois tipos: 
1. Encadeamento para diante. Neste tipo selecionam-se atributos até obter uma 
combinação deles que caracterize um objeto; 
2. Encadeamento para traz. Neste tipo seleciona-se um objeto, como sendo a 
hipótese de estudo, e busca-se determinar a viabilidade da aceitação dessa 
hipótese pela ocorrência ou não dos atributos adequados. Caso a hipótese falhe 
seleciona-se outra hipótese e prossegue-se com as tentativas. 
 
 
10. Apresente um exemplo de sistema especialista em qualquer área de conhecimento. 
Um sistema especialista de suporte ao diagnóstico de câncer pela análise de imagens das células. 
Medicina: MYCIN ajuda no diagnóstico e tratamento de doenças infecciosas; ONCOCIN ajuda no 
tratamento de paciêntes com câncer. 
 
11. Enumere as diferenças entre a teoria clássica dos conjuntos e a teoria dos conjuntos 
difusos. 
Um conjunto nebuloso contrasta com os conjutnos usados na teoria tradicional de conjuntos ou 
conjuntos nítidos. Este último pode ser definido pelos valores contidos nele. Um valor está ou 
não no conjunto nítido, como por exemplo os elementos do conjunto dos números naturais. 
Já no conjunto nebuloso não existe uma fronteira bem definida como no primeiro caso. Os 
elementos de um conjunto nebuloso podem existir na interseção ou união de dois ou mais 
conjuntos nítidos. Os elementos são definidos de acordo com seu grau de pertinência (a ser 
definido por uma respectiva função de pertinência) de um determinado conjunto. 
• Enquanto os conjuntos difusos são conjuntos cujos elementos possuem valores de pertinência 
que variam no intervalo [0,1]: 
• Elemento com pertinência 0 = não pertence ao conjunto difuso F. 
• Elemento com pertinência 1 = é uma representação completa do conjunto difuso F. 
• Conjuntos difusos são uma generalização dos conjuntos crisp. 
• Definição da função de pertinência depende: do significado lingüístico definido para o 
conjunto e da sua interpretação no contexto do universo utilizado. 
12. Quais os componentes de um sistema difuso? OBS: 1(') O termo em inglês fuzzy é 
traduzido para o português como difuso ou nebuloso. 
 
 • Depois da entrada do sistema (valor preciso), o valor de entrada passa pela 
"fuzzificação" (grau de pertinência de acordo com as funções definidas dentro do sistema; 
 • depois encontra os graus de pertinência dado o valor de entradae algumas regras são 
ativadas para executar determinada tarefa; 
 • O que vai ser feito também possui um grau de pertinência associado; 
 • A maioria dos sistemas necessita de uma resposta precisa, então são acionados 
conjuntos de regras para defuzzificação para apresentar o valor preciso; 
 • Depois desse processo, ele sai do sistema. 
 
13. Considere o conjunto difuso A = 1.0/1 + 0.8/2 + 0.5/3 + 0.1/4 definido no universo X = 
{1, 2, 3, 4, 5}. Encontre todos os seus a-cuts. 
14. Dado o conjunto difuso A com a seguinte função de pertinência: 
 
Esboce o gráfico da função. Que tipo ela é? 
Qual expressão linguística pode ser descrita a partir de A? 
 
15. Considere dois conjuntos difusos representados pelas seguintes funções de 
pertinência triangulares A(x; 1, 2 ,3) e B(x; 2, 2, 4). Encontre a intersecção e a união de 
A e B e expresse as operações utilizando os operadores min e max. 
 
16. Defina uma rede neural artificial. Pesquise e descreva duas aplicações reais para as 
quais uma rede neural artificial se apresenta como um modelo adequado de solução. 
É um modelo de IA que simula o cérebro humano. Num primeiro momento há o processo de 
aprendizado, que depois de assimilado é armazenado para ser utilizado posteriormente. 
A taxa de aprendizado pode ser alta ou baixa. Exemplo, aulas de inglês intensivas de 8 horas 
diárias por três meses, ou 2 aulas semanais por longo período. 
A tendência é que se uma pessoa é apresentada numa taxa de aprendizado alta, se você não 
ativar aquele conhecimento por muito tempo, o conhecimento acaba desaparecendo, ao 
contrário da taxa de aprendizado baixa. 
Matematicamente, os objetos são convertidos em pontos no espaço, como por exemplo 
amostras de informações sobre pessoas num banco de dados com n registros com campos 
preenchidos. Cada registro deste é um ponto no espaço; essas coisas podem estar classificadas 
de acordo com o perfil. O que o modelo matemático pode tentar fazer é estabelecer uma 
distância entre esses pontos no mesmo espaço, traçando uma fronteira entre as classes que 
foram definidas no espaço. As novas amostras que aparecerem pertencerão à classe em que se 
contra depois da definição da fronteira. 
Ter um treinamento mais lento PODE (não garante) melhores resultados. 
17. Defina aprendizado supervisionado e não-supervisionado. 
As redes neurais podem ser supervisionadas. Mas se não se tem amostras que serão 
analisadas não é possível aplicar a rede supervisionada. 
As funções de ativação são lineares nas redes que possuem uma camada de percepção. Já os 
perceptrons de múltiplas camadas são não-lineares e usam tangentes hiperbólicas ou 
sigmoides, de acordo com o caso. 
Vários problemas de mineração de dados, utiliza-se redes neurais, normalmente recomendada 
a rede de múltiplas camadas supervisionado. 
Nas redes neurais artificiais, os loops de iteração são chamados de épocas. 
 
Pesquisar por RBP (Funções de Base Radial). 
 
Toda rede neural guarda o conhecimento representado pelo seu conjunto de pesos. 
 
A rede neural não-supervisionada, tem a capacidade de fazer o agrupamento no espaço. 
Quando se gera um grupo é porque as amostras têm características em comum. Depois de 
agrupadas, esses agrupamentos são nomeados e passam a ser uma classe. Algumas literaturas 
se referem aos grupos como "clusters". 
Uma rede neural que faz agrupamento faz praticamente a mesma coisa que um algoritmo de 
aprendizado não-supervisionado. 
Os pontos em volta tem seus fatores atualizados de acordo com as características dos 
neurônios vizinhos, para tentar que uma auto-organização seja feita. Existe um processo que 
ao longo das iterações, vão se organizando de acordo com suas características. 
Os pesos associados são ligados ao neurônio, não às conexões como no caso da rede 
supervisionada. 
 
𝑤 = 𝑤𝑎 + 𝑑. 𝑣 onde (d) é a distância do centro e (v) é o valor analisado. 
(que é quase a mesma coisa que calcular a distância dos pontos associados) 
 
18. Descreva um neurônio artificial, apresentando seu modelo e explicando cada um dos 
seus componentes. 
Um neurônio artificial (idealizado antes mesmo da IA), tenta imitar o neurônio natural. Ele 
possui uma entrada para ser ativada e uma saída para ativar os neurônios seguintes. Ou seja, 
dada uma entrada, quero que ele produza uma saída; o neurônio tem que processar esta 
entrada e responder alguma coisa, com uma função de ativação. Uma rede neural tenta 
encontrar uma reta que separe os resultados. 
Os pesos iniciais de uma rede neurais são normalmente aleatórios. Recomenda-se a utilização 
de valores pequenos para representação do peso "w". O peso é atualizado com a soma da etapa 
anterior com uma taxa de aprendizado multiplicado pela entrada e pelo erro. 
w=w_a+ η.x.e 
Se a taxa de aprendizado for muito pequena, pode acontecer do sistema demorar demais para 
encontrar um resultado e ter uma convergência. Portanto, o aleatório inicial da rede neural pode 
fazer a diferença. 
19. O que são funções linearmente separáveis? Exemplifique. 
A atualização de peso é feita em função do grau do erro e do padrão. Este procedimento procura 
minimizar erro. 
A técnica de aprendizado consiste em guiar a linha que separada as classes para que se encontre 
o resultado esperado. 
Problemas de separação de ou-exclusivo XOR, ou paridade, não conseguem ser resolvidos pela 
divisão linear. No entanto, com o algoritmo de perceptron de múltiplas camadas (MLP) que usa 
um neurônio ligado no outro, resolve o problema. 
20. Cite pelo menos 3 funções que podem ser empregadas como função de ativação de 
um neurônio. 
Cada neurônio (ou nó) em uma rede neuronal recebe uma série de entradas. Uma função 
chamada de função de ativação é aplicada a esses valores de entrada, o que resulta no nível de 
ativação do neurônio, que é o valor de saída do neurônio. Há uma série de funções que podem 
ser utilizadas nos neurônios. Algumas das funções mais comuns são degrau, a função sigmoide 
e a função linear. 
A função linear divide os elementos que estão sendo classificados por uma fronteira definida 
por uma reta. 
 
A função degrau ou função limiar linear, as entradas para o neurônio são somadas (tendo cada 
uma sido multiplicada por um peso) e esta coma é comparada com um limiar. Se a soma for 
maior que o limiar, o neurônio ativará e terá um nível de ativação de +1. Caso contrário ficará 
inativo e terá zero como nível de ativação (ou -1 dependendo do tipo de rede). 
 
As funções de ativação mais utilizadas na prática são a função sigmóide logística e a função 
tangente hiperbólica, dependendo das características dos dados, também conhecidas como 
funções de ativação não-lineares. 
 
21. O que é treinamento e ativação de uma RNA? 
a RNA É um modelo de IA que simula o cérebro humano. Num primeiro momento há o processo 
de aprendizado, que depois de assimilado é armazenado para ser utilizado posteriormente. 
A taxa de aprendizado pode ser alta ou baixa. Exemplo, aulas de inglês intensivas de 8 horas 
diárias por três meses, ou 2 aulas semanais por longo período. 
A tendência é que se uma pessoa é apresentada numa taxa de aprendizado alta, se você não 
ativar aquele conhecimento por muito tempo, o conhecimento acaba desaparecendo, ao 
contrário da taxa de aprendizado baixa. 
Matematicamente, os objetos são convertidos em pontos no espaço, como por exemplo 
amostras de informações sobre pessoas num banco de dados com n registros com campos 
preenchidos. Cada registro deste é um ponto no espaço; essas coisas podem estar classificadas 
de acordo com o perfil. O que o modelo matemático pode tentar fazer é estabelecer uma 
distância entre esses pontos no mesmo espaço, traçando uma fronteira entre as classes que 
foram definidas noespaço. As novas amostras que aparecerem pertencerão à classe em que se 
contra depois da definição da fronteira. 
Ter um treinamento mais lento PODE (não garante) melhores resultados. 
 
Um neurônio artificial (idealizado antes mesmo da IA), tenta imitar o neurônio natural. Ele 
possui uma entrada para ser ativada e uma saída para ativar os neurônios seguintes. Ou seja, 
dada uma entrada, quero que ele produza uma saída; o neurônio tem que processar esta 
entrada e responder alguma coisa, com uma função de ativação. Uma rede neural tenta 
encontrar uma reta que separe os resultados. 
Numa rede neural, é preciso que haja um peso associado entre as entradas e saídas. Um 
algoritmo de rede neural funciona bem em problemas não-lineares para serem mapeados e 
tornarem-se lineares. 
“Treinar” uma rede neural significa ajustar pesos das várias camadas de forma que a saída 
coincida com valor desejado para uma dada entrada. O treinamento pode ser supervisionado 
(com um “professor”) ou não supervisionado (“auto-organizado”). 
As redes neurais podem ser supervisionadas. Mas se não se tem amostras que serão analisadas 
não é possível aplicar a rede supervisionada. 
As funções de ativação, conforme explicado na questão anterior, são lineares nas redes que 
possuem uma camada de percepção. Já os perceptrons de múltiplas camadas são não-lineares 
e usam tangentes hiperbólicas ou sigmoides, de acordo com o caso. 
Toda rede neural guarda o conhecimento representado pelo seu conjunto de pesos. 
A rede neural não-supervisionada, tem a capacidade de fazer o agrupamento no espaço. 
Quando se gera um grupo é porque as amostras têm características em comum. Depois de 
agrupadas, esses agrupamentos são nomeados e passam a ser uma classe. Algumas literaturas 
se referem aos grupos como "clusters". 
Uma rede neural que faz agrupamento faz praticamente a mesma coisa que um algoritmo de 
aprendizado não-supervisionado. 
Os pontos em volta tem seus fatores atualizados de acordo com as características dos neurônios 
vizinhos, para tentar que uma auto-organização seja feita. Existe um processo que ao longo das 
iterações, vão se organizando de acordo com suas características. 
Os pesos associados são ligados ao neurônio, não às conexões como no caso da rede 
supervisionada. 
w=w_a+d.v onde (d) é a distância do centro e (v) é o valor analisado. 
(que é quase a mesma coisa que calcular a distância dos pontos associados) 
22. Para que serve o parâmetro de taxa de aprendizado numa rede neural? 
O parâmetro taxa de aprendizado tem grande influência durante o processo de treinamento da 
rede neural. Uma taxa de aprendizado baixa torna o aprendizado da rede muito lento, ao passo 
que uma taxa de aprendizado muito alta provoca oscilações no treinamento e impede a 
convergência do processo de aprendizado. Geralmente seu valor varia de 0.1 a 1.0. Alguns 
softwares disponíveis no mercado possuem este parâmetro adaptativo, por isso a escolha de 
um valor inicial não é um grande problema. 
23. Descreva as vantagens e as limitações das redes neurais. 
–Alto poder computacional 
–Processamento paralelo 
–Robusta a ruídos e dados incompletos 
–Capaz de estimar mapeamentos não-lineares desconhecidos 
Desvantagens: 
–Arquitetura ótima precisa ser determinada experimentalmente 
–Difícil interpretação do modelo obtido 
–Eficiência depende do processo de treinamento 
 
24. Explique a diferença entre o aprendizado supervisionado clássico e o aprendizado por 
reforço. 
Aprendizado Supervisionado, quando é utilizado um agente externo que 
indica à rede a resposta desejada para o padrão de entrada; 
Aprendizado Não Supervisionado (auto-organização), quando não existe 
uma agente externo indicando a resposta desejada para os padrões de entrada; 
Reforço, quando um crítico externo avalia a resposta fornecida pela rede. 
 
25. Qual a arquitetura de uma rede perceptron? Qual tipo de problema ele pode resolver? 
Perceptron 
Origem: Wikipédia, a enciclopédia livre. 
O perceptron é um tipo de rede neural artificial inventada em 1957 no Cornell Aeronautical 
Laboratory por Frank Rosenblatt. Ele pode ser visto como o tipo mais simples de rede neural 
feedforward: um classificador linear. 
 
Percpetron de camada única resolve problemas lineares; perceptrons de múltiplas camadas é 
não-linear (sigmóides e tangentes hiperbólicas). 
 
Definição 
O perceptron é um classificador binário que mapeia sua entrada 
 
 (um vetor de valor real) para um valor de saída 
 
 (uma valor binário simples) através da matriz. 
 
Onde 
 
 é um vetor de peso real e 
 
 é o produto escalar (que computa uma soma com pesos). 
 
 é a 'inclinação', um termo constante que não depende de qualquer valor de entrada. 
 
26. Explique o algoritmo de aprendizado do perceptron. 
 
O algoritmo de treinamento do perceptron é feito para provocar mudanças nos pesos sempre 
que algum erro é encontrado, mesmo que ele seja mínimo 
• O treinamento de rede Perceptron, consiste em ajustar os pesos e os thresholds (bias) 
de suas unidades para que a classificação desejada seja obtida. 
• Quando um padrão é inicialmente apresentado à rede, ela produz uma saída. 
• Após medir a distância entre a resposta atual e a desejada, são realizados os ajustes 
apropriados nos pesos de modo a reduzir esta distância. 
• Este procedimento é conhecido como Regra Delta 
 
 
 
 
 
1 -Cada uma das entradas {xi} representam informações sobre o comportamento do processo 
a ser mapeado 
2 - Cada entrada é inicialmente ponderada pelos pesos sinápticos {wi}. 
3 - Obtenção do potencial de ativação produzido pela soma ponderada dos sinais de entrada, 
subtraindo-se o limiar de ativação. 
4 - Aplicação de uma função de ativação apropriada, tendo-se como objetivo limitar a saída do 
neurônio. 
5 - Compilação da saída a partir da aplicação da função de ativação neural em relação ao seu 
potencial de ativação. 
 
Implementação em JAVA 
 
 /* 
 * Classe PERCEPTRON responsável para aprendizado e resolução da tabela AND 
 * 
 * @author Dimas Kastibergue <k45t1b@gmail.com>; 
 */ 
 
public class Perceptron { 
 
 // pesos sinápticos [0] entrada 1, [1] entrada 2, [3]BIAS 
 private double[] w = new double[3]; 
 
 // variável responsável pelo somatório(rede). 
 private double NET = 0; 
 
 // variavél responsável pelo número máximo de épocas 
 private final int epocasMax = 30; 
 
 // variável responsável pela contagem das épocas durante o treinamento 
 private int count = 0; 
 
 // declara o vetor da matriz de aprendizado 
 private int[][] matrizAprendizado = new int[4][3]; 
 
 // MÉTODO DE RETORNO DO CONTADOR 
 public int getCount(){ 
 
 return this.count; 
 
 } 
 // metodo de inicialização inicia o vetor da matriz de aprendizado 
 Perceptron() { 
 
 // Primeiro valor 
 this.matrizAprendizado[0][0] = 0; // entrada 1 
 this.matrizAprendizado[0][1] = 0; // entrada 2 
 this.matrizAprendizado[0][2] = 0; // valor esperado 
 
 // Segundo Valor 
 this.matrizAprendizado[1][0] = 0; // entrada 1 
 this.matrizAprendizado[1][1] = 1; // entrada 2 
 this.matrizAprendizado[1][2] = 0; // valor esperado 
 
 // terceiro valor 
 this.matrizAprendizado[2][0] = 1; // entrada 1 
 this.matrizAprendizado[2][1] = 0; // entrada 2 
 this.matrizAprendizado[2][2] = 0; // valor esperado 
 
 // quarto valor 
 this.matrizAprendizado[3][0] = 1; // entrada 1 
 this.matrizAprendizado[3][1] = 1; // entrada 2 
 this.matrizAprendizado[3][2] = 1; // valor esperado 
 
 // inicializaçãodos pesos sinápticos 
 
 // Peso sináptico para primeira entrada. 
 w[0] = 0; 
 // Peso sináptico para segunda entrada. 
 w[1] = 0; 
 // Peso sináptico para o BIAS 
 w[2]= 0; 
 
} 
 
 // Método responsávelpelo somatório e a função de ativação. 
 int executar(int x1, int x2) { 
 
 // Somatório (NET) 
 NET = (x1 * w[0]) + (x2 * w[1]) + ((-1) * w[2]); 
 
 // Função de Ativação 
 if (NET >= 0) { 
 return 1; 
 } 
 return 0; 
 } 
 
 // Método para treinamento da rede 
 public void treinar() { 
 
 // variavel utilizada responsável pelo controlede treinamento recebefalso 
 boolean treinou= true; 
 // varável responsável para receber o valor da saída (y) 
 int saida; 
 
 // laço usado para fazer todas as entradas 
 for (int i = 0; i < matrizAprendizado.length; i++) { 
 // A saída recebe o resultado da rede que no caso é 1 ou 0 
 saida = executar(matrizAprendizado[i][0], matrizAprendizado[i][1]); 
 
 
 if (saida != matrizAprendizado[i][2]) { 
 // Caso a saída seja diferente do valor esperado 
 
 // os pesos sinápticos serão corrigidos 
 corrigirPeso(i, saida); 
 // a variavél responsável pelo controlede treinamento recebe falso 
 treinou = false; 
 
 } 
 } 
 // acrescenta uma época 
 this.count++; 
 
 // teste se houve algum erro duranteo treinamento e o número de epocas 
 //é menor qe o definido 
 if((treinou == false) && (this.count < this.epocasMax)) { 
 // chamada recursiva do método 
 treinar(); 
 
 } 
 
 } // fim do método para treinamento 
 
 // Método para a correção de pesos 
 void corrigirPeso(int i, int saida) { 
 
 w[0] = w[0] + (1 * (matrizAprendizado[i][2] - saida) * matrizAprendizado[i][0]); 
 w[1] = w[1] + (1 * (matrizAprendizado[i][2] - saida) * matrizAprendizado[i][1]); 
 w[2] = w[2] + (1 * (matrizAprendizado[i][2] - saida) * (-1)); 
 
 } 
 
 void testar() { 
 
 
 System.out.println(" Teste 01 para 0 e 0 " + executar(0, 0)); 
 
 System.out.println(" Teste 02 para 0 e 1 " + executar(0, 1)); 
 
 System.out.println(" Teste 03 para 1 e 0 " + executar(1, 0)); 
 
 System.out.println(" Teste 04 para 0 e 0 " + executar(0, 0)); 
 
 System.out.println(" Teste 05 para 1 e 1 " + executar(1, 1)); 
 
 } 
 
 public static void main(String[] arguments) { 
 
 Perceptron p = new Perceptron(); 
 
 p.treinar(); 
 
 System.out.println("Para aprender o algoritmo treinou " + p.getCount() + " epocas! \n "); 
 
 p.testar(); 
 
 } 
} 
 
De <http://pt.wikipedia.org/w/index.php?title=Perceptron&printable=yes>

Outros materiais