Propriétés pour la construction d'un réseau neuronal multicouche Perceptron utilisant Keras?

8

J'essaie de construire et de former un réseau neuronal multicouche perceptron qui prédit correctement ce que le président a gagné dans quel comté pour la première fois. J'ai les informations suivantes pour les données d'entraînement.

Population totale Âge médian% BachelorDeg ou supérieur Taux de chômage Revenu par habitant Total des ménages Taille moyenne du ménage% Logement occupé par le propriétaire% Logement occupé par le locataire% Logement vacant Valeur médiane du logement Croissance de la population Croissance du ménage Croissance du revenu par habitant Gagnant Gagnant

C'est 14 colonnes de données d'entraînement et la 15e colonne est ce que le résultat devrait être.

J'essaie d'utiliser Keras pour construire un réseau neuronal perceptron multicouche, mais j'ai besoin d'aide pour comprendre quelques propriétés et les avantages du contre de choisir différentes options pour ces propriétés.

  1. FONCTION D'ACTIVATION

Je sais que ma première étape consiste à trouver une fonction d'activation. J'ai toujours étudié les réseaux de neurones utilisant des fonctions d'activation sigmoïdes. Une fonction d'activation sigmoïde est-elle la meilleure? Comment savez-vous lequel utiliser? Keras offre en outre la possibilité d'utiliser une fonction d'activation softmax, softplus, relu, tanh, linear ou hard_sigmoid. Je suis d'accord avec quoi que ce soit, mais je veux juste être en mesure de comprendre pourquoi et les avantages et les inconvénients.

  1. INITIALISATIONS DE PROBABILITÉ

Je sais que les initialisations définissent la distribution de probabilité utilisée pour définir les poids aléatoires initiaux des couches Keras. Les options que Keras donne sont uniformes lecun_uniform, normal, identité, orthogonale, zéro, glorot_normal, glorot_uniform, he_normal et he_uniform. Comment ma sélection affecte-t-elle mon résultat final ou mon modèle? Cela ne devrait-il pas avoir d'importance parce que nous «entraînons» quelque soit le modèle aléatoire avec lequel nous commençons et que nous trouvons de toute façon une pondération plus optimale des couches?

pr338
la source

Réponses:

6

1) L'activation est un choix d'architecture, qui se résume à un choix d'hyperparamètre. Vous pouvez faire un argument théorique pour utiliser n'importe quelle fonction, mais la meilleure façon de le déterminer est d'en essayer plusieurs et d'évaluer sur un ensemble de validation. Il est également important de se rappeler que vous pouvez mélanger et assortir les activations de différentes couches.

2) En théorie oui, de nombreuses initialisations aléatoires seraient les mêmes si vos données étaient extrêmement bien comportées et votre réseau idéal. Mais dans la pratique, les initialisations visent à garantir que le gradient démarre de manière raisonnable et que le signal peut être propagé correctement. Dans ce cas, il est probable que l'une de ces initialisations fonctionnerait de la même manière, mais la meilleure approche consiste à les essayer, en changeant si vous obtenez des résultats indésirables.

jamesmf
la source