Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Ajuste de Hiperparâmetros | Conclusão
Introdução às Redes Neurais

bookAjuste de Hiperparâmetros

Hiperparâmetros em Redes Neurais

Redes neurais, incluindo perceptrons, possuem diversos hiperparâmetros que influenciam seu desempenho. Diferentemente dos parâmetros do modelo (por exemplo, pesos e vieses), os hiperparâmetros são definidos antes do início do treinamento. Alguns hiperparâmetros importantes em perceptrons incluem:

  • Número de camadas ocultas e neurônios por camada: determina a capacidade do modelo de aprender padrões complexos. Poucos neurônios podem causar underfitting, enquanto muitos podem levar ao overfitting;

  • Taxa de aprendizado: controla o quanto o modelo ajusta os pesos durante o treinamento. Uma taxa de aprendizado alta pode tornar o treinamento instável, enquanto uma taxa baixa pode resultar em convergência lenta:

  • Número de épocas de treinamento: define quantas vezes o modelo vê os dados de treinamento. Mais épocas permitem melhor aprendizado, mas podem levar ao overfitting se forem excessivas.
Note
Nota

Para recapitular, overfitting ocorre quando um modelo aprende os dados de treinamento excessivamente bem, capturando ruídos em vez de padrões gerais. Isso resulta em alta precisão no conjunto de treinamento, mas baixa generalização para dados não vistos.

Underfitting, por outro lado, acontece quando um modelo é simples demais para capturar os padrões subjacentes nos dados. Isso leva a baixo desempenho tanto no treinamento quanto no teste, indicando que o modelo não possui capacidade suficiente para aprender de forma eficaz.

Ajuste de Hiperparâmetros

O ajuste de hiperparâmetros é fundamental para otimizar redes neurais. Um modelo mal ajustado pode resultar em underfitting ou overfitting.

É possível modificar o número de épocas, o número de camadas ocultas, seu tamanho e a taxa de aprendizado para observar como a acurácia nos conjuntos de treino e teste se altera:

1234567891011121314151617181920212223
from sklearn.neural_network import MLPClassifier from sklearn.metrics import accuracy_score import numpy as np import warnings # Ignore warnings warnings.filterwarnings("ignore") import os os.system('wget https://codefinity-content-media.s3.eu-west-1.amazonaws.com/f9fc718f-c98b-470d-ba78-d84ef16ba45f/section_2/data.py 2>/dev/null') from data import X_train, y_train, X_test, y_test np.random.seed(10) # Tweak hyperparameters here model = MLPClassifier(max_iter=100, hidden_layer_sizes=(6, 6), learning_rate_init=0.01, random_state=10) model.fit(X_train, y_train) y_pred_train = model.predict(X_train) y_pred_test = model.predict(X_test) # Comparing train set accuracy and test set accuracy train_accuracy = accuracy_score(y_train, y_pred_train) test_accuracy = accuracy_score(y_test, y_pred_test) print(f'Train accuracy: {train_accuracy:.3f}') print(f'Test accuracy: {test_accuracy:.3f}')
copy

Encontrar a combinação ideal de hiperparâmetros envolve experimentação sistemática e ajustes. Isso geralmente é feito utilizando técnicas como grid search (testando todas as combinações possíveis de hiperparâmetros) e random search (testando um subconjunto aleatório de valores de hiperparâmetros).

De modo geral, o treinamento de uma rede neural segue um ciclo iterativo:

  1. Definir o modelo com hiperparâmetros iniciais;
  2. Treinar o modelo utilizando o conjunto de dados de treino;
  3. Avaliar o desempenho no conjunto de teste;
  4. Ajustar os hiperparâmetros (por exemplo, número de camadas, taxa de aprendizado);
  5. Repetir o processo até atingir o desempenho desejado.

Esse refinamento iterativo garante que o modelo generalize bem para dados não vistos.

1. Qual dos seguintes é um hiperparâmetro e não um parâmetro do modelo?

2. Uma taxa de aprendizado muito alta provavelmente causará:

question mark

Qual dos seguintes é um hiperparâmetro e não um parâmetro do modelo?

Select the correct answer

question mark

Uma taxa de aprendizado muito alta provavelmente causará:

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

What are some best practices for hyperparameter tuning in neural networks?

Can you explain the difference between grid search and random search?

How do I know if my model is overfitting or underfitting?

Awesome!

Completion rate improved to 4

bookAjuste de Hiperparâmetros

Deslize para mostrar o menu

Hiperparâmetros em Redes Neurais

Redes neurais, incluindo perceptrons, possuem diversos hiperparâmetros que influenciam seu desempenho. Diferentemente dos parâmetros do modelo (por exemplo, pesos e vieses), os hiperparâmetros são definidos antes do início do treinamento. Alguns hiperparâmetros importantes em perceptrons incluem:

  • Número de camadas ocultas e neurônios por camada: determina a capacidade do modelo de aprender padrões complexos. Poucos neurônios podem causar underfitting, enquanto muitos podem levar ao overfitting;

  • Taxa de aprendizado: controla o quanto o modelo ajusta os pesos durante o treinamento. Uma taxa de aprendizado alta pode tornar o treinamento instável, enquanto uma taxa baixa pode resultar em convergência lenta:

  • Número de épocas de treinamento: define quantas vezes o modelo vê os dados de treinamento. Mais épocas permitem melhor aprendizado, mas podem levar ao overfitting se forem excessivas.
Note
Nota

Para recapitular, overfitting ocorre quando um modelo aprende os dados de treinamento excessivamente bem, capturando ruídos em vez de padrões gerais. Isso resulta em alta precisão no conjunto de treinamento, mas baixa generalização para dados não vistos.

Underfitting, por outro lado, acontece quando um modelo é simples demais para capturar os padrões subjacentes nos dados. Isso leva a baixo desempenho tanto no treinamento quanto no teste, indicando que o modelo não possui capacidade suficiente para aprender de forma eficaz.

Ajuste de Hiperparâmetros

O ajuste de hiperparâmetros é fundamental para otimizar redes neurais. Um modelo mal ajustado pode resultar em underfitting ou overfitting.

É possível modificar o número de épocas, o número de camadas ocultas, seu tamanho e a taxa de aprendizado para observar como a acurácia nos conjuntos de treino e teste se altera:

1234567891011121314151617181920212223
from sklearn.neural_network import MLPClassifier from sklearn.metrics import accuracy_score import numpy as np import warnings # Ignore warnings warnings.filterwarnings("ignore") import os os.system('wget https://codefinity-content-media.s3.eu-west-1.amazonaws.com/f9fc718f-c98b-470d-ba78-d84ef16ba45f/section_2/data.py 2>/dev/null') from data import X_train, y_train, X_test, y_test np.random.seed(10) # Tweak hyperparameters here model = MLPClassifier(max_iter=100, hidden_layer_sizes=(6, 6), learning_rate_init=0.01, random_state=10) model.fit(X_train, y_train) y_pred_train = model.predict(X_train) y_pred_test = model.predict(X_test) # Comparing train set accuracy and test set accuracy train_accuracy = accuracy_score(y_train, y_pred_train) test_accuracy = accuracy_score(y_test, y_pred_test) print(f'Train accuracy: {train_accuracy:.3f}') print(f'Test accuracy: {test_accuracy:.3f}')
copy

Encontrar a combinação ideal de hiperparâmetros envolve experimentação sistemática e ajustes. Isso geralmente é feito utilizando técnicas como grid search (testando todas as combinações possíveis de hiperparâmetros) e random search (testando um subconjunto aleatório de valores de hiperparâmetros).

De modo geral, o treinamento de uma rede neural segue um ciclo iterativo:

  1. Definir o modelo com hiperparâmetros iniciais;
  2. Treinar o modelo utilizando o conjunto de dados de treino;
  3. Avaliar o desempenho no conjunto de teste;
  4. Ajustar os hiperparâmetros (por exemplo, número de camadas, taxa de aprendizado);
  5. Repetir o processo até atingir o desempenho desejado.

Esse refinamento iterativo garante que o modelo generalize bem para dados não vistos.

1. Qual dos seguintes é um hiperparâmetro e não um parâmetro do modelo?

2. Uma taxa de aprendizado muito alta provavelmente causará:

question mark

Qual dos seguintes é um hiperparâmetro e não um parâmetro do modelo?

Select the correct answer

question mark

Uma taxa de aprendizado muito alta provavelmente causará:

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 2
some-alt