Comment traiter les problèmes à la frontière avec la prise de décision des réseaux de neurones artificiels de? Voici une simple référence de code

Essentiellement, le réseau de neurones artificiels (ANN) est un paradigme de traitement de l'information, qui a été inspirée par le processus de traitement de l'information du cerveau humain, qui est actuellement une très large gamme d'applications dans le domaine de l'apprentissage machine.

, Beaucoup de gens ne peuvent pas savoir cependant est que, ANN dès les années 1940, il a été présenté. Dans ces premières années, ANN a suscité des inquiétudes dans l'industrie dans une certaine mesure, mais il n'y a pas de puissance de calcul de matériel puissant et actuel algorithme de formation de modèle efficace, donc ANN bientôt disparu. Mais avec les progrès de développement des temps, la technologie est devenu presque synonyme de l'intelligence artificielle ANN actuelle, en particulier avec l'encodeur automatique, les réseaux de convolution, régularisation Dropout (régularisation de décrochage scolaire) et une variété d'autres technologies voient le jour, l'ANN la performance a été considérablement améliorée.

recherches médicales montrent que: le réseau de neurones du cerveau humain des neurones, qui sont reliés entre eux par des synapses, des signaux d'émission. En général, seulement lorsque la valeur du signal reçu d'un neurone dépasse un certain seuil, il transmet ce signal aux autres neurones connectés à celui-ci. De plus, le réseau de neurones du cerveau humain peut établir une connexion entre les neurones de la relation, et même eux-mêmes et leurs connexions. Si vous copiez cette structure de liaison du cerveau humain, il sera difficile de former le réseau de neurones artificiels, donc dans la plupart des scénarios d'application pratique, les chercheurs ont généralement à faire des réseaux de neurones artificiels à Streamline et les restrictions (telles que leur propre et ne peut pas propres connexions, etc.).

Dans le cas où le MLP (en perceptrons multi-couches), les neurones sont disposés en couches, chaque neurone et le neurone peut transmettre un signal à la couche suivante. Une première couche composée de la donnée d'entrée, la sortie finale de la dernière couche de la valeur prédite, dite couche de sortie. Ici, tous les neurones sont reliés par un synapses soi-disant (synapses).

Quand une personne avec un signal de seuil correspondant à un réseau de transport du cerveau typiquement utilisé dans la fonction sigmoïde pour calculer ANN neurone de sortie. Expression et fonction de l'image représentée sur la Fig.

En général, le processus de formation ANN peut être divisé en deux étapes comme suit:

1. face, par l'intermédiaire du ANN aux données de sortie provenant de l'entrée de la transmission, est appelé précompensation (feed forward).

2. Le transfert inverse, à partir de la sortie de chaque neurone est calculée erreur, alors le résultat de calcul pour ajuster les poids de réseau est appelé propagation arrière (rétropropagation).

Dans ce qui suit, nous allons d'abord essayer de traiter les questions transfrontalières avec décision l'algorithme de régression logistique traditionnelle, suivie par l'introduction de ANN, en revanche, nous verrons ANN puissant. Il convient de noter, ici nous ne mis en place une structure simple à trois ANN (à savoir la figure ci-dessus la couche cachée a 3 couches), et, nous avons omis quelques-unes des bases des mathématiques et de l'introduction à l'apprentissage de la machine, y compris la classification, la régularisation descente de gradient, et autres. De plus, nous avons également utilisé une partie de la bibliothèque d'apprentissage de la machine prête à l'emploi en Python.

La régression logistique

Nous passons d'abord aux questions limites de décision avec la méthode de régression logistique, qui est la formation d'un classificateur de régression logistique. Ici, les valeurs d'entrée du classificateur est x ou y de l'ensemble de données, la sortie est le résultat de la classification nous prédisons (dans le présent exemple est égal à 0 ou 1, représentant les deux couleurs de rouge et bleu).

Le code suivant déclare les bibliothèques de soutien nous avons besoin.

# les importations de l'emballage

matplotlib.pyplot importation comme plt

importer numpy comme np

importation sklearn

sklearn.datasets d'importation

importation sklearn.linear_model

importation matplotlib

Le code suivant génère une limite des besoins d'ensemble de données de décision par la méthode de nombres aléatoires.

# Générer un jeu de données et le tracer

np.random.seed (0)

X, y = sklearn.datasets.make_moons (200, bruit = 0,20)

plt.scatter (X , X , s = 40, c = y, cmap = plt.cm.Spectral)

plt.show

Le point semblable à la distribution de l'ensemble de données est tracée ci-dessous.

Avec l'aide de scikit-learn la bibliothèque, nous utilisons cette formation de données classificateur de régression logistique, le code est suit comme.

# Former le classificateur de régression logistique

NSI = sklearn.linear_model.LogisticRegressionCV

clf.fit (X, y)

# Tracer la limite de décision (le procédé est dans la principale liaison de code fourni à la fin)

plot_decision_boundary (lambda x: clf.predict (x))

plt.title ( "régression logistique")

Les résultats de la sortie finale sont les suivantes.

On peut voir la classification des données en ligne droite occasion de régression logistique est divisée en deux rouges et bleues catégories, bien que les résultats ont été tout à fait satisfaisante (vous pouvez voir la plupart du rouge, le point bleu a été déconnecté), mais si nous voulons pour obtenir des résultats plus précis (c.-à-complètement rouge, point bleu séparément), de toute évidence, il a besoin d'une solution plus puissante, qui doit être réalisé plus tard ANN.

Artificial Neural Network

La construction de laisser un trois ANN pour résoudre le problème, et voir les résultats tout différents par rapport à la régression logistique.

Le premier choix de la dimension couche cachée (couche cachée) (à savoir le nombre de nuds), généralement considérés comme plus noeuds, nous pouvons réaliser des fonctions plus complexes. Mais la dimension élevée nécessite une formation énorme modèle de puissance de calcul et de soutien dans le temps et prédire les résultats, mais aussi un grand nombre de paramètres peut également causer surapprentissage (surapprentissage) problème. Alors, comment choisir la taille de la dimension de la couche cachée, ou dépendre du problème spécifique à résoudre, mais il est plus d'un art plutôt que de la science. Ci-dessous, nous verrons comment la dimension affecte la sortie de la couche cachée de ANN, dimensions ANN donnée ici d'abord toutes les règles les plus élémentaires de quelques-uns.

1. ANN a une couche d'entrée, en général, une couche cachée et une couche de sortie.

2. Le nombre de noeuds dans la couche d'entrée est déterminée par les dimensions des données d'entrée.

3. Le nombre de noeuds dans la couche de sortie est déterminée par le nombre de classes de sortie. (Dimensions dans le présent mode de réalisation 2 est la couche de sortie, étant donné que nous avons seulement deux résultats 0 et 1).

Maintenant, nous devons également sélectionner une fonction d'activation de la couche cachée (fonction d'activation) est. Une fonction d'activation de la couche est responsable de l'entrée en un signal de sortie, généralement fonction non linéaire utilisée pour ajuster la non-linéarité est supposée. La option la plus commune à activer les fonctions comprennent: la fonction tangente hyperbolique (tanh), la fonction sigmoïde Relu (Rectifié unités linéaires) et d'autres fonctions. Dans le présent mode de réalisation utilise une fonction de tangente hyperbolique tanh.

Parce que nous voulons que le résultat final est la probabilité, et donc la fonction d'activation couche de sortie fonction de sélection Softmax serait plus approprié, ce qui est la meilleure façon de convertir un résultat numérique brut de probabilité. Ici, la fonction Softmax peut être considérée comme une généralisation fonction logistique pour la classification multiple (généralisation).

Comment prédiction ANN?

Comme décrit ci-dessus, l'exercice entier peut être divisé en deux processus. Tout d'abord, avant la transmission, à savoir les données de sortie de formation de flux à partir de la borne d'entrée, pour obtenir une valeur de prédiction finale, qui est un procédé d'alimentation avant. Deuxième passage inverse, à savoir le paramètre d'apprentissage (apprentissage les paramètres), trouve un ensemble de plus combinaison appropriée de paramètres tels que l'erreur de formation ANN est réduite au minimum. Nous allons généralement appelions la fonction de mesure de la perte de fonction d'erreur (fonction de perte), puisque nous Softmax ci-dessus fonction d'activation en fonction de la couche de sortie, selon ainsi à la pratique générale, où la perte d'entropie croisée (perte de la fonction d'entropie croisée) comme une perte fonction.

la mise en uvre ANN

Tout d'abord, nous définissons des variables et des paramètres pour le processus ultérieur de descente de gradient, comme suit.

num_examples = len (X) # la taille de l'ensemble de la formation

nn_input_dim = 2 # dimension de la couche d'entrée

nn_output_dim = 2 # dimension de la couche de sortie

# Paramètres descente de gradient

epsilon = 0,01 # le taux d'apprentissage pour une descente de gradient

reg_lambda = 0,01 # la force de régularisation

fonction de perte est alors définie.

def calculate_loss (modèle):

sortie de prédiction des définitions de fonctions auxiliaires (fonction auxiliaire) (0 ou 1).

def prédire (modèle, x):

Enfin, on définit la fonction de formation ANN, qui utilise un dérivé de rétro-propagation tel que défini ci-dessus pour la descente en gradient discontinu (de descente de gradient discontinu).

def build_model (nn_hdim, nombre_passes = 20000, print_loss = Faux):

Les prédictions de ANN

Ici, nous utilisons le point de données mentionnée ci-dessus pour commencer la formation ANN.

# Construire un modèle avec une couche cachée 3 dimensions

model = build_model (3, print_loss = True)

# Tracer la limite de décision

plot_decision_boundary (lambda x: prédire (modèle, x))

plt.title ( « Décision limite pour la taille de la couche cachée 3 »)

On peut voir à partir des résultats ci-dessus, avec l'augmentation du nombre de la formation, plus les prévisions du modèle. couche cachée de faible dimension peut bien saisir les données sur les tendances générales et les dimensions supérieures peut-être parce que l'effet mémoire et produit un ajustement, mais la forme générale est toujours correcte. Si nous voulons tester le modèle sur d'autres ensembles de données, puis masquer le modèle de dimension plus petite couche peut obtenir de meilleurs résultats parce qu'ils sont mieux généralisation. En outre, bien que plus peut être utilisé pour compenser la grande dimension de régularisation due à une sur-ajustement, mais le choix d'une dimension appropriée de la couche cachée est une solution plus économique.

Le code source complet: https: //github.com/NSAryan12/nn-from-scratch/blob/master/nn-from-scratch.ipynb

Source: moyenne, Lei Feng réseau compilé article Lei Feng réseau copyright

Lei Feng réseau de lecture connexe:

Interprétation de l'ingénieur logiciel Google: étude approfondie Fort de la fonction d'activation qui?

Étude lourde MIT: Artificial Neural Network, explorer l'importance biologique de l'inhibition des neurones

Comment l'intelligence artificielle matériel réseau de neurones pour optimiser la conception?

MG Unicorn États Warring 1/100 jusqu'à changement
Précédent
« Jedi survivre » 4 × 4 nouvelle carte ouvrira test / Apple sortira une nouvelle couleur ou iPhone X / « A Bite de Chine » exposition à écran tour de main | l'inspiration du matin lecture
Prochain
22 ans séance photo de fruits, 29 ans, dans la plupart top model rentable du monde, et deux se sont mariés en gagnant réel riche dans la vie!
L'avenir du disque dur mobile SanDisk Extreme vitesse de l'état solide évaluation du disque dur mobile
La vente de magasin 0,5 yuans, « Su maudire trois fils », une semaine plus de 300 personnes pour obtenir un appartement
10 ans de mariage, sa femme a appelé sa mère ne pleure pas maman, mère: aussi longtemps que le fils filial sur la ligne
haute Comparable entièrement équipée Unicorn brut HG 1/144 RX-78 up
UCG Prix 2017 Auditions résultats 9 Octobre et vote jeu
Panda Fufu succès de chirurgie orchidectomie C'est la première population panda géant à Chengdu
tante de 50 ans il y a un groupe de l'âge de 18 ans fille valeur nominale, donc gardes manger des agents de conservation Eh bien!
Samsung Note9 détails exposition page: caméra S9 + AI avec des caméras pour une variété d'options de couleurs
71 applications publiées en 2017, Tencent est devenu « App champion cédant. » Cette année
K12 s'il y a trop de bulles de marché?
Shu apprendre à parler au nom des membres à parler de l'économie réelle: construire une base solide pour le développement de haute qualité