Conceito

As redes neurais consistem em um método de solucionar problemas de IA, criando um sistema que tem: circuitos que simulam o cérebro humano, e seu comportamento, ou seja, aprendendo, errando e fazendo descobertas. São modelos computacionais que mostram um modelo inspirado na estrutura neural de organismos inteligentes e que aprendem através da experiência. Uma grande rede neural artificial tem centenas ou até milhares de unidades de processamento, enquanto os mamíferos possuem bilhões de neurônios.

Assim como o sistema nervoso é composto por bilhões de células nervosas, a rede neural artificial também seria formada por unidades que nada mais são que pequenos módulos que simulam o funcionamento de um neurônio. Estes módulos devem funcionar de acordo com os elementos em que foram inspirados, recebendo e retransmitindo informações.


Aplicações de Redes Neurais Artificiais:

• análise e processamento de sinais;

• controle de processos;

• robótica;

• classificação de dados;

• reconhecimento de padrões em linhas de montagem ;

• filtros contra ruídos eletrônicos;

• análise de imagens;

• análise de voz;

• avaliação de crédito;


• análise de aroma e odor- um projeto que está em desenvolvimento, buscando a análise de odor via nariz eletrônico;

Softwares

Pode-se programar para Redes Neurais em qualquer linguagem: C, C++, C#, Python, Java, dentre outras.


Código

<syntaxhighlight lang="python">

  1. !/usr/bin/env python
  2. -*- coding: utf-8 -*-
  1. aplicativo para verificar se o ser vivo eh quadrupede ou bipede
  2. quadrupede = 1, bipede = -1
  3. cao = [-1,-1,1,1] | resposta = 1
  4. gato = [1,1,1,1] | resposta = 1
  5. cavalo = [1,1,-1,1] | resposta = 1
  6. homem = [-1,-1,-1,1] | resposta = -1
  1. pesos (sinapses)

w = [0,0,0,0]

  1. entradas

x = [[-1,-1,1,1],

    [1,1,1,1],
    [1,1,-1,1],
    [-1,-1,-1,1]]
  1. respostas esperadas

t = [1,1,1,-1]

  1. bias (ajuste fino)

b = 0

  1. saida

y = 0

  1. numero maximo de interacoes

max_int = 10

  1. taxa de aprendizado

taxa_aprendizado = 1

  1. soma

soma = 0

  1. theshold

threshold = 1

  1. nome do animal

animal = ""

  1. resposta = acerto ou falha

resposta = ""

  1. dicionario de dados

d = {'-1,-1,1,1' : 'cao',

    '1,1,1,1' : 'gato',
    '1,1,-1,1' : 'cavalo',
    '-1,-1,-1,1' : 'homem' }

print("Treinando")

  1. funcao para converter listas em strings

def listToString(list):

   s = str(list).strip('[]')
   s = s.replace(' ', )
   return s
  1. inicio do algoritmo

for k in range(1,max_int):

   acertos = 0    
   print("INTERACAO "+str(k)+"-------------------------")
   for i in range(0,len(x)):
       soma = 0
       # pega o nome do animal no dicionário
       if d.has_key(listToString(x[i])):
           animal = d[listToString(x[i])]  
       else:
           animal = ""
       # para calcular a saida do perceptron, cada entrada de x eh multiplicada
       # pelo seu peso w correspondente
       for j in range(0,len(x[i])):
           soma += x[i][j] * w[j]
       # a saida eh igual a adicao do bias com a soma anterior
       y_in = b + soma
       #print("y_in = ",str(y_in))
       # funcao de saida eh determinada pelo threshold
       if y_in > threshold:
           y = 1
       elif y_in >= -threshold and y_in <= threshold:
           y = 0
       else:
           y = -1        
       # atualiza os pesos caso a saida nao corresponda ao valor esperado
       if y == t[i]:
           acertos+=1
           resposta = "acerto"
       else:
           for j in range (0,len(w)):                
               w[j] = w[j] + (taxa_aprendizado * t[i] * x[i][j])
           b = b + taxa_aprendizado * t[i]
           resposta = "Falha - Peso atualizado"
       #imprime a resposta
       if y == 1:
           print(animal+" = quadrupede = "+resposta)
       elif y == 0:
           print(animal+" = padrao nao identificado = "+resposta)
       elif y == -1:
           print(animal+" = bipede = "+resposta)
   if acertos == len(x):
       print("Funcionalidade aprendida com "+str(k)+" interacoes")
       break;
   print("")

print("Finalizado") </syntaxhighlight>


Diagrama de Casos de Uso


Interações com as tecnologias

Incluir links (internos ou externos) temas que tem relação com este, explicando detalhes sobre. Limite de 3 internos e 2 externos.


Informações adicionais

Um dos objetivos da pesquisa sobre redes neurais na computação é desenvolver morfologias neurais matemáticas, não necessariamente baseada na biologia, que podem realizar funções diversas.

Referências bibliográficas

https://linguagensdeprogramacao.wordpress.com/

http://www.din.uem.br/ia/neurais/

https://www.scriptbrasil.com.br/forum/