Buscar

EXERCICIO 2 PARA ENTREGA

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 8 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 8 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

Prévia do material em texto

Nome do Aluno:
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Rubrica
	Curso: Engenharia Elétrica
	
	Disciplina: Inteligência Computacional
	
	Data:
	/
	/
	
	
	
	
	
	
	
	
	
	
	
	
	
	Professor
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Nome do Professor: Dr. Nilton Alves Maia
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
1) Comandos do MatLab para a criação, treinamento e utilização de ADLINE’s e MADALINE’s. 
	Para os comandos abaixo faremos a seguinte notação:
	N – número de variáveis de entrada do ADALINE (X1, X2, ..., XN).
	M – número de ADALINE’s na rede.
	
	1.1) newlin - esta função cria um ADALINE. Abaixo estão algumas formas de uso: Seja R uma matriz Nx2,
	onde número de linhas desta matriz é igual a quantidade de variáveis de entrada do ADALINE, e cada linha
	de índice i indica na 1ª coluna o valor mínimo que a variável i pode assumir, enquanto que a 2ª coluna 
	indica o valor máximo.
	
	a) net = newlin(R,1) – utilizada desta forma, newlin irá retornar uma rede com um ADALINE que recebe N
	entradas. A função de ativação do ADALINE é sempre o produto interno entre as variáveis de entrada e o
	vetor de pesos. O vetor de pesos é guardado no campo net.IW{1,1}, sendo que o peso independente ()
	é guardado em net.b{1}. O vetor de pesos net.IW{1,1} é um vetor linha com o número de colunas igual a 
	N (número de variáveis), o campo net.b{1} é um escalar. A função de propagação é a função linear f(x) = x,
	ou seja, que no MatLab a saída do ADALINE é a própria função de ativação.
	
	b) net = newlin(R,M) – utilizada desta maneira, a função newlin irá criar uma rede de uma camada com M 
	neurônios (MADALINE). Neste caso o campo net.IW{1,1} não é mais um vetor e sim uma matriz com 
	dimensão MxN, aonde cada linha é o vetor de pesos de um neurônio. O campo net.b{1} é um vetor de 
	dimensão Mx1, guardando o bias de cada um dos M neurônios.
	
	c) net = newlin(R,M, [0], LR) –A função newlin pode receber 4 parâmetros, contudo o significado do 3º
	parâmetro está fora do escopo do curso então ignore-o. O 4º parâmetro é a taxa de aprendizado que será
	utilizada durante o treinamento. Para usarmos o 4º parâmetro é necessário passar o 3º, portanto passe o 
	valor default [0].
	
	1.2) sim – Após a criação do (M)ADALINE, podemos utilizá-lo através desta função. A forma mais simples 
	de se usar é a seguinte, resp = sim(net,P);. Onde: net – é a estrutura que contém o (M)ADALINE criado 
	pela função newlin. P – é uma matriz de dimensão NxK, onde cada coluna da matriz corresponde a um 
	vetor de entrada e K corresponde ao número de padrões de entrada. resp – é a saída dos neurônios do
	(M)ADALINE contido em net para cada entrada contida em P. Sendo assim, resp será uma matriz do tipo
	MxK, aonde cada coluna de índice i corresponde à saída de cada neurônio para a entrada contida na 
	coluna de índice i da matriz P. Por isso o número de colunas de resp é igual ao de P. O funcionamento é 
	análogo ao do Perceptron. A função sim retorna a função de ativação de cada neurônio. que é equivalente 
	a, resp = [net.b{1} net.IW{1,1}] * [ones(1,size(P,2));P] ;.
	
	1.3) train – Esta função treina o (M)ADALINE para executar uma determinada tarefa. Apesar de poder ser 
	chamada de maneiras diferentes, a forma mais simples é, netTreinada = train(net,P,T). onde net e P são
	definidos como nos itens anteriores e T é uma matriz MxK aonde cada coluna contém a saída desejada 
	para a entrada contida na mesma coluna na matriz P. A função train retorna a nova rede treinada. O 
	treinamento é um processo iterativo e contém alguns parâmetros, como taxa de aprendizado, número 
	máximo de iterações e erro mínimo desejado.
	O número máximo de iterações pode ser configurado no próprio net através do campo net.trainParam.
	
	epochs (número de épocas), basta modificarmos este campo para o valor máximo de iterações desejado.
	O erro mínimo desejado pode ser modificado no campo net.trainParam.goal, o valor deste campo é o valor 
	máximo que o erro quadrático pode assumir. A taxa de aprendizado pode ser configurada no momento de 
	criação do (M)ADALINE, como visto no comando newlin.
	
	2) O que é o Adaline? Explique o seu funcionamento em relação ao perceptron.
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	3) Como é feito o ajuste dos pesos no Adaline? Explique o processo e comente a função de ajuste.
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	4) Seja os padrões de entrada (P) e respectivos valores desejados (t) a serem classificados:
	
	O código em Matlab a seguir implementa um Adaline para realizar esta classificação. Analise o código e 
	depois teste-o.
	
	P = [2 1 -2 -1;2 -2 2 1];
	T = [0 1 0 1];
	net = newlin(P,T);
	net.trainParam.epochs = 10;
	net = train(net,P,T);
	weights = net.iw{1,1}
	bias = net.b(1)
	y = sim(net, P)
	erro = T - sim(net,P)
	
	A rede deve ser testada varias vezes utilizando k = 10, 50, 100 e 200 ciclos. Calcule os erros obtidos para
	cada valor de k. Para qual número de ciclos são obtidos os melhores resultados? Justifique a sua resposta.
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	5) O código em Matlab a seguir implementa novamente o Adaline para realizar a mesma classificação do
	exercício anterior. Teste novamente o código.
	
	P = [2 1 -2 -1;2 -2 2 1];
	T = [0 1 0 1];
	net = newlin(P,T);
	net.trainParam.epochs = 10;
	net.trainParam.goal= 0.1;
	net = train(net,P,T);
	weights = net.iw{1,1}
	bias = net.b(1)
	y = sim(net, P)
	erro = T - sim(net,P)
	
	A rede deve ser testada varias vezes utilizando k = 10, 50, 100 e 200 ciclos. Para cada valor de k utilize
	metas de erro iguais a 0.1 ,0.01 e 0.001. Calcule os erros obtidos para cada valor de k e meta de erro. Para
	qual número de ciclos X metas de erros são obtidos os melhores resultados? Justifique a sua resposta.
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	6) Uma cidade é cortada por um rio que provoca inundações sistemáticas. Diante desta situação é
	necessário implementar um sistema de previsão e alerta que possa fornecer os níveis previstos para um
	ponto de controle na cidade com antecedência de 12 horas. Desenvolver uma rede Adaline (com função
	de ativação linear) para realizar a previsão do nível de água no posto de controle do rio que corta uma 
	cidade. Considerar como entrada os níveis nos três postos de medição definidos e como saída o nível de
	água dentro da cidade 12 horas depois. As seis medições de nível de água que serão utilizadas para o
	treinamento do Adaline são apresentadas a seguir:
	
		Exemplos
	Posto1(m)
	Posto 2(m)
	Posto 3(m)
	Posto cidade (m)
	1
	0,3
	0,1
	0,1
	0,19
	2
	0,03
	0,02
	0
	0,11
	3
	1
	1
	1
	0,6
	4
	0,4
	0,15
	1
	0,31
	5
	0,9
	0,8
	0,8
	0,52
	6
	0,5
	0,5
	0,9
	0,39
	
	a) Qual a arquitetura do Adaline para resolver este problema?
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	c) Qual a previsão do nível a ser atingido na cidade quando os postos 1, 2 e 3 indicarem respectivamente
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	d) Treine a rede Adaline estabelecendo um número máximo de ciclos igual a 12. Calcule os erros obtidos.
	O número de ciclos foi suficiente paratreinar a rede?
	
	
	
	
	
	
	
	
	e) Após o treinamento realizar a previsão do nível a ser atingido na cidade quando os postos 1, 2 e 3
	indicarem respectivamente 0,70 m, 0,60m e 0,85m. Utilize os pesos determinados no fim do 12º ciclo.
	
	
	
	
	
	
	
	
	
	
	
	f) Treine a rede Adaline estabelecendo um número máximo de ciclos igual a 150. Calcule os erros obtidos. 
	O número de ciclos foi suficiente para treinar a rede?
	
	
	
	
	
	
	
	
	
	
	
	
	g) Após o treinamento realizar a previsão do nível a ser atingido na cidade quando os postos 1, 2 e 3
	indicarem respectivamente 0,70 m, 0,60m e 0,85m. Utilize os pesos determinados no fim do 150º ciclo.
	
	
	
	
	
	
	
	
	
	
	
	
	7) Treine um neurônio Adaline de forma que este aprenda a função ) abaixo. A rede deve ser
	treinada varias vezes utilizando k = 10, 50, 100 e 200 ciclos. Calcule os erros obtidos para cada valor de K.
	Para qual número de ciclos são obtidos os melhores resultados? Justifique a sua resposta.
	
		Exemplos
	x1
	x2
	y
	1
	0,2
	0,3
	0,13
	2
	0,1
	0,4
	0,17
	3
	0,4
	0,3
	0,25
	4
	0,11
	0,9
	0,822
	5
	0,84
	0,6
	0,1065
	6
	0,1
	0,2
	0,05
	7
	0,6
	0,2
	0,4
	8
	0,2
	0,2
	0,08
	9
	0,7
	0,8
	1,13
	10
	0,1
	0
	0,01

Outros materiais