índice
3.1 Do perceptron à rede neural
3.1.1 Exemplos de redes neurais:
3.2.1 Tipo de função de ativação:
3.2.3 Gráfico da função de classe
3.2.2 Comparação da função degrau e função sigmóide:
3.3 Operação de matriz multidimensional:
3.3.1 O produto interno da rede neural:
3.4. Implementação de uma rede neural de três camadas
3.5.1 Três tipos de funções de saída
3.5.2 O problema de estouro da função softmax
3.5.3 Características da função Softmax:
3.5.4 O número de neurônios na camada de saída
3.6 Reconhecimento de dígitos manuscritos
Processamento único e processamento em lote
Três, rede neural
Resolva o problema: O capítulo anterior pode usar AND ou não para resolver vários problemas de função, mas os pesos são definidos manualmente.Este capítulo começa com a realização de redes neurais e usa dados existentes para aprender os pesos apropriados como parâmetros para resolver os problemas acima.
3.1 Do perceptron à rede neural
3.1.1 Exemplos de redes neurais:
A rede neural é na verdade igual ao perceptron
3.1.2 Conversão de função:
Referência: Diagrama de fórmula compilado pelo colega Fang
De acordo com a conversão da função na figura acima, podemos converter para h (x), que é a função de ativação
A função de ativação é a ponte entre o perceptron e a rede neural
3.2 Função de ativação
3.2.1 Tipo de função de ativação:
Função de ativação para um valor limite como um limite, uma vez que a entrada excede o limite , a saída muda. Essa função é chamada de "função de etapa" .
A função de ativação é dividida em uma função degrau e uma função sigmóide.A função degrau é para mudar a saída quando o valor de entrada excede um certo limite.
Onde exp (−x) significa, h (x) é também a função de perda da classificação de termos comuns
Código:
3.2.3 Gráfico da função de classe
Função de etapa e realização de imagem :
imagem da função sigmóide:
3.2.2 Comparação da função degrau e função sigmóide:
Função de etapa | função sigmóide |
---|---|
Não suave | Suave |
Apenas 2 valores (valor binário) | Valores reais ilimitados |
As semelhanças entre os dois é que estão no intervalo entre 0-1
A função de ativação da rede neural deve usar uma função não linear .
Além disso, sigmóide é uma curva não linear , ao contrário da função linear (linha reta) h (x) = cx (c é uma constante), porque a função linear não possui camada oculta no perceptron multicamadas, como
O mesmo é y = ax, que não pode tirar proveito de várias camadas.
3.2.3 Função ReLU:
Saída x diretamente quando maior que 0, saída 0 quando menor ou igual a 0
Implementação da função: onde maxinum retorna o valor máximo
O efeito é mostrado na figura:
3.3 Operação de matriz multidimensional:
np.ndim (A) Saída A dimensão da matriz
A forma de saída de np.shape possui vários componentes. O resultado é uma tupla.
3.3.1 O produto interno da rede neural:
Use np.dot (produto escalar de matrizes multidimensionais), apenas operações de matriz
3.4. Implementação de uma rede neural de três camadas
Significado do símbolo:
Análise de princípio:
1) Realize o 0º à primeira camada:
nós sabemos
Portanto, há o primeiro nível de ponderação :
Código:
2) Realize a transformação (função sigmóide) da função de ativação h () de a1 para z1 na figura abaixo :
Código:
3) Da mesma forma que a primeira para a segunda camadas, repita as etapas acima diretamente:
Código:
4) A segunda à terceira camadas (camada de saída) são basicamente as mesmas que as etapas acima, mas a função de ativação é diferente :
5) Implementação geral do código:
Nota: Geralmente, a função de identidade pode ser usada para problemas de regressão , a função sigmóide pode ser usada para problemas de classificação binária e a função softmax pode ser usada para problemas de classificação multivariada . 3.5 Design da camada de saída:
3.5.1 Três tipos de funções de saída
1) Função de identidade : é produzida diretamente como está, usada em problemas de regressão
2) função sigmóide :, usado em problemas de classificação binários.
3) A função Softmax :, utilizado em vários problemas de classificação.
Dentre elas, a função softmax significa que o sinal de entrada é afetado entre cada saída , conforme mostrado na figura:
Código:
3.5.2 O problema de estouro da função softmax
Todos nós sabemos que e ^ x explodirá quando x for grande , o que causará estouro , então precisamos melhorar
3.5.3 Características da função Softmax:
Podemos ver que a saída y está entre 0-1, e sua soma é 1, então podemos transformá-lo em um problema de probabilidade , ou seja, quanto maior a saída, maior sua probabilidade. Da figura acima, Pode-se ver que y [2] é o maior, então a resposta é a segunda categoria; além disso, e ^ x é uma função monotonicamente crescente, portanto, no exemplo acima, a relação entre o tamanho de um elemento e o tamanho de y permanece inalterada e y [2] é o maior. Então, na verdade, não precisamos da função softmax de forma alguma, e podemos saber qual probabilidade é a maior observando o elemento a (como softmax requer operação exponencial, a quantidade de cálculo é muito grande).
3.5.4 O número de neurônios na camada de saída
Como pode ser visto na figura acima, o número de neurônios de saída é determinado pelo número de categorias. Se o resultado de saída for 10 categorias de 0-9, então a saída dos neurônios é 10.
3.6 Reconhecimento de dígitos manuscritos
A seguir, usaremos nosso algoritmo em aplicações práticas, o exemplo clássico de reconhecimento de dígitos manuscritos
Os comentários do código são os seguintes, então não vou descrevê-los todos.
A função load_mnist retorna os dados MNIST lidos na forma de "(imagem de treinamento, rótulo de treinamento), (imagem de teste, rótulo de teste)".
Número de exibição
Saída de rede neural
Processamento único e processamento em lote
Com base no exemplo acima, sabemos que a camada de entrada tem 784 neurônios (28 * 28) e a camada de saída tem 10 neurônios. Supondo que haja 50 e 100 neurônios nas camadas 1-2 da camada oculta, temos o seguinte processamento de código :
1) Processamento único:
Usando o conhecimento da função acima, podemos agora julgar formalmente a precisão entre a imagem e o rótulo após o treinamento:
2) Processamento em lote:
A partir do exemplo acima (acima), sabemos a forma da matriz após 1 entrada de imagem (1 * 28 * 28 ) e saída (probabilidade de 10 categorias)
Abaixo, vamos empacotar o exemplo acima em 100 imagens de uma vez para cálculo
Os benefícios do processamento em lote: cada vez que calculamos uma imagem, io tira apenas 1 foto por vez . Agora, pegamos 100 io por vez para calcular , porque a velocidade de cálculo é mais rápida que a velocidade de io, o processamento em lote mudará no cálculo geral Mais rápido
Código:
resumo:
Como no capítulo anterior, não consideramos como encontrar os pesos específicos e a saída por meio das funções de cada camada, formando assim uma rede neural simples.
Os parâmetros acima serão explicados mais tarde