To update the weights and bias of a neuron in the layer preceding the layer preceding the output layer, we need to compute the error gradients of the neurons in the layer preceding the output layer with respect to their inputs, and then propagate these gradients backward through the network using the chain rule to obtain the error gradients of the neurons in the layer preceding the layer preceding the output layer with respect to their inputs. Let's denote the error gradient of a neuron in the layer preceding the output layer with respect to its input as δprecedingδpreceding. Let's denote the weights and bias of a neuron in the layer preceding the layer preceding the output layer as uiui and dd, respectively. Let's denote the input vector to the neuron in the layer preceding the layer preceding the output layer as y=[y1,y2,…,yp]y=[y1,y2,…,yp], where pp is the number of inputs to the neuron. Let's denote the output of the neuron in the layer preceding the layer preceding the output layer as yactualyactual. Then, the error gradient of the neuron in the layer preceding the layer preceding the output layer with respect to its input is given by:

δpreceding=yactual(1−yactual)∑j=1nδprecedingjvjδpreceding=yactual(1−yactual)∑j=1nδprecedingjvj \delta\_{\text{preceding}} = y\_{\text{actual}} (1 - y\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{preceding}\_j} v\_{j}δpreceding​=yactual​(1−yactual​)j=1∑n​δprecedingj​​vj​Here, nn is the number of neurons in the layer preceding the output layer, and δprecedingjδprecedingj and vjvj denote the error gradient and weight of the jj-th neuron in the layer preceding the output layer, respectively.

Using this error gradient, we can update the weights and bias of the neuron in the layer preceding the layer preceding the output layer using the gradient descent algorithm. The weight update rule is given by:

ui←ui−α∂MSE∂uiui←ui−α∂MSE∂ui u\_i \leftarrow u\_i - \alpha \frac{\partial \text{MSE}}{\partial u\_i}ui​←ui​−α∂ui​∂MSE​The gradient of the MSE objective function with respect to the weight uiui is given by:

∂MSE∂ui=−δprecedingyi∂MSE∂ui=−δprecedingyi \frac{\partial \text{MSE}}{\partial u\_i} = -\delta\_{\text{preceding}} y\_i∂ui​∂MSE​=−δpreceding​yi​Substituting the expression for δprecedingδpreceding, we get:

∂MSE∂ui=−yactual(1−yactual)∑j=1nδprecedingjvjyi∂MSE∂ui=−yactual(1−yactual)∑j=1nδprecedingjvjyi \frac{\partial \text{MSE}}{\partial u\_i} = -y\_{\text{actual}} (1 - y\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{preceding}\_j} v\_{j} y\_i∂ui​∂MSE​=−yactual​(1−yactual​)j=1∑n​δprecedingj​​vj​yi​Substituting this expression into the weight update rule, we get:

ui←ui+αyactual(1−yactual)∑j=1nδprecedingjvjyiui←ui+αyactual(1−yactual)∑j=1nδprecedingjvjyi u\_i \leftarrow u\_i + \alpha y\_{\text{actual}} (1 - y\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{preceding}\_j} v\_{j} y\_iui​←ui​+αyactual​(1−yactual​)j=1∑n​δprecedingj​​vj​yi​Similarly, the bias update rule is given by:

d←d−α∂MSE∂dd←d−α∂MSE∂d d \leftarrow d - \alpha \frac{\partial \text{MSE}}{\partial d}d←d−α∂d∂MSE​The gradient of the MSE objective function with respect to the bias dd is given by:

∂MSE∂d=−δpreceding∂MSE∂d=−δpreceding \frac{\partial \text{MSE}}{\partial d} = -\delta\_{\text{preceding}}∂d∂MSE​=−δpreceding​Substituting the expression for δprecedingδpreceding, we get:

\frac{\partial \text{MSE}}{\partial d
출력 레이어 앞의 레이어에 있는 뉴런의 가중치와 바이어스를 업데이트하려면 입력에 대한 출력 레이어 앞의 레이어에 있는 뉴런의 오차 기울기를 계산한 다음 체인 규칙을 사용하여 네트워크를 통해 이 기울기를 역전파하여 입력에 대한 출력 레이어 앞의 레이어에 있는 뉴런의 오차 기울기를 얻어야 합니다. 입력에 대한 출력 레이어 선행 레이어에 있는 뉴런의 오차 기울기를 Δ선행δ선행으로 표시해 보겠습니다. 출력 레이어에 선행하는 레이어에 있는 뉴런의 가중치와 바이어스를 각각 uiui와 dd로 표시하겠습니다. 출력 레이어 앞의 레이어에 있는 뉴런에 대한 입력 벡터를 y=[y1,y2,...,yp]y=[y1,y2,...,yp]로 표시하고, 여기서 pp는 뉴런에 대한 입력의 개수입니다. 출력 레이어 앞의 레이어에 있는 뉴런의 출력을 실제 출력 레이어 앞의 레이어에 있는 뉴런의 출력으로 표시해 봅시다. 그러면 입력에 대한 출력 레이어 앞의 레이어에 있는 뉴런의 오차 기울기는 다음과 같이 주어집니다:δpreceding=yactual(1-yactual)∑j=1nδprecedingjvjδpreceding=yactual(1-yactual)∑j=1nδprecedingjvj \delta\_{\text{preceding}} = y\_{\text{actual}} (1 - y\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{preceding}\_j} v\_{j}δpreceding=yactual(1-yactual)j=1∑nδprecedingjvj여기서, nn은 출력 레이어 앞의 레이어에 있는 뉴런의 개수이며, δprecedingjδprecedingj와 vjvj는 각각 출력 레이어 앞의 레이어에 있는 jj번째 뉴런의 오차 기울기와 가중치를 나타냅니다.이 오차 기울기를 사용하여 기울기 하강 알고리즘을 사용하여 출력 레이어 앞의 레이어에 있는 뉴런의 가중치와 바이어스를 업데이트할 수 있습니다. 가중치 업데이트 규칙은 다음과 같습니다:ui←ui-α∂MSE∂uiui←ui-α∂MSE∂ui u\_i \leftarrow u\_i - \알파 \frac{\부분 \text{MSE}}{\부분 u\_i}ui←ui-α∂ui∂MSE가중치 uiui에 대한 MSE 목적 함수의 기울기는 다음과 같이 주어집니다:∂MSE∂ui=-δp 선행yi∂MSE∂ui=-δ 선행yi \frac{\partial \text{MSE}}{\partial u\_i} = -\delta\_{\text{p 선행}} y\_i∂ui∂MSE=-δ 선행yi δ 선행δ 선행에 대한 식을 대입하면 다음과 같이 구할 수 있습니다:∂MSE∂ui=-yactual(1-yactual)∑j=1nδprecedingjvjyi∂MSE∂ui=-yactual(1-yactual)∑j=1nδprecedingjvjyi \frac{\partial \text{MSE}}{\partial u\_i} = -y\_{\text{actual}} (1 - y\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{preceding}\_j} v\_{j} y\_i∂ui∂MSE=-yactual(1-yactual)j=1∑nδprecedingjvjyi 이 식을 가중치 업데이트 규칙에 대입하면 다음과 같이 계산할 수 있습니다:UI←UI+αyactual(1-yactual)∑j=1nδprecedingjvjyiUI←UI+αyactual(1-yactual)∑j=1nδprecedingjvjyi U\_I \왼쪽줄 U\_I + \알파 Y\_{\text{actual}} (1 - y\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{preceding}\_j} v\_{j} y\_iui←ui+αyactual(1-yactual)j=1∑nδprecedingjvjyi비슷하게, 바이어스 업데이트 규칙은 다음과 같이 주어집니다:d←d-α∂MSE∂dd←d-α∂MSE∂d d \왼쪽 화살표 d - \알파 \frac{\부분 \text{MSE}}{\부분 d}d←d-α∂d∂MSE편향성 dd에 대한 MSE 목적 함수의 기울기는 다음과 같이 주어집니다:∂MSE∂d=-δp 선행∂MSE∂d=-δ 선행 \frac{\partial \text{MSE}}{\partial d} = -\delta\_{\text{p 선행}}∂d∂MSE=-δp 선행식 δp 선행δ 선행에 대입하면 다음과 같이 구할 수 있습니다:\프랙{\부분 \text{MSE}}{\부분 d