Rede Neural de Várias Classes

Importante

O suporte para o Estúdio de ML (clássico) terminará a 31 de agosto de 2024. Recomendamos a transição para o Azure Machine Learning até essa data.

A partir de 1 de dezembro de 2021, não poderá criar novos recursos do Estúdio de ML (clássico). Até 31 de agosto de 2024, pode continuar a utilizar os recursos existentes do Estúdio de ML (clássico).

A documentação do Estúdio de ML (clássico) está a ser descontinuada e poderá não ser atualizada no futuro.

Cria um modelo de classificação multiclasse 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 Multiclass Neural Network em Machine Learning Studio (clássico), para criar um modelo de rede neural que pode ser usado para prever um alvo que tem múltiplos valores.

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

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.

Pode treinar o modelo fornecendo o modelo e o conjunto de dados marcados como uma entrada para o Modelo de Comboio ou para Sintonizar Hiperparametros modelo. O modelo treinado pode então ser usado para prever valores para os novos exemplos de entrada.

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 a Rede Neural Multiclass

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

  2. Criar o modo de treinador: Utilize esta opção para especificar como pretende que o modelo seja treinado:

    • 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 e pretender utilizar uma varredura de parâmetros. Em seguida, especifique uma gama de valores e utilize o módulo Tune Model Hyperparameters para iterar sobre as combinações e encontrar a configuração ideal.

  3. Especificação da camada escondida: Selecione o tipo de arquitetura de rede para criar.

    • Caso totalmente ligado: Selecione esta opção para criar um modelo utilizando a arquitetura de rede neural padrão. Para os modelos de rede neural multiclasse, as predefinições são as seguintes:

      • Uma camada escondida
      • A camada de saída está totalmente ligada à camada oculta.
      • A camada escondida está totalmente ligada à camada de entrada.
      • O número de nós na camada de entrada é determinado pelo número de funcionalidades nos dados de treino.
      • O número de nós na camada escondida pode ser definido pelo utilizador. A predefinição é 100.
      • O número de nós na camada de saída depende do número de classes.
    • Roteiro de definição personalizada. Escolha esta opção para criar uma arquitetura de rede neural personalizada, utilizando o idioma Net#. Pode definir o número de camadas ocultas, as suas ligações e opções avançadas, tais como especificar os mapeamentos entre camadas. Para uma introdução à Net#, consulte More About Net# mais tarde neste tópico.

  4. Definição da rede neural: Se selecionar a opção de arquitetura personalizada, utilize a caixa de texto para escrever ou colar em declarações escritas no idioma Net#. Para obter exemplos adicionais de scripts, consulte o Guia para o Idioma de especificação das redes neurais Net#.

  5. Número de nós ocultos: Esta opção permite personalizar o número de nós ocultos na arquitetura padrão. Digite o número de nós escondidos. O padrão é uma camada escondida com 100 nós.

  6. A taxa de aprendizagem: Definir 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.

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

  8. Diâmetro dos pesos de aprendizagem inicial: Especificar os pesos dos nós no início do processo de aprendizagem.

  9. O impulso: Especifique um peso a aplicar durante a aprendizagem aos nós de iterações anteriores.

  10. O tipo de normalizador: Selecione o método a utilizar para 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.

  11. Shuffle exemplos: Selecione esta opção 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.

  12. Semente de número aleatório: Digite um valor a utilizar como semente, se quiser garantir a repetibilidade através de séries da mesma experiência.

  13. Permitir níveis categóricos desconhecidos: Selecione esta opção 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.

  14. Ligação um conjunto de dados de formação e um dos módulos de formação:

    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 especificado é utilizado ao longo da varredura, mesmo que outros parâmetros se alterem através de uma gama de valores.

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 estas experiências de amostra na Galeria Azure AI. As 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.

Personalizar a rede neural usando o script

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 intermediárias: estas são 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 varredura (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
A 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 Normalizador mínimo máximo 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 durante a aprendizagem
Baralhar exemplos Qualquer Booleano Verdadeiro 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 em branco para utilizar a semente padrão.
Permitir níveis categóricos desconhecidos Qualquer Booleano Verdadeiro Indicar 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 multiclasse não treinado

Ver também

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