{"id":634,"date":"2022-01-30T08:00:40","date_gmt":"2022-01-30T11:00:40","guid":{"rendered":"https:\/\/fedablio.com.br\/blog\/?p=634"},"modified":"2025-11-28T09:19:56","modified_gmt":"2025-11-28T12:19:56","slug":"neuronio-de-rosemblatt-implementado-em-planilha-eletronica","status":"publish","type":"post","link":"https:\/\/fedablio.com.br\/blog\/arquivos\/634","title":{"rendered":"Neur\u00f4nio de Rosenblatt implementado em planilha eletr\u00f4nica, Java, Python, C, VB.NET, C# e Javascript"},"content":{"rendered":"<div style=\"text-align: justify;\">\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin-right: 10px; margin-bottom: 10px;\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-00.png\" width=\"328\" height=\"149\" align=\"left\"> Se ca\u00edram aqui neste artigo \u00e9 porque provavelmente est\u00e3o no meio (ou est\u00e3o prestes a iniciar) de um trabalho acad\u00eamico sobre intelig\u00eancia artificial, mais precisamente, a implementa\u00e7\u00e3o do Neur\u00f4nio de Rosenblatt em uma planilha eletr\u00f4nica (caso tenha sido solicitado c\u00f3digo computacional, recomendo fortemente que fa\u00e7a em planilha primeiramente). Antes de escrev\u00ea-lo, pesquisei na internet e vi v\u00e1rios artigos com explica\u00e7\u00f5es muito boas e v\u00e1rios deles usando o exemplo da porta AND <b><span style=\"color: red;\">(relaxem &#8211; n\u00e3o vou usar o exemplo da porta AND)<\/span><\/b>. Sendo assim senti que precisava contribuir de alguma forma e decidi escrever a minha vers\u00e3o sobre o tal problema.<\/p>\n<p>Basicamente, Frank Rosenblatt (psic\u00f3logo estadunidense) ao tentar imitar o funcionamento do c\u00e9rebro humano, acabou criando um neur\u00f4nio artifical (o tipo mais simples), conhecido por Perceptron, na d\u00e9cada de 1950.<\/p>\n<p>Quero usar o Perceptron para uma coisa bem simples: exibir, com base em uma determinada temperatura inserida, se saio de camiseta ou de blusa. Apesar de parecer tosco, serve bem para ilustrar.<\/p>\n<p>Simplesmente, o neur\u00f4nio deve escrever &#8220;Camiseta&#8221; se a temperatura inserida for igual ou maior a 20 graus Celsius ou &#8220;Blusa&#8221; se menor que 20 graus Celsius.<\/p>\n<p>Neste exemplo vou usar a planilha eletr\u00f4nica <span style=\"color: blue;\">Libre Office Calc 6.3.6.2<\/span>. Acredito que para o pacote <span style=\"color: green;\">MS Office Excel<\/span>, os comandos sejam exatamente os mesmos.<\/p>\n<h4>Primeiramente, com uma explica\u00e7\u00e3o gen\u00e9rica<\/h4>\n<p><i> Atentem-se em criar duas abas na planilha. Uma de nome &#8220;treinamento&#8221;, onde vai ocorrer o treinamento propriamente dito e outra de nome &#8220;perceptron&#8221;, que ser\u00e1 utilizada para enfeitar. <\/i><\/p>\n<figure><figcaption><i>Imagem 01<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-01.png\"><\/figure>\n<ul>\n<li><code>Bias<\/code>: esp\u00e9cie de ajuste fino.<\/li>\n<li><code>T.A.<\/code> (taxa de aprendizagem): aqui \u00e9 definida a velocidade de aprendizagem do neur\u00f4nio.<\/li>\n<li><code>X1<\/code>: entrada do dado um.<\/li>\n<li><code>X2<\/code>: entrada do dado dois.<\/li>\n<li><code>S<\/code>: sa\u00edda desejada.<\/li>\n<li><code>W1<\/code>: \u00e9 o valor (peso) associado ao &#8220;X1&#8221;. N\u00e3o h\u00e1 regra e pode ser escolhidos valores aleat\u00f3rios pr\u00f3ximos a &#8220;1&#8221;.<\/li>\n<li><code>W2<\/code>: \u00e9 o valor (peso) associado ao &#8220;X2&#8221;. N\u00e3o h\u00e1 regra e pode ser escolhidos valores aleat\u00f3rios pr\u00f3ximos a &#8220;1&#8221;.<\/li>\n<li><code>d<\/code> (sa\u00edda intermedi\u00e1ria): aqui \u00e9 demonstrado o quanto de est\u00edmulo as entradas geraram.<\/li>\n<li><code>a<\/code> (fun\u00e7\u00e3o de ativa\u00e7\u00e3o): aqui \u00e9 definido se o est\u00edmulo recebido de &#8220;d&#8221; \u00e9 o suficiente ou n\u00e3o para executar a ativa\u00e7\u00e3o.<\/li>\n<li><code>p<\/code> (predi\u00e7\u00e3o): deve bater com a sa\u00edda (S) desejada. Ex.: se as sa\u00eddas desejadas forem &#8220;0&#8221; ou &#8220;1&#8221;, n\u00e3o faz sentido que a fun\u00e7\u00e3o &#8220;p&#8221; escreva &#8220;2&#8221; ou &#8220;3&#8221;.<\/li>\n<li><code>e<\/code> (erro): faz a quantifica\u00e7\u00e3o do erro. Ou seja, subtrai-se a sa\u00edda desejada (S) da predi\u00e7\u00e3o (p).<\/li>\n<li><code>D1<\/code> (Delta 1): o Delta 1 \u00e9 gerado a partir da multiplica\u00e7\u00e3o entre a taxa de aprendizagem (T.A.), a entrada 1 (X1) e o erro (e). Aqui se inicia o processo de ajuste do peso (W) para a pr\u00f3xima rodada; ou melhor, pr\u00f3xima linha da planilha eletr\u00f4nica. Como neste momento est\u00e1 sendo calculado o Delta 1, logo deve ser usado o X1.<\/li>\n<li><code>D2<\/code> (Delta 2): o Delta 2 \u00e9 gerado a partir da multiplica\u00e7\u00e3o entre a taxa de aprendizagem (T.A.), a entrada 2 (X2) e o erro (e). Aqui se inicia o processo de ajuste do peso (W) para a pr\u00f3xima rodada; ou melhor, pr\u00f3xima linha da planilha eletr\u00f4nica. Como neste momento est\u00e1 sendo calculado o Delta 2, logo deve ser usado o X2.<\/li>\n<li><code>nW1<\/code> (novo peso W1): Para gerar o novo peso basta somar o peso antigo (W1) com o delta (D1).<\/li>\n<li><code>nW2<\/code> (novo peso W2): Para gerar o novo peso basta somar o peso antigo (W2) com o delta (D2).<\/li>\n<\/ul>\n<p><b>Informa\u00e7\u00e3o importante:<\/b> se seu neur\u00f4nio possuir quatro entradas (X1, X2, X3 e X4), deve respectivamente, possuir quatro pesos (W1, W2, W3 e W4), quatro deltas (D1, D2, D3 e D4) e quatro pesos novos (nW1, nW2, nW3 e nW4).<\/p>\n<h4>Entrando de cabe\u00e7a (isso foi um trocadilho?)<\/h4>\n<figure><figcaption><i>Imagem 02<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-02.png\"><\/figure>\n<p>Para o Bias, n\u00e3o existe regra. Decidi utilizar o valor &#8220;-1&#8221;. Quanto ao &#8220;T.A.&#8221;, refor\u00e7o o que tinha escrito anteriormente: \u00e9 a velocidade de aprendizagem do neur\u00f4nio. Neste caso coloquei em 1% (0,01). \u00c9 uma taxa muito boa. Taxas muito altas podem levar a um aprendizado n\u00e3o muito bom.<\/p>\n<p>Observem que em &#8220;X1&#8221; eu coloquei &#8220;2&#8221; e em &#8220;X2&#8221; foi adicionado &#8220;0&#8221;. Ou seja, estes valores est\u00e3o representando 20 graus Celsius (quero que o valor base seja 20). Em &#8220;S&#8221; adicionei o valor &#8220;1&#8221;. Em outras palavras quero que o neur\u00f4nio entenda que estou &#8220;amarrando&#8221; uma sa\u00edda &#8220;1&#8221; \u00e0 temperatura 20. Para o peso &#8220;W1&#8221; escolhi o valor &#8220;0,2&#8221; e para peso &#8220;W2&#8221; escolhi o valor &#8220;0,4&#8221;. Nada impede voc\u00eas de escolherem outros valores para os pesos &#8220;W1&#8221; e &#8220;W2&#8221;.<\/p>\n<p>Para a sa\u00edda intermedi\u00e1ria, ou melhor &#8220;d&#8221;, utiliza-se seguinte f\u00f3rmula: <code>=(A6*D6)+(B6*E6)+(B$2)<\/code>. Observem que utilizei o sinal &#8220;$&#8221; antes do &#8220;2&#8221;. Neste caso estou informando para a planilha que quero fixar a linha &#8220;2&#8221;. Ou seja, sempre ser\u00e1 apontado para um \u00fanico Bias. Aqui \u00e9 demonstrado o quanto de est\u00edmulo as entradas geraram.<\/p>\n<p>Para a fun\u00e7\u00e3o de ativa\u00e7\u00e3o, ou melhor &#8220;a&#8221;, utiliza-se da seguinte f\u00f3rmula: <code>=SE(F6&gt;=0;1;-1)<\/code>. Se a sa\u00edda intermedi\u00e1ria retornar um valor maior ou igual a &#8220;0&#8221;, escreva o valor &#8220;1&#8221;; caso contr\u00e1rio escreva &#8220;-1&#8221;. Estamos usando a fun\u00e7\u00e3o do tipo degrau; para false, falso ou desligado \u00e9 utilizado &#8220;-1&#8221;; para true, verdadeiro ou ligado, \u00e9 utilizado &#8220;+1&#8221;; aqui \u00e9 definido se o est\u00edmulo recebido de &#8220;d&#8221; \u00e9 o suficiente ou n\u00e3o para executar a ativa\u00e7\u00e3o.<\/p>\n<p>Para a fun\u00e7\u00e3o predi\u00e7\u00e3o, ou melhor &#8220;p&#8221;, utiliza-se da seguinte f\u00f3rmula: <code>=SE(G6=1;1;0)<\/code>. Deve bater com a sa\u00edda (S) desejada. Ex.: se as sa\u00eddas desejadas forem &#8220;0&#8221; ou &#8220;1&#8221;, n\u00e3o faz sentido que a fun\u00e7\u00e3o p escreva &#8220;2&#8221; ou &#8220;3&#8221;. Ou seja, a fun\u00e7\u00e3o &#8220;p&#8221; (neste caso) deve escrever &#8220;0&#8221; ou &#8220;1&#8221; para bater com as sa\u00eddas das temperaturas que s\u00e3o\/ser\u00e3o &#8220;1&#8221; e &#8220;0&#8221;.<\/p>\n<p>Para o erro, ou melhor &#8220;e&#8221;, utiliza-se da seguinte f\u00f3rmula: <code>=C6-H6<\/code>. Aqui estamos fazendo a quantifica\u00e7\u00e3o do erro. Ou seja, subtra\u00edmos a sa\u00edda desejada &#8220;S&#8221; da predi\u00e7\u00e3o &#8220;p&#8221;. Toda vez que houver um erro, o valor desta coluna dever\u00e1 ser diferente de &#8220;0&#8221;. Se tiver um erro e for igual a &#8220;0&#8221;, volte e revise o passo anterior.<\/p>\n<p>Para o delta 1, ou melhor &#8220;D1&#8221;, utiliza-se da seguinte f\u00f3rmula: <code>=B$3*A6*I6<\/code>. O delta 1 \u00e9 gerado a partir da multiplica\u00e7\u00e3o entre a taxa de aprendizagem (T.A.), a entrada 1 (X1) e o erro (e). Aqui se inicia o processo de ajuste do peso (W) para a pr\u00f3xima rodada; ou melhor, a pr\u00f3xima linha da planilha eletr\u00f4nica. Como neste momento est\u00e1 sendo calculado o Delta 1, logo deve ser usado o &#8220;X1&#8221;.<\/p>\n<p>Para o delta 2, ou melhor D2, utiliza-se da seguinte f\u00f3rmula: <code>=B$3*B6*I6<\/code>. o Delta 2 \u00e9 gerado a partir da multiplica\u00e7\u00e3o entre a taxa de aprendizagem (T.A), a entrada 2 (X2) e o erro (e). Aqui se inicia o processo de ajuste do peso (W) para a pr\u00f3xima rodada; ou melhor, pr\u00f3xima linha da planilha eletr\u00f4nica. Como neste momento est\u00e1 sendo calculado o Delta 2, logo deve ser usado o &#8220;X2&#8221;. Observem que tanto para &#8220;D1&#8221;, quanto para &#8220;D2&#8221;, foi tamb\u00e9m fixada a linha &#8220;3&#8221; com o caractere &#8220;$&#8221;. Ou seja, sempre ser\u00e1 utilizado a mesma taxa de aprendizagem para este exemplo.<\/p>\n<p>Para o novo peso 1, ou melhor &#8220;nW1&#8221;, utiliza-se da seguinte f\u00f3rmula: <code>=D6+J6<\/code>. Ou seja, \u00e9 somado o &#8220;W1&#8221; com &#8220;D1&#8221;.<\/p>\n<p>Para o novo peso 2, ou melhor &#8220;nW2&#8221;, utiliza-se da seguinte f\u00f3rmula: <code>=E6+K6<\/code>. Ou seja, \u00e9 somado o &#8220;W1&#8221; com &#8220;D1&#8221;.<\/p>\n<figure><figcaption><i>Imagem 03<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-03.png\"><\/figure>\n<p>A linha 6 foi constru\u00edda apenas para montar o treinamento e demostrar as f\u00f3rmulas. Se observarem ver\u00e3o que deixei ela na cor vermelha). <b>O treinamento de fato vai come\u00e7ar a partir da linha 7<\/b>. Vou usar duas temperaturas acima de 20 amarradas a uma sa\u00edda &#8220;1&#8221; e tr\u00eas temperaturas menores que 20 amarradas a uma sa\u00edda &#8220;0&#8221;. Notem que eu repeti a temperatura 20 (c\u00e9lulas A7 e B7) com a sa\u00edda 1 (c\u00e9lula C7). Neste momento o peso &#8220;W1&#8221; da linha 7 (D7) aponta para o novo peso 1 da linha 6 (faz refer\u00eancia a c\u00e9lula L6).<\/p>\n<figure><figcaption><i>Imagem 04<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-04.png\"><\/figure>\n<p>Aqui tamb\u00e9m segue o mesmo racioc\u00edcio: o peso &#8220;W2&#8221; da linha 7 aponta para o novo peso 2 da linha 6 (faz refer\u00eancia a c\u00e9lula M6).<\/p>\n<figure><figcaption><i>Imagem 05<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-05.png\"><\/figure>\n<p>O restante pode ser copiado. Selecione de F6 a M6. Copie e cole na c\u00e9lula F7.<\/p>\n<figure><figcaption><i>Imagem 06<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-06.png\"><\/figure>\n<p>Ir\u00e3o notar que a linha 7 ficou completa.<\/p>\n<figure><figcaption><i>Imagem 07<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-07.png\"><\/figure>\n<p>Na linha 8 estou amarrando para a temperatura 25, uma sa\u00edda 1; na linha 9 tamb\u00e9m estou amarrando para a temperatura 30, uma sa\u00edda 1; na linha 10 amarro para a temperatura 15, uma sa\u00edda 0; na linha 11, amarro para a temperatura 10, uma sa\u00edda 0; por fim, na linha 12 amarro para a temperatura 05, uma sa\u00edda 0. Ou seja, eu tenho tr\u00eas temperaturas com sa\u00eddas &#8220;1&#8221; e tr\u00eas temperaturas com sa\u00eddas &#8220;0&#8221;. Acredito que \u00e9 o suficiente para treinar o neur\u00f4nio. Nada impede de usar duas temperaturas acima e duas abaixo ou dez acima e dez abaixo.<\/p>\n<figure><figcaption><i>Imagem 08<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-08.png\"><\/figure>\n<p>Selecione, da c\u00e9lula D7 at\u00e9 a M7 e copie <i>(Ctrl + C)<\/i>. Agora selecione da c\u00e9lula D8 at\u00e9 a c\u00e9lula D12 e cole <i>(Ctrl + V)<\/i>.<\/p>\n<figure><figcaption><i>Imagem 09<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-09.png\"><\/figure>\n<p>Se tudo deu certo, deve estar igual a imagem acima.<\/p>\n<h4>Agora \u00e9 que acontece a m\u00e1gica<\/h4>\n<figure><figcaption><i>Imagem 10<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-10.png\"><\/figure>\n<p>Selecione da c\u00e9lula A7 at\u00e9 a M12 e copie. Neste passo observem que deixei os textos que est\u00e3o sendo copiados na cor preta (apenas para destacar o que de fato ser\u00e1 usado para o treinamento).<\/p>\n<figure><figcaption><i>Imagem 11<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-11.png\"><\/figure>\n<p>Clique na c\u00e9lula A13 e cole.<\/p>\n<figure><figcaption><i>Imagem 12<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-12.png\"><\/figure>\n<p>Selecione da c\u00e9lula A13 at\u00e9 a M18 e copie.<\/p>\n<figure><figcaption><i>Imagem 13<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-13.png\"><\/figure>\n<p>Clique na c\u00e9lula A19 e cole.<\/p>\n<figure><figcaption><i>Imagem 14<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-14.png\"><\/figure>\n<p>Selecione da c\u00e9lula A19 at\u00e9 a M24 e copie. Clique na c\u00e9lula A25 e cole.<\/p>\n<p>.<br \/>\n.<br \/>\n.<\/p>\n<figure><figcaption><i>Imagem 15<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-15.png\"><\/figure>\n<p>Fa\u00e7a isso v\u00e1rias vezes (obviamente ascendendo as c\u00e9lulas) at\u00e9 notar o seguinte padr\u00e3o: a linha &#8220;I&#8221; ou coluna &#8220;e&#8221; (erro) mostra somente 0 (n\u00e3o est\u00e3o acontecendo erros). Observem que no treinamento do exemplo, decidi parar na linha 96. Se atentem as colunas D (W1) e E (W2) que obtive os pesos &#8220;0,5&#8221; e &#8220;0,05&#8221; respectivamente. Estes s\u00e3o os pesos que n\u00f3s precisamos.<\/p>\n<figure><figcaption><i>Imagem 16<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-16.png\"><\/figure>\n<p>Volte para a parte de cima da planilha, selecione da c\u00e9lula A5 at\u00e9 a M6 e copie.<\/p>\n<figure><figcaption><i>Imagem 17<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-17.png\"><\/figure>\n<p>Clique na linha A98 e cole. <b>Como est\u00e3o aprendendo, tentem fazer exatamente igual a planilha do artigo<\/b>.<\/p>\n<figure><figcaption><i>Imagem 18<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-18.png\"><\/figure>\n<p>Digite os pesos &#8220;W1&#8221; e &#8220;W2&#8221; obtidos no treinamento (0,5 e 0,05) nas c\u00e9lulas D99 e E99. Agora sim, o meu neur\u00f4nio pronto e treinado est\u00e1 sendo representando apenas pelas linhas 98 e 99.<\/p>\n<figure><figcaption><i>Imagem 19<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-19.png\"><\/figure>\n<p>Deixe a aba &#8220;perceptron&#8221; exatamente como na imagem acima.<\/p>\n<figure><figcaption><i>Imagem 20<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-20.png\"><\/figure>\n<p>Volte para a aba &#8220;treinamento&#8221;, clique na c\u00e9lula A99 e digite um sinal de igual (=).<\/p>\n<figure><figcaption><i>Imagem 21<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-21.png\"><\/figure>\n<p>Volte para a aba &#8220;perceptron&#8221; e clique na c\u00e9lula A3 e d\u00ea <i>enter<\/i>. Ou seja, tudo o que for digitado na c\u00e9lula A3 da aba &#8220;perceptron&#8221; ser\u00e1 automaticamente inserido na c\u00e9lula A99 da aba &#8220;treinamento&#8221;.<\/p>\n<figure><figcaption><i>Imagem 22<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-22.png\"><\/figure>\n<p>Volte para a aba &#8220;treinamento&#8221;, clique na c\u00e9lula B99 e digite um sinal de igual (=).<\/p>\n<figure><figcaption><i>Imagem 23<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-23.png\"><\/figure>\n<p>Volte para a aba &#8220;perceptron&#8221; e clique na c\u00e9lula B3 e d\u00ea <i>enter<\/i>. Ou seja, tudo o que for digitado na c\u00e9lula B3 da aba &#8220;perceptron&#8221; ser\u00e1 automaticamente inserido na c\u00e9lula B99 da aba &#8220;treinamento&#8221;.<\/p>\n<figure><figcaption><i>Imagem 24<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-24.png\"><\/figure>\n<p>Na c\u00e9lula C3 da aba &#8220;perceptron&#8221; digite a seguinte f\u00f3rmula: <code>=SE($treinamento.I99=0;\"Camiseta\";\"Blusa\")<\/code>.<\/p>\n<p><b>Explica\u00e7\u00e3o:<\/b> as temperaturas iguais ou maiores que 20 foram amarradas a &#8220;1&#8221;; as temperaturas menores que 20 foram amarradas a &#8220;0&#8221;. A linha que estou usando para representar o neur\u00f4nio treinado, tem &#8220;1&#8221; na sa\u00edda (S). Ou seja, sempre que forem inseridas temperaturas iguais ou maiores que 20, a coluna erro permenecer\u00e1 em &#8220;0&#8221; (n\u00e3o teve erro). Sempre que foram inseridas temperaturas menores que 20, a coluna erro mostra &#8220;1&#8221;. Logo a f\u00f3rmula <code>=SE($treinamento.I99=0;\"Camiseta\";\"Blusa\")<\/code> escreve &#8220;Camiseta&#8221; se for &#8220;0&#8221; na c\u00e9lula I99 da aba treinamento ou escreve &#8220;Blusa&#8221; se for &#8220;1&#8221; na c\u00e9lula I99 da aba treinamento.<\/p>\n<figure><figcaption><i>Imagem 25<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-25.png\"><\/figure>\n<p>Para 20 graus, o neur\u00f4nio me informa que devo usar camiseta.<\/p>\n<figure><figcaption><i>Imagem 26<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-26.png\"><\/figure>\n<p>Para 55 graus, o neur\u00f4nio me informa que devo usar camiseta. (vamos l\u00e1 gente, \u00e9 s\u00f3 uma ilustra\u00e7\u00e3o)<\/p>\n<figure><figcaption><i>Imagem 27<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-27.png\"><\/figure>\n<p>Para 99 graus, o neur\u00f4nio me informa que devo usar camiseta.<\/p>\n<figure><figcaption><i>Imagem 28<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-28.png\"><\/figure>\n<p>Para 19 graus, o neur\u00f4nio me informa que devo usar blusa.<\/p>\n<figure><figcaption><i>Imagem 29<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-29.png\"><\/figure>\n<p>Para 10 graus, o neur\u00f4nio me informa que devo usar blusa.<\/p>\n<figure><figcaption><i>Imagem 30<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-30.png\"><\/figure>\n<p>Para 1 grau, o neur\u00f4nio me informa que devo usar blusa.<\/p>\n<figure><figcaption><i>Imagem 31<\/i><\/figcaption><img decoding=\"async\" src=\"https:\/\/fedablio.com.br\/blog\/wp-content\/uploads\/2022\/01\/perceptron-31.png\"><\/figure>\n<p>Vejam por este \u00e2ngulo (rsrs) o que acontece quando \u00e9 inserida a temperatura 01 com a sa\u00edda &#8220;S&#8221; 1; ocorre um erro (1), cujo \u00e9 mostrado na c\u00e9lula I99.<\/p>\n<p>Para ilustrar e tentar deixar mais completa a explica\u00e7\u00e3o, desenvolvi um c\u00f3digo computacional na linguagem <span style=\"color: red;\">Java<\/span>:<\/p>\n<pre>public class Principal {\n\n\tpublic static void main(String[] args) {\n\n\t\tdouble bias = -1;\n\t\tdouble ta = 0.01;\n\t\tbyte x1 = 0;\n\t\tbyte x2 = 0;\n\t\tint s = 0;\n\t\tdouble w1 = 0;\n\t\tdouble w2 = 0;\n\t\tdouble d = 0;\n\t\tbyte a = 0;\n\t\tint p = 0;\n\t\tint e = 0;\n\t\tdouble d1 = 0;\n\t\tdouble d2 = 0;\n\t\tdouble nw1 = 0;\n\t\tdouble nw2 = 0;\n\t\tboolean loop = true;\n\t\tint vetor[] = new int[1000];\n\t\tint cont = 0;\n\t\tint padrao = 0;\n\n\t\t\/\/ linha 1 (head)\n\t\tx1 = 2;\n\t\tint x1_origem = x1;\n\t\tx2 = 0;\n\t\tint x2_origem = x2;\n\t\ts = 1;\n\t\tint s_origem = s;\n\t\tw1 = 0.2;\n\t\tw2 = 0.4;\n\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\tif (d &gt;= 0) {\n\t\t\ta = 1;\n\t\t} else {\n\t\t\ta = -1;\n\t\t}\n\t\tif (a == 1) {\n\t\t\tp = 1;\n\t\t} else {\n\t\t\tp = 0;\n\t\t}\n\t\te = s - p;\n\t\tvetor[cont] = e;\n\t\tcont++;\n\t\td1 = ta * x1 * e;\n\t\td2 = ta * x2 * e;\n\t\tnw1 = w1 + d1;\n\t\tnw2 = w2 + d2;\n\n\t\twhile (loop) {\n\t\t\t\/\/ linha 2 (body)\n\t\t\tx1 = 2;\n\t\t\tx2 = 0;\n\t\t\ts = 1;\n\t\t\tw1 = nw1;\n\t\t\tw2 = nw2;\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\t\tif (d &gt;= 0) {\n\t\t\t\ta = 1;\n\t\t\t} else {\n\t\t\t\ta = -1;\n\t\t\t}\n\t\t\tif (a == 1) {\n\t\t\t\tp = 1;\n\t\t\t} else {\n\t\t\t\tp = 0;\n\t\t\t}\n\t\t\te = s - p;\n\t\t\tvetor[cont] = e;\n\t\t\tcont++;\n\t\t\td1 = ta * x1 * e;\n\t\t\td2 = ta * x2 * e;\n\t\t\tnw1 = w1 + d1;\n\t\t\tnw2 = w2 + d2;\n\n\t\t\t\/\/ linha 3 (body)\n\t\t\tx1 = 2;\n\t\t\tx2 = 5;\n\t\t\ts = 1;\n\t\t\tw1 = nw1;\n\t\t\tw2 = nw2;\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\t\tif (d &gt;= 0) {\n\t\t\t\ta = 1;\n\t\t\t} else {\n\t\t\t\ta = -1;\n\t\t\t}\n\t\t\tif (a == 1) {\n\t\t\t\tp = 1;\n\t\t\t} else {\n\t\t\t\tp = 0;\n\t\t\t}\n\t\t\te = s - p;\n\t\t\tvetor[cont] = e;\n\t\t\tcont++;\n\t\t\td1 = ta * x1 * e;\n\t\t\td2 = ta * x2 * e;\n\t\t\tnw1 = w1 + d1;\n\t\t\tnw2 = w2 + d2;\n\n\t\t\t\/\/ linha 4 (body)\n\t\t\tx1 = 3;\n\t\t\tx2 = 0;\n\t\t\ts = 1;\n\t\t\tw1 = nw1;\n\t\t\tw2 = nw2;\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\t\tif (d &gt;= 0) {\n\t\t\t\ta = 1;\n\t\t\t} else {\n\t\t\t\ta = -1;\n\t\t\t}\n\t\t\tif (a == 1) {\n\t\t\t\tp = 1;\n\t\t\t} else {\n\t\t\t\tp = 0;\n\t\t\t}\n\t\t\te = s - p;\n\t\t\tvetor[cont] = e;\n\t\t\tcont++;\n\t\t\td1 = ta * x1 * e;\n\t\t\td2 = ta * x2 * e;\n\t\t\tnw1 = w1 + d1;\n\t\t\tnw2 = w2 + d2;\n\n\t\t\t\/\/ linha 5 (body)\n\t\t\tx1 = 1;\n\t\t\tx2 = 5;\n\t\t\ts = 0;\n\t\t\tw1 = nw1;\n\t\t\tw2 = nw2;\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\t\tif (d &gt;= 0) {\n\t\t\t\ta = 1;\n\t\t\t} else {\n\t\t\t\ta = -1;\n\t\t\t}\n\t\t\tif (a == 1) {\n\t\t\t\tp = 1;\n\t\t\t} else {\n\t\t\t\tp = 0;\n\t\t\t}\n\t\t\te = s - p;\n\t\t\tvetor[cont] = e;\n\t\t\tcont++;\n\t\t\td1 = ta * x1 * e;\n\t\t\td2 = ta * x2 * e;\n\t\t\tnw1 = w1 + d1;\n\t\t\tnw2 = w2 + d2;\n\n\t\t\t\/\/ linha 6 (body)\n\t\t\tx1 = 1;\n\t\t\tx2 = 0;\n\t\t\ts = 0;\n\t\t\tw1 = nw1;\n\t\t\tw2 = nw2;\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\t\tif (d &gt;= 0) {\n\t\t\t\ta = 1;\n\t\t\t} else {\n\t\t\t\ta = -1;\n\t\t\t}\n\t\t\tif (a == 1) {\n\t\t\t\tp = 1;\n\t\t\t} else {\n\t\t\t\tp = 0;\n\t\t\t}\n\t\t\te = s - p;\n\t\t\tvetor[cont] = e;\n\t\t\tcont++;\n\t\t\td1 = ta * x1 * e;\n\t\t\td2 = ta * x2 * e;\n\t\t\tnw1 = w1 + d1;\n\t\t\tnw2 = w2 + d2;\n\n\t\t\t\/\/ linha 7 (body)\n\t\t\tx1 = 0;\n\t\t\tx2 = 5;\n\t\t\ts = 0;\n\t\t\tw1 = nw1;\n\t\t\tw2 = nw2;\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\t\tif (d &gt;= 0) {\n\t\t\t\ta = 1;\n\t\t\t} else {\n\t\t\t\ta = -1;\n\t\t\t}\n\t\t\tif (a == 1) {\n\t\t\t\tp = 1;\n\t\t\t} else {\n\t\t\t\tp = 0;\n\t\t\t}\n\t\t\te = s - p;\n\t\t\tvetor[cont] = e;\n\t\t\tcont++;\n\t\t\td1 = ta * x1 * e;\n\t\t\td2 = ta * x2 * e;\n\t\t\tnw1 = w1 + d1;\n\t\t\tnw2 = w2 + d2;\n\t\t\tif (cont &gt;= 500) {\n\t\t\t\tfor (int i = 0; i &lt; 499; i++) {\n\t\t\t\t\tif (vetor[i] == 0) {\n\t\t\t\t\t\tpadrao++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpadrao = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (padrao &gt; 15) {\n\t\t\t\t\t\tloop = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tSystem.out.printf(\"Bias: %.0f\\n\", bias);\n\t\t\t\tSystem.out.printf(\"Taxa de aprendizado: %.2f\\n\", ta);\n\t\t\t\tSystem.out.println(\"X1: \" + x1_origem);\n\t\t\t\tSystem.out.println(\"X2: \" + x2_origem);\n\t\t\t\tSystem.out.println(\"S: \" + s_origem);\n\t\t\t\tSystem.out.printf(\"W1 encontrado: %.2f\\n\", w1);\n\t\t\t\tSystem.out.printf(\"W2 encontrado: %.2f\\n\", w2);\n\t\t\t}\n\t\t}\n\t}\n\n}\n<\/pre>\n<h4>Sa\u00edda<\/h4>\n<pre>Bias: -1\nTaxa de aprendizado: 0,01\nX1: 2\nX2: 0\nS: 1\nW1 encontrado: 0,50\nW2 encontrado: 0,05\n<\/pre>\n<p>Tamb\u00e9m observem o c\u00f3digo computacional em <span style=\"color: red;\">Python<\/span>:<\/p>\n<pre>bias = -1\nta = 0.01\nx1 = 0\nx2 = 0\ns = 0\nw1 = 0\nw2 = 0\nd = 0\na = 0\np = 0\ne = 0\nd1 = 0\nd2 = 0\nnw1 = 0\nnw2 = 0\nloop = True\nvetor = []\ncont = 0\npadrao = 0\ni = 0\n\n# linha 1 (head)\nx1 = 2\nx1_origem = x1\nx2 = 0\nx2_origem = x2\ns = 1\ns_origem = s\nw1 = 0.2\nw2 = 0.4\nd = (x1 * w1) + (x2 * w2) + bias\nif d &gt;= 0:\n    a = 1\nelse:\n    a = -1\nif a == 1:\n    p = 1\nelse:\n    p = 0\ne = s - p\nvetor.insert(cont, e)\ncont = cont + 1\nd1 = ta * x1 * e\nd2 = ta * x2 * e\nnw1 = w1 + d1\nnw2 = w2 + d2\n\nwhile loop:\n    # linha 2 (body)\n    x1 = 2\n    x2 = 0\n    s = 1\n    w1 = nw1\n    w2 = nw2\n    d = (x1 * w1) + (x2 * w2) + bias\n    if d &gt;= 0:\n        a = 1\n    else:\n        a = -1\n    if a == 1:\n        p = 1\n    else:\n        p = 0\n    e = s - p\n    vetor.insert(cont, e)\n    cont = cont + 1\n    d1 = ta * x1 * e\n    d2 = ta * x2 * e\n    nw1 = w1 + d1\n    nw2 = w2 + d2\n\n    # linha 3 (body)\n    x1 = 2\n    x2 = 5\n    s = 1\n    w1 = nw1\n    w2 = nw2\n    d = (x1 * w1) + (x2 * w2) + bias\n    if d &gt;= 0:\n        a = 1\n    else:\n        a = -1\n    if a == 1:\n        p = 1\n    else:\n        p = 0\n    e = s - p\n    vetor.insert(cont, e)\n    cont = cont + 1\n    d1 = ta * x1 * e\n    d2 = ta * x2 * e\n    nw1 = w1 + d1\n    nw2 = w2 + d2\n\n    # linha 4 (body)\n    x1 = 3\n    x2 = 0\n    s = 1\n    w1 = nw1\n    w2 = nw2\n    d = (x1 * w1) + (x2 * w2) + bias\n    if d &gt;= 0:\n        a = 1\n    else:\n        a = -1\n    if a == 1:\n        p = 1\n    else:\n        p = 0\n    e = s - p\n    vetor.insert(cont, e)\n    cont = cont + 1\n    d1 = ta * x1 * e\n    d2 = ta * x2 * e\n    nw1 = w1 + d1\n    nw2 = w2 + d2\n\n    # linha 5 (body)\n    x1 = 1\n    x2 = 5\n    s = 0\n    w1 = nw1\n    w2 = nw2\n    d = (x1 * w1) + (x2 * w2) + bias\n    if d &gt;= 0:\n        a = 1\n    else:\n        a = -1\n    if a == 1:\n        p = 1\n    else:\n        p = 0\n    e = s - p\n    vetor.insert(cont, e)\n    cont = cont + 1\n    d1 = ta * x1 * e\n    d2 = ta * x2 * e\n    nw1 = w1 + d1\n    nw2 = w2 + d2\n\n    # linha 6 (body)\n    x1 = 1\n    x2 = 0\n    s = 0\n    w1 = nw1\n    w2 = nw2\n    d = (x1 * w1) + (x2 * w2) + bias\n    if d &gt;= 0:\n        a = 1\n    else:\n        a = -1\n    if a == 1:\n        p = 1\n    else:\n        p = 0\n    e = s - p\n    vetor.insert(cont, e)\n    cont = cont + 1\n    d1 = ta * x1 * e\n    d2 = ta * x2 * e\n    nw1 = w1 + d1\n    nw2 = w2 + d2\n\n    # linha 7 (body)\n    x1 = 0\n    x2 = 5\n    s = 0\n    w1 = nw1\n    w2 = nw2\n    d = (x1 * w1) + (x2 * w2) + bias\n    if d &gt;= 0:\n        a = 1\n    else:\n        a = -1\n    if a == 1:\n        p = 1\n    else:\n        p = 0\n    e = s - p\n    vetor.insert(cont, e)\n    cont = cont + 1\n    d1 = ta * x1 * e\n    d2 = ta * x2 * e\n    nw1 = w1 + d1\n    nw2 = w2 + d2\n    if cont &gt;= 500:\n        while i &lt; 499:\n            if vetor[i] == 0:\n                padrao = padrao + 1\n            else:\n                padrao = 0\n            if padrao &gt; 15:\n                loop = False\n            i = i + 1\n\n        print('Bias:',bias)\n        print('Taxa de aprendizado:',ta)\n        print('X1:',x1_origem)\n        print('X2:',x2_origem)\n        print('S:',s_origem)\n        print(\"W1 Encontrado: {0:.2f}\".format(w1))\n        print(\"W1 Encontrado: {0:.2f}\".format(w2))\n<\/pre>\n<h4>Sa\u00edda<\/h4>\n<pre>Bias: -1\nTaxa de aprendizado: 0.01\nX1: 2\nX2: 0\nS: 1\nW1 Encontrado: 0.50\nW1 Encontrado: 0.05\n<\/pre>\n<p>Tamb\u00e9m observem o c\u00f3digo computacional em <span style=\"color: red;\">C<\/span>:<\/p>\n<pre>#include &lt;iostream&gt;\n\nint main(){\n\tdouble bias = -1;\n\tdouble ta = 0.01;\n\tint x1 = 0;\n\tint x2 = 0;\n\tint s = 0;\n\tdouble w1 = 0;\n\tdouble w2 = 0;\n\tdouble d = 0;\n\tint a = 0;\n\tint p = 0;\n\tint e = 0;\n\tdouble d1 = 0;\n\tdouble d2 = 0;\n\tdouble nw1 = 0;\n\tdouble nw2 = 0;\n\tbool loop = true;\n\tint vetor[1000] = {};\n\tint cont = 0;\n\tint padrao = 0;\n\n\t\/\/ linha 1 (head)\n\tx1 = 2;\n\tint x1_origem = x1;\n\tx2 = 0;\n\tint x2_origem = x2;\n\ts = 1;\n\tint s_origem = s;\n\tw1 = 0.2;\n\tw2 = 0.4;\n\td = ((x1 * w1) + (x2 * w2) + bias);\n\tif (d &gt;= 0) {\n\t\ta = 1;\n\t}else {\n\t\ta = -1;\n\t}\n\tif (a == 1) {\n\t\tp = 1;\n\t}else {\n\t\tp = 0;\n\t}\n\te = s - p;\n\tvetor[cont] = e;\n\tcont++;\n\td1 = ta * x1 * e;\n\td2 = ta * x2 * e;\n\tnw1 = w1 + d1;\n\tnw2 = w2 + d2;\n\n\twhile (loop) {\n\t\t\/\/ linha 2 (body)\n\t\tx1 = 2;\n\t\tx2 = 0;\n\t\ts = 1;\n\t\tw1 = nw1;\n\t\tw2 = nw2;\n\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\tif (d &gt;= 0) {\n\t\t\ta = 1;\n\t\t}else {\n\t\t\ta = -1;\n\t\t}\n\t\tif (a == 1) {\n\t\t\tp = 1;\n\t\t}else {\n\t\t\tp = 0;\n\t\t}\n\t\te = s - p;\n\t\tvetor[cont] = e;\n\t\tcont++;\n\t\td1 = ta * x1 * e;\n\t\td2 = ta * x2 * e;\n\t\tnw1 = w1 + d1;\n\t\tnw2 = w2 + d2;\n\n\t\t\/\/ linha 3 (body)\n\t\tx1 = 2;\n\t\tx2 = 5;\n\t\ts = 1;\n\t\tw1 = nw1;\n\t\tw2 = nw2;\n\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\tif (d &gt;= 0) {\n\t\t\ta = 1;\n\t\t}else {\n\t\t\ta = -1;\n\t\t}\n\t\tif (a == 1) {\n\t\t\tp = 1;\n\t\t}else {\n\t\t\tp = 0;\n\t\t}\n\t\te = s - p;\n\t\tvetor[cont] = e;\n\t\tcont++;\n\t\td1 = ta * x1 * e;\n\t\td2 = ta * x2 * e;\n\t\tnw1 = w1 + d1;\n\t\tnw2 = w2 + d2;\n\n\t\t\/\/ linha 4 (body)\n\t\tx1 = 3;\n\t\tx2 = 0;\n\t\ts = 1;\n\t\tw1 = nw1;\n\t\tw2 = nw2;\n\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\tif (d &gt;= 0) {\n\t\t\ta = 1;\n\t\t}else {\n\t\t\ta = -1;\n\t\t}\n\t\tif (a == 1) {\n\t\t\tp = 1;\n\t\t}else {\n\t\t\tp = 0;\n\t\t}\n\t\te = s - p;\n\t\tvetor[cont] = e;\n\t\tcont++;\n\t\td1 = ta * x1 * e;\n\t\td2 = ta * x2 * e;\n\t\tnw1 = w1 + d1;\n\t\tnw2 = w2 + d2;\n\n\t\t\/\/ linha 5 (body)\n\t\tx1 = 1;\n\t\tx2 = 5;\n\t\ts = 0;\n\t\tw1 = nw1;\n\t\tw2 = nw2;\n\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\tif (d &gt;= 0) {\n\t\t\ta = 1;\n\t\t}else {\n\t\t\ta = -1;\n\t\t}\n\t\tif (a == 1) {\n\t\t\tp = 1;\n\t\t}else {\n\t\t\tp = 0;\n\t\t}\n\t\te = s - p;\n\t\tvetor[cont] = e;\n\t\tcont++;\n\t\td1 = ta * x1 * e;\n\t\td2 = ta * x2 * e;\n\t\tnw1 = w1 + d1;\n\t\tnw2 = w2 + d2;\n\n\t\t\/\/ linha 6 (body)\n\t\tx1 = 1;\n\t\tx2 = 0;\n\t\ts = 0;\n\t\tw1 = nw1;\n\t\tw2 = nw2;\n\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\tif (d &gt;= 0) {\n\t\t\ta = 1;\n\t\t}else {\n\t\t\ta = -1;\n\t\t}\n\t\tif (a == 1) {\n\t\t\tp = 1;\n\t\t}else {\n\t\t\tp = 0;\n\t\t}\n\t\te = s - p;\n\t\tvetor[cont] = e;\n\t\tcont++;\n\t\td1 = ta * x1 * e;\n\t\td2 = ta * x2 * e;\n\t\tnw1 = w1 + d1;\n\t\tnw2 = w2 + d2;\n\n\t\t\/\/ linha 7 (body)\n\t\tx1 = 0;\n\t\tx2 = 5;\n\t\ts = 0;\n\t\tw1 = nw1;\n\t\tw2 = nw2;\n\t\td = ((x1 * w1) + (x2 * w2) + bias);\n\t\tif (d &gt;= 0) {\n\t\t\ta = 1;\n\t\t}else {\n\t\t\ta = -1;\n\t\t}\n\t\tif (a == 1) {\n\t\t\tp = 1;\n\t\t}else {\n\t\t\tp = 0;\n\t\t}\n\t\te = s - p;\n\t\tvetor[cont] = e;\n\t\tcont++;\n\t\td1 = ta * x1 * e;\n\t\td2 = ta * x2 * e;\n\t\tnw1 = w1 + d1;\n\t\tnw2 = w2 + d2;\n\t\tif (cont &gt;= 500) {\n\t\t\tfor (int i = 0; i &lt; 499; i++) {\n\t\t\t\tif (vetor[i] == 0) {\n\t\t\t\t\tpadrao++;\n\t\t\t\t}else {\n\t\t\t\t\tpadrao = 0;\n\t\t\t\t}\n\t\t\t\tif (padrao &gt; 15) {\n\t\t\t\t\tloop = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tprintf(\"Bias: %.0f\\n\", bias);\n\t\t\tprintf(\"Taxa de aprendizado: %.2f\\n\", ta);\n\t\t\tprintf(\"X1: %d\\n\",x1_origem);\n\t\t\tprintf(\"X2: %d\\n\",x2_origem);\n\t\t\tprintf(\"S: %d\\n\",s_origem);\n\t\t\tprintf(\"W1 encontrado: %.2f\\n\", w1);\n\t\t\tprintf(\"W2 encontrado: %.2f\\n\", w2);\n\t\t}\n\t}\n\n\tsystem(\"pause\");\n\treturn 0;\n}\n<\/pre>\n<h4>Sa\u00edda<\/h4>\n<pre>Bias: -1\nTaxa de aprendizado: 0.01\nX1: 2\nX2: 0\nS: 1\nW1 encontrado: 0.50\nW2 encontrado: 0.05\nPressione qualquer tecla para continuar. . .\n<\/pre>\n<p>Tamb\u00e9m observem o c\u00f3digo computacional em <span style=\"color: red;\">VB.NET<\/span>:<\/p>\n<pre>Imports System\n\nModule Program\n\n\tSub Main(args As String())\n\n\t\tDim bias As Double = -1\n\t\tDim ta As Double = 0.01\n\t\tDim x1 As Integer = 0\n\t\tDim x2 As Integer = 0\n\t\tDim s As Integer = 0\n\t\tDim w1 As Double = 0\n\t\tDim w2 As Double = 0\n\t\tDim d As Double = 0\n\t\tDim a As Integer = 0\n\t\tDim p As Integer = 0\n\t\tDim e As Integer = 0\n\t\tDim d1 As Double = 0\n\t\tDim d2 As Double = 0\n\t\tDim nw1 As Double = 0\n\t\tDim nw2 As Double = 0\n\t\tDim ciclo As Boolean = True\n\t\tDim Vetor(1000) As Integer\n\t\tDim cont As Integer = 0\n\t\tDim padrao As Integer = 0\n\n\t\t'linha 1 (head)'\n\t\tx1 = 2\n\t\tDim x1_origem As Integer = x1\n\t\tx2 = 0\n\t\tDim x2_origem As Integer = x2\n\t\ts = 1\n\t\tDim s_origem As Integer = s\n\t\tw1 = 0.2\n\t\tw2 = 0.4\n\t\td = ((x1 * w1) + (x2 * w2) + bias)\n\t\tIf d &gt;= 0 Then\n\t\t\ta = 1\n\t\tElse\n\t\t\ta = -1\n\t\tEnd If\n\n\t\tIf a = 1 Then\n\t\t\tp = 1\n\t\tElse\n\t\t\tp = 0\n\t\tEnd If\n\t\te = s - p\n\t\tVetor(cont) = e\n\t\tcont = cont + 1\n\t\td1 = ta * x1 * e\n\t\td2 = ta * x2 * e\n\t\tnw1 = w1 + d1\n\t\tnw2 = w2 + d2\n\n\t\tWhile ciclo\n\t\t\t'linha 2 (body)'\n\t\t\tx1 = 2\n\t\t\tx2 = 0\n\t\t\ts = 1\n\t\t\tw1 = nw1\n\t\t\tw2 = nw2\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias)\n\t\t\tIf d &gt;= 0 Then\n\t\t\t\ta = 1\n\t\t\tElse\n\t\t\t\ta = -1\n\t\t\tEnd If\n\n\t\t\tIf a = 1 Then\n\t\t\t\tp = 1\n\t\t\tElse\n\t\t\t\tp = 0\n\t\t\tEnd If\n\t\t\te = s - p\n\t\t\tVetor(cont) = e\n\t\t\tcont = cont + 1\n\t\t\td1 = ta * x1 * e\n\t\t\td2 = ta * x2 * e\n\t\t\tnw1 = w1 + d1\n\t\t\tnw2 = w2 + d2\n\n\t\t\t'linha 3 (body)'\n\t\t\tx1 = 2\n\t\t\tx2 = 5\n\t\t\ts = 1\n\t\t\tw1 = nw1\n\t\t\tw2 = nw2\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias)\n\t\t\tIf d &gt;= 0 Then\n\t\t\t\ta = 1\n\t\t\tElse\n\t\t\t\ta = -1\n\t\t\tEnd If\n\n\t\t\tIf a = 1 Then\n\t\t\t\tp = 1\n\t\t\tElse\n\t\t\t\tp = 0\n\t\t\tEnd If\n\t\t\te = s - p\n\t\t\tVetor(cont) = e\n\t\t\tcont = cont + 1\n\t\t\td1 = ta * x1 * e\n\t\t\td2 = ta * x2 * e\n\t\t\tnw1 = w1 + d1\n\t\t\tnw2 = w2 + d2\n\n\n\t\t\t'linha 4 (body)'\n\t\t\tx1 = 3\n\t\t\tx2 = 0\n\t\t\ts = 1\n\t\t\tw1 = nw1\n\t\t\tw2 = nw2\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias)\n\t\t\tIf d &gt;= 0 Then\n\t\t\t\ta = 1\n\t\t\tElse\n\t\t\t\ta = -1\n\t\t\tEnd If\n\n\t\t\tIf a = 1 Then\n\t\t\t\tp = 1\n\t\t\tElse\n\t\t\t\tp = 0\n\t\t\tEnd If\n\t\t\te = s - p\n\t\t\tVetor(cont) = e\n\t\t\tcont = cont + 1\n\t\t\td1 = ta * x1 * e\n\t\t\td2 = ta * x2 * e\n\t\t\tnw1 = w1 + d1\n\t\t\tnw2 = w2 + d2\n\n\t\t\t'linha 5 (body)'\n\t\t\tx1 = 1\n\t\t\tx2 = 5\n\t\t\ts = 0\n\t\t\tw1 = nw1\n\t\t\tw2 = nw2\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias)\n\t\t\tIf d &gt;= 0 Then\n\t\t\t\ta = 1\n\t\t\tElse\n\t\t\t\ta = -1\n\t\t\tEnd If\n\n\t\t\tIf a = 1 Then\n\t\t\t\tp = 1\n\t\t\tElse\n\t\t\t\tp = 0\n\t\t\tEnd If\n\t\t\te = s - p\n\t\t\tVetor(cont) = e\n\t\t\tcont = cont + 1\n\t\t\td1 = ta * x1 * e\n\t\t\td2 = ta * x2 * e\n\t\t\tnw1 = w1 + d1\n\t\t\tnw2 = w2 + d2\n\n\t\t\t'linha 6 (body)'\n\t\t\tx1 = 1\n\t\t\tx2 = 0\n\t\t\ts = 0\n\t\t\tw1 = nw1\n\t\t\tw2 = nw2\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias)\n\t\t\tIf d &gt;= 0 Then\n\t\t\t\ta = 1\n\t\t\tElse\n\t\t\t\ta = -1\n\t\t\tEnd If\n\n\t\t\tIf a = 1 Then\n\t\t\t\tp = 1\n\t\t\tElse\n\t\t\t\tp = 0\n\t\t\tEnd If\n\t\t\te = s - p\n\t\t\tVetor(cont) = e\n\t\t\tcont = cont + 1\n\t\t\td1 = ta * x1 * e\n\t\t\td2 = ta * x2 * e\n\t\t\tnw1 = w1 + d1\n\t\t\tnw2 = w2 + d2\n\n\t\t\t'linha 7 (body)'\n\t\t\tx1 = 0\n\t\t\tx2 = 5\n\t\t\ts = 0\n\t\t\tw1 = nw1\n\t\t\tw2 = nw2\n\t\t\td = ((x1 * w1) + (x2 * w2) + bias)\n\t\t\tIf d &gt;= 0 Then\n\t\t\t\ta = 1\n\t\t\tElse\n\t\t\t\ta = -1\n\t\t\tEnd If\n\n\t\t\tIf a = 1 Then\n\t\t\t\tp = 1\n\t\t\tElse\n\t\t\t\tp = 0\n\t\t\tEnd If\n\t\t\te = s - p\n\t\t\tVetor(cont) = e\n\t\t\tcont = cont + 1\n\t\t\td1 = ta * x1 * e\n\t\t\td2 = ta * x2 * e\n\t\t\tnw1 = w1 + d1\n\t\t\tnw2 = w2 + d2\n\n\t\t\tIf cont &gt;= 500 Then\n\t\t\t\tFor i As Integer = 0 To 499\n\t\t\t\t\tIf Vetor(i) = 0 Then\n\t\t\t\t\t\tpadrao = padrao + 1\n\t\t\t\t\tElse\n\t\t\t\t\t\tpadrao = 0\n\t\t\t\t\tEnd If\n\t\t\t\t\tIf padrao &gt; 15 Then\n\t\t\t\t\t\tciclo = False\n\t\t\t\t\tEnd If\n\t\t\t\tNext\n\t\t\t\tConsole.WriteLine(\"Bias: {0}\", bias)\n\t\t\t\tConsole.WriteLine(\"Taxa de aprendizado: {0:0.00}\", ta)\n\t\t\t\tConsole.WriteLine(\"X1: {0}\", x1_origem)\n\t\t\t\tConsole.WriteLine(\"X2: {0}\", x2_origem)\n\t\t\t\tConsole.WriteLine(\"S: {0}\", s_origem)\n\t\t\t\tConsole.WriteLine(\"W1 encontrado: {0:0.00}\", w1)\n\t\t\t\tConsole.WriteLine(\"W2 encontrado: {0:0.00}\", w2)\n\t\t\tEnd If\n\t\tEnd While\n\tEnd Sub\nEnd Module\n<\/pre>\n<h4>Sa\u00edda<\/h4>\n<pre>Bias: -1\nTaxa de aprendizado: 0,01\nX1: 2\nX2: 0\nS: 1\nW1 encontrado: 0,50\nW2 encontrado: 0,05\n<\/pre>\n<p>Tamb\u00e9m observem o c\u00f3digo computacional em <span style=\"color: red;\">C#<\/span>:<\/p>\n<pre>namespace Projeto{\n\n    class Program{\n\n        static void Main(string[] args){\n\n            double bias = -1;\n            double ta = 0.01;\n            int x1 = 0;\n            int x2 = 0;\n            int s = 0;\n            double w1 = 0;\n            double w2 = 0;\n            double d = 0;\n            int a = 0;\n            int p = 0;\n            int e = 0;\n            double d1 = 0;\n            double d2 = 0;\n            double nw1 = 0;\n            double nw2 = 0;\n            bool loop = true;\n            int[] vetor = new int[1000];\n            int cont = 0;\n            int padrao = 0;\n\n            \/\/ linha 1 (head)\n            x1 = 2;\n            int x1_origem = x1;\n            x2 = 0;\n            int x2_origem = x2;\n            s = 1;\n            int s_origem = s;\n            w1 = 0.2;\n            w2 = 0.4;\n            d = ((x1 * w1) + (x2 * w2) + bias);\n            if (d &gt;= 0){\n                a = 1;\n            }else{\n                a = -1;\n            }\n            if (a == 1){\n                p = 1;\n            }else{\n                p = 0;\n            }\n            e = s - p;\n            vetor[cont] = e;\n            cont++;\n            d1 = ta * x1 * e;\n            d2 = ta * x2 * e;\n            nw1 = w1 + d1;\n            nw2 = w2 + d2;\n\n            while (loop){\n                \/\/ linha 2 (body)\n                x1 = 2;\n                x2 = 0;\n                s = 1;\n                w1 = nw1;\n                w2 = nw2;\n                d = ((x1 * w1) + (x2 * w2) + bias);\n                if (d &gt;= 0){\n                    a = 1;\n                }else\n                {\n                    a = -1;\n                }\n                if (a == 1){\n                    p = 1;\n                }else{\n                    p = 0;\n                }\n                e = s - p;\n                vetor[cont] = e;\n                cont++;\n                d1 = ta * x1 * e;\n                d2 = ta * x2 * e;\n                nw1 = w1 + d1;\n                nw2 = w2 + d2;\n\n                \/\/ linha 3 (body)\n                x1 = 2;\n                x2 = 5;\n                s = 1;\n                w1 = nw1;\n                w2 = nw2;\n                d = ((x1 * w1) + (x2 * w2) + bias);\n                if (d &gt;= 0){\n                    a = 1;\n                }else{\n                    a = -1;\n                }\n                if (a == 1){\n                    p = 1;\n                }else{\n                    p = 0;\n                }\n                e = s - p;\n                vetor[cont] = e;\n                cont++;\n                d1 = ta * x1 * e;\n                d2 = ta * x2 * e;\n                nw1 = w1 + d1;\n                nw2 = w2 + d2;\n\n                \/\/ linha 4 (body)\n                x1 = 3;\n                x2 = 0;\n                s = 1;\n                w1 = nw1;\n                w2 = nw2;\n                d = ((x1 * w1) + (x2 * w2) + bias);\n                if (d &gt;= 0){\n                    a = 1;\n                }else{\n                    a = -1;\n                }\n                if (a == 1){\n                    p = 1;\n                }else{\n                    p = 0;\n                }\n                e = s - p;\n                vetor[cont] = e;\n                cont++;\n                d1 = ta * x1 * e;\n                d2 = ta * x2 * e;\n                nw1 = w1 + d1;\n                nw2 = w2 + d2;\n\n                \/\/ linha 5 (body)\n                x1 = 1;\n                x2 = 5;\n                s = 0;\n                w1 = nw1;\n                w2 = nw2;\n                d = ((x1 * w1) + (x2 * w2) + bias);\n                if (d &gt;= 0){\n                    a = 1;\n                }else{\n                    a = -1;\n                }\n                if (a == 1){\n                    p = 1;\n                }else{\n                    p = 0;\n                }\n                e = s - p;\n                vetor[cont] = e;\n                cont++;\n                d1 = ta * x1 * e;\n                d2 = ta * x2 * e;\n                nw1 = w1 + d1;\n                nw2 = w2 + d2;\n\n                \/\/ linha 6 (body)\n                x1 = 1;\n                x2 = 0;\n                s = 0;\n                w1 = nw1;\n                w2 = nw2;\n                d = ((x1 * w1) + (x2 * w2) + bias);\n                if (d &gt;= 0){\n                    a = 1;\n                }else{\n                    a = -1;\n                }\n                if (a == 1){\n                    p = 1;\n                }else{\n                    p = 0;\n                }\n                e = s - p;\n                vetor[cont] = e;\n                cont++;\n                d1 = ta * x1 * e;\n                d2 = ta * x2 * e;\n                nw1 = w1 + d1;\n                nw2 = w2 + d2;\n\n                \/\/ linha 7 (body)\n                x1 = 0;\n                x2 = 5;\n                s = 0;\n                w1 = nw1;\n                w2 = nw2;\n                d = ((x1 * w1) + (x2 * w2) + bias);\n                if (d &gt;= 0){\n                    a = 1;\n                }else{\n                    a = -1;\n                }\n                if (a == 1){\n                    p = 1;\n                }else{\n                    p = 0;\n                }\n                e = s - p;\n                vetor[cont] = e;\n                cont++;\n                d1 = ta * x1 * e;\n                d2 = ta * x2 * e;\n                nw1 = w1 + d1;\n                nw2 = w2 + d2;\n\n                if (cont &gt;= 500){\n                    for (int i = 0; i &lt; 499; i++){\n                        if (vetor[i] == 0){\n                            padrao++;\n                        }else{\n                            padrao = 0;\n                        }\n                        if (padrao &gt; 15){\n                            loop = false;\n                        }\n                    }\n                    Console.WriteLine(\"Bias: {0}\", bias);\n                    Console.WriteLine(\"Taxa de aprendizado: {0}\", ta);\n                    Console.WriteLine(\"X1: {0}\", x1_origem);\n                    Console.WriteLine(\"X2: {0}\", x2_origem);\n                    Console.WriteLine(\"S: {0}\", s_origem);\n                    Console.WriteLine(\"W1 encontrado: {0:0.00}\", w1);\n                    Console.WriteLine(\"W2 encontrado: {0:0.00}\", w2);\n                }\n            }\n\n        }\n    }\n}\n<\/pre>\n<h4>Sa\u00edda<\/h4>\n<pre>Bias: -1\nTaxa de aprendizado: 0,01\nX1: 2\nX2: 0\nS: 1\nW1 encontrado: 0,50\nW2 encontrado: 0,05\n<\/pre>\n<p>Tamb\u00e9m observem o c\u00f3digo computacional em <span style=\"color: red;\">Javascript<\/span>:<\/p>\n<pre>function neuronio(){\n\n    let bias = -1;\n    let ta = 0.01;\n    let x1 = 0;\n    let x2 = 0;\n    let s = 0;\n    let w1 = 0;\n    let w2 = 0;\n    let d = 0;\n    let a = 0;\n    let p = 0;\n    let e = 0;\n    let d1 = 0;\n    let d2 = 0;\n    let nw1 = 0;\n    let nw2 = 0;\n    let loop = true;\n    let vetor = [];\n    let cont = 0;\n    let padrao = 0;\n    \n    \/\/ linha 1 (head)\n    x1 = 2;\n    let x1_origem = x1;\n    x2 = 0;\n    let x2_origem = x2;\n    s = 1;\n    let s_origem = s;\n    w1 = 0.2;\n    w2 = 0.4;\n    d = ((x1 * w1) + (x2 * w2) + bias);\n    if (d &gt;= 0) {\n        a = 1;\n    } else {\n        a = -1;\n    }\n    if (a === 1) {\n        p = 1;\n    } else {\n        p = 0;\n    }\n    e = s - p;\n    vetor[cont] = e;\n    cont++;\n    d1 = ta * x1 * e;\n    d2 = ta * x2 * e;\n    nw1 = w1 + d1;\n    nw2 = w2 + d2;\n    \n    while (loop) {\n        \/\/ linha 2 (body)\n        x1 = 2;\n        x2 = 0;\n        s = 1;\n        w1 = nw1;\n        w2 = nw2;\n        d = ((x1 * w1) + (x2 * w2) + bias);\n        if (d &gt;= 0) {\n            a = 1;\n        } else {\n            a = -1;\n        }\n        if (a === 1) {\n            p = 1;\n        } else {\n            p = 0;\n        }\n        e = s - p;\n        vetor[cont] = e;\n        cont++;\n        d1 = ta * x1 * e;\n        d2 = ta * x2 * e;\n        nw1 = w1 + d1;\n        nw2 = w2 + d2;\n    \n        \/\/ linha 3 (body)\n        x1 = 2;\n        x2 = 5;\n        s = 1;\n        w1 = nw1;\n        w2 = nw2;\n        d = ((x1 * w1) + (x2 * w2) + bias);\n        if (d &gt;= 0) {\n            a = 1;\n        } else {\n            a = -1;\n        }\n        if (a === 1) {\n            p = 1;\n        } else {\n            p = 0;\n        }\n        e = s - p;\n        vetor[cont] = e;\n        cont++;\n        d1 = ta * x1 * e;\n        d2 = ta * x2 * e;\n        nw1 = w1 + d1;\n        nw2 = w2 + d2;\n    \n        \/\/ linha 4 (body)\n        x1 = 3;\n        x2 = 0;\n        s = 1;\n        w1 = nw1;\n        w2 = nw2;\n        d = ((x1 * w1) + (x2 * w2) + bias);\n        if (d &gt;= 0) {\n            a = 1;\n        } else {\n            a = -1;\n        }\n        if (a === 1) {\n            p = 1;\n        } else {\n            p = 0;\n        }\n        e = s - p;\n        vetor[cont] = e;\n        cont++;\n        d1 = ta * x1 * e;\n        d2 = ta * x2 * e;\n        nw1 = w1 + d1;\n        nw2 = w2 + d2;\n    \n        \/\/ linha 5 (body)\n        x1 = 1;\n        x2 = 5;\n        s = 0;\n        w1 = nw1;\n        w2 = nw2;\n        d = ((x1 * w1) + (x2 * w2) + bias);\n        if (d &gt;= 0) {\n            a = 1;\n        } else {\n            a = -1;\n        }\n        if (a === 1) {\n            p = 1;\n        } else {\n            p = 0;\n        }\n        e = s - p;\n        vetor[cont] = e;\n        cont++;\n        d1 = ta * x1 * e;\n        d2 = ta * x2 * e;\n        nw1 = w1 + d1;\n        nw2 = w2 + d2;\n    \n        \/\/ linha 6 (body)\n        x1 = 1;\n        x2 = 0;\n        s = 0;\n        w1 = nw1;\n        w2 = nw2;\n        d = ((x1 * w1) + (x2 * w2) + bias);\n        if (d &gt;= 0) {\n            a = 1;\n        } else {\n            a = -1;\n        }\n        if (a === 1) {\n            p = 1;\n        } else {\n            p = 0;\n        }\n        e = s - p;\n        vetor[cont] = e;\n        cont++;\n        d1 = ta * x1 * e;\n        d2 = ta * x2 * e;\n        nw1 = w1 + d1;\n        nw2 = w2 + d2;\n    \n        \/\/ linha 7 (body)\n        x1 = 0;\n        x2 = 5;\n        s = 0;\n        w1 = nw1;\n        w2 = nw2;\n        d = ((x1 * w1) + (x2 * w2) + bias);\n        if (d &gt;= 0) {\n            a = 1;\n        } else {\n            a = -1;\n        }\n        if (a === 1) {\n            p = 1;\n        } else {\n            p = 0;\n        }\n        e = s - p;\n        vetor[cont] = e;\n        cont++;\n        d1 = ta * x1 * e;\n        d2 = ta * x2 * e;\n        nw1 = w1 + d1;\n        nw2 = w2 + d2;\n        if (cont &gt;= 500) {\n            for (let i = 0; i &lt; 499; i++) {\n                if (vetor[i] === 0) {\n                    padrao++;\n                } else {\n                    padrao = 0;\n                }\n                if (padrao &gt; 15) {\n                    loop = false;\n                }\n            }\n            document.write('Bias: ', bias + '&lt;br\/&gt;');\n            document.write('Taxa de aprendizado: ', ta + '&lt;br\/&gt;');\n            document.write('X1: ' + x1_origem + '&lt;br\/&gt;');\n            document.write('X2: ' + x2_origem + '&lt;br\/&gt;');\n            document.write('S: ' + s_origem + '&lt;br\/&gt;');\n            document.write('W1 encontrado: ' + w1.toFixed(2) + '&lt;br\/&gt;');\n            document.write('W2 encontrado: ' + w2.toFixed(2));\n        }\n    }\n    \n}\n<\/pre>\n<h4>Sa\u00edda<\/h4>\n<pre>Bias: -1\nTaxa de aprendizado: 0.01\nX1: 2\nX2: 0\nS: 1\nW1 encontrado: 0.50\nW2 encontrado: 0.05\n<\/pre>\n<p>Caso queiram executar o c\u00f3digo acima (Javascript) em <code>html<\/code>, basta deixar sua tag <code>body<\/code> conforme abaixo. Lembrem-se: a function <code>neuronio()<\/code> deve estar dentro de uma tag <code>script<\/code>, que por sua vez deve estar dentro de <code>head<\/code><\/p>\n<pre>&lt;body onload=\"neuronio()\"&gt;\n<\/pre>\n<p>Este \u00e9 um tema bastante utilizado em trabalhos acad\u00eamicos para as \u00e1reas de tecnologia em que envolvem programa\u00e7\u00e3o. Espero que tenha contribu\u00eddo de alguma forma para o parendizado de algu\u00e9m. Acredito que a partir deste exemplo, possam implementar tal neur\u00f4nio com facilidade em outros tipos de problemas.<\/p>\n<div style=\"border: 1px solid green; padding: 10px;\">\n<h4 style=\"color: green;\">Custos com hospedagem, SSL e registro de dom\u00ednio<\/h4>\n<p style=\"color: green;\">Se o artigo ajudou de alguma forma e gostaria de contribuir com o projeto Fedablio, fa\u00e7a uma doa\u00e7\u00e3o de qualquer valor.<\/p>\n<p style=\"color: green;\">Chave PIX: 21d97524-aa38-4438-b857-062a61e28327<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Se ca\u00edram aqui neste artigo \u00e9 porque provavelmente est\u00e3o no meio (ou est\u00e3o prestes a iniciar) de um trabalho acad\u00eamico sobre intelig\u00eancia artificial, mais precisamente, a implementa\u00e7\u00e3o do Neur\u00f4nio de Rosenblatt em uma planilha eletr\u00f4nica (caso tenha sido solicitado c\u00f3digo computacional, recomendo fortemente que fa\u00e7a em planilha primeiramente). Antes de escrev\u00ea-lo, pesquisei na internet e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[153,28],"tags":[152,181,183,151,149,178,180,150,148,179,182],"class_list":["post-634","post","type-post","status-publish","format-standard","hentry","category-ia","category-robotica","tag-ai","tag-c","tag-c-2","tag-ia","tag-inteligencia-artificial","tag-java","tag-libre-office","tag-neuronio-de-rosenblatt","tag-perceptron","tag-python","tag-vb-net"],"_links":{"self":[{"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/posts\/634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/comments?post=634"}],"version-history":[{"count":82,"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/posts\/634\/revisions"}],"predecessor-version":[{"id":1409,"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/posts\/634\/revisions\/1409"}],"wp:attachment":[{"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/media?parent=634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/categories?post=634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fedablio.com.br\/blog\/wp-json\/wp\/v2\/tags?post=634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}