Fe de erratas

Primera edición, segunda impresión, febrero de 2019 & Edición en dos volúmenes, marzo de 2019

TBD


Primera edición, primera impresión, noviembre de 2018


El algoritmo de propagación de errores

[Página 298] Al ir desgranando paso a paso el algoritmo de propagación de errores, donde aparece el siguiente fragmento de código:

for k=layers-1:1
    for j=1:layer[k].outputs()
        error[k][j] = dot( layer[k+1].w[j], delta[k+1][j] );
        delta[k][j] = error[k][j] * activation.diff(layer[k].z[j]);

debería aparecer lo siguiente, al ser delta[k+1] un vector y dot(u,v) una operación vectorial:

for k=layers-1:1
    for j=1:layer[k].outputs()
        error[k][j] = dot( layer[k+1].w[j], delta[k+1] );
        delta[k][j] = error[k][j] * activation.diff(layer[k].z[j]);

Softmax

[Página 588] En la implementación de una capa softmax, donde aparece el siguiente fragmento de código para calcular la entrada neta de las neuronas de la capa:

function y = forward(x)
    for j=1:m
        z = b[j];
        for i=1:n
            z += w[j][i]*x[i];
    m = max(z);
    y = exp(z-m);
    s = sum(y);
    y = y/s;

debería aparecer lo siguiente en el cálculo de los elementos individuales del vector z:

function y = forward(x)
    for j=1:m
        z[j] = b[j];
        for i=1:n
            z[j] += w[j][i]*x[i];
    m = max(z);
    y = exp(z-m);
    s = sum(y);
    y = y/s;

O, mejor aún, utilizando notación vectorial:

function y = forward(x)
    for j=1:m
        z[j] = b[j] + dot(w[j],x);
    mx = max(z);
    y = exp(z-mx);
    s = sum(y);
    y = y/s;

Es más, si, como se hace en otras partes del libro, asumimos que el sesgo de las neuronas viene dado por el peso asociado a una entrada adicional fija (x[0]=1) o, directamente, no se utiliza en la capa softmax, el código anterior se podría simplificar de la siguiente manera:

function y = forward(x)
    for j=1:m
        z[j] = dot(w[j],x);
    mx = max(z);
    y = exp(z-mx);
    s = sum(y);
    y = y/s;


PD: Gracias a María del Mar Alguacil por identificar la presencia de esas erratas en la primera impresión del libro.