Estou trabalhando com uma pergunta do livro on-line:
http://neuralnetworksanddeeplearning.com/chap1.html
Eu posso entender que, se a camada de saída adicional for de 5 neurônios de saída, provavelmente poderia definir um viés de 0,5 e um peso de 0,5 cada para a camada anterior. Mas a pergunta agora pede uma nova camada de quatro neurônios de saída - o que é mais do que suficiente para representar 10 saídas possíveis em .
Alguém pode me orientar nas etapas envolvidas na compreensão e solução desse problema?
A questão do exercício:
Existe uma maneira de determinar a representação bit a bit de um dígito adicionando uma camada extra à rede de três camadas acima. A camada extra converte a saída da camada anterior em uma representação binária, conforme ilustrado na figura abaixo. Encontre um conjunto de pesos e desvios para a nova camada de saída. Suponha que as 3 primeiras camadas de neurônios sejam tais que a saída correta na terceira camada (ou seja, a camada de saída antiga) tenha ativação pelo menos 0,99 e saídas incorretas tenham ativação menor que 0,01.
fonte
sigmoid((0 * 10) * 1)
0,5. Ao escolher números adequadamente grandes, você garante uma saída muito alta ou baixa antes do sigmóide, que produzirá muito próximo de 0 ou 1. Isso é IMO mais robusto do que a saída linear assumida na resposta do FullStack, mas ignorando isso, essencialmente nossa duas respostas são iguais.O código abaixo do SaturnAPI responde a esta pergunta. Veja e execute o código em https://saturnapi.com/artitw/neural-network-decimal-digits-to-binary-bitwise-conversion
fonte
eye(10,10)
?Prova pitônica para o exercício acima:
fonte
Uma pequena modificação na resposta do FullStack sobre os comentários de Neil Slater usando o Octave:
fonte