Função de custo de entropia cruzada na rede neural

10

Estou analisando a função de custo de entropia cruzada encontrada neste tutorial :

C=1nx[ylna+(1y)ln(1a)]

O que exatamente estamos resumindo? É claro que está acima de , mas e não mudam com . Todos os 's são inseridos no um . é definido no parágrafo acima da equação como uma função da soma de todos os 's e ' s. xyaxxaawx

Além disso, é definido como o número de entradas nesse neurônio em particular, correto? Está redigido como "o número total de itens de dados de treinamento" .n


Editar:

Estou correto ao pensar que

C=1nx[ylna+(1y)ln(1a)]

seria a função de custo para toda a rede, enquanto

C=[ylna+(1y)ln(1a)]

seria o custo para o neurônio individual? A soma não deveria estar sobre cada neurônio de saída?

Adam12344
fonte

Respostas:

14

Aqui está como eu expressaria a perda de entropia cruzada :

L(X,Y)=1ni=1ny(i)lna(x(i))+(1y(i))ln(1a(x(i)))

Aqui, é o conjunto de exemplos de entrada no conjunto de dados de treinamento e é o conjunto de rótulos correspondente para esses exemplos de entrada. O representa a saída da rede neural dada a entrada . Y = { y ( 1 ) , , y ( n ) } a ( x ) xX={x(1),,x(n)}Y={y(1),,y(n)}a(x)x

Cada um dos é 0 ou 1, e a ativação de saída é tipicamente restrita ao intervalo aberto (0, 1) usando um sigmóide logístico . Por exemplo, para uma rede de uma camada (equivalente à regressão logística), a ativação seria dada por que é um matriz de pesos é um vetor de viés. Para várias camadas, você pode expandir a função de ativação para algo como que e são a matriz de pesos e a polarização da primeira camada, e a ( x ) a ( x ) = 1y(i)a(x) Wba(x)=1

a(x)=11+eWxb
Wb Vcz(x)
a(x)=11+eWz(x)bz(x)=11+eVxc
Vcz(x) é a ativação da camada oculta na rede.

Usei o (i) sobrescrito para denotar exemplos porque achei bastante eficaz no curso de aprendizado de máquina de Andrew Ng; às vezes as pessoas expressam exemplos como colunas ou linhas em uma matriz, mas a idéia permanece a mesma.

lmjohns3
fonte
Obrigado! Portanto, isso nos daria um número único para o erro de toda a rede, em todas as nossas amostras. Para propagação traseira, preciso encontrar a derivada parcial dessa função na matriz de pesos na camada final. Como eu faria isso?
precisa saber é o seguinte
Fazer backprop é uma lata de vermes totalmente separada! A página à qual você vinculou tem uma descrição de derivadas de computação etc. e há muitas perguntas sobre backprop no stackoverflow e neste site. Tente olhar um pouco ao redor e, em seguida, postar uma pergunta separada especificamente sobre backprop.
precisa saber é o seguinte
Isso pode ser útil para você entender o backprop, que passa pelo suporte traseiro com uma rede neural de quatro camadas com uma perda de entropia cruzada em detalhes sangrentos :) cookedsashimi.wordpress.com/2017/05/06/…
YellowPillow
5

O que exatamente estamos resumindo?

O tutorial é realmente bastante explícito:

n

xΣa

a=jwjxj.

Posteriormente, no mesmo tutorial, Nielsen fornece uma expressão para a função de custo para uma rede de multicamadas e multi-neurônios (Eqn. 63):

C=1nxj[yjlnajL+(1yj)ln(1ajL)].

xj

ali_m
fonte
Obrigado pela compreensão, uma pergunta: a última que você definiu não é a entropia categórica, certo?
Tommaso Guerrini
Ele também disse em seu tutorial que "às vezes você pode assumir valores intermediários entre 0 e 1", mas a função que ele deu está toda em y e não houve entrada de ativação. Como podemos implementar valores intermediários na função st?
Feras 15/02
No tutorial de Nielsen, que mostra um perceptron de camada única, a = \ sigma (\ sum_ {j} w_j x_j) porque você possui uma função de ativação sigmóide para sua camada de saída, não a = \ sum_ {j} w_j x_j
ARAT