Regressão da Rede Neural
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).
- Consulte informações sobre projetos de machine learning em movimento de ML Studio (clássico) para Azure Machine Learning.
- Saiba mais sobre Azure Machine Learning.
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 regressão usando um algoritmo de rede neural
Categoria: Machine Learning / Modelo inicializo / Regressã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 regressão da rede neural em 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 pelo uso em problemas complexos de aprendizagem profunda e modelação, tais como o reconhecimento de imagem, são facilmente adaptados a problemas de regressão. Qualquer classe de modelos estatísticos pode ser denominada rede neural se usar pesos adaptativos e pode aproximar funções não lineares das suas entradas. Assim, a regressão da rede neural é adequada a problemas em que um modelo de regressão mais tradicional não consegue encaixar numa solução.
A regressão da rede neural é um método de aprendizagem supervisionado, pelo que requer um conjunto de dados marcado, que inclui uma coluna de etiqueta. Como um modelo de regressão prevê um valor numérico, a coluna de etiqueta deve ser um tipo de dado numérico.
Pode treinar o modelo fornecendo o modelo e o conjunto de dados marcados como uma entrada para Model Model ouTune Model Hyperparameters. O modelo treinado pode então ser usado para prever valores para os novos exemplos de entrada.
Como configurar a regressão da rede neural
As redes neuronais podem ser extensivamente personalizadas. Esta secção descreve como criar um modelo utilizando dois métodos:
Criar um modelo de rede neural usando a arquitetura padrão
Se aceitar a arquitetura de rede neural padrão, use o painel de Propriedades para definir parâmetros que controlem o comportamento da rede neural, como o número de nós na camada oculta, taxa de aprendizagem e normalização.
Comece aqui se for novo em redes neuronais. O módulo suporta muitas personalizações, bem como afinação de modelos, sem profundo conhecimento de redes neurais.
Defina uma arquitetura personalizada para uma rede neural
Utilize esta opção se pretender adicionar camadas extra escondidas ou personalizar totalmente a arquitetura da rede, as suas ligações e funções de ativação.
Esta opção é melhor se já estiver familiarizado com redes neuronais. Usa o idioma Net# para definir a arquitetura da rede.
Criar um modelo de rede neural usando a arquitetura padrão
Adicione o módulo de regressão da rede neural à sua experiência em Studio (clássico). Pode encontrar este módulo sob Machine Learning, Initialize, na categoria Regressão.
Indique como pretende que o modelo seja treinado, definindo a opção modo de formação Create .
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.
Na especificação da camada escondida, selecione o caso totalmente ligado. Esta opção cria um modelo utilizando a arquitetura de rede neural padrão, que para um modelo de regressão da rede neural, tem estes atributos:
- A rede tem exatamente 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 escondida pode ser definido pelo utilizador (o valor predefinido é de 100).
Como o número de nós na camada de entrada é determinado pelo número de funcionalidades nos dados de treino, num modelo de regressão só pode haver um nó na camada de saída.
Para o número de nós ocultos, digite o número de nós ocultos. O padrão é uma camada escondida com 100 nós. (Esta opção não está disponível se definir uma arquitetura personalizada usando Net#.)
Para Aprendizagem taxa, digite um valor que defina o 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.
Para o número de iterações de aprendizagem, especifique o número máximo de vezes que o algoritmo processa os casos de treino.
Para o diâmetro inicial dos pesos de aprendizagem , digite um valor que determina os pesos dos nó no início do processo de aprendizagem.
Para o impulso, digite um valor a aplicar durante a aprendizagem como um peso sobre nós de iterações anteriores.
Para o tipo de normalizador, escolha um dos seguintes métodos a utilizar para normalização da funcionalidade:
Binning normalizer: O binário cria grupos de tamanho igual e, em seguida, normaliza cada valor em cada grupo para ser dividido pelo número total de grupos.
Normalizador gaussiano: A normalização gaussiana 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, e depois, para cada instância, subtraindo o valor médio e dividindo-se pela raiz quadrada da variação (o desvio padrão).
Normalizador Min-Max: A normalização de 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.
Selecione a opção, exemplos Shuffle, para alterar a ordem dos casos entre iterações. Se desmarcar esta opção, os casos são processados exatamente da mesma ordem sempre que executam a experiência.
Para sementes de número aleatório, pode, opcionalmente, escrever 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.
Selecione a opção Deixe níveis categóricos desconhecidos para criar um agrupamento para valores desconhecidos. 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.
Ligação um datset de treino e um dos módulos de treino:
Se definir Criar o modo de treinador para um único parâmetro, utilize o Modelo de Comboio.
Se definir Criar modo de treinador para intervalo de parâmetros, utilize hiperparímetros do modelo de sintonização.
Aviso
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.
Execute a experimentação.
Defina uma arquitetura personalizada
Adicione o módulo de regressão da rede neural à sua experiência.
Indique como pretende que o modelo seja treinado, definindo a opção modo de formação Create .
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.
Na especificação de camada oculta, selecione script de definição personalizada. Você deve escolher esta opção se você quiser definir uma arquitetura de rede neural personalizada usando o idioma Net# .
Depois de selecionar a opção de script de definição personalizada , é apresentada a caixa de texto de definição de rede Neural . Pode colar no script Net# para definir uma arquitetura personalizada para a rede neural, incluindo o número de camadas escondidas, suas ligações e opções avançadas, como especificar os mapeamentos entre camadas.
Para Aprendizagem taxa, digite um valor que defina o 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.
Para o número de iterações de aprendizagem, especifique o número máximo de vezes que o algoritmo processa os casos de treino.
Para o diâmetro inicial dos pesos de aprendizagem , digite um valor que determina os pesos dos nó no início do processo de aprendizagem.
Para o impulso, digite um valor a aplicar durante a aprendizagem como um peso sobre nós de iterações anteriores.
Para o tipo de normalizador, escolha um dos seguintes métodos a utilizar para normalização da funcionalidade:
Binning normalizador: O binário cria grupos de tamanho igual e, em seguida, normaliza cada valor em cada grupo, dividindo-se pelo número total de grupos.
Normalizador gaussiano: A normalização gaussiana 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, e depois, para cada instância, subtraindo o valor médio e dividindo-se pela raiz quadrada da variação (o desvio padrão).
Min-Max: A normalização de 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.
Selecione a opção, exemplos Shuffle, para alterar a ordem dos casos entre iterações. Se desmarcar esta opção, os casos são processados exatamente da mesma ordem sempre que executam a experiência.
Para sementes de número aleatório, pode, opcionalmente, escrever 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.
Selecione a opção Deixe níveis categóricos desconhecidos para criar um agrupamento para valores desconhecidos. Quaisquer valores desconhecidos no conjunto de dados de teste são mapeados para esta categoria desconhecida. A utilização desta opção poderá tornar o modelo ligeiramente menos preciso em valores conhecidos, mas fornecer melhores previsões para novos valores (desconhecidos).
Se desmarcar esta opção, o modelo só pode fazer previsões para os valores contidos nos dados de treino.
Ligação um datset de treino e um dos módulos de treino:
Se definir Criar o modo de treinador para um único parâmetro, utilize o Modelo de Comboio.
Se definir Criar modo de treinador para intervalo de parâmetros, utilize hiperparímetros do modelo de sintonização.
Aviso
Se passar uma gama de parâmetros para o Modelo de Comboio, utilizará 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 será utilizado ao longo da varredura, mesmo que outros parâmetros se alterem numa gama de valores.
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 é usado em experiências, veja estas amostras na Galeria Azure AI:
- Compare Vários Regressors: Demonstra o uso de vários algoritmos de regressão e compara os seus resultados.
As experiências fornecem mais ajuda na Net#. As experiências estão relacionadas e progridem de configurações básicas a avançadas:
- Exemplo de redes neuronais profundas (parte A)
- Exemplo de redes neuronais profundas (parte B)
- Exemplo de redes neuronais profundas (parte C)
- Exemplo de redes neuronais profundas (parte D)
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 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 |
Taxa de aprendizagem | [Duplo. Epsilon;0.01] | Float | 0.005 | 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 "Script de definição personalizada", digite uma expressão de script válida em cada linha para definir as camadas, nós e 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 nós escondidos | Qualquer | String | 100 | Digite o número de nós na camada escondida. Para várias camadas escondidas, digite uma lista separada por vírgulas. |
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 | 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 em branco para utilizar a semente padrão. Este parâmetro é opcional |
|
Permitir níveis categóricos desconhecidos | Qualquer | Booleano | true | Indicar se deve ser criado um nível adicional para categorias desconhecidas. Se o conjunto de dados de teste contiver categorias não presentes no conjunto de dados de treino, são mapeadas para este nível desconhecido. |
Saídas
Nome | Tipo | Description |
---|---|---|
Modelo destreinado | Interface ILearner | Um modelo de regressão sem treino |