Compartilhar via


Rede Neural Multiclasse

Importante

O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.

A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).

A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.

Cria um modelo de classificação multiclasse usando um algoritmo de rede neural

Categoria: Machine Learning/Inicializar modelo/classificação

Observação

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

Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.

Visão geral do módulo

Este artigo descreve como usar o módulo Rede Neural Multiclasse no Machine Learning Studio (clássico) para criar um modelo de rede neural que pode ser usado para prever um destino que tem vários valores.

Por exemplo, redes neurais desse tipo podem ser usadas em tarefas de pesquisa visual computacional complexas, como reconhecimento de letras ou dígitos, classificação de documentos e reconhecimento de padrões.

A classificação usando redes neurais é um método de aprendizado supervisionado e, portanto, requer um conjunto de dados marcado que inclua uma coluna de rótulo.

Você pode treinar o modelo fornecendo o modelo e o conjuntos de dados marcados como uma entrada para Treinar Modelo ou ajustar hiperparérmetros de modelo. O modelo treinado pode ser usado para prever valores para os novos exemplos de entrada.

Mais sobre redes neurais

Uma rede neural é um conjunto de camadas interconectadas. As entradas são a primeira camada e são conectadas a uma camada de saída por um grafo acíclico composto por bordas e nós ponderados.

Entre as camadas de entrada e saída, você pode inserir várias camadas ocultas. Mais tarefas de previsão podem ser feitas facilmente com apenas uma ou algumas camadas ocultas. No entanto, pesquisas recentes mostraram que redes neurais profundas (DNN) com muitas camadas podem ser muito eficazes em tarefas complexas, como reconhecimento de imagem ou fala. 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 o treinamento da rede neural com os dados de entrada. A direção do grafo vai das entradas por meio da camada oculta até a camada de saída. Todos os nós em uma camada são conectados pelas bordas ponderadas aos nós na próxima camada.

Para calcular a saída da rede para uma entrada específica, 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. Em seguida, uma função de ativação é aplicada a essa soma ponderada.

Como configurar a Rede Neural Multiclasse

  1. Adicione o módulo Rede Neural MultiClasse ao seu experimento no Studio (clássico). Encontre-o em Machine Learning, Inicializar, na categoria Classificação.

  2. Criar modo de treinador: use esta opção para especificar como você deseja que o modelo seja treinado:

    • Parâmetro único: escolha esta opção se você já souber como deseja configurar o modelo.

    • Intervalo de Parâmetros: escolha essa opção se você não tiver certeza dos melhores parâmetros e quiser usar uma varredura de parâmetro. Em seguida, especifique um intervalo de valores e use o módulo Ajustar Hiperparmetros do Modelo para iterar sobre as combinações e encontrar a configuração ideal.

  3. Especificação de camada oculta: selecione o tipo de arquitetura de rede a ser criada.

    • Caso totalmente conectado: selecione esta opção para criar um modelo usando a arquitetura de rede neural padrão. Para modelos de rede neural multiclasse, os padrões são os seguintes:

      • Uma camada oculta
      • A camada de saída é totalmente conectada à camada oculta.
      • A camada oculta é totalmente conectada à camada de entrada.
      • O número de nós na camada de entrada é determinado pelo número de recursos nos dados de treinamento.
      • O número de nós na camada oculta pode ser definido pelo usuário. O padrão é 100.
      • O número de nós na camada de saída depende do número de classes.
    • Script de definição personalizado. Escolha esta opção para criar uma arquitetura de rede neural personalizada usando a linguagem Net#. Você pode definir o número de camadas ocultas, suas conexões e opções avançadas, como especificar os mapeamentos entre camadas. Para obter uma introdução ao Net#, consulte Mais sobre o Net# mais adiante neste tópico.

  4. Definição de rede neural: se você selecionou a opção de arquitetura personalizada, use a caixa de texto para digitar ou colar instruções escritas na linguagem Net#. Para obter exemplos de script adicionais, consulte Guia para a Linguagem de Especificação de Redes Neurais Net#.

  5. Número de nós ocultos: essa opção permite que você personalize o número de nós ocultos na arquitetura padrão. Digite o número de nós ocultos. O padrão é uma camada oculta com 100 nós.

  6. A taxa de aprendizagem: defina o tamanho da etapa realizada em cada iteração antes da correção. Um valor maior para a taxa de aprendizagem pode fazer com que o modelo seja convergido mais rapidamente, mas pode ultrapassar mínimo locais.

  7. Número de iterações de aprendizagem: especifique o número máximo de vezes que o algoritmo deve processar os casos de treinamento.

  8. O diâmetro inicial dos pesos de aprendizagem: especifique os pesos do nó no início do processo de aprendizagem.

  9. O impulso: especifique um peso a ser aplicado durante a aprendizagem aos nós das iterações anteriores.

  10. O tipo de normalizador: selecione o método a ser usado para normalização de recursos. Há suporte para os seguintes métodos de normalização:

    • Normalizador de binning: o normalizador de binning cria compartimentos de tamanho igual e, em seguida, normaliza cada valor em cada compartimento, dividindo pelo número total de compartimentos.

    • Normalizador gaussiano: o normalizador gaussiano redimensiona os valores de cada recurso para ter a média 0 e a variação 1. Isso é feito calculando a média e a variação de cada recurso. Para cada instância, o valor médio é subtraído e o resultado dividido pela raiz quadrada da variância (o desvio padrão).

    • Normalizador min-max: o normalizador mínimo máximo redimensiona linearmente cada recurso para o intervalo [0,1].

      O redimensionamento do intervalo [0,1] é feito mudando os valores de cada recurso para que o valor mínimo seja 0 e, em seguida, dividindo pelo novo valor máximo (que é a diferença entre os valores máximos e mínimos originais).

    • Não normalizar: nenhuma normalização é executada.

  11. Embaralhar exemplos: selecione esta opção para embaralhar casos entre iterações.

    Se você desmarcar essa opção, os casos serão processados exatamente na mesma ordem sempre que você executar o experimento.

  12. Semente de número aleatório: digite um valor a ser usado como a semente, se você quiser garantir a capacidade de repetição entre as executações do mesmo experimento.

  13. Permitir níveis categóricos desconhecidos: selecione esta opção para criar um grupo para valores desconhecidos nos conjuntos de treinamento e validação. O modelo pode ser menos preciso em valores conhecidos, mas fornece previsões melhores para novos valores (desconhecidos).

    Se você desmarcar essa opção, o modelo poderá aceitar apenas os valores contidos nos dados de treinamento.

  14. Conexão um conjuntos de dados de treinamento e um dos módulos de treinamento:

    Observação

    Se você transmitir um intervalo de parâmetros para o módulo Treinar modelo, ele usará apenas o primeiro valor da lista de intervalo de parâmetros.

    Se você transmitir um só conjunto de valores de parâmetro para o módulo Ajustar hiperparâmetros do modelo, quando ele espera um intervalo de configurações para cada parâmetro, ele vai ignorar os valores e usará os valores padrão para o aprendiz.

    Se selecionar a opção Intervalo de Parâmetros e inserir um único valor para qualquer parâmetro, esse valor único especificado será usado em toda a varredura, mesmo que outros parâmetros sejam alterados em um intervalo de valores.

Resultados

Após a conclusão do treinamento:

  • Para ver um resumo dos parâmetros do modelo, juntamente com os pesos dos recursos aprendidos com o treinamento e outros parâmetros da rede neural, clique com o botão direito do mouse na saída de Treinar Modelo ou Ajustar Hiperparámetros do Modelo e selecione Visualizar.

  • Para salvar um instantâneo do modelo treinado, clique com o botão direito do mouse na saída modelo treinado e selecione Salvar como Modelo Treinado. Esse modelo não é atualizado em sequências sucessivas do mesmo experimento.

  • Para executar a validação cruzada em um conjunto de dados rotulado, conecte o modelo não treinado ao Modelo de Validação Cruzada.

Exemplos

Para exemplos de como esse algoritmo de aprendizado é usado, consulte estes experimentos de exemplo no Galeria de IA do Azure. Os experimentos são relacionados e descritos em um único documento, que avança das configurações básicas para as avançadas:

Observações técnicas

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

Personalização da rede neural usando script

No Machine Learning Studio (clássico), você pode personalizar a arquitetura de um modelo de rede neural usando a linguagem Net#. As personalizações com suporte da linguagem Net# incluem:

  • Especificando o número de camadas ocultas e o número de nós em cada camada
  • Especificando mapeamentos entre camadas
  • Definindo convoluções e pacotes de compartilhamento de peso
  • Escolhendo 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 ocultas
  • O número de nós em cada camada oculta
  • Como as camadas são conectadas
  • Qual função de ativação é usada
  • Pesos nas bordas do gráfico

Importante

A estrutura geral do grafo, bem como a função de ativação, pode ser especificada pelo usuário. 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 padrões:

  • 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.

Você pode definir qualquer número de camadas intermediárias: às vezes, elas são chamadas de camadas ocultas, porque estão contidas no modelo e não são expostas diretamente como pontos de extremidade.

O guia de referência do Net# explica a sintaxe e fornece definições de rede de exemplo. Ele explica como você pode usar Net# para adicionar camadas ocultas e definir o modo como as diferentes camadas interagem entre si.

Por exemplo, o script auto a seguir usa a palavra-chave , que define o número de recursos automaticamente para camadas de entrada e saída e usa os valores padrão para a camada oculta.

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

Para obter exemplos de script adicionais, consulte Guia para a Linguagem de Especificação de Redes Neurais Net#.

Dica

As redes neurais podem ser computacionalmente caras, devido a vários hiperparérmetros e à introdução de topologias de rede personalizadas. Embora em muitos casos as redes neurais produzem resultados melhores que outros algoritmos, obter esses resultados pode envolver uma quantidade razoável de varredura (iterações) em hiperparâmetros.

Parâmetros do módulo

Nome Intervalo Type Padrão Descrição
Especificação da camada oculta Lista Topologia de rede neural Caso totalmente conectado Especificar a arquitetura da camada ou das camadas ocultas
O aprendizado inicial pondera o diâmetro >=double.Epsilon Float 0,1 Especifique os pesos de nó no início do processo de aprendizado
A taxa de aprendizado [double.Epsilon;1.0] Float 0,1 Especifique o tamanho de cada etapa no processo de aprendizado
A dinâmica [0,0;1,0] Float 0,0 Especificar um peso a ser aplicado durante o aprendizado aos nós de iterações anteriores
Definição de rede neural Qualquer StreamReader Quando você seleciona Script de definição personalizada, digite uma expressão de script válida em cada linha para definir as camadas, os nós e o comportamento de uma rede neural personalizada
O tipo de normalizador Lista Método de normalização Normalizador mínimo-máximo Selecione o tipo de normalização a ser aplicado aos exemplos de aprendizado
Número de iterações de aprendizado >=1 Integer 100 Especifique o número de iterações de aprendizado
Exemplos de ordem aleatória Qualquer Booliano verdadeiro Selecione essa opção para alterar a ordem de instâncias entre iterações de aprendizado
Propagação de número aleatório Qualquer Integer Especifica uma propagação numérica a ser usada para a geração de números aleatórios. Deixe em branco para usar a propagação padrão.
Permitir níveis categóricos desconhecidos Qualquer Booliano verdadeiro Indica se um nível adicional deve ser criado para categorias desconhecidas. Se o conjunto de dados de teste contiver categorias não presentes no conjunto de dados de treinamento, eles serão mapeados para esse nível desconhecido.

Saída

Nome Tipo Descrição
Modelo não treinado Interface ILearner Um modelo de classificação multiclasse não treinado

Confira também

Classificação
Rede Neural de Duas Classes
Regressão de Rede Neural
Lista de Módulo A-Z