Giter Site home page Giter Site logo

neurog's Introduction

neurog

Este código é uma implementação em Go de uma rede neural simples com o propósito de classificar flores íris com base no conjunto de dados de flores íris. O código é dividido em várias partes, incluindo a definição da arquitetura da rede neural, a implementação do retropropagação (backpropagation) para treinamento e a criação de um método de feedforward para fazer previsões. Vamos analisar como este código funciona passo a passo:

Definindo Funções e Tipos Úteis: O código começa definindo tipos e funções personalizados que serão usados ao longo da implementação. O tipo neuralNet representa a rede neural, contendo sua configuração, pesos e viés (bias) para as camadas ocultas e de saída. O tipo neuralNetConfig define a arquitetura e os parâmetros de aprendizado da rede neural. A função newNetwork inicializa uma nova rede neural com a configuração fornecida. Também existem duas funções, sigmoid e sigmoidPrime, que definem a função de ativação sigmoid e sua derivada.

Implementando Retropropagação (Backpropagation) para Treinamento: O cerne desta implementação de rede neural é o método de retropropagação, que é usado para treinar a rede. O método train treina a rede neural recebendo matrizes de entrada x (recursos) e y (rótulos) e ajustando os pesos e os viés da rede. Começa por inicializar pesos e viés aleatórios para a rede. Em seguida, realiza o processo de avanço (feedforward) para calcular a saída da rede. A seguir, calcula o erro entre a saída prevista e os rótulos reais. Calcula os gradientes para os pesos e os viés usando a retropropagação e a derivada da função sigmoid. Finalmente, ajusta os pesos e os viés usando o método do gradiente estocástico descendente (SGD) por um número especificado de épocas.

Implementando Feed Forward (Avanço) para Previsão: Após o treinamento da rede neural, você pode usá-la para fazer previsões. O método predict recebe os dados de entrada x e retorna a saída prevista. Ele realiza um processo semelhante de avanço (feedforward) ao da fase de treinamento, usando os pesos e os viés treinados para calcular a saída.

Os Dados: O código também fornece informações sobre os dados usados para treinar e testar a rede neural. Os dados são baseados no conjunto de dados da íris, com algum pré-processamento para converter os rótulos de espécies em uma codificação one-hot.

Colocando Tudo Junto: Na função main, o código lê os dados de treinamento de um arquivo CSV e os prepara para o treinamento. Ele define a arquitetura da rede e os parâmetros de aprendizado. Em seguida, treina a rede neural chamando o método train com os recursos de entrada e os rótulos.

Teste e Cálculo da Precisão: Após o treinamento, o código analisa os dados de teste e usa o método predict para fazer previsões. Calcula a precisão do modelo comparando a classe prevista com a classe real e contando o número de previsões corretas.

Resultados: O código fornece a precisão da rede neural nos dados de teste, o que indica o quão bem a rede aprendeu a classificar flores íris.

Este código demonstra uma rede neural simples implementada do zero em Go com o objetivo de resolver um problema de classificação. Ele destaca os componentes essenciais de uma rede neural, incluindo avanço, retropropagação e previsão. A arquitetura específica e os parâmetros podem ser ajustados com base no problema em questão.

neurog's People

Contributors

caiotaavares avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.