{"data":{"markdownRemark":{"html":"<h2>Redes Neurais Artificiais</h2>\n<h3>Representação de um neurônio artificial</h3>\n<ol>\n<li>Um conjunto de sinapses ou elos de ligação</li>\n<li>Somador para as entradas iniciais</li>\n<li>Função de ativação para restringir a saída do neuronio</li>\n</ol>\n<blockquote>\n<p>Professor não sabe explicar o motivo da existência da variável bias.</p>\n</blockquote>\n<h3>Função de Ativação</h3>\n<p>Serve para transformar os valores e alocar eles dentro de 0 e 1.</p>\n<h3>Aprendizado Supervisionado e Não Supervisionado</h3>\n<ul>\n<li><strong>Supervisionado</strong> possui uma tabela que serve para comparar o resultado obtido pela rede neural e pela tabela pré-existente.</li>\n<li><strong>Não Supervisionado</strong> não possui uma tabela, busca apenas um padrão para as entradas e saídas.</li>\n</ul>\n<hr>\n<h3>Código implementado na aula</h3>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre style=\"counter-reset: linenumber 0\" class=\"language-python line-numbers\"><code class=\"language-python\">LISTA_DE_NUMEROS_INICIAIS <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span>\nPESOS <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0.5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0.5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0.5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0.5</span><span class=\"token punctuation\">]</span>\nVALORES_DESEJADOS <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\nBIAS <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span>\nTAXA_DE_APRENDIZAGEM <span class=\"token operator\">=</span> <span class=\"token number\">0.5</span>\nQUANTIDADE_DE_ITERACOES <span class=\"token operator\">=</span> <span class=\"token number\">10000</span>\n\n\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">RedeNeural</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">def</span> <span class=\"token function\">__init__</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> lista_de_numeros_iniciais<span class=\"token punctuation\">,</span> pesos<span class=\"token punctuation\">,</span> valores_desejados<span class=\"token punctuation\">,</span>\n                 bias<span class=\"token punctuation\">,</span> taxa_de_aprendizagem<span class=\"token punctuation\">,</span> quantidade_de_iteracoes<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        self<span class=\"token punctuation\">.</span>lista_de_numeros_iniciais <span class=\"token operator\">=</span> lista_de_numeros_iniciais\n        self<span class=\"token punctuation\">.</span>pesos <span class=\"token operator\">=</span> pesos\n        self<span class=\"token punctuation\">.</span>valores_desejados <span class=\"token operator\">=</span> valores_desejados\n        self<span class=\"token punctuation\">.</span>bias <span class=\"token operator\">=</span> bias\n        self<span class=\"token punctuation\">.</span>taxa_de_aprendizagem <span class=\"token operator\">=</span> taxa_de_aprendizagem\n        self<span class=\"token punctuation\">.</span>quantidade_de_iteracoes <span class=\"token operator\">=</span> quantidade_de_iteracoes\n\n        self<span class=\"token punctuation\">.</span>lista_de_erros_instantaneos <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\n        self<span class=\"token punctuation\">.</span>media_dos_erros_instantaneos <span class=\"token operator\">=</span> <span class=\"token number\">0.0</span>\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">primeira_funcao</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> lista<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        soma <span class=\"token operator\">=</span> <span class=\"token number\">0.0</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>lista<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            soma <span class=\"token operator\">+=</span> <span class=\"token punctuation\">(</span>lista<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">*</span> self<span class=\"token punctuation\">.</span>pesos<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n\n        <span class=\"token keyword\">return</span> soma\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">segunda_funcao</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> resultado_primeira_funcao<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        sinal_de_saida <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>funcao_ativacao<span class=\"token punctuation\">(</span>\n            resultado_primeira_funcao <span class=\"token operator\">+</span> self<span class=\"token punctuation\">.</span>bias<span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">return</span> sinal_de_saida\n\n    <span class=\"token comment\"># verificar se o erro não foi 0</span>\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">terceira_funcao</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> resultado_segunda_funcao<span class=\"token punctuation\">,</span> iteracao<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        erro <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>valores_desejados<span class=\"token punctuation\">[</span>iteracao<span class=\"token punctuation\">]</span> <span class=\"token operator\">-</span> resultado_segunda_funcao\n\n        self<span class=\"token punctuation\">.</span>erro_instantaneo<span class=\"token punctuation\">(</span>erro<span class=\"token punctuation\">)</span>\n\n        <span class=\"token keyword\">return</span> erro\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">quarta_funcao</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> lista<span class=\"token punctuation\">,</span> resultado_terceira_funcao<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>lista<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            resultado_quarta_funcao <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>taxa_de_aprendizagem <span class=\"token operator\">*</span> \\\n                resultado_terceira_funcao <span class=\"token operator\">*</span> lista<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span>\n\n            self<span class=\"token punctuation\">.</span>quinta_funcao<span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">,</span> resultado_quarta_funcao<span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">quinta_funcao</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> iteracao<span class=\"token punctuation\">,</span> resultado_quarta_funcao<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        self<span class=\"token punctuation\">.</span>pesos<span class=\"token punctuation\">[</span>iteracao<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> resultado_quarta_funcao\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">erro_instantaneo</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> erro<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        self<span class=\"token punctuation\">.</span>lista_de_erros_instantaneos<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span><span class=\"token number\">0.5</span> <span class=\"token operator\">*</span> <span class=\"token builtin\">pow</span><span class=\"token punctuation\">(</span>erro<span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n        self<span class=\"token punctuation\">.</span>media_dos_erros_instantaneos <span class=\"token operator\">=</span> <span class=\"token builtin\">float</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">.</span>calcular_media_dos_erros_instantaneos<span class=\"token punctuation\">(</span>\n            self<span class=\"token punctuation\">.</span>lista_de_erros_instantaneos<span class=\"token punctuation\">)</span> <span class=\"token operator\">/</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">.</span>lista_de_erros_instantaneos<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">calcular_media_dos_erros_instantaneos</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> lista_de_erros<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        total <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n        <span class=\"token keyword\">for</span> erro <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>lista_de_erros<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            total <span class=\"token operator\">+=</span> lista_de_erros<span class=\"token punctuation\">[</span>erro<span class=\"token punctuation\">]</span>\n\n        <span class=\"token keyword\">return</span> total\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">funcao_ativacao</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">,</span> v<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">if</span> v <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">return</span> <span class=\"token number\">1</span>\n        <span class=\"token keyword\">if</span> v <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">return</span> <span class=\"token number\">0</span>\n        <span class=\"token keyword\">if</span> v <span class=\"token operator\">&lt;</span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span>\n\n    <span class=\"token keyword\">def</span> <span class=\"token function\">executar</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> iteracao <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">.</span>quantidade_de_iteracoes<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"\\n Iteração \"</span> <span class=\"token operator\">+</span> <span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>iteracao<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n            <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">.</span>lista_de_numeros_iniciais<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n                resultado_primeira <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>primeira_funcao<span class=\"token punctuation\">(</span>\n                    self<span class=\"token punctuation\">.</span>lista_de_numeros_iniciais<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n                resultado_segunda <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>segunda_funcao<span class=\"token punctuation\">(</span>resultado_primeira<span class=\"token punctuation\">)</span>\n                resultado_terceira <span class=\"token operator\">=</span> self<span class=\"token punctuation\">.</span>terceira_funcao<span class=\"token punctuation\">(</span>\n                    resultado_segunda<span class=\"token punctuation\">,</span> i<span class=\"token punctuation\">)</span>\n\n                <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>resultado_terceira <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n                    self<span class=\"token punctuation\">.</span>quarta_funcao<span class=\"token punctuation\">(</span>\n                        self<span class=\"token punctuation\">.</span>lista_de_numeros_iniciais<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> resultado_terceira<span class=\"token punctuation\">)</span>\n                    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"[\"</span><span class=\"token operator\">+</span><span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>iteracao<span class=\"token punctuation\">)</span><span class=\"token operator\">+</span><span class=\"token string\">\"]\"</span> <span class=\"token operator\">+</span> <span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">.</span>pesos<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n                <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n                    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"[\"</span><span class=\"token operator\">+</span><span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>iteracao<span class=\"token punctuation\">)</span><span class=\"token operator\">+</span><span class=\"token string\">\"]\"</span> <span class=\"token operator\">+</span>\n                          <span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>self<span class=\"token punctuation\">.</span>pesos<span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token string\">\" - erro 0\"</span><span class=\"token punctuation\">)</span>\n\n\nrede_neural <span class=\"token operator\">=</span> RedeNeural<span class=\"token punctuation\">(</span>\n    LISTA_DE_NUMEROS_INICIAIS<span class=\"token punctuation\">,</span> PESOS<span class=\"token punctuation\">,</span> VALORES_DESEJADOS<span class=\"token punctuation\">,</span> BIAS<span class=\"token punctuation\">,</span>\n    TAXA_DE_APRENDIZAGEM<span class=\"token punctuation\">,</span> QUANTIDADE_DE_ITERACOES<span class=\"token punctuation\">)</span>\n\nrede_neural<span class=\"token punctuation\">.</span>executar<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"\\n[i] erros instantaneos: \"</span> <span class=\"token operator\">+</span>\n      <span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>rede_neural<span class=\"token punctuation\">.</span>lista_de_erros_instantaneos<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"\\nmédia dos erros instantaneos: \"</span> <span class=\"token operator\">+</span>\n      <span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>rede_neural<span class=\"token punctuation\">.</span>media_dos_erros_instantaneos<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>","frontmatter":{"tags":["Faculdade","Tópicos","Python"],"title":"Aula de Redes Neurais","date":"05 outubro, 2018","description":"Relatório da aula de Tópicos onde foi dada uma introdução sobre o conceito de redes neurais e uma implementação simples em python"}}},"pageContext":{"slug":"/redes_neurais/"}}