Princípio da aprendizagem profunda ----- rede neural totalmente conectada

Diretório de artigos da série

Princípios de aprendizagem profunda ----- método de regressão linear + gradiente descendente Princípios
de aprendizagem profunda ----- algoritmo de regressão logística
Princípios de aprendizagem profunda ----- rede neural totalmente conectada Princípios
de aprendizagem profunda ----- convolucional
profundidade da rede neural Princípio de aprendizagem ----- rede neural recorrente (RNN, LSTM)
previsão de séries temporais ----- com base no algoritmo de rede neural BP, LSTM, CNN-LSTM, previsão de carga elétrica de recurso único
previsão de séries temporais (multi -recursos) --- --- Previsão de carga de eletricidade com vários recursos com base no algoritmo de rede neural BP, LSTM, CNN-LSTM


Série de vídeos didáticos

Introdução rápida ao aprendizado profundo e ao combate real
[ensino prático] com base na previsão de carga de eletricidade de recurso único da rede neural BP
[ensino prático] com base na previsão de carga de eletricidade de recurso único da rede neural RNN, LSTM
[ensino prático] com base na rede neural CNN-LSTM consumo de eletricidade de recurso único Previsão de carga
[previsão de vários recursos] Previsão de carga elétrica de vários recursos com base na rede neural BP
[previsão de vários recursos] Previsão de carga de energia de vários recursos com base em RNN e LSTM [Multi -previsão de recursos
] Previsão de carga de energia com vários recursos baseada na rede CNN-LSTM



prefácio

  A rede neural totalmente conectada é o primeiro modelo de rede neural que a maioria das pessoas aprende sobre aprendizado profundo. Embora essa rede neural tenha sido proposta há muito tempo, é muito importante no aprendizado profundo. A razão mais importante é que o algoritmo de retropropagação é usado para atualizar os parâmetros, de modo que a rede neural possa atingir o objetivo de aprendizado contínuo, alimentando dados continuamente para atualizar os parâmetros. O algoritmo backpropagation é uma implementação específica do método gradiente descendente em uma rede neural profunda. O princípio é usar o método de gradiente descendente para atualizar continuamente os parâmetros da rede neural. Atualmente, quase todos os parâmetros da rede neural são atualizados usando o método de gradiente descendente ou o método otimizado de gradiente descendente.
  Como mencionado acima, quase todas as redes neurais atualmente usam o algoritmo de retropropagação para atualizar os parâmetros da rede neural, como a rede neural convolucional CNN, que pode resolver bem a extração de recursos de imagem e aprender bem as séries temporais. A rede neural de informações do ciclo RNN , a atualização de seus parâmetros de rede para ajustar os dados existentes é o algoritmo de retropropagação, portanto, o algoritmo de retropropagação não é exclusivo para a rede neural totalmente conectada, mas é comumente usado por redes neurais convencionais Um método de atualização de parâmetros é precisamente por causa da retropropagação algoritmo, a rede neural pode aprender continuamente informações úteis dos dados, de modo que a rede neural totalmente conectada é a base para o aprendizado profundo.
  Então, o que as redes neurais podem nos ajudar a fazer? A partir dos problemas atuais que podem ser resolvidos, podemos dividir as tarefas em duas categorias, uma de classificação e a outra de regressão. A tarefa de classificação é aprender as características dos dados de entrada e a saída é prever a categoria correspondente aos dados de entrada. Por exemplo, insira alguns dados de gato e cachorro e aprenda. Agora insira uma nova imagem e julgue se a imagem na foto é um gato ou um cachorro. A tarefa de regressão é aprender as características dos dados de entrada, e a saída é o valor previsto correspondente aos dados de entrada, como inserir recursos relacionados a dados climáticos históricos para aprendizado, agora inserir um pedaço de dados de recursos relacionados a dados climáticos históricos e emitir o valor de previsão de temperatura do segundo dia.


1. Estrutura básica da rede neural totalmente conectada

  Embora a rede neural totalmente conectada pareça um conceito biológico, sua essência é um monte de modelos matemáticos, e o modelo de rede neural totalmente conectada é composto de uma camada de entrada, uma camada oculta e uma camada de saída. A estrutura da rede neural totalmente conectada é o seguinte Como mostrado:
insira a descrição da imagem aqui
  Cada camada da rede neural é composta de neurônios, desde que você entenda a natureza dos neurônios, você pode entender a rede neural totalmente conectada. Conforme mostrado na figura, este é um diagrama de modelo de um neurônio de rede neural totalmente conectado.
insira a descrição da imagem aqui
  A expressão matemática desse neurônio é a seguinte: a = h ( w ∗ x + b ) a=h(w * x+b)a=h ( wx+b )   b é chamado de bias, que é usado para controlar a facilidade com que os neurônios são ativados, e w é um parâmetro que representa o peso de cada sinal, que é usado para controlar a importância de cada sinal, e h() é uma ativação função, que é uma função não linear.
  Parece que essa expressão matemática não é tão complicada. Após observação cuidadosa, de fato, a expressão de dados desse neurônio é muito semelhante à expressão matemática do modelo linear, mas o resultado de saída do modelo linear é calculado por uma função de ativação na saída. Adicionar uma função de ativação deve ser significativo. Existem muitos tipos de funções de ativação, mas todas elas têm uma característica comum: as funções de ativação não são lineares.
  Então, por que a rede neural precisa adicionar uma função de ativação e por que a função de ativação deve ser não linear? Em termos da estrutura da rede neural, a rede neural é dividida em uma camada de entrada, uma camada oculta e uma camada de saída; a camada oculta aqui é formada pela conexão de uma ou mais camadas da rede neural.
insira a descrição da imagem aqui  A entrada da camada oculta é a camada de entrada ou a saída da camada oculta anterior. Se uma função não linear não for usada como função de ativação, não importa o quanto o número de camadas da rede neural seja aprofundado, não importa quantas camadas ocultas existem, sempre haverá "Redes neurais sem camadas ocultas" eficientes.
  Para entender isso concretamente, considere o seguinte exemplo simples.
  Aqui consideramos a função linear h(x)=cx como a função de ativação, e a operação de y(x)=h(h(h(x))) corresponde a uma rede neural de 3 camadas. Esta operação executará y ( x ) =c ∗ c ∗ c ∗ xy(x)=c * c * c * xe ( x )=cccA operação de multiplicação de x , mas o mesmo tratamento pode ser feito por y(x)=ax (observe que aquia = c ∗ ∗ 3 a=c * * 3a=c3 ) uma operação de multiplicação (nem uma rede neural sem camada oculta) para representar. Como mostra este exemplo, os benefícios das redes multicamadas não podem ser explorados ao usar funções lineares. Portanto, para aproveitar as vantagens trazidas por múltiplas camadas ocultas, a função de ativação deve usar uma função não linear.


2. Função de ativação

  O papel das funções de ativação em redes neurais e a necessidade delas são apresentados acima. Vamos apresentar algumas funções de ativação comumente usadas em redes neurais; as funções de ativação mais comumente usadas em redes neurais são função sigmóide, função Tanh, função ReLU, função Leaky ReLU , função softmax.

2.1. Função sigmoide

  A função Sigmóide foi mencionada pela primeira vez na regressão logística e apareceu como uma solução para o problema da classificação binária. Sua faixa de valores está entre [0,1], e o valor de saída pode ser usado como a probabilidade de classificação. A fórmula e a derivada da função sigmóide são as seguintes: y = 1 1 + e − z ⇒ y ′ = y ( 1 − y ) ′ \mathrm{y}=\frac{1}{1+\mathrm{e} ^ {-\mathrm{z}}} \Rightarrow \mathrm{y}^{\prime}=\mathrm{y}(1-\mathrm{y})^{\prime}y=1+ez1y=y ( 1y )   A imagem da função correspondente e a imagem derivada correspondente são mostradas na figura abaixo:insira a descrição da imagem aquiVantagens da função Sigmóide:
  1. Simples e muito adequada para tarefas de classificação;
Desvantagens da função Sigmóide:
  1. Há um problema de desaparecimento do gradiente durante o treinamento de retropropagação;
  2 . Valor de saída O intervalo é (0,1), que é assimétrico em torno de 0;
  3. A atualização do gradiente vai longe demais em direções diferentes, dificultando a otimização e consumindo tempo de treinamento

2.2. Função Tanh

  Tanh, seu valor de saída está no intervalo [-1,1]. A expressão da função e sua correspondente expressão derivada são as seguintes: y = ez − e − zez + e − z ⇒ y ′ = 1 − y 2 \mathrm{y}=\frac{\mathrm{e}^{ \mathrm{ z}}-\mathrm{e}^{-\mathrm{z}}}{\mathrm{e}^{\mathrm{z}}+\mathrm{e}^{-\mathrm{z} }} \ Seta para a direita \mathrm{y}^{\prime}=1-\mathrm{y}^2y=ez+ezeze−z _y=1y2insira a descrição da imagem aqui

Vantagens da função Tanh:
  1. Resolva o problema de que o valor de saída da função Sigmóide é simétrico diferente de zero.
  2. O treinamento é mais rápido que a função Sigmóide e mais fácil de convergir.
Desvantagens da função Tanh:
  1. Há um problema de desaparecimento do gradiente durante o treinamento de retropropagação
  2. Função Tanh Muito semelhante à função Sigmóide.

2.3. Função ReLU

  A função ReLU é atualmente a função de ativação mais popular usada em redes neurais. A expressão de sua função e sua derivada correspondente são muito simples: y = { z se z > 0 0 se z < = 0 ⟹ y ′ = { 1 se z > 0 0 se z < = 0 y=\left\{\begin { array}{ll} z & \text { if } z>0 \\ 0 & \text { if } z<=0 \end{array} \Longrightarrow y^{\prime}= \begin{cases}1 & \ text { if } z>0 \\ 0 & \text { if } z<=0\end{casos}\right.y={ z0 se  z>0 se  z<=0y={ 10 se  z>0 se  z<=0insira a descrição da imagem aqui
Vantagens da função ReLU:
  1. Resolve o problema do desaparecimento do gradiente
  2. O cálculo é mais simples, sem a operação exponencial da função Sigmoid e da função Tanh
Desvantagens da função ReLU:
  1. Pode ocorrer morte de neurônios durante o treinamento;

2.4, função Leaky ReLU

  A função Leaky ReLU é uma variante da função ReLU. As expressões de suas funções e derivadas correspondentes são: y = { z se z > 0 az se z < = 0 ⟹ y ′ = { 1 se z > 0 a se z < = 0 \mathrm{y}=\left\{ \begin{array}{ll} \mathrm{z} & \text { if } \mathrm{z}>0 \\ \mathrm{az} & \text { if } \mathrm{z}<=0 \end{ array} \Longrightarrow \mathrm{y}^{\prime}= \begin{cases}1 & \text { if } \mathrm{z}>0 \\ \mathrm{a} & \text { if } \mathrm{ z}<=0\end{cases}\right.y={ zisso é se  z>0 se  z<=0y={ 1um se  z>0 se  z<=0

![Insira a descrição da foto aqui](https://img-blog.csdnimg.cn/0ec865c2ade644c49750170412b1644f.png
Vantagens da função Leaky ReLU:
  1. Resolva o problema da morte do neurônio de ReLU;
Desvantagens da função Leaky ReLU:
  1. Não é possível fornecer previsão de relacionamento consistente para valores de entrada positivos e negativos (diferentes funções de intervalo são diferentes)

2.5, função de ativação SoftMax

  A função SoftMax é geralmente usada em modelos de rede multiclassificação. Sua expressão: yi = ezi ∑ jezj ⟹ yi ′ = yi ( 1 − yi ) \mathrm{y}_{\mathrm{i}}=\frac{\mathrm{e}^{\mathrm{z}_{ \ mathrm{i}}}}{\sum_{\mathrm{j}} \mathrm{e}^{\mathrm{z}_{\mathrm{j}}}} \Longrightarrow \mathrm{y}_{\ mathrm {i}}^{\prime}=\mathrm{y}_{\mathrm{i}}\left(1-\mathrm{y}_{\mathrm{i}}\direita)yeu=jezjezeuyeu=yeu( 1yeu)   O intervalo de valores da função SoftMax está entre [0,1], e há várias saídas, como uma tarefa de 5 categorias, então a saída final da função SoftMax é a probabilidade correspondente a cada categoria, e essas 5 A probabilidades correspondentes às categorias somam 1. Portanto, no cenário de tarefas de multiclassificação, a última camada da rede neural geralmente usa a função SoftMax como função de ativação.


3. Propagação direta

  A saída da rede neural é finalmente produzida através da propagação direta. A propagação direta é usar os recursos de dados como entrada, inseri-los na camada oculta, multiplicar os recursos de dados e os pesos correspondentes e, em seguida, somar o viés e calcular o resultado é ativado pela função de ativação, e o valor de saída da função ativada pela função de ativação é usado como a entrada da próxima camada da camada de rede neural, então multiplicado pelo peso correspondente e somado com o viés correspondente e, em seguida, o calculado resultado é executado pela função de ativação.Ativação, repita o processo acima até a camada de saída da rede neural e, finalmente, obtenha o valor de saída da rede neural.
  Podemos entender o modelo de rede neural como uma caixa preta, inserir dados na caixa preta e obter um resultado de saída calculado pela caixa preta (claro que esse resultado é razoável e satisfatório); por exemplo, usando uma rede neural para fazer uma classificação digital Inserimos uma imagem do número 8, esperamos passar no cálculo do modelo de rede neural e a saída final é me dizer que o número nesta imagem é 8. Por exemplo, inserimos informações pessoais como altura, peso, sexo, educação, tempo de serviço e direção profissional de uma pessoa na rede neural. Por meio do cálculo da rede neural, a rede neural pode gerar a renda anual da pessoa para um ano. Aqui, o processo de entrada de dados na rede neural e saída dos resultados do cálculo da rede neural é chamado de propagação direta da rede neural.
  Vamos dar uma olhada no processo de cálculo específico da propagação do item anterior da rede neural. Conforme mostrado na figura abaixo, o modelo de rede neural consiste em uma camada de entrada, duas camadas ocultas e uma camada de saída.
insira a descrição da imagem aqui

  Neurônios a 11 , a 12 a_{11}, a_{12} da camada ocultaa11,a12计算公式如下: a 11 = sigmóide ⁡ ( x 1 w 11 + x 2 w 13 + b 1 ) a 12 = sigmóide ⁡ ( x 1 w 12 + x 2 w 14 + b 2 ) \begin{aligned} &a_{11 }=\operatorname{sigmoid}\left(x_1 w_{11}+x_2 w_{13}+b_1\right) \\ &a_{12}=\operatorname{sigmoid}\left(x_1 w_{12}+x_2 w_{ 14}+b_2\direita) \end{alinhado}a11=sigmoide( x1c11+x2c13+b1)a12=sigmoide( x1c12+x2c14+b2)  A fórmula de cálculo dos neurônios na camada de saída é a seguinte: a 21 = relu ⁡ ( a 11 w 21 + a 12 w 22 + b 3 ) y = a 21 \begin{gathered} a_{21}=\operatorname{relu }\left( a_{11} w_{21}+a_{12} w_{22}+b_3\right) \\ y=a_{21} \end{recolhidos}a21=retomar( um11c21+a12c22+b3)y=a21  Entre eles w 11 , w 12 , w 13 , w 14 , w 21 , w 22 , b 1 , b 2 , b 3 w_{11}, w_{12}, w_{13}, w_{14}, w_{ 21}, w_{22}, b_1, b_2, b_3c11,c12,c13,c14,c21,c22,b1,b2,b3As camadas ocultas correspondem aos pesos e vieses de entrada.

3.1. Caso 1

  Abaixo, usamos um exemplo específico para realizar a propagação direta da rede neural. A figura a seguir é uma cadeia de rede neural em um modelo de rede neural, que contém um caminho de entrada de propagação direta da rede neural da entrada para a saída, um completo A propagação direta do modelo de rede neural é composto por muitas dessas cadeias de propagação.
insira a descrição da imagem aqui
  Aqui assume-se que a função de ativação usada pelo primeiro nó de neurônio é sigmóide, e a função de ativação usada pelo segundo neurônio é relu. Neste momento, o processo de cálculo específico da propagação direta é o seguinte: a 11 = sigmóide ⁡ ( x 1 w 11 + b 1 ) a 21 = relu ( a 11 w 21 + b 1 ) y = a 21 \begin{recolhido} a_{11}=\operatorname{sigmoid}\left(x_1 w_{11}+b_1 \right) \ \ a_{21}=\text { relu }\left(a_{11} w_{21}+b_1\right) \\ y=a_{21} \end{recolhidos}a11=sigmoide( x1c11+b1)a21= retomar ( um11c21+b1)y=a21
  Neste momento, assume-se que a saída da rede neural x 1 = 1 x_1=1x1=1 , o rótulo correspondente à entrada do recurso da rede neural é 2. Ao mesmo tempo, os parâmetros da rede neural são inicializados e os valores inicializados sãow 11 = 0,5 , w 21 = 1 , b 1 = 0,5 , b 2 = 1 w_{11}=0,5, \quad w_{21 }=1, \quad b_1 =0.5, \quad b_2=1c11=0,5 ,c21=1 ,b1=0,5 ,b2=1 . Portanto, o processo de cálculo específico é o seguinte: a 11 = sigmóide ⁡ ( 1 × 0,5 + 0,5 ) = 0,731 a 21 = relu ⁡ ( 0,731 × 1 + 1 ) = 1,731 y = 1,731 \begin{gathered} a_{11} = \operatorname{sigmoid}(1 \times 0.5+0.5) \\ =0.731 \\ a_{21}=\operatorname{relu}(0.731 \times 1+1) \\ =1.731 \\ y=1.731 \end{ reunidos}a11=sigmóide ( 1×0,5+0,5 )=0,731a21=relu ( 0,731×1+1 )=1.731y=1.731  Os valores de w e b dados no exemplo são valores inicializados, ou seja, valores aleatórios. Obviamente, há uma pequena diferença entre o valor y de saída e o valor real do rótulo, portanto, desde que um método seja encontrado, o w preciso pode ser obtido. e b, então o y calculado pela propagação direta será infinitamente próximo ao valor do rótulo (ou igual ao valor do rótulo). Existe alguma maneira de nos ajudar a encontrar o peso w e o viés b na rede neural? A resposta é sim, esse método é o método de descida de gradiente, e o método de retropropagação é a implementação específica do método de descida de gradiente na rede neural profunda.


4. Retropropagação

  Já explicamos o método de descida de gradiente em detalhes quando falamos sobre regressão linear. Você pode consultar o artigo que ensina aprendizado profundo e combate real ----- regressão linear + método de descida de gradiente para saber mais sobre o método de descida de gradiente • Uma compreensão mais nuançada.
  Em primeiro lugar, o método de gradiente descendente precisa de uma função de perda. Use esta função de perda para calcular o erro de perda entre o valor de saída da propagação direta e o valor verdadeiro do rótulo. As funções de perda atualmente mais utilizadas são o erro quadrático médio e o erro de entropia cruzada.
  A função de erro quadrático médio é freqüentemente usada em problemas de regressão. A função de perda do erro quadrático médio é a seguinte: J ( x ) = 1 2 m ∑ i = 1 m ( f ( xi ) − yi ) 2 J(x ) =\frac{1}{2 m} \sum_{i=1}^m\left(f\left(x_i\right)-y_i\right)^2J ( x )=2m _1eu = 1m( f( xeu)yeu)2  其中f ( xi ) f\left(x_i\right)f( xeu) é o valor de saída calculado pela rede neural por meio da propagação direta,xi x_ixeusão os dados do recurso de entrada, yi y_iyeué o rótulo correspondente ao recurso dos dados de entrada. Portanto, o erro entre o valor de saída da rede neural de cálculo e o rótulo real pode ser usado.
  A função de perda de entropia cruzada é freqüentemente usada em problemas de classificação. A fórmula da função de perda de entropia cruzada é a seguinte: J ( x ) = − 1 m ∑ i = 1 m ( yi log ⁡ σ ( w ⊤ xi + b ) + ( 1 − yi ) log ⁡ ( 1 − σ ( w ⊤ xi + b ) ) ) J_{(x)}=-\frac{1}{m} \sum_{i=1}^m\left( y_i \ log \sigma\left(w^{\top} x_i+b\right)+\left(1-y_i\right) \log \left(1-\sigma\left(w^{\top} x_i+ b\ direita)\direita)\direita)J( x )=m1eu = 1m( yeupouco tempop( w xeu+b )+( 1yeu)pouco tempo( 1p( w xeu+b ) ) )  其中σ ( w ⊤ xi + b ) \sigma\left(w^{\top} x_i+b\right)p( w xeu+b ) é uma função sigmoide,xi x_ixeusão os dados do recurso de entrada, yi y_iyeué o rótulo correspondente ao recurso dos dados de entrada.
  É precisamente por causa do erro de perda entre o valor de saída e o valor real da rede neural que o método de gradiente descendente usa a perda para atualizar os parâmetros e, finalmente, a retropropagação da rede neural atualiza continuamente o w e b do neural rede, de modo que a rede neural A saída da rede e o rótulo real se aproximam constantemente, e a função de perda também se aproxima constantemente de 0. No entanto, em projetos reais, devido ao ruído nos dados, o valor da perda continuará se aproximando de 0 sob a atualização constante dos parâmetros, mas não pode ser igual a 0, por isso geralmente desenhamos as rodadas de treinamento do modelo e o alteração do valor da perda para mostrá-la.Se a perda Após um determinado número de rodadas, o valor tende a ser plano e não cai mais, considera-se que o treinamento do modelo convergiu. Conforme mostrado na figura abaixo: insira a descrição da imagem aqui  Pode ser visto na figura que o valor de perda do modelo de rede neural convergiu quando é cerca de 100. O valor de perda do modelo de treinamento subsequente tende a ser estável e não diminui mais, e o valor de perda do modelo também tende a 0.
  Agora que a função de perda está disponível, a função de perda pode ser usada para atualizar os parâmetros do modelo de rede neural. A fórmula para atualizar os parâmetros do método de gradiente descendente é a seguinte: w = w − a ∂ J ( w ) ∂ wb = b − α ∂ J ( b ) ∂ b \begin{alinhado} &w=wa \frac{\parcial J(w)}{\parcial w} \\ &b=b-\alpha \frac{\parcial J( b)} {\parcial b} \end{alinhado}c=caw∂J ( w ) _b=bab∂J ( b ) _  Dentre eles, α é a taxa de aprendizado. A taxa de aprendizado não pode ser nem muito grande nem muito pequena. Se for muito grande, pode fazer com que os parâmetros pulem o valor que minimiza a função de perda. Se for muito pequeno, pode fazer com que a atualização do parâmetro seja muito lenta. Após o término do treinamento, o modelo ainda não convergiu. Normalmente, a taxa de aprendizado é de 0,01 ou 0,001.

4.1, regra da cadeia

  No método gradiente descendente de regressão linear e regressão logística para resolver o gradiente, a regra da cadeia é usada para resolver o gradiente. A regra da cadeia é um importante ponto de conhecimento em matemática avançada e também é o conhecimento básico de retropropagação para atualização de parâmetros. A regra da cadeia é dividida em regra da cadeia univariada e regra da cadeia multivariada. Sua essência é resolver o problema de derivação de funções compostas.
  Regra da cadeia univariada:
  suponha que quando yyyuufunção de u , uuu paravvfunção de v , vvv paraxxQuando a função de x , encontre yye sobrexxDerivada de x . A fórmula específica deve ser a seguinte:    dy dx = dy dudu dvdv dx \frac{\mathrm{d} y}{\mathrm{~d} x}=\frac{\mathrm{d} y}{\mathrm{~ d} u} \frac{\mathrm{d} u}{\mathrm{~d} v} \frac{\mathrm{d} v}{\mathrm{~d} x} d xvocê _= de vocêvocê _ dv _de _ d xdv _  Usamos um exemplo específico para usar a regra de derivação em cadeia para derivação.
  Existe uma função z = u 2 z = u^2z=você2,同时u = 2 − y , y = 4 xu=2-y, \quad y=4 xvocê=2y ,y=4 x , encontrezzz sobrexxx的导数。 dzdx = dzdu ⋅ dudy ⋅ dydx = 2 u × ( − 1 ) × 4 = − 8 u \begin{aligned} \frac{dz}{dx} &=\frac{dz}{du} \cdot \frac{du}{dy} \cdot \frac{dy}{dx} \\ &=2 u \times(-1) \times 4 \\ &=-8 u \end{alinhado}d xd z=de vocêd zvocê _de _d xvocê _=2 e×( -1 ) _×4=−8u _ _  同时:u = 2 − y , y = 4 xu = 2 − 4 x \begin{recolhidos} u=2-y, \quad y=4 x \\ u=2-4 x \end{recolhidos}você=2y ,y=4x_ _você=24x_ _  因此:dzdx = − 8 u = − 8 × ( 2 − 4 x ) = 32 x − 16 \begin{aligned} \frac{dz}{dx} &=-8 u \\ &=-8 \times(2 -4 x) \\ &=32 x-16 \end{alinhado}d xd z=−8u _ _=8×( 24x ) _=32x _16  Usando a fórmula acima, a derivação em cadeia da função composta de variável única é executada.Vamos dar uma olhada na regra de derivação em cadeia multivariada.
  Assumindo que a variável z é uma função de u e v, u e v são funções de y e y é uma função de x, encontre a derivada de z em relação a x. ∂ z ∂ x = ∂ z ∂ u ⋅ ∂ u ∂ y ⋅ ∂ y ∂ x + ∂ z ∂ v ⋅ ∂ v ∂ y ⋅ ∂ y ∂ x \frac{\parcial z}{\parcial x}=\frac{ \parcial z}{\parcial u} \cdot \frac{\parcial u}{\parcial y} \cdot \frac{\parcial y}{\parcial x}+\frac{\parcial z}{\parcial v} \cdot \frac{\parcial v}{\parcial y} \cdot \frac{\parcial y}{\parcial x}x z=você zy vocêx e+v zy∂v _x e  Existe uma função z = u 2 + v 3 z=u^2+v^3z=você2+v3,同时u = 2 − y , v = 4 + y , y = 4 xu=2-y, \quad v=4+y, \quad y=4 xvocê=2y ,v=4+y ,y=4 x . ∂ v ∂ y ⋅
  ∂ y ∂ x = 2 u × ( − 1 ) × 4 + 3 v 2 × 1 × 4 = − 8 u + 12 v 2 \begin{aligned} \frac{\partial z}{\partial x} &=\frac{\ parcial z}{\parcial u} \cdot \frac{\parcial \mu}{\parcial y} \cdot \frac{\parcial y}{\parcial x}+\frac{\parcial z}{\parcial v} \cdot \frac{\parcial v}{\parcial y} \cdot \frac{\parcial y}{\parcial x} \\ &=2 u \times(-1) \times 4+3 v^2 \times 1 \times 4 \\ &=-8 u+12 v^2 \end{alinhado}x z=você zy∂μ _x e+v zy∂v _x e=2 e×( -1 ) _×4+3 v2×1×4=−8u _ _+12 v2  Também porque: u = 2 − 4 x , V = 4 + 4 xu=2-4 x, V=4+4 xvocê=24 x ,V=4+4 x  解得:∂ z ∂ x = 192 x 2 + 542 x + 176 \frac{\partial z}{\partial x}=192 x^2+542 x+176x z=192x _2+542 x+Acima de 176   está o processo de cálculo e as regras da regra da cadeia.

4.2. Caso 2

  Eu aprendi sobre a regra de derivação da regra da cadeia da função composta antes, e agora posso usar a regra da derivação da cadeia para resolver o gradiente dos parâmetros de rede neural correspondentes, de modo a usar o método de descida do gradiente para retropropagação para atualizar os parâmetros. Na explicação do caso anterior de propagação direta, uma cadeia de rede neural foi usada para calcular a propagação direta e agora a mesma cadeia de rede neural é usada para explicar os parâmetros de retropropagação. Pode ser visto na figura que a cadeia de rede neural tem um total de 4 parâmetros, ou seja, w 11 , w 21 , b 1 , b 2 w_{11}, w_{21}, b_1, b_2c11,c21,b1,b2, e os quatro parâmetros e o valor de entrada x_1 têm valores iniciais correspondentes, respectivamente, que são w 11 = 0,5 , w 21 = 1 , b 1 = 0,5 , b 2 = 1 , x 1 = 1 w_{11}=0,5 , w_ {21}=1, b_1=0,5, b_2=1, x_1=1c11=0,5 ,c21=1 ,b1=0,5 ,b2=1 ,x1=1 . Ao mesmo tempo, y = 1,731 calculado pela propagação direta e o valor do rótulo é 2. Agora use o erro entre o valor de saída calculado pela propagação direta da rede neural e o rótulo de valor real para executar a propagação reversa para atualizar o gradiente. insira a descrição da imagem aqui  A função de perda aqui usa a função de perda de erro quadrado médio. Primeiro, o erro é calculado para o parâmetro mais próximow 21 , b 2 w_{21}, b_2c21,b2O gradiente de:∂ J ( w 21 ) ∂ w 21 = ∂ J ( w 21 ) ∂ y ⋅ ∂ y ∂ a 21 ⋅ ∂ a 21 ∂ w 21 = ∂ 1 2 ( y − 2 ) 2 ∂ y × ∂ a 21 ∂ a 21 × ∂ relu ( a 11 w 21 + b 1 ) ∂ w 21 = ( y − 2 ) × 1 × ∂ relu ⁡ ( a 11 w 21 + b 1 ) ∂ ( a 11 w 21 + b 1 ) × ∂ ( a 11 w 21 + b 1 ) ∂ w 21 = ( y − 2 ) × a 11 × ∂ relu ( a 11 w 21 + b 1 ) ∂ ( a 11 w 21 + b 1 ) \begin{aligned} \frac{\ parcial J\esquerda(w_{21}\direita)}{\parcial w_{21}} &=\frac{\parcial J\esquerda(w_{21}\direita)}{\parcial y} \cdot \frac{ \parcial y}{\parcial a_{21}} \cdot \frac{\parcial a_{21}}{\parcial w_{21}} \\ &=\frac{\parcial \frac{1}{2}( y-2)^2}{\partial y} \times \frac{\partial a_{21}}{\partial a_{21}} \times \frac{\partial relu\left(a_{11} w_{21 }+b_1\direita)}{\parcial w_{21}} \\ &=(y-2) \times 1 \times \frac{\partial \operatorname{relu}\left(a_{11} w_{21}+b_1\right)}{\partial\left(a_{11} w_{ 21}+b_1\direita)} \times \frac{\parcial\esquerda(a_{11} w_{21}+b_1\direita)}{\parcial w_{21}} \\ &=(y-2) \ vezes a_{11} \times \frac{\relu parcial\left(a_{11} w_{21}+b_1\right)}{\partial\left(a_{11} w_{21}+b_1\right)} \end{alinhado}w21J( w21)=yJ( w21)um21 ew21um21=y21( y2 )2×um21um21×w21re l u( um11c21+b1)=( y2 )×1×( um11c21+b1)retomar( um11c21+b1)×w21( um11c21+b1)=( y2 )×a11×( um11c21+b1)re l u( um11c21+b1)  Porque: a 11 w 21 + b 1 = 1,731 > 0 a_{11} w_{21}+b_1=1,731>0a11c21+b1=1.731>0  所以:∂ relu ⁡ ( a 11 w 21 + b 1 ) ∂ ( a 11 w 21 + b 1 ) = 1 \frac{\partial \operatorname{relu}\left(a_{11} w_{21}+b_1 \direita)}{\parcial\esquerda(a_{11} w_{21}+b_1\direita)}=1( um11c21+b1)retomar( um11c21+b1)=1  最终:∂ J ( w 21 ) ∂ w 21 = ( y − 2 ) × a 11 = ( 1,731 − 2 ) × 0,731 = − 0,196639 \begin{aligned} \frac{\partial J\left(w_{21} \right)}{\partial w_{21}} &=(y-2) \times a_{11} \\ &=(1.731-2) \times 0.731=-0.196639 \end{aligned}w21J( w21)=( y2 )×a11=( 1.7312 )×0,731= 0,196639  Da mesma forma, pode-se obter: ∂ J ( b 2 ) ∂ b 2 = − 0,269 \frac{\partial J\left(b_2\right)}{\partial b_2}=-0,269b2J( b2)=0,269   Em seguida, calcule os dois parâmetros mais distantes do errow 21 , b 2 w_{21}, b_2c21,b2O gradiente de:∂ J ( w 11 ) ∂ w 11 = ∂ J ( w 11 ) ∂ y ⋅ ∂ y ∂ a 21 ⋅ ∂ a 21 ∂ u 11 ⋅ ∂ a 11 ∂ w 11 = ∂ 1 2 ( y − 2 ) 2 ∂ y ⋅ ∂ a 21 ∂ a 21 ⋅ ∂ relu ( a 11 w 21 + b 1 ) ∂ a 11 ⋅ ∂ sigmoide ⁡ ( x 1 w 11 + b 1 ) ∂ w 11 = ( y − 2 ) × 1 × ∂ relu ⁡ ( a 11 w 21 + b 1 ) ∂ ( a 11 w 21 + b 1 ) ⋅ ∂ ( a 11 w 21 + b 1 ) ∂ a 11 ⋅ ∂ sigmoide ⁡ ( x 1 w 11 + b 1 ) ∂ w 11 = ( y − 2 ) × w 21 ⋅ ∂ sigmóide ⁡ ( x 1 w 11 + b 1 ) ∂ w 11 = ( y − 2 ) × w 21 × sigmóide ⁡ ( x 1 w 11 + b 1 ) ( 1 − sigmóide ⁡ ( x 1 w 11 + b 1 ) x 1 = ( 1,731 − 2 ) × 1 × 0,731 × ( 1 − 0,731 ) × 1 = − 0,269 × 0,731 × 0,269 × 1 = − 0,052895 \begin{aligned} &\frac{ \parcial J\esquerda(w_{11}\direita)}{\parcial w_{11}}=\frac{\parcial J\esquerda(w_{11}\direita)}{\parcial y} \cdot \frac{ \parcial y}{\parcial a_{21}} \cdot \frac{\parcial a_{21}}{\parcial u_{11}} \cdot \frac{\parcial a_{11}}{\parcial w_{11 }} \\ &=\frac{\parcial \frac{1}{2}(y-2)^2}{\parcial y} \cdot \frac{\parcial a_{21}}{\parcial a_{21}} \cdot \ frac{\relu parcial\left(a_{11} w_{21}+b_1\right)}{\partial a_{11}} \cdot \frac{\partial \operatorname{sigmoid}\left(x_1 w_{11} +b_1\right)}{\partial w_{11}} \\ &=(y-2) \times 1 \times \frac{\partial \operatorname{relu}\left(a_{11} w_{21}+ b_1\right)}{\partial\left(a_{11} w_{21}+b_1\right)} \cdot \frac{\partial\left(a_{11} w_{21}+b_1\right)}{ \partial a_{11}} \cdot \frac{\partial \operatorname{sigmoid}\left(x_1 w_{11}+b_1\right)}{\partial w_{11}} \\ &=(y-2) \times w_{21} \cdot \frac{\partial \operatorname{sigmoid}\left(x_1 w_{11}+b_1\right)}{\partial w_{11}} \\ &=(y-2) \ vezes w_{21} \times \operatorname{sigmoid}\left(x_1 w_{11}+b_1\right)\left(1-\operatorname{sigmoid}\left(x_1 w_{11}+b_1\right) x_1\ certo. \\ &=(1.731-2) \times 1 \times 0,731 \times(1-0,731) \times 1 \\ &=-0,269 \times 0,731 \times 0,269 \times 1 \\ &=-0,052895 \end{aligned}w11J( w11)=yJ( w11)um21 evocê11um21w11um11=y21( y2 )2um21um21um11re l u( um11c21+b1)w11sigmoide( x1c11+b1)=( y2 )×1×( um11c21+b1)retomar( um11c21+b1)um11( um11c21+b1)w11sigmoide( x1c11+b1)=( y2 )×c21w11sigmoide( x1c11+b1)=( y2 )×c21×sigmoide( x1c11+b1)( 1sigmoide( x1c11+b1)x1=( 1.7312 )×1×0,731×( 10,731 )×1=0,269×0,731×0,269×1= 0,052895  Da mesma forma, pode ser calculado: ∂ J ( b 1 ) ∂ b 1 = − 0,052895 \frac{\partial J\left(b_1\right)}{\partial b_1}=-0,052895b1J( b1)=0,052895   Através do cálculo acima, o valor do gradiente do parâmetro correspondente pode ser obtido da seguinte forma:∂ J ( w 21 ) ∂ w 21 = − 0,196639 , ∂ J ( b 2 ) ∂ b 2 = − 0,269 , ∂ J ( w 11 ) ∂ w 11 = − 0,052895 , ∂ J ( b 1 ) ∂ b 1 = − 0,052895 \frac{\partial J\left(w_{21}\right)}{\partial w_{21}}=-0,196639, \frac{ \parcial J\esquerda(b_2\direita)}{\parcial b_2}=-0,269, \frac{\parcial J\esquerda(w_{11}\direita)}{\parcial w_{11}}=- 0,052895, \ frac{\parcial J\esquerda(b_1\direita)}{\parcial b_1}=-0,052895w21J( w21)=0,196639 ,b2J( b2)=0,269 ,w11J( w11)=0,052895 ,b1J( b1)=0,052895   é arredondado para 3 casas decimais para facilitar o cálculo:∂ J ( w 21 ) ∂ w 21 = − 0,197 , ∂ J ( b 2 ) ∂ b 2 = − 0,269 , ∂ J ( w 11 ) ∂ w 11 = − 0,053 , ∂ J ( b 1 ) ∂ b 1 = − 0,053 \frac{\partial J\left(w_{21}\right)}{\partial w_{21}}=-0,197, \quad \frac{ \ parcial J\esquerda(b_2\direita)}{\parcial b_2}=-0,269, \quad \frac{\parcial J\esquerda(w_{11}\direita)}{\parcial w_{11}}=-0,053 , \quad \frac{\parcial J\esquerda(b_1\direita)}{\parcial b_1}=-0,053w21J( w21)=0,197 ,b2J( b2)=0,269 ,w11J( w11)=0,053 ,b1J( b1)=0,053   Agora que o gradiente está disponível, os parâmetros podem ser atualizados usando o gradiente, assumindo que a taxa de aprendizado neste momento é 0,1. O processo de atualização de parâmetros é o seguinte:w 11 = 0,5 − 0,1 × ( − 0,053 ) = 0,505 w 21 = − 1 − 0,1 × ( − 0,197 ) = 1,020 b 1 = 0,5 − 0,1 × ( − 0,053 ) = 0,505 b 2 = 1 − 0,1 × ( − 0,269 ) = 1,027 \begin{aligned} &w_{11}=0,5-0,1 \times(-0,053)=0,505 \\ &w_{21}=-1-0,1 \times(-0,197)= 1,020 \\ &b_1=0,5-0,1 \times(-0,053)=0,505 \\ &b_2=1-0,1 \times(-0,269)=1,027 \end{aligned}c11=0,50,1×( 0,053 )=0,505c21=10,1×( 0,197 )=1.020b1=0,50,1×( 0,053 )=0,505b2=10,1×( 0,269 )=1.027  Os parâmetros atualizados são: w 11 = 0,505 w 21 = 1,020 b 1 = 0,505 b 2 = 1,027 \begin{aligned} &w_{11}=0,505 \\ &w_{21}=1,020 \\ &b_1=0,505 \\ &b_2= 1,027 \end{alinhado}c11=0,505c21=1.020b1=0,505b2=1.027  Calcule a propagação direta com os parâmetros atualizados: a 11 = sigmóide ⁡ ( 1 × 0,505 + 0,505 ) = 0,733 a 21 = relu ⁡ ( 0,733 × 1,02 + 1,027 ) = 1,775 y = 1,775 \begin{gathered} a_{ 11}= \operatorname{sigmoid}(1 \times 0,505+0,505) \\ =0,733 \\ \begin{array}{c} a_{21}=\operatorname{relu}(0,733 \times 1,02+1,027) \\ =1,775 \ \ \quad y=1.775 \end{array} \end{recolhidos}a11=sigmóide ( 1×0,505+0,505 )=0,733a21=relu ( 0,733×1.02+1.027 )=1.775y=1.775  Neste momento, o resultado final da saída é y = 1,775. Pode-se ver que este valor está mais próximo do valor real 2 do que o valor da saída de propagação direta 1,731 sem atualizar os parâmetros anteriores. Este é o resultado após uma rodada de atualização. Continuamos a fornecer O modelo é alimentado com dados, e o modelo usa continuamente o método de descida do gradiente para realizar retropropagação para atualizar os parâmetros até que o modelo convirja e não diminua mais. Portanto, a retropropagação pode efetivamente ajudar a rede neural a aprender as informações nos dados, e o algoritmo de retropropagação também é o núcleo da rede neural.


Resumir

  Este artigo usa um grande número de casos e cálculos para explicar a rede neural totalmente conectada e se esforça para entender a rede neural totalmente conectada com base em casos detalhados. A rede neural totalmente conectada é a rede neural de entrada básica para aprendizado profundo. é também a rede neural de acompanhamento. Um microcosmo, porque o processo básico da rede neural é a inicialização dos parâmetros da rede neural, alimenta os dados para propagação direta, calcula o erro entre o valor de saída da rede neural e o real valor, use o erro para executar a retropropagação para atualizar os parâmetros e, em seguida, realizar continuamente a propagação direta e a retropropagação para atualizações de parâmetros até que o modelo converja. O processo subsequente de aprendizado do modelo de rede neural convolucional e rede neural cíclica também segue esse processo, mas ao aprender esses dois modelos, mais ênfase é colocada nas características do próprio modelo.

Acho que você gosta

Origin blog.csdn.net/didiaopao/article/details/126483377
Recomendado
Clasificación