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

Esquema de um neurônio biologico.
Esquema de um neurônio artificial.


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/