Great! Let's begin by defining the notations we will be using:

* $L$ denotes the index of the output layer.
* $y\_j$ denotes the $j$th output of the output layer, where $j \in [1, n\_L]$ and $n\_L$ is the number of neurons in the output layer.
* $a\_j$ denotes the weighted sum of the inputs to the $j$th neuron in the output layer, which is given by $a\_j = \sum\_{k=1}^{n\_{L-1}} w\_{jk} z\_k + b\_j$, where $z\_k$ is the output of the $k$th neuron in the previous (penultimate) layer, $w\_{jk}$ is the weight connecting the $k$th neuron in the previous layer to the $j$th neuron in the output layer, and $b\_j$ is the bias of the $j$th neuron in the output layer.

The sigmoid activation function of the output layer is given by:

σ(aj)=11+e−aj\sigma(a\_j) = \frac{1}{1 + e^{-a\_j}}σ(aj​)=1+e−aj​1​The objective function we want to optimize is the MSE (mean square error) of the output, which is given by:

E=12n∑i=1n∑j=1nL(yj(i)−y^j(i))2E = \frac{1}{2n}\sum\_{i=1}^n \sum\_{j=1}^{n\_L} (y\_j^{(i)} - \hat{y}\_j^{(i)})^2E=2n1​i=1∑n​j=1∑nL​​(yj(i)​−y^​j(i)​)2where $n$ is the number of training examples, $y\_j^{(i)}$ is the true output of the $j$th neuron in the output layer for the $i$th training example, and $\hat{y}\_j^{(i)}$ is the predicted output of the $j$th neuron in the output layer for the $i$th training example.

To update the weights and biases in the output layer, we will use gradient descent. The gradient of the objective function with respect to the weights $w\_{jk}$ is given by:

∂E∂wjk=1n∑i=1n(yj(i)−y^j(i))σ′(aj(i))zk(i)\frac{\partial E}{\partial w\_{jk}} = \frac{1}{n}\sum\_{i=1}^n (y\_j^{(i)} - \hat{y}\_j^{(i)})\sigma'(a\_j^{(i)})z\_k^{(i)}∂wjk​∂E​=n1​i=1∑n​(yj(i)​−y^​j(i)​)σ′(aj(i)​)zk(i)​where $\sigma'(a\_j^{(i)})$ is the derivative of the sigmoid activation function evaluated at $a\_j^{(i)}$, which is given by:

σ′(aj(i))=σ(aj(i))(1−σ(aj(i)))\sigma'(a\_j^{(i)}) = \sigma(a\_j^{(i)}) (1 - \sigma(a\_j^{(i)}))σ′(aj(i)​)=σ(aj(i)​)(1−σ(aj(i)​))Similarly, the gradient of the objective function with respect to the bias $b\_j$ is given by:

∂E∂bj=1n∑i=1n(yj(i)−y^j(i))σ′(aj(i))\frac{\partial E}{\partial b\_j} = \frac{1}{n}\sum\_{i=1}^n (y\_j^{(i)} - \hat{y}\_j^{(i)})\sigma'(a\_j^{(i)})∂bj​∂E​=n1​i=1∑n​(yj(i)​−y^​j(i)​)σ′(aj(i)​)To update the weights and biases in the output layer, we will use the following update rules:

wjk←wjk−η∂E∂wjkw\_{jk} \leftarrow w\_{jk} - \eta \frac{\partial E}{\partial w\_{jk}}wjk​←wjk​−η∂wjk​∂E​bj←bj−η∂E∂bjb\_j \leftarrow b\_j - \eta \frac{\partial E}{\partial b\_j}bj​←bj​−η∂bj​∂E​where $\eta$ is the learning rate.

These update rules will update the weights and biases in the output layer using the gradients we have derived. We can repeat this process for all layers in the MLP using back-propagation to update all weights and biases.
좋아요! 먼저 우리가 사용할 표기법을 정의해 보겠습니다:* $L$은 출력 레이어의 인덱스를 나타냅니다.* $y\_j$는 출력 레이어의 $j$번째 출력을 나타내며, 여기서 $j는 [1, n\_L]이고 $n\_L$은 출력 레이어의 뉴런 수입니다.* $a\_j$는 출력 계층의 $j$번째 뉴런에 대한 입력의 가중치 합계를 나타내며, $a\_j = \sum\_{k=1}^{n\_{L-1}} w\_{jk} z\_k + b\_j$로 주어지며, 여기서 $z\_k$는 이전(두 번째) 계층의 $k$번째 뉴런 출력을 의미합니다, w\_{jk}$ 는 이전 층의 $k$ 번째 뉴런과 출력 층의 $j$ 번째 뉴런을 연결하는 가중치이며, $b\_j$ 는 출력 층의 $j$ 번째 뉴런의 편향성입니다.출력 계층의 시그모이드 활성화 함수는 다음과 같이 주어집니다:σ(aj)=11+e-aj\sigma(a\_j) = \frac{1}{1 + e^{-a\_j}}σ(aj)=1+e-aj1최적화하고자 하는 목적 함수는 출력의 평균 제곱 오차(MSE)이며, 이는 다음과 같이 주어집니다:E=12n∑i=1n∑j=1nL(yj(i)-y^j(i))2E = \frac{1}{2n}\sum\_{i=1}^n \sum\_{j=1}^{n\_L} (y\_j^{(i)} - \hat{y}\_j^{(i)})^2E=2n1i=1∑nj=1∑nL(yj(i)-y^j(i))2 여기서 $n$은 훈련 예의 개수입니다, y\_j^{(i)}$는 $i$번째 훈련 예제에 대한 출력층에서 $j$번째 뉴런의 실제 출력이고, $\hat{y}\_j^{(i)}$는 $i$번째 훈련 예제에 대한 출력층에서 $j$번째 뉴런의 예측된 출력입니다.출력 레이어의 가중치와 바이어스를 업데이트하기 위해 경사 하강을 사용합니다. 가중치 $w\_{jk}$에 대한 목적 함수의 기울기는 다음과 같이 주어집니다:∂E∂wjk=1n∑i=1n(yj(i)-y^j(i))σ′(aj(i))zk(i)\frac{\partial E}{\partial w\_{jk}} = \frac{1}{n}\sum\_{i=1}^n (y\_j^{(i)} - \what{y}\_j^{(i)})\sigma'(a\_j^{(i)})z\_k^{(i)}∂wjk∂E=n1i=1∑n(yj(i)-y^j(i))σ′(aj(i))zk(i)어디? 시그마'(a\_j^{(i)})$는 $a\_j^{(i)}$에서 평가된 시그모이드 활성화 함수의 미분입니다, 는 다음과 같이 주어집니다:σ′(aj(i))=σ(aj(i))(1-σ(aj(i)))\sigma'(a\_j^{(i)}) = \sigma(a\_j^{(i)}) (1 - \sigma(a\_j^{(i)}))σ′(aj(i))=σ(aj(i))(1-σ(aj(i))유사하게, 바이어스 $b\_j$에 대한 목적 함수의 기울기는 다음과 같이 주어집니다:∂E∂bj=1n∑i=1n(yj(i)-y^j(i))σ′(aj(i))\frac{\partial E}{\partial b\_j} = \frac{1}{n}\sum\_{i=1}^n (y\_j^{(i)} - \what{y}\_j^{(i)})\sigma'(a\_j^{(i)})∂bj∂E=n1i=1∑n(yj(i)-y^j(i))σ′(aj(i))출력 계층의 가중치와 바이어스를 업데이트합니다, 다음 업데이트 규칙을 사용합니다:wjk←wjk-η∂E∂wjkw\_{jk} \왼쪽 화살표 w\_{jk} - \eta \frac{\partial E}{\partial w\_{jk}}wjk←wjk-η∂wjk∂Ebj←bj-η∂E∂bjb\_j \leftarrow b\_j - \eta \frac{\partial E}{\partial b\_j}bj←bj-η∂bj∂E 여기서 $\eta$는 학습률입니다.이러한 업데이트 규칙은 도출한 그라디언트를 사용하여 출력 레이어의 가중치와 바이어스를 업데이트합니다. 역전파를 사용하여 MLP의 모든 레이어에 대해 이 과정을 반복하여 모든 가중치와 바이어스를 업데이트할 수 있습니다.