Rede Neural de Duas Classes

Cria um classificador binário usando um algoritmo de rede neural

Categoria: Machine Learning / Modelo de Inicialização / Classificação

Nota

Aplica-se a: Machine Learning Studio (clássico) apenas

Módulos semelhantes de arrasto e queda estão disponíveis em Azure Machine Learning designer.

Visão geral do módulo

Este artigo descreve como usar o módulo de Rede Neural de duas classes em Machine Learning Studio (clássico), para criar um modelo de rede neural que pode ser usado para prever um alvo que tem apenas dois valores.

A classificação utilizando redes neurais é um método de aprendizagem supervisionado, pelo que requer um conjunto de dados marcado, que inclui uma coluna de etiqueta. Por exemplo, pode usar este modelo de rede neural para prever resultados binários, tais como se um paciente tem ou não uma determinada doença, ou se uma máquina é suscetível de falhar dentro de uma janela de tempo especificada.

Depois de definir o modelo, treine-o fornecendo um conjunto de dados marcado e o modelo como entrada para o Modelo de Comboio ou para Sintonizar Hiperparímetros modelo. O modelo treinado pode então ser usado para prever valores para novas entradas.

Mais sobre redes neurais

Uma rede neural é um conjunto de camadas interligadas. As entradas são a primeira camada, e estão ligadas a uma camada de saída por um gráfico acicílico composto por bordas e nós ponderados.

Entre as camadas de entrada e saída pode inserir várias camadas escondidas. A maioria das tarefas preditivas podem ser realizadas facilmente com apenas uma ou algumas camadas escondidas. No entanto, pesquisas recentes mostraram que redes neuronais profundas (DNN) com muitas camadas podem ser muito eficazes em tarefas complexas como o reconhecimento de imagem ou de voz. As camadas sucessivas são usadas para modelar níveis crescentes de profundidade semântica.

A relação entre entradas e saídas é aprendida com a formação da rede neural nos dados de entrada. A direção do gráfico provém das entradas através da camada escondida e da camada de saída. Todos os nós numa camada são ligados pelas bordas ponderadas aos nós na camada seguinte.

Para calcular a saída da rede para uma determinada entrada, um valor é calculado em cada nó nas camadas ocultas e na camada de saída. O valor é definido calculando a soma ponderada dos valores dos nós da camada anterior. Uma função de ativação é então aplicada a essa soma ponderada.

Como configurar Two-Class Rede Neural

  1. Adicione o módulo de Rede Neural de duas classes à sua experiência no Studio (clássico). Pode encontrar este módulo sob Machine Learning, Initialize, na categoria Classificação.

  2. Especifique como pretende que o modelo seja treinado, definindo a opção modo de formação Criar .

    • Parâmetro Único: Escolha esta opção se já sabe como pretende configurar o modelo.

    • Intervalo de parâmetros: Escolha esta opção se não tiver a certeza dos melhores parâmetros. Em seguida, especifique uma gama de valores e use o módulo Tune Model Hyperparameters para iterar sobre as combinações e encontrar a configuração ideal.

  3. Para especificação de camada oculta, selecione o tipo de arquitetura de rede para criar.

    • Caso totalmente ligado: Utiliza a arquitetura de rede neural padrão, definida para redes neuronais de duas classes da seguinte forma:

      • Tem uma camada escondida.

      • A camada de saída está totalmente ligada à camada escondida, e a camada escondida está totalmente ligada à camada de entrada.

      • O número de nós na camada de entrada é igual ao número de funcionalidades nos dados de treino.

      • O número de nós na camada escondida é definido pelo utilizador. O valor predefinido é 100.

      • O número de nós é igual ao número de aulas. Para uma rede neural de duas classes, isto significa que todas as entradas devem mapear para um de dois nós na camada de saída.

    • Script de definição personalizada: Escolha esta opção para criar uma arquitetura de rede neural personalizada, utilizando o idioma Net#. Com esta opção, pode definir o número de camadas escondidas, as suas ligações e os mapeamentos entre camadas.

    Depois de selecionar a opção de script personalizado, na caixa de texto de definição de rede Neural , escreva ou cole as declarações Net# que definem a rede. Por exemplo, consulte o Guia para o Idioma de Especificação de Redes Neurais Net#.

  4. Se não estiver a utilizar a opção script, utilize o Número de nós ocultos e digite o número de nós ocultos. O padrão é uma camada escondida com 100 nós.

  5. Para Aprendizagem taxa, defina o tamanho do passo dado em cada iteração, antes da correção. Um valor maior para a taxa de aprendizagem pode fazer com que o modelo converjam mais rapidamente, mas pode ultrapassar o minima local.

  6. Para o número de iterações de aprendizagem, especifique o número máximo de vezes que o algoritmo deve processar os casos de treino.

  7. Para o diâmetro inicial dos pesos de aprendizagem, especifique os pesos dos nós no início do processo de aprendizagem.

  8. Para o impulso, especifique um peso a aplicar durante a aprendizagem aos nóns de iterações anteriores

  9. No tipo de normalizador, selecione um método para a normalização da funcionalidade. São suportados os seguintes métodos de normalização:

    • Normalizador de binário: O normalizador de binário cria caixotes de tamanho igual e, em seguida, normaliza cada valor em cada caixote, dividindo-se pelo número total de caixotes.

    • Normalizador gaussiano: O normalizador gaussiano redimensiona os valores de cada característica para ter média 0 e variação 1. Isto é feito calculando a média e a variação de cada recurso. Por cada exemplo, o valor médio é subtraído, e o resultado dividido pela raiz quadrada da variação (o desvio padrão).

    • Normalizador min-max: O normalizador min-max redimensiona linearmente todas as características para o intervalo [0,1].

      A rescalificação para o intervalo [0,1] é feita mudando os valores de cada recurso de modo a que o valor mínimo seja 0, e depois dividindo-se pelo novo valor máximo (que é a diferença entre os valores máximos originais e mínimos).

    • Não normalize: Não é efetuada qualquer normalização.

  10. Selecione a opção De exemplos Shuffle para baralhar casos entre iterações. Se desmarcar esta opção, os casos são processados exatamente da mesma ordem sempre que executam a experiência.

  11. Para sementes de número aleatório, digite um valor a utilizar como semente.

    Especificar um valor de semente é útil quando pretender garantir a repetibilidade em todas as execuções da mesma experiência. Caso contrário, um valor do relógio do sistema é usado como semente, o que pode causar resultados ligeiramente diferentes cada vez que executar a experiência.

  12. Selecione a opção de níveis categóricos desconhecidos para criar um agrupamento para valores desconhecidos nos conjuntos de treino e validação. O modelo pode ser menos preciso em valores conhecidos, mas fornecer melhores previsões para novos valores (desconhecidos).

    Se desmarcar esta opção, o modelo pode aceitar apenas os valores contidos nos dados de treino.

  13. Adicione um conjunto de dados marcado à experiência e ligue um dos módulos de treino.

    Nota

    Se passar uma gama de parâmetros para o Modelo de Comboio, utiliza apenas o primeiro valor na lista de parâmetros.

    Se passar um único conjunto de valores de parâmetros para o módulo Tune Model Hyperparameters , quando espera uma gama de definições para cada parâmetro, ignora os valores e utiliza os valores predefinidos para o aluno.

    Se selecionar a opção De Alcance de Parâmetros e introduzir um único valor para qualquer parâmetro, esse valor único é utilizado ao longo da varredura, mesmo que outros parâmetros se alterem através de uma gama de valores.

  14. Execute a experimentação.

Resultados

Após o treino estar completo:

  • Para ver um resumo dos parâmetros do modelo, juntamente com os pesos de recurso aprendidos com o treino, e outros parâmetros da rede neural, clique com o botão direito na saída do Model de Comboio ou Dos Hiperparametros do Modelo de Sintonização e selecione Visualize.

  • Para guardar uma imagem do modelo treinado, clique com o direito na saída do modelo treinado e selecione Save As Trained Model. Este modelo não é atualizado em sucessivas execuções da mesma experiência.

  • Para efetuar a validação cruzada contra um conjunto de dados rotulado, ligue o modelo não treinado ao Modelo De Validação Cruzada.

Exemplos

Por exemplo, como este algoritmo de aprendizagem é usado, consulte a Galeria Azure AI. Estas experiências estão relacionadas e descritas num único documento que progride de configurações básicas a avançadas:

Notas técnicas

Esta secção contém detalhes de implementação, dicas e respostas a perguntas frequentes.

Mais sobre a Net #

Em Machine Learning Studio (clássico), pode personalizar a arquitetura de um modelo de rede neural utilizando o idioma Net#. As personalizações suportadas pelo idioma Net# incluem:

  • Especificando o número de camadas escondidas e o número de nós em cada camada
  • Especificar mapeamentos entre camadas
  • Definição de convoluções e pacotes de partilha de peso
  • Escolher a função de ativação

Um modelo de rede neural é definido pela estrutura do seu gráfico, que inclui estes atributos:

  • O número de camadas escondidas
  • O número de nós em cada camada escondida
  • Como as camadas estão conectadas
  • Qual função de ativação é usada
  • Pesos nas bordas do gráfico

Importante

A estrutura geral do gráfico, bem como a função de ativação, podem ser especificadas pelo utilizador. No entanto, os pesos nas bordas não podem ser especificados e devem ser aprendidos ao treinar a rede neural nos dados de entrada.

Em geral, a rede tem estes incumprimentos:

  • A primeira camada é sempre a camada de entrada.
  • A última camada é sempre a camada de saída.
  • O número de nós na camada de saída deve ser igual ao número de classes.

Pode definir qualquer número de camadas intermédias (por vezes chamadas camadas ocultas, porque estão contidas dentro do modelo, e não estão diretamente expostas como pontos finais).

O guia de referência Net# explica a sintaxe e fornece definições de rede de amostras. Explica como pode usar o Net# para adicionar camadas escondidas e definir a forma como as diferentes camadas interagem entre si.

Por exemplo, o seguinte script utiliza a auto palavra-chave, que define automaticamente o número de funcionalidades para as camadas de entrada e saída, e utiliza os valores predefinidos para a camada oculta.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

Para obter exemplos adicionais de scripts, consulte o Guia para o Idioma de especificação das redes neurais Net#.

Dica

As redes neurais podem ser computacionalmente dispendiosas, devido a uma série de hiperparímetros e à introdução de topologias de rede personalizadas. Embora em muitos casos as redes neurais produzam melhores resultados do que outros algoritmos, a obtenção de tais resultados pode envolver uma quantidade justa de varreduras (iterações) sobre hiperparímetros.

Parâmetros do módulo

Nome Intervalo Tipo Predefinição Description
Especificação de camada escondida Lista Topologia da Rede Neural Caso totalmente ligado Especificar a arquitetura da camada ou camadas escondidas
O diâmetro inicial dos pesos de aprendizagem >=duplo. Epsilon Float 0.1 Especificar os pesos dos nó no início do processo de aprendizagem
Taxa de aprendizagem [Duplo. Epsilon;1.0] Float 0.1 Especificar o tamanho de cada passo no processo de aprendizagem
O impulso [0.0;1.0] Float 0,0 Especificar um peso a aplicar durante a aprendizagem aos nóns de iterações anteriores
Definição da rede neural Qualquer StreamReader Ao selecionar o script de definição personalizada, digite uma expressão de script válida em cada linha para definir as camadas, nós e o comportamento de uma rede neural personalizada
O tipo de normalizador Lista Método de normalização Min-Max normalizador Selecione o tipo de normalização para aplicar a exemplos de aprendizagem
Número de iterações de aprendizagem >=1 Número inteiro 100 Especificar o número de iterações realizadas durante a aprendizagem
Baralhar exemplos Qualquer Booleano true Selecione esta opção para alterar a ordem das instâncias entre iterações de aprendizagem
Semente de número aleatório Qualquer Número inteiro Especifique uma semente numérica para usar para a geração de números aleatórios. Deixe-o em branco para utilizar a semente padrão.
Permitir níveis categóricos desconhecidos Qualquer Booleano Verdadeiro Indicou se deve ser criado um nível adicional para categorias desconhecidas. Se o conjunto de dados de teste contiver categorias que não estão presentes no conjunto de dados de treino, são mapeadas para este nível desconhecido.

Saída

Nome Tipo Description
Modelo destreinado Interface ILearner Um modelo de classificação binária destreinada

Ver também

Classificação
Regressão da Rede Neural
Rede Neural de Várias Classes
Lista de Módulos A-Z