To update the weights and bias of a neuron in the preceding layer, we need to compute the error gradients of the neurons in 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 preceding layer with respect to their inputs. Let's denote the error gradient of a neuron in the output layer with respect to its input as δoutputδoutput. Let's denote the weights and bias of a neuron in the preceding layer as vivi and cc, respectively. Let's denote the input vector to the neuron in the preceding layer as z=[z1,z2,…,zm]z=[z1,z2,…,zm], where mm is the number of inputs to the neuron. Let's denote the output of the neuron in the preceding layer as zactualzactual. Then, the error gradient of the neuron in the preceding layer with respect to its input is given by:

δpreceding=zactual(1−zactual)∑j=1nδoutputjwjδpreceding=zactual(1−zactual)∑j=1nδoutputjwj \delta\_{\text{preceding}} = z\_{\text{actual}} (1 - z\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{output}\_j} w\_{j}δpreceding​=zactual​(1−zactual​)j=1∑n​δoutputj​​wj​Here, nn is the number of neurons in the output layer, and δoutputjδoutputj and wjwj denote the error gradient and weight of the jj-th neuron in the output layer, respectively.

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

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

∂MSE∂vi=−δprecedingzi∂MSE∂vi=−δprecedingzi \frac{\partial \text{MSE}}{\partial v\_i} = -\delta\_{\text{preceding}} z\_i∂vi​∂MSE​=−δpreceding​zi​Substituting the expression for δprecedingδpreceding, we get:

∂MSE∂vi=−zactual(1−zactual)∑j=1nδoutputjwjzi∂MSE∂vi=−zactual(1−zactual)∑j=1nδoutputjwjzi \frac{\partial \text{MSE}}{\partial v\_i} = -z\_{\text{actual}} (1 - z\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{output}\_j} w\_{j} z\_i∂vi​∂MSE​=−zactual​(1−zactual​)j=1∑n​δoutputj​​wj​zi​Substituting this expression into the weight update rule, we get:

vi←vi+αzactual(1−zactual)∑j=1nδoutputjwjzivi←vi+αzactual(1−zactual)∑j=1nδoutputjwjzi v\_i \leftarrow v\_i + \alpha z\_{\text{actual}} (1 - z\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{output}\_j} w\_{j} z\_ivi​←vi​+αzactual​(1−zactual​)j=1∑n​δoutputj​​wj​zi​Similarly, the bias update rule is given by:

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

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

∂MSE∂c=−zactual(1−zactual)∑j=1nδoutputjwj∂MSE∂c=−zactual(1−zactual)∑j=1nδoutputjwj \frac{\partial \text{MSE}}{\partial c} = -z\_{\text{actual}} (1 - z\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{output}\_j} w\_{j}∂c∂MSE​=−zactual​(1−zactual​)j=1∑n​δoutputj​​wj​Substituting this expression into the bias update rule, we get
이전 레이어에 있는 뉴런의 가중치와 바이어스를 업데이트하려면 입력에 대한 출력 레이어에 있는 뉴런의 오차 기울기를 계산한 다음 체인 규칙을 사용하여 네트워크를 통해 이 기울기를 역전파하여 입력에 대한 이전 레이어에 있는 뉴런의 오차 기울기를 얻어야 합니다. 입력에 대한 출력 레이어에 있는 뉴런의 오차 기울기를 δ출력δ출력으로 표시해 보겠습니다. 이전 층에 있는 뉴런의 가중치와 바이어스를 각각 vivi와 cc로 표시해 봅시다. 이전 층의 뉴런에 대한 입력 벡터를 z=[z1,z2,...,zm]z=[z1,z2,...,zm]으로 표시하고, 여기서 mm는 뉴런에 대한 입력의 개수입니다. 앞의 레이어에 있는 뉴런의 출력을 zactualzactual로 표시해 봅시다. 그러면 입력에 대한 선행 레이어 뉴런의 오차 기울기는 다음과 같이 주어집니다:δpreceding=zactual(1-zactual)∑j=1nδoutputjwjδpreceding=zactual(1-zactual)∑j=1nδoutputjwj \delta\_{\text{preceding}} = z\_{\text{actual}} (1 - z\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{output}\_j} w\_{j}δpreceding=zactual(1-zactual)j=1∑nδoutputjwj여기서, nn은 출력 레이어의 뉴런 수이며, δoutputjδoutputj와 wjwj는 각각 출력 레이어에서 jj번째 뉴런의 오차 기울기와 가중치를 나타냅니다.이 오차 기울기를 사용하여 경사 하강 알고리즘을 사용하여 이전 레이어에 있는 뉴런의 가중치와 바이어스를 업데이트할 수 있습니다. 가중치 업데이트 규칙은 다음과 같습니다:vi←vi-α∂MSE∂vivi←vi-α∂MSE∂vi v\_i \왼쪽줄 v\_i - \알파 \frac{\부분 \text{MSE}}{\부분 v\_i}vi←vi-α∂vi∂MSE가중값 vivi에 대한 MSE 목적 함수의 기울기는 다음과 같이 주어집니다:∂MSE∂vi=-δprecedingzi∂MSE∂vi=-δprecedingzi \frac{\partial \text{MSE}}{\partial v\_i} = -\delta\_{\text{preceding}}. z\_i∂vi∂MSE=-δprecedingzi이 식을 δprecedingδpreceding에 대입하면 다음과 같이 구할 수 있습니다:∂MSE∂vi=-zactual(1-zactual)∑j=1nδoutputjwjzi∂MSE∂vi=-zactual(1-zactual)∑j=1nδoutputjwjzi \frac{\partial \text{MSE}}{\partial v\_i} = -z\_{\text{actual}}. (1 - z\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{output}\_j} w\_{j} z\_i∂vi∂MSE=-zactual(1-zactual)j=1∑nδoutputjwjzi이 식을 가중치 업데이트 규칙에 대입하면 다음과 같이 계산할 수 있습니다:vi←vi+αzactual(1-zactual)∑j=1nδoutputjwjzivi←vi+αzactual(1-zactual)∑j=1nδoutputjwjzi v\_i \leftarrow v\_i + \alpha z\_{\text{actual}}. (1 - z\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{output}\_j} w\_{j} z\_ivi←vi+αzactual(1-zactual)j=1∑nδoutputjwjzi비슷하게, 바이어스 업데이트 규칙은 다음과 같이 주어집니다:c←c-α∂MSE∂cc←c-α∂MSE∂c c \왼쪽 화살표 c - \알파 \frac{\부분 \text{MSE}}{\부분 c}c←c-α∂c∂MSE편향성 cc에 대한 MSE 목적 함수의 기울기는 다음과 같이 주어집니다:∂MSE∂c=-δp 선행∂MSE∂c=-δp 선행 \frac{\partial \text{MSE}}{\partial c} = -\delta\_{\text{p 선행}}∂c∂MSE=-δp 선행식 δp 선행δp 선행에 대입하면 다음과 같이 구할 수 있습니다:∂MSE∂c=-zactual(1-zactual)∑j=1nδoutputjwj∂MSE∂c=-zactual(1-zactual)∑j=1nδoutputjwj \frac{\partial \text{MSE}}{\partial c} = -z\_{\text{actual}} (1 - z\_{\text{actual}}) \sum\_{j=1}^n \delta\_{\text{output}\_j} w\_{j}∂c∂MSE=-zactual(1-zactual)j=1∑nδoutputjwj이 식을 바이어스 업데이트 규칙에 대입하면 다음을 얻을 수 있습니다.