Regressão de Rede Neural

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 regressão usando um algoritmo de rede neural

categoria: Machine Learning/inicializar modelo/regressão

Observação

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

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 de regressão de rede neural no Machine Learning Studio (clássico) para criar um modelo de regressão usando um algoritmo de rede neural personalizável.

Embora as redes neurais sejam amplamente conhecidas para uso em problemas complexos de aprendizado e modelagem, como reconhecimento de imagem, elas são facilmente adaptadas para problemas de regressão. Qualquer classe de modelos estatísticos pode ser chamada de rede neural se ela usar pesos adaptáveis e puder aproximar funções não lineares de suas entradas. Assim, a regressão de rede neural é adequada para onde um modelo de regressão mais tradicional não tiver uma solução.

A regressão de rede neural é um método de aprendizado supervisionado e, portanto, requer um conjunto de dados marcado que inclua uma coluna de rótulo. Como um modelo de regressão prevê um valor numérico, a coluna de rótulo deve ser um tipo de dado numérico.

Você pode treinar o modelo fornecendo o modelo e o conjunto de dados marcado como uma entrada para treinar modelo ou ajustar hiperparâmetros de modelo. O modelo treinado pode ser usado para prever valores para os novos exemplos de entrada.

Como configurar a regressão de rede neural

As redes neurais são bastante personalizáveis. Esta seção descreve como criar um modelo usando dois métodos:

  • Criar um modelo de rede neural usando a arquitetura padrão

    Se você aceitar a arquitetura de rede neural padrão, use o painel Propriedades para definir os parâmetros que controlam o comportamento da rede neural, como o número de nós na camada oculta, a taxa de aprendizado e a normalização.

    Comece aqui se as redes neurais forem uma novidade para você. O módulo permite muitas personalizações, além de ajuste de modelo, sem necessidade de conhecimento profundo das redes neurais.

  • Definir uma arquitetura personalizada para uma rede neural

    Use esta opção se quiser adicionar camadas ocultas extras ou personalizar totalmente a arquitetura de rede, as conexões e as funções de ativação.

    Essa opção é melhor se você já tiver experiência prévia com redes neurais. Você usa a linguagem net # para definir a arquitetura de rede.

Criar um modelo de rede neural usando a arquitetura padrão

  1. Adicione o módulo de regressão de rede neural ao seu experimento no estúdio (clássico). Você pode encontrar esse módulo em Machine Learning, Inicializar, na categoria Regressão.

  2. Indique como você deseja que o modelo seja treinado definindo a opção Criar modo de aprendizagem.

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

    • Intervalo de parâmetros: escolha esta opção se você não tiver certeza dos melhores parâmetros. Em seguida, especifique um intervalo de valores e use o módulo ajustar hiperparâmetros de modelo para iterar sobre as combinações e encontrar a configuração ideal.

  3. Em especificação de camada oculta, selecione caso totalmente conectado. Essa opção cria um modelo com a arquitetura de rede neural padrão, que tem estes atributos para um modelo de regressão de rede neural:

    • A rede tem exatamente uma camada oculta.
    • A camada de saída é totalmente conectada à camada oculta e a camada oculta é totalmente conectada à camada de entrada.
    • O número de nós na camada oculta pode ser definido pelo usuário (o valor padrão é 100).

    Como o número de nós na camada de entrada é determinado pelo número de recursos nos dados de treinamento, em um modelo de regressão pode haver apenas um nó na camada de saída.

  4. Para Número de nós ocultos, digite o número de nós ocultos. O padrão é uma camada oculta com 100 nós. (Essa opção não estará disponível ao definir uma arquitetura personalizada com Net#).

  5. Em taxa de aprendizagem, digite um valor que defina a etapa executada em cada iteração, antes da correção. Um valor maior para a taxa de aprendizagem pode fazer o modelo convergir mais rapidamente, mas com o risco mínimo de errar o alvo verdadeiro.

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

  7. Para o diâmetro inicial dos pesos de aprendizado , digite um valor que determina os pesos do nó no início do processo de aprendizado.

  8. Em O impulso, digite um valor a ser aplicado durante o aprendizado como um peso nos nós de iterações anteriores.

  9. Para o tipo de normalizador, escolha um dos seguintes métodos a serem usados para normalização de recursos:

    • Compartimentalização normalizador: compartimentalização cria grupos de tamanho igual e, em seguida, normaliza cada valor em cada grupo a ser dividido pelo número total de grupos.

    • Normalizador gaussiano: a normalização gaussiana redimensiona os valores de cada recurso para ter a média 0 e a variância 1. Isso é feito computando a média e a variância de cada recurso e, em seguida, para cada instância, subtraindo o valor Mean e dividindo pela raiz quadrada da variância (o desvio padrão).

    • Normalizador min-max: a normalização mín. máx. 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.

  10. Escolha a opção Embaralhar exemplos para mudar a ordem de casos entre as iterações. Se você desmarcar essa opção, os casos serão processados exatamente na mesma ordem toda vez que você executar o experimento.

  11. Em Semente de número aleatório, você pode digitar um valor inteiro para usar como semente. Especificar um valor de semente é útil quando você deseja garantir a capacidade de repetição em execuções do mesmo experimento.

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

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

  13. Conexão um conjunto de treinamento e um dos módulos de treinamento:

    Aviso

    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.

  14. Execute o experimento.

Definir uma arquitetura personalizada

  1. Adicione o módulo de regressão de rede neural ao seu experimento.

  2. Indique como você deseja que o modelo seja treinado definindo a opção Criar modo de aprendizagem.

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

    • Intervalo de parâmetros: escolha esta opção se você não tiver certeza dos melhores parâmetros. Em seguida, especifique um intervalo de valores e use o módulo ajustar hiperparâmetros de modelo para iterar sobre as combinações e encontrar a configuração ideal.

  3. Em especificação de camada oculta, selecione script de definição personalizada. Você deve escolher essa opção se desejar definir uma arquitetura de rede neural personalizada usando a linguagem net # .

  4. Depois de selecionar a opção script de definição personalizada , a caixa de texto definição de rede neural é exibida. Você pode colar o script net # para definir uma arquitetura personalizada para a rede neural, incluindo o número de camadas ocultas, suas conexões e opções avançadas, como especificar os mapeamentos entre camadas.

  5. Em taxa de aprendizagem, digite um valor que defina a etapa executada em cada iteração, antes da correção. Um valor maior para a taxa de aprendizagem pode fazer o modelo convergir mais rapidamente, mas com o risco mínimo de errar o alvo verdadeiro.

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

  7. Para o diâmetro inicial dos pesos de aprendizado , digite um valor que determina os pesos do nó no início do processo de aprendizado.

  8. Em O impulso, digite um valor a ser aplicado durante o aprendizado como um peso nos nós de iterações anteriores.

  9. Para o tipo de normalizador, escolha um dos seguintes métodos a serem usados para normalização de recursos:

    • Compartimentalização normalizador: compartimentalização cria grupos de tamanho igual e, em seguida, normaliza cada valor em cada grupo, dividindo pelo número total de grupos.

    • Normalizador gaussiano: a normalização gaussiana redimensiona os valores de cada recurso para ter a média 0 e a variância 1. Isso é feito computando a média e a variância de cada recurso e, em seguida, para cada instância, subtraindo o valor Mean e dividindo pela raiz quadrada da variância (o desvio padrão).

    • Min-max: a normalização mín. máx. 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.

  10. Escolha a opção Embaralhar exemplos para mudar a ordem de casos entre as iterações. Se você desmarcar essa opção, os casos serão processados exatamente na mesma ordem sempre que você executar o experimento.

  11. Em Semente de número aleatório, você pode digitar um valor inteiro para usar como semente. Especificar um valor de semente é útil quando você deseja garantir a capacidade de repetição em execuções do mesmo experimento.

  12. Selecione a opção Permitir níveis categóricos desconhecidos para criar um grupo para valores desconhecidos. Todos os valores desconhecidos no conjunto de dados de teste são mapeados para essa categoria desconhecida. Usar essa opção pode tornar o modelo um pouco menos preciso em valores conhecidos, mas fornecer previsões melhores para novos valores (desconhecidos).

    Se você desmarcar essa opção, o modelo poderá fazer previsões somente para os valores contidos nos dados de treinamento.

  13. Conexão um datset de treinamento e um dos módulos de treinamento:

    Aviso

    Se você passar um intervalo de parâmetros para Treinar Modelo, ele usará apenas o primeiro valor na lista de intervalos de parâmetros.

    Se você passar um único conjunto de valores de parâmetro para o módulo Ajustar Hiperparérmetros de Modelo, quando ele espera um intervalo de configurações para cada parâmetro, ele ignora os valores e usa os valores padrão para o aluno.

    Se você selecionar a opção Intervalo de Parâmetros e inserir um único valor para qualquer parâmetro, esse único valor especificado será usado durante a varredura, mesmo se outros parâmetros mudarem em um intervalo de valores.

  14. Execute o experimento.

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 é usado em experimentos, consulte estes exemplos no Galeria de IA do Azure:

Os experimentos fornecem mais ajuda no Net#. Os experimentos estão relacionados e progridem de configurações básicas para avançadas:

Observações técnicas

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

Mais sobre o Net #

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 (chamadas de camadas ocultas, porque estão contidos dentro do modelo e não são diretamente expostas 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
Taxa de aprendizado [double.Epsilon;0,01] Float 0,005 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ín-Máx Selecione o tipo de normalização a ser aplicado aos exemplos de aprendizado
Número de nós ocultos Qualquer String 100 Digite o número de nós na camada oculta. Para várias camadas ocultas, digite uma lista separada por vírgulas.
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 Boolean true 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.

Esse parâmetro é opcional
Permitir níveis categóricos desconhecidos Qualquer Boolean true 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ídas

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

Confira também

Regressão
Lista de Módulo A-Z