<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>e-moises &#187; ia</title>
	<atom:link href="http://www.moisessouto.com.br/category/ia/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.moisessouto.com.br</link>
	<description>by Moisés Souto</description>
	<lastBuildDate>Mon, 23 Aug 2010 21:07:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Toolbox de Redes Neurais do Matlab</title>
		<link>http://www.moisessouto.com.br/2007/11/07/toolbox-de-redes-neurais-do-matlab/</link>
		<comments>http://www.moisessouto.com.br/2007/11/07/toolbox-de-redes-neurais-do-matlab/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 04:40:47 +0000</pubDate>
		<dc:creator>Moisés Souto</dc:creator>
				<category><![CDATA[engenharia_de_computação]]></category>
		<category><![CDATA[geral]]></category>
		<category><![CDATA[ia]]></category>
		<category><![CDATA[matlab]]></category>

		<guid isPermaLink="false">http://www.moisessouto.com.br/?p=45</guid>
		<description><![CDATA[Olá, Está semana tivemos de fazer um trabalho para a disciplina de Inteligência Artificial, ministrada pelo professor Allan Martins, foram diversos assuntos que o professor distribuiu em grupos, o meuobjetivava predizer o consumo de energia elétrica em minha casa, eu &#8230; <a href="http://www.moisessouto.com.br/2007/11/07/toolbox-de-redes-neurais-do-matlab/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Está semana tivemos de fazer um trabalho para a disciplina de Inteligência Artificial, ministrada pelo professor <a href="http://www.dca.ufrn.br/~allan/">Allan Martins</a>, foram diversos assuntos que o professor distribuiu em grupos, o meuobjetivava predizer o consumo de energia elétrica em minha casa, eu daria o valor das 4 ultimas medições mensais e rede iria calcular a do mês seguinte.</p>
<p>Primeiramente, treino a rede atribuindo como entradas (Localização:matriz P) os valores de cada mês, cada entrada é composta de 4 valores de medições de meses anteriores, esta (cada entrada) aponta para um target(Localização:vetor T), que é um valor correto e conhecido do valor real do quinto mês (que tentarei predizer após este treinamento).</p>
<p>Após este treinamento posso modificar P (entradas) passando 4 valores de meses anteriores e a rede calcula o mês subsequente.<br />
Utilizando o toolbox do Matlab (for linux) para redes neurais implementei da seguinte maneira:</p>
<p>=== SOURCE ===</p>
<p>%Definindo os targerts que servirão para o treinamento da rede<br />
T = [262 250 287 242];<br />
%As entradas que servirão pra o treinamento da rede<br />
P = [250 287 242 244;<br />
287 242 244 306;<br />
242 244 306 295;<br />
244 306 295 259];</p>
<p>%Instanciando a rede com 16 neurônios na camada oculta e 1 neurônio na camada de saída<br />
net = newff(minmax(P),[16 1],{&#8216;tansig&#8217; &#8216;purelin&#8217;});</p>
<p>%Treinando a rede<br />
net = train(net,P,T);</p>
<p>%Definindo as entradas para a rede calcular a previsão de saída<br />
% Exemplo:<br />
P=[250;<br />
287;<br />
242;<br />
244];</p>
<p>%Fazendo a rede calcular apartir das entradas dadas no passo anterior<br />
Y = sim(net,P);</p>
<p>=== /SOURCE ===</p>
<p><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><meta name="GENERATOR" content="OpenOffice.org 2.2  (Linux)" /><meta name="AUTHOR" content="azarias-cavalcante" /><meta name="CREATED" content="20071029;15290000" /><meta name="CHANGEDBY" content="azarias-cavalcante" /><meta name="CHANGED" content="20071031;15040000" /><br />
<style type="text/css"> 	<!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 	--> 	</style>
<p align="justify" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">O algoritmo de ‘Backpropagation’ utiliza o método do Gradiente Descendente para corrigir os valores sinápticos. Neste método, calculamos o gradiente da função objetivo (MSE) a se minimizar e atualizarmos o valor das sinapses somando-se a ele o valor do gradiente com o sinal invertido. O gradiente, neste caso, é a derivada parcial da função erro médio quadrático em relação à sinapse. Este processo faz com que o erro médio quadrático do problema “caminhe” sempre no sentido contrário de seu máximo crescimento. Resumindo, podemos dizer que a equação básica do Algoritmo de ‘Backpropagation’ é:</p>
<p align="justify" class="western" style="margin-bottom: 0cm">
<p align="center" class="western" style="margin-bottom: 0cm"><strong>W</strong><font size="1" style="font-size: 8pt">k+1 </font>= W<font size="1" style="font-size: 8pt">k  </font>- o<font size="1" style="font-size: 8pt">k </font>V<font size="1" style="font-size: 8pt">k</font>(F<font size="1" style="font-size: 8pt">o</font>)</p>
<p align="center" class="western" style="margin-bottom: 0cm">
<p align="justify" class="western" style="margin-bottom: 0cm">onde:</p>
<p align="justify" class="western" style="margin-left: 1.25cm; text-indent: 1.25cm; margin-bottom: 0cm"><em><strong>W</strong></em><font size="1" style="font-size: 8pt"><em>k+1 </em></font><em>é o vetor de pesos sinápticos no instante k+1;</em></p>
<p align="justify" class="western" style="margin-left: 1.25cm; text-indent: 1.25cm; margin-bottom: 0cm"><em><strong>W</strong></em><font size="1" style="font-size: 8pt"><em>k </em></font><em>é o vetor de pesos sinápticos no instante k;</em></p>
<p align="justify" class="western" style="margin-left: 1.25cm; text-indent: 1.25cm; margin-bottom: 0cm">o<font size="1" style="font-size: 8pt"><em>k </em></font><em>é uma constante chamada Passo de treinamento;</em></p>
<p align="justify" class="western" style="margin-left: 1.25cm; text-indent: 1.25cm; margin-bottom: 0cm"><em>V</em><font size="1" style="font-size: 8pt"><em>k</em></font><em>(F</em><font size="1" style="font-size: 8pt"><em>o</em></font><em>) é vetor gradiente da função objetivo.</em></p>
<p align="justify" class="western" style="margin-left: 1.25cm; text-indent: 1.25cm; margin-bottom: 0cm">
<p align="justify" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">O passo de treinamento é uma constante que controla a velocidade de convergência do algoritmo, ou seja, a rapidez com que os valores sinápticos levam o MSE para um mínimo local ou global na superfície de erro do problema. Para pequenos valores de o, a atualização das sinapses é mais lenta, fazendo com que se percorra com maior precisão a superfície de erro do problema. Para valores altos de <font face="Symbol, serif" />o, apesar da convergência ocorrer de maneira mais rápida, pode acontecer oscilações no treinamento, podendo ás vezes até impossibilitar a convergência para um mínimo local ou global.</p>
<p align="justify" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">Suas principais características são:</p>
<ul>
<li>
<p align="justify" class="western" style="margin-bottom: 0cm">Classe 	de tarefas: reconhecimento de padrões (ex.: controle 	adaptativo de braços de robôs) e processamento de fala;</p>
</li>
<li>
<p align="justify" class="western" style="margin-bottom: 0cm">Propriedades 	dos neurônios: são do tipo perceptron e possuem valores 	contínuos. A função de ativação é 	a sigmóide;</p>
</li>
<li>
<p align="justify" class="western" style="margin-bottom: 0cm">Propriedades 	das redes: rede acíclica de três camadas, no mínimo;</p>
</li>
<li>
<p align="justify" class="western" style="margin-bottom: 0cm">Aprendizado: 	utiliza técnica de Correção de Erros com o uso 	da regra delta generalizada.</p>
</li>
</ul>
<p align="justify" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">
<p align="justify" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">O maior problema da utilização do algoritmo de retropropagação ocorre quando a rede neural obtém uma solução que corresponde a um mínimo local da função do erro. Existem diversas alternativas que visam a diminuir a ocorrência de mínimo local. As mais utilizadas são:</p>
<ul>
<li>
<p align="justify" class="western" style="margin-bottom: 0cm">diminuição 	da taxa de aprendizado: se a taxa de alteração dos 	pesos é diminuída progressivamente, então o 	algoritmo do gradiente decrescente está apto a alcançar 	uma solução melhor;</p>
</li>
<li>
<p align="justify" class="western" style="margin-bottom: 0cm">adição 	de unidades internas: é possível considerar que quando 	um mínimo local é apresentado como solução, 	duas classes diferentes são classificadas como a mesma. Para 	evitar isso, ao serem colocadas mais unidades na camada escondida, a 	rede fará um reconhecimento melhor, diminuindo a ocorrência 	de mínimo local;</p>
</li>
<li>
<p align="justify" class="western" style="margin-bottom: 0cm">introdução 	de um termo de momento: termo introduzido para que se possa aumentar 	a taxa de aprendizado sem que ocorra oscilação.</p>
</li>
</ul>
<p align="justify" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">Outro problema enfrentado pela retropropagação é a quebra de simetria, ou seja, se os pesos começam todos com o mesmo valor e se a solução só pode ser alcançada com pesos diferentes, o sistema não poderá aprender. Isto ocorre porque o erro é retropropagado em proporção ao valor dos pesos, o que significa que todas as unidades escondidas conectadas diretamente às unidades de entrada e saída cometem erros iguais. Como a modificação dos pesos depende deste erro, os pesos destas unidades em relação às unidades de saída serão sempre os mesmos.</p>
<p align="center" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">
<p align="justify" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">
<p align="justify" class="western" style="text-indent: 1.25cm; margin-bottom: 0cm">
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F&amp;title=Toolbox+de+Redes+Neurais+do+Matlab" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F&amp;title=Toolbox+de+Redes+Neurais+do+Matlab" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F&amp;title=Toolbox+de+Redes+Neurais+do+Matlab" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F&amp;headline=Toolbox+de+Redes+Neurais+do+Matlab" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Toolbox+de+Redes+Neurais+do+Matlab&amp;url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Toolbox+de+Redes+Neurais+do+Matlab&amp;u=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Toolbox+de+Redes+Neurais+do+Matlab&amp;url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Toolbox+de+Redes+Neurais+do+Matlab&amp;url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Toolbox+de+Redes+Neurais+do+Matlab&amp;url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F&amp;title=Toolbox+de+Redes+Neurais+do+Matlab&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.moisessouto.com.br%2F2007%2F11%2F07%2Ftoolbox-de-redes-neurais-do-matlab%2F" ><img class="lightsocial_img" src="http://www.moisessouto.com.br/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.moisessouto.com.br/2007/11/07/toolbox-de-redes-neurais-do-matlab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
