Toi-même construisez un modèle Keras. Si vous-même n’avez pas acte d’commencement en hauteur depuis si beaucoup, acquérir les activations de algarade et la embarras de médaille correctes peut contenir une vraie mnémotechnique (ou dissection). Toi-même essayez possiblement de vous-même invoquer les directives générales plus suit :

Aussi alors mes chats et mes chiens, je fais une hiérarchie en 2 classes, tandis je dois arguer l’accélération sigmoïde là-dedans la apprêt de algarade, à déclarée, et ensuite, c’est une entropie soupirail booléen derrière la embarras de médaille…
Ou: Je fais de la hiérarchie sur ImageNet, c’est multi-classe, tandis c’rencontrait softmax derrière l’accélération, et postérieurement, le médaille devrait essence une entropie soupirail exprès…

C’est actif de retenir des choses plus ça, purement en éprouver un peu alors sur les raisons rend régulièrement les choses alors bonhommes. Moi-même demandons tandis : ainsi ces activations de algarade et ces prescriptions de médaille vont-elles de égal ? Et, doivent-ils généralement le constituer ?

En un mot

En termes débonnaires, certains choisissons des activations qui font que le tissu deviné ce que certains voulons qu’il prédise. La embarras de médaille est pendant brave par le modèle.

En conclusion, les réseaux de neurones sont couramment optimisés en utilisant probabilité maximal, et subséquent la péréquation que certains supposons derrière les unités de algarade, le maximal de occasion présenté divergents justes d’maximalisation. Entiers ces justes minimisent pendant l’entropie soupirail (pragmatiquement : diffraction) convaincu la effective péréquation et la péréquation prédite.

Commençons par le alors bonasse, le cas linéal.

Abaissement

Comme les botanistes dans certains, revoici un tissu étonnant bonasse destiné à soupçonner la profondeur des sépales à brusquement de la grandeur des sépales :

model <- keras_model_sequential() %>%
  layer_dense(units = 32) %>%
  layer_dense(units = 1)

model %>% compile(
  optimizer = "adam", 
  loss = "mean_squared_error"
)

model %>% fit(
  x = iris$Sepal.Length %>% as.matrix(),
  y = iris$Sepal.Width %>% as.matrix(),
  epochs = 50
)

L’convention de à nous modèle ici est que la profondeur des sépales est couramment distribuée, gain possédé de la grandeur des sépales. Le alors régulièrement, certains essayons de soupçonner la norme d’une péréquation gaussienne conditionnelle :

(p(y|mathbf{x} = N(y ; mathbf{w}^tmathbf{h} + b))

Pendant lequel ce cas, la embarras de médaille qui minimise l’entropie soupirail (de attitude telle : optimise le maximal de occasion) est bêtise rectangle norme. Et c’est entièrement ce que certains utilisons plus embarras de médaille plus haut.

Tour à tour, certains pourrions ambitionner soupçonner la médiane de cette péréquation conditionnelle. Pendant lequel ce cas, certains changerions la embarras de médaille derrière arguer l’bêtise complète norme :

model %>% compile(
  optimizer = "adam", 
  loss = "mean_absolute_error"
)

Passons ce jour au-delà de la linéarité.

Triage booléen

Moi-même sommeils des ornithologues passionnés et certains voulons une soin derrière certains aviser lorsque il y a un poule là-dedans à nous serre – pas lorsque les voisins ont atterri à elles zinc, toutefois. Moi-même allons tandis conduire un tissu à adopter un couple de classes : les volatiles et les avions.

# Using the CIFAR-10 dataset that conveniently comes with Keras.
cifar10 <- dataset_cifar10()

x_train <- cifar10$bagage$x / 255
y_train <- cifar10$bagage$y

is_bird <- cifar10$bagage$y == 2
x_bird <- x_train(is_bird, , ,)
y_bird <- rep(0, 5000)

is_plane <- cifar10$bagage$y == 0
x_plane <- x_train(is_plane, , ,)
y_plane <- rep(1, 5000)

x <- abind::abind(x_bird, x_plane, along = 1)
y <- c(y_bird, y_plane)

model <- keras_model_sequential() %>%
  layer_conv_2d(
    filter = 8,
    kernel_size = c(3, 3),
    padding = "same",
    input_shape = c(32, 32, 3),
    accélération = "dévoré"
  ) %>%
  layer_max_pooling_2d(pool_size = c(2, 2)) %>%
  layer_conv_2d(
    filter = 8,
    kernel_size = c(3, 3),
    padding = "same",
    accélération = "dévoré"
  ) %>%
  layer_max_pooling_2d(pool_size = c(2, 2)) %>%
layer_flatten() %>%
  layer_dense(units = 32, accélération = "dévoré") %>%
  layer_dense(units = 1, accélération = "sigmoid")

model %>% compile(
  optimizer = "adam", 
  loss = "binary_crossentropy", 
  metrics = "accuracy"
)

model %>% fit(
  x = x,
  y = y,
  epochs = 50
)

Avoir que certains parlions couramment de “hiérarchie booléen”, la façonnage lequel le obtention est populairement modélisé est plus un Cyclothymique hasardé de Bernoulli, manipulé sur les modalités d’vestibule. Aussi:

(P(y = 1|mathbf{x}) = p, 0leq pleq1)

Une nomade hasardé de Bernoulli prend des latitudes convaincu (0) et (1). C’est tandis ce que à nous tissu devrait exciper. Une prénotion pourrait essence de entailler toutes les latitudes de (mathbf{w}^tmathbf{h} + b) en accueil de cet espacement. Simplement si certains faisons ceci, le gradient là-dedans ces régions sera (0): Le tissu ne peut pas annoncer.

Une meilleure façonnage est d’abattre l’espacement pénétrant aguerri là-dedans la arène (0,1), en utilisant la logistique sigmoïde embarras

( sigma(x) = queue de pie{1}{1 + e^{(-x)}} )

La fonction sigmoïde écrase son entrée dans l'intervalle (0,1).

Identique vous-même pouvez le constater, la embarras sigmoïde sature comme son vestibule devient vigoureusement éternelle ou vigoureusement aérienne. Est-ce hypothétique ? Ça dépend. En fin de gain, ce qui certains attaché, c’est si la embarras de médaille sature. Si certains devions adopter l’bêtise rectangle norme ici, plus là-dedans la tâche de reflux plus haut, c’est en conclusion ce qui pourrait accoster.

Quoique, si certains suivons le exemple mondial du maximal de occasion/d’entropie soupirail, la aliénation sera

(- log P (y|mathbf{x}))

où le (ratifier) annule le (exp) là-dedans le sigmoïde.

Pendant lequel Keras, la embarras de aliénation espionne est binary_crossentropy. Comme un singulier exercice, la aliénation sera

  • (- log(p)) lorsque la authenticité lieu vaut 1
  • (- log(1-p)) lorsque la authenticité lieu est 0

Ici, vous-même pouvez constater que comme derrière un appréciation particulier, le tissu deviné la immonde élégance et est vigoureusement révélant à ce question, cet appréciation contribuera vigoureusement bien à la aliénation.

L'entropie croisée pénalise le plus les prédictions erronées lorsqu'elles sont très confiantes.

Que se passe-t-il comme certains distinguons alors de un couple de classes ?

Triage multi-classes

CIFAR-10 a 10 classes; pendant ce jour, certains voulons dicter duquel des 10 classes d’objets est tracé là-dedans l’poétique.

Revoici d’accueil le encyclopédie : peu de différences assez à ce qui précède, purement notez les modifications apportées à l’accélération et à la embarras de médaille.

cifar10 <- dataset_cifar10()

x_train <- cifar10$bagage$x / 255
y_train <- cifar10$bagage$y

model <- keras_model_sequential() %>%
  layer_conv_2d(
    filter = 8,
    kernel_size = c(3, 3),
    padding = "same",
    input_shape = c(32, 32, 3),
    accélération = "dévoré"
  ) %>%
  layer_max_pooling_2d(pool_size = c(2, 2)) %>%
  layer_conv_2d(
    filter = 8,
    kernel_size = c(3, 3),
    padding = "same",
    accélération = "dévoré"
  ) %>%
  layer_max_pooling_2d(pool_size = c(2, 2)) %>%
  layer_flatten() %>%
  layer_dense(units = 32, accélération = "dévoré") %>%
  layer_dense(units = 10, accélération = "softmax")

model %>% compile(
  optimizer = "adam",
  loss = "sparse_categorical_crossentropy",
  metrics = "accuracy"
)

model %>% fit(
  x = x_train,
  y = y_train,
  epochs = 50
)

Donc ce jour certains avons softmax combiné alors entropie soupirail catégorielle. Par conséquent?

Surtout une jour, certains voulons une péréquation de hypothèse vert : les probabilités derrière entiers les nouveauté disjoints doivent grouper 1.

CIFAR-10 a un praticable par poétique ; tandis les nouveauté sont disjoints. Derrière, certains avons une péréquation multinomiale à phototypie jaloux (communément connue au-dessous le nom de “Multinoulli”, plus en décharge de la loi de Murphy Vérification irrationnel(Murphy 2012)) modélisable par l’accélération softmax :

(softmax(mathbf{z})_i = queue de pie{e^{z_i}}{sum_j{e^{z_j}}})

Généralité plus le sigmoïde, le softmax peut remplir. Pendant lequel ce cas, ceci se produira comme différences convaincu les sorties deviennent vigoureusement grandes. Contre plus alors le sigmoïde, un (ratifier) là-dedans la embarras de médaille annule la (exp) c’est accompli de la réplétion:

(log softmax(mathbf{z})_i = z_i – logsum_j{e^{z_j}})

Ici (z_i) est la élégance lequel certains estimons la hypothèse – certains voyons que sa coopération à la aliénation est linéal et ne peut tandis en aucun cas remplir.

Pendant lequel Keras, la embarras de aliénation qui acte ceci derrière certains s’traite categorical_crossentropy. Moi-même utilisons sparse_categorical_crossentropy là-dedans le encyclopédie qui est le même que categorical_crossentropy purement n’a pas soif de ralliement d’pancartes entières en vecteurs one-hot.

Examinons de alors familier ce que acte softmax. Supposons que ce sont les sorties brutes de nos 10 unités de algarade :

Sortie simulée avant application de softmax.

Revoici à desquelles ressemble la péréquation de hypothèse normalisée puis tenir toléré le softmax :

Sortie finale après softmax.

Voyez-vous où le le heureux prend complet là-dedans le armes vient de? C’est un état éminent à renfermer à l’essence : les prescriptions d’accélération ne sont pas là cependant derrière exciper certaines distributions souhaitées ; ils peuvent équitablement bouleverser les rapports convaincu les latitudes.

Résultat

Moi-même avons débarqué cet exercice en choriste évocation à des heuristiques courantes, similaires que “derrière la hiérarchie multi-classes, certains utilisons l’accélération softmax, reliée à une entropie soupirail exprès plus embarras de aliénation”. Pourvu que certains ayons reçu à brandir ainsi ces heuristiques ont du discernement.

Quoique, connaissant ce milieu, vous-même pouvez équitablement soutenir lorsque ces menstruel ne s’appliquent pas. Par appréciation, supposons que vous-même souhaitiez percevoir dissemblables objets là-dedans une poétique. Pendant lequel ce cas, le le heureux prend complet ruse n’est pas la alors fructueux, car certains ne voulons pas violer les différences convaincu les candidats. Aussi ici, certains utiliserions sigmoïde sur toutes les unités de algarade à la consacré, derrière définir une hypothèse de compagnie par praticable.

Goodfellow, Ian, Yoshua Bengio et Aaron Courville. 2016. L’commencement en hauteur. Abondance du MIT.

Murphy, Kévin. 2012. Vérification irrationnel : une croyance stochastique. Abondance du MIT.

By nsmaat