Se os parâmetros são o que a rede aprende (os pesos e vieses), os hiperparâmetros são as configurações que você define antes do treinamento começar. Eles são como as “alavancas” e “botões” que você ajusta para controlar como o aprendizado vai acontecer.
Pense em um carro:
– Parâmetros: São a posição do volante, aceleração e freio que o motorista (algoritmo) ajusta enquanto dirige.
– Hiperparâmetros: São características do carro que você escolhe antes da viagem: tipo de pneu, calibragem do pneu, tipo de combustível. Isso influencia como o carro vai se comportar na pista.
Categorias de Hiperparâmetros
Vamos dividir os hiperparâmetros em três categorias principais para facilitar o entendimento.
1. Hiperparâmetros de Arquitetura (O “Shape” da Rede)
São os que definem a estrutura da rede.
| Hiperparâmetro | O que é? | Onde se aplica? | Impacto |
|---|---|---|---|
| Número de Camadas Ocultas | Quantas camadas intermediárias a rede terá. | Feedforward e RNNs. | + Camadas = + Capacidade de aprender padrões complexos, mas também + risco de overfitting e + custo computacional. |
| Número de Neurônios por Camada | A “largura” de cada camada. | Feedforward e RNNs. | Similar ao acima. Muitos neurônios podem “decorar” os dados em vez de aprender. |
| Tipo de Camada | Que tipo de operação a camada faz. | Arquiteturas específicas. | Ex: Em RNNs, você escolhe entre uma célula LSTM, GRU ou RNN Simples. Cada uma tem comportamento diferente de memória. |
2. Hiperparâmetros de Treinamento (O “Como” Aprender)
São os que controlam o algoritmo de aprendizado.
| Hiperparâmetro | O que é? | Analogia | Impacto |
|---|---|---|---|
| Taxa de Aprendizado (Learning Rate – LR) | O tamanho do “passo” que a rede dá em direção ao erro menor. | O tamanho do passo de um explorador no escuro. | Crítico! • Alta: Aprende rápido, mas pode “pular” por cima da solução ótima e nunca acertar. • Baixa: Aprende devagar, mas com mais precisão. Pode ficar presa em soluções ruins. |
| Batch Size | Quantos exemplos a rede “olha” de uma vez antes de calcular o erro e ajustar os pesos. | Estudar resolvendo 1 questão por vez (batch=1) vs. fazer um simulado com 100 questões (batch=100) e depois ver os erros. | • Pequeno: Treina rápido por atualização, mas é “nervoso” (instável). • Grande: Estimativa do erro mais precisa, mas exige mais memória e pode generalizar pior. |
| Épocas (Epochs) | Quantas vezes o algoritmo vai ver o conjunto completo de dados. | Quantas vezes o aluno leu o livro inteiro. | • Poucas: Underfitting (não aprendeu o suficiente). • Muitas: Overfitting (decora as respostas em vez de aprender). |
| Otimizador (Optimizer) | O algoritmo específico que faz o ajuste dos pesos. | O estilo de estudo: “repetição”, “mapa mental”, “ensinar outros”. | Ex: SGD (simples), Adam (mais esperto, adaptativo), RMSprop. Adam é geralmente um bom padrão para começar. |
3. Hiperparâmetros de Regularização (O “Antióverfitting”)
São os que previnem que a rede decore os dados de treino e não generalize para dados novos.
| Hiperparâmetro | O que é? | Como funciona? |
|---|---|---|
| Dropout Rate | Durante o treino, “desliga” aleatoriamente uma porcentagem dos neurônios a cada iteração. | Força a rede a não depender de um neurônio específico, distribuindo o conhecimento. É como treinar um time onde, a cada jogada, alguns jogadores são sorteados para ficar de fora. |
| Regularização L1/L2 (Weight Decay) | Adiciona uma “multa” no cálculo do erro para pesos muito grandes. | Impede que a rede dê importância exagerada a uma única característica. Mantém os pesos “enxutos”. |
| Early Stopping | Parar o treinamento antes do fim das épocas. | Você monitora o erro nos dados de validação. Quando o erro de validação começar a subir (mesmo o de treino descendo), você para. É o momento em que a rede começou a decorar. |
Hiperparâmetros Específicos para Redes Recorrentes (RNNs)
As RNNs adicionam alguns hiperparâmetros extras devido à sua natureza sequencial.
| Hiperparâmetro | O que é? | Impacto |
|---|---|---|
| Número de Passos de Tempo (Time Steps) | O tamanho da sequência que a rede vai “olhar para trás”. | Ex: Para prever a palavra “filme” em “O filme é bom”, quantas palavras anteriores ela precisa ver? |
| Gradiente de Recorte (Gradient Clipping) | Um “corta-vento” para o gradiente. | Em RNNs, o gradiente pode explodir (valores enormes). O clipping define um valor máximo. Se o gradiente passar disso, ele é “cortado” para aquele limite. Essencial para RNNs. |
| Estado Inicial (Initial State) | Como a “memória” da rede começa. | Normalmente começa com zeros, mas em alguns casos (ex: séries temporais), o estado final de um batch pode ser passado para o próximo. |
O Grande Desafio: Como Escolher os Hiperparâmetros?
Não existe uma fórmula mágica. É um processo empírico (tentativa e erro). As técnicas principais são:
1. Grid Search: Você define uma lista de valores para testar (ex: LR = [0.1, 0.01, 0.001]) e testa todas as combinações. É exaustivo e caro.
2. Random Search: Em vez de testar todos, você testa combinações aleatórias. Surpreendentemente, é mais eficiente que o Grid Search, pois cobre melhor o espaço de busca.
3. Bayesian Optimization (AutoML): Algoritmos inteligentes que “aprendem” quais hiperparâmetros tendem a dar bons resultados e focam a busca nessas regiões. (Ex: Bibliotecas como Optuna, Hyperopt).
Resumo para Levar pra Vida
– Parâmetros: A rede aprende (pesos e vieses).
– Hiperparâmetros: Você escolhe (taxa de aprendizado, número de camadas, dropout).
Dica de Ouro para Iniciantes:
Não tente acertar tudo de primeira. Comece com valores padrão (ex: Adam como otimizador, LR=0.001, ReLU, 2 camadas ocultas). Treine, veja o resultado e mude um hiperparâmetro por vez para entender o efeito de cada um.