Os dois primeiros passos do processo de desenvolvimento de redes neurais artificiais
são a coleta de dados relativos ao problema e a sua separação
em um conjunto de treinamento e um conjunto de testes. Esta tarefa requer uma
análise cuidadosa sobre o problema para minimizar ambiguidades e erros
nos dados. Além disso, os dados coletados devem ser significativos e
cobrir amplamente o domínio do problema; não devem cobrir apenas
as operações normais ou rotineiras, mas também as exceções
e as condições nos limites do domínio do problema.
Normalmente, os dados coletados são separados em duas categorias: dados de treinamento, que serão utilizados para o treinamento da rede e dados de teste, que serão utilizados para verificar sua performance sob condições reais de utilização. Além dessa divisão, pode-se usar também uma subdivisão do conjunto de treinamento, criando um conjunto de validação, utilizado para verificar a eficiência da rede quanto a sua capacidade de generalização durante o treinamento, e podendo ser empregado como critério de parada do treinamento.
Depois de determinados estes conjuntos, eles são, geralmente, colocados em ordem aleatória para prevenção de tendências associadas à ordem de apresentação dos dados. Além disso, pode ser necessário pré-processar estes dados, através de normalizações, escalonamentos e conversões de formato para torná-los mais apropriados à sua utilização na rede.
O terceiro passo é a definição da configuração
da rede, que pode ser dividido em três etapas:
Existem metodologias, "dicas" e "truques" na condução destas tarefas. Normalmente estas escolhas são feitas de forma empírica. A definição da configuração de redes neurais é ainda considerada uma arte, que requer grande experiência dos projetistas.
O quarto passo é o treinamento da rede. Nesta fase, seguindo o algoritmo
de treinamento escolhido, serão ajustados os pesos das conexões.
É importante considerar, nesta fase, alguns aspectos tais como a inicialização
da rede, o modo de treinamento e o tempo de treinamento.
Uma boa escolha dos valores iniciais dos pesos da rede pode diminuir o tempo necessário para o treinamento. Normalmente, os valores iniciais dos pesos da rede são números aleatórios uniformemente distribuídos, em um intervalo definido. A escolha errada destes pesos pode levar a uma saturação prematura. Nguyen e Widrow encontraram uma função que pode ser utilizada para determinar valores iniciais melhores que valores puramente aleatórios.
Quanto ao modo de treinamento, na prática é mais utilizado o modo padrão devido ao menor armazenamento de dados, além de ser menos suscetível ao problema de mínimos locais, devido à pesquisa de natureza estocástica que realiza. Por outro lado, no modo batch se tem uma melhor estimativa do vetor gradiente, o que torna o treinamento mais estável. A eficiência relativa dos dois modos de treinamento depende do problema que está sendo tratado.
Quanto ao tempo de treinamento, vários fatores podem influenciar a sua duração, porém sempre será necessário utilizar algum critério de parada. O critério de parada do algoritmo backpropagation não é bem definido, e geralmente é utilizado um número máximo de ciclos. Mas, devem ser considerados a taxa de erro médio por ciclo, e a capacidade de generalização da rede. Pode ocorrer que em um determinado instante do treinamento a generalização comece a degenerar, causando o problema de over-training, ou seja a rede se especializa no conjunto de dados do treinamento e perde a capacidade de generalização.
O treinamento deve ser interrompido quando a rede apresentar uma boa capacidade de generalização e quando a taxa de erro for suficientemente pequena, ou seja menor que um erro admissível. Assim, deve-se encontrar um ponto ótimo de parada com erro mínimo e capacidade de generalização máxima.
O quinto passo é o teste da rede. Durante esta fase o conjunto de teste
é utilizado para determinar a performance da rede com dados que não
foram previamente utilizados. A performance da rede, medida nesta fase, é
uma boa indicação de sua performance real.
Devem ser considerados ainda outros testes como análise do comportamento da rede utilizando entradas especiais e análise dos pesos atuais da rede, pois se existirem valores muito pequenos, as conexões associadas podem ser consideradas insignificantes e assim serem eliminadas (prunning). De modo inverso, valores substantivamente maiores que os outros poderiam indicar que houve over-training da rede.
Finalmente, com a rede treinada e avaliada, ela pode ser integrada em um sistema
do ambiente operacional da aplicação. Para maior eficiência
da solução, este sistema deverá conter facilidades de utilização
como interface conveniente e facilidades de aquisição de dados
através de planilhas eletrônicas, interfaces com unidades de processamento
de sinais, ou arquivos padronizados. Uma boa documentação do sistema
e o treinamento de usuários são necessários para o sucesso
do mesmo.
Além disso, o sistema deve periodicamente monitorar sua performance e fazer a manutenção da rede quando for necessário ou indicar aos projetistas a necessidade de retreinamento. Outras melhorias poderão ainda ser sugeridas quando os usuários forem se tornado mais familiares com o sistema, estas sugestões poderão ser muito úteis em novas versões ou em novos produtos.