Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Equipment >> Robô industrial

Conjuntos de dados de treinamento para redes neurais:como treinar e validar uma rede neural Python

Neste artigo, usaremos exemplos gerados pelo Excel para treinar um Perceptron multicamadas e, em seguida, veremos como a rede funciona com exemplos de validação .


Se você está procurando desenvolver uma rede neural Python, você está no lugar certo. Antes de mergulhar na discussão deste artigo sobre como usar o Excel para desenvolver dados de treinamento para sua rede, considere verificar o restante da série abaixo para obter informações básicas:
  1. Como realizar a classificação usando uma rede neural:o que é o Perceptron?
  2. Como usar um exemplo de rede neural simples Perceptron para classificar dados
  3. Como treinar uma rede neural Perceptron básica
  4. Compreendendo o treinamento de rede neural simples
  5. Uma introdução à teoria de treinamento para redes neurais
  6. Compreendendo a taxa de aprendizagem em redes neurais
  7. Aprendizado de máquina avançado com o Multilayer Perceptron
  8. A função de ativação sigmóide:ativação em redes neurais multicamadas Perceptron
  9. Como treinar uma rede neural multicamadas Perceptron
  10. Noções básicas sobre fórmulas de treinamento e retropropagação para percepções multicamadas
  11. Arquitetura de rede neural para uma implementação Python
  12. Como criar uma rede neural multicamadas Perceptron em Python
  13. Processamento de sinais usando redes neurais:validação no projeto de redes neurais
  14. Conjuntos de dados de treinamento para redes neurais:como treinar e validar uma rede neural Python


O que são dados de treinamento?


Em um cenário da vida real, as amostras de treinamento consistem em dados medidos de algum tipo combinados com as “soluções” que ajudarão a rede neural a generalizar todas essas informações em uma relação consistente de entrada e saída.

Por exemplo, digamos que você queira que sua rede neural preveja a qualidade alimentar de um tomate com base na cor, forma e densidade. Você não tem ideia de como exatamente a cor, o formato e a densidade estão correlacionados com a delícia geral, mas você pode meça a cor, a forma e a densidade, e você o faz têm papilas gustativas. Assim, basta reunir milhares e milhares de tomates, registrar suas características físicas relevantes, provar cada um (a melhor parte) e, em seguida, colocar todas essas informações em uma tabela.

Cada linha é o que chamo de uma amostra de treinamento e há quatro colunas:três delas (cor, forma e densidade) são colunas de entrada e a quarta é a saída de destino.





Durante o treinamento, a rede neural encontrará a relação (se houver uma relação coerente) entre os três valores de entrada e o valor de saída.


Quantificação de dados de treinamento


Lembre-se de que tudo deve ser processado na forma numérica. Você não pode usar a string "em forma de ameixa" como uma entrada para sua rede neural, e "dar água na boca" não funcionará como um valor de saída. Você precisa quantificar suas medidas e suas classificações.

Para a forma, você pode atribuir a cada tomate um valor de -1 a +1, onde -1 representa perfeitamente esférico e +1 representa extremamente alongado. Para comer a qualidade, você poderia classificar cada tomate em uma escala de cinco pontos variando de “não comestível” a “deliciosa” e, em seguida, usar a codificação one-hot para mapear as classificações para um vetor de saída de cinco elementos.

O diagrama a seguir mostra como esse tipo de codificação é empregado para classificação de saída de rede neural.





O esquema de saída única nos permite quantificar as classificações não binárias de uma forma que seja compatível com a ativação logístico-sigmóide. A saída da função logística é essencialmente binária porque a região de transição da curva é estreita em comparação com a faixa infinita de valores de entrada para os quais o valor de saída está muito próximo do mínimo ou máximo:






Assim, não queremos configurar esta rede com um único nó de saída e, em seguida, fornecer amostras de treinamento que tenham valores de saída de 0, 1, 2, 3 ou 4 (isso seria 0, 0,2, 0,4, 0,6 ou 0,8 se você deseja permanecer na faixa de 0 para 1); a função de ativação logística do nó de saída favoreceria fortemente as classificações mínimas e máximas.

A rede neural simplesmente não entende o quão absurdo seria concluir que todos os tomates não são comestíveis ou deliciosos.


Criando um conjunto de dados de treinamento


A rede neural Python que discutimos na Parte 12 importa exemplos de treinamento de um arquivo Excel. Os dados de treinamento que usarei neste exemplo são organizados da seguinte forma:





Nosso código Perceptron atual é limitado a um nó de saída, então tudo o que podemos fazer é executar um tipo de classificação verdadeiro / falso. Os valores de entrada são números aleatórios entre –5 e +5, gerados usando esta fórmula do Excel:


 =RANDBETWEEN (-10, 10) / 2 



Conforme mostrado na captura de tela, a saída é calculada da seguinte maneira:
 =IF (AND (A2> 0, B2> 0, C2 <0), 1, 0) 



Assim, a saída é verdadeira apenas se input_0 for maior que zero, input_1 for maior que zero e input_2 for menor que zero. Caso contrário, é falso.

Esta é a relação matemática de entrada-saída que o Perceptron precisa extrair dos dados de treinamento. Você pode gerar quantas amostras quiser. Para um problema simples como este, você pode obter uma precisão de classificação muito alta com 5.000 amostras e uma época.


Treinamento da rede


Você precisará definir sua dimensionalidade de entrada para três ( I_dim =3, se você estiver usando meus nomes de variáveis). Eu configurei a rede para ter quatro nós ocultos ( H_dim =4), e escolhi uma taxa de aprendizagem de 0,1 ( LR =0,1).

Encontre o training_data =pandas.read_excel (...) declaração e insira o nome de sua planilha. (Se você não tiver acesso ao Excel, a biblioteca Pandas também pode ler arquivos ODS.) Em seguida, basta clicar no botão Executar. O treinamento com 5000 amostras leva apenas alguns segundos no meu laptop Windows de 2,5 GHz.

Se você estiver usando o programa “MLP_v1.py” completo que incluí na Parte 12, a validação (consulte a próxima seção) começa imediatamente após a conclusão do treinamento, portanto, você precisará ter seus dados de validação prontos antes de treinar a rede .


Validando a rede


Para validar o desempenho da rede, eu crio uma segunda planilha e gerei os valores de entrada e saída usando exatamente as mesmas fórmulas e, em seguida, importo esses dados de validação da mesma forma que importo os dados de treinamento:






O próximo trecho de código mostra como você pode realizar a validação básica:





Eu uso o procedimento de feedforward padrão para calcular o sinal de pós-ativação do nó de saída e, em seguida, uso uma instrução if / else para aplicar um limite que converte o valor de pós-ativação em um valor de classificação verdadeiro / falso.

A precisão da classificação é calculada comparando o valor da classificação com o valor alvo para a amostra de validação atual, contando o número de classificações corretas e dividindo pelo número de amostras de validação.

Lembre-se de que se você tiver o np.random.seed (1) instrução comentada, os pesos serão inicializados com valores aleatórios diferentes cada vez que você executar o programa e, conseqüentemente, a precisão da classificação mudará de uma execução para a próxima. Realizei 15 execuções separadas com os parâmetros especificados acima, 5000 amostras de treinamento e 1000 amostras de validação.

A menor acurácia de classificação foi de 88,5%, a maior de 98,1% e a média foi de 94,4%.


Conclusão


Cobrimos algumas informações teóricas importantes relacionadas aos dados de treinamento de rede neural e fizemos um treinamento inicial e experimento de validação com nosso Perceptron multicamadas em linguagem Python. Espero que você esteja gostando da série da AAC sobre redes neurais - fizemos muito progresso desde o primeiro artigo e ainda há muito mais que precisamos discutir!

Robô industrial

  1. Como obter data e hora atuais em Python?
  2. Chips de IA neuromórficos para spiking redes neurais estreiam
  3. Como instalar um simulador e editor VHDL gratuitamente
  4. Compreendendo os mínimos locais no treinamento de rede neural
  5. Como aumentar a precisão de uma rede neural de camada oculta
  6. Quantas camadas e nós ocultos uma rede neural precisa?
  7. Os cinco principais problemas e desafios para 5G
  8. Como alimentar e cuidar de suas redes de sensores sem fio
  9. Treinamento de bomba de vácuo da BECKER para você e para mim
  10. Como reduzir o tempo de treinamento para soldagem de robôs