Redes neurais artificiais. Parte 1

Neurônio

Neste artigo, você aprenderá o básico de como funcionam os neurônios artificiais. Em artigos subsequentes, aprenderemos o básico sobre redes neurais e escreveremos uma rede neural simples em python.





As redes neurais são compostas de neurônios conectados uns aos outros, portanto, um neurônio é a parte principal de uma rede neural. Os neurônios realizam apenas 2 ações: eles multiplicam os dados de entrada pelos pesos e os somam e somam o bias, e a segunda ação é a ativação.





Agora mais sobre os dados de entrada, pesos, vieses e a função de ativação.





Os dados de entrada são dados que um neurônio recebe de neurônios anteriores ou do usuário.





Pesos são atribuídos a cada entrada do neurônio, inicialmente eles são atribuídos a números aleatórios. Ao treinar uma rede neural, o valor dos neurônios e dos deslocamentos muda. Os pesos são multiplicados pelos dados de entrada que são fornecidos ao neurônio.





Os deslocamentos são atribuídos a cada neurônio, assim como os pesos do viés inicial, são números aleatórios. Os deslocamentos tornam mais fácil e rápido treinar a rede neural.





A função de ativação que usaremos em nossa rede neural é chamada sigmóide. A fórmula sigmóide é:





f (x) = \ frac {1} {1 + e ^ {- x}}

Esta função envolve qualquer número de -∞ a + ∞ no intervalo de 0 a 1.





Se descrevermos matematicamente as tarefas que o neurônio realiza, obteremos 2 fórmulas: Notação:





f (x) - função de ativação





x - a soma do produto dos dados de entrada com os pesos e o viés





i - matriz de dados de entrada





w -





b -





j -





x = i_1 * w_1 + ... + i_j * w_j + b f (x) = \ frac {1} {1 + e ^ {- x}}





python.





numpy. Linux Window:





pip install numpy
      
      



:





import numpy as np
      
      



Neuron, :





class Neuron:
    def __init__(self, number_of_weights = 1):

        self.w = np.random.normal(size=number_of_weights)
        self.b = np.random.normal()
      
      



, , . . :





def activate(self, inputs):
        
        x = np.dot(self.w, inputs) + self.b
        
        return sig(x)
      
      



, . :





def sig(x):
  return 1 / (1 + np.exp(-x)) 
      
      



Math.py





numpy:





import numpy as np
      
      



Neuron.py. Neuron.py Math.py:





from Math import *
      
      



2 :





Neuron.py





import numpy as np

from Math import *

class Neuron:
    def __init__(self, number_of_weights = 1):

        self.w = np.random.normal(size=number_of_weights)
        self.b = np.random.normal()
        
    def activate(self, inputs):
        
        x = np.dot(self.w, inputs) + self.b
        
        return sig(x)
      
      



Math.py





import numpy as np

def sig(x):
  return 1 / (1 + np.exp(-x))
      
      



.





, :









  1. ,





  2. Python





- .








All Articles