In general, Backpropagation is a fundamental algorithm in perceptrons and other artificial neural networks (ANN), so perhaps we can't say the Perceptron and Backpropagation technique are comparable. But I'll try my best to explain them.
The perceptron can approximate a complex function between the input and output. For example, a perceptron can be trained to identify hand-written numbers, and the input will be the value of each pixel of the photo with the output being one of 0-9, and what happened between them is clearly quite complicated. It is based on the idea of an artificial neuron, which takes in an $N$-dimension input vector $\{ x_0, x_1,...,x_{N-1} \}$. It then performs a weighted sum with a bias on the input, gaining $x_0 w_0 + x_1 w_1 +...+x_{N-1} w_{N-1} + b$. The sum is then fed to an activation function, which is usually non-linear, to get the final output $y$. To get an $M$-dimension output, we can build a layer made up of $M$ separate neurons and feed the same $N$-dimension input to each of them, then collect each one's output to form a new vector $\{ y_0, y_1,..., y_{M-1} \}$. The input, output, and the neuron layer form a single-layer perceptron. By combining several layers of neurons together, where one layer's output is the next layer's input, we get a multi-layer perceptron. This also explains why the activation function is usually non-linear - if we use a linear function, and as the biased weighted sum part is also linear, the whole multi-layer perceptron will just perform a linear computation to the input which is the same as a simple biased weighted sum. With the power of non-linear activation functions, instead, we can approximate complex functions by multi-layer perceptrons.
So how can we adjust the weights and biases in the neurons to get the approximation of the expected function? We first need some - usually a lot of - existing inputs and outputs to train it by minimizing the error between the expected and actual output. This is like you gonna show the correct way to do something to teach others. The method is called the Backward Stage, opposite to the Forward Stage which begins from the input, all the way through the perceptron's weighted sums and activation functions, to the output. This part is more difficult and requires some calculus so get prepared:
Given a $L$-layer perceptron, let $C$ be the error $z^l_j$ be the $j$ weighted sum of the $l$ layer, $w^l_{jk}$ and $b^l_j$ be the weights and bias, and $a^l_j = f^l(z^l_j)$ be the corresponding output. We get $z^l_j = \sum ^{m^l} _{k=1} w^l_{jk} a^{l-1}_k + b^l_j$. To minimize $C$, we repeatedly use gradient descent to update each weight and bias:
$w = w - \epsilon \frac{\partial C}{\partial w}$, $b = b - \epsilon\frac{\partial C}{\partial b}$, with $\epsilon$ being the learning rate.
Now the task is to find the partial derivate, or local gradient for each weight bias by using the chain rule:
$\frac{\partial C}{\partial w^l_{jk}} = \frac{\partial C}{\partial z^l_j} \frac{\partial z^l_j}{\partial w^l_{jk}} =  \frac{\partial C}{\partial z^l_j} a^{l-1}_k$
$\frac{\partial C}{\partial b^l_j} = \frac{\partial C}{\partial z^l_j} \frac{\partial z^l_j}{\partial b^l_j}} =  \frac{\partial C}{\partial z^l_j}$
and:
$\frac{\partial C}{\partial z^l_j} = \frac{\partial C}{\partial a^l_j} \frac{\partial a^l_j}{\partial z^l_j} = \frac{\partial C}{\partial a^l_j} f^{l}'(z^l_j)$
$\frac{\partial C}{\partial a^l_j} = \sum _{k=1}{m^{l+1}} w^{l+1}_{jk \frac{\partial C}{\partial z^{l+1}_k$
So we can first run a Forward Stage to get the $a$ and $z$. Next, we begin with the final outputs $a^{L-1}_j$ at layer $L-1$, calculate $\frac{\partial C}{\partial a^{L-1}_j$ and $\frac{\partial C}{\partial z^{L-1}_j$, then use them to calculate $\frac{\partial C}{\partial a^{L-2}_j}$ and $\frac{\partial C}{\partial z^{L-2}_j}$, and then repeat this all the way back to the first layer. With these two partial derivatives of each layer determined, we can calculate the local gradient for each weight bias of each layer. By repeating Forward Stage - Backward Stage for many times, the error can be minimized. Since the calculation of local gradients goes from the last layer to the first one, we call it the Backpropagation.
I hope this can help you better understand these concepts.
โดยทั่วไป Backpropagation เป็นอัลกอริธึมพื้นฐานใน Perceptron และโครงข่ายประสาทเทียม (ANN) อื่นๆ ดังนั้นบางทีเราไม่สามารถพูดได้ว่าเทคนิค Perceptron และ Backpropagation นั้นเทียบเคียงได้ แต่ฉันจะพยายามอย่างเต็มที่เพื่ออธิบายพวกเขา เพอร์เซปตรอนสามารถประมาณฟังก์ชันที่ซับซ้อนระหว่างอินพุตและเอาต์พุตได้ ตัวอย่างเช่น สามารถฝึกเพอร์เซปตรอนให้ระบุตัวเลขที่เขียนด้วยลายมือได้ และอินพุตจะเป็นค่าของแต่ละพิกเซลของภาพถ่าย โดยเอาต์พุตเป็น 1 ใน 0-9 และสิ่งที่เกิดขึ้นระหว่างตัวเลขเหล่านั้นค่อนข้างซับซ้อนอย่างชัดเจน มีพื้นฐานอยู่บนแนวคิดของเซลล์ประสาทเทียม ซึ่งใช้เวกเตอร์อินพุตขนาด $N$ $\{ x_0, x_1,...,x_{N-1} \}$ จากนั้นจะคำนวณผลรวมถ่วงน้ำหนักโดยมีอคติกับอินพุต โดยได้รับ $x_0 w_0 + x_1 w_1 +...+x_{N-1} w_{N-1} + b$ จากนั้นผลรวมจะถูกป้อนให้กับฟังก์ชันการเปิดใช้งาน ซึ่งโดยปกติจะไม่เป็นเชิงเส้น เพื่อให้ได้เอาต์พุตสุดท้าย $y$ ในการรับเอาต์พุตขนาด $M$ เราสามารถสร้างเลเยอร์ที่ประกอบด้วยเซลล์ประสาท $M$ ที่แยกจากกัน และป้อนอินพุตขนาด $N$ เดียวกันให้กับแต่ละเซลล์ จากนั้นรวบรวมเอาต์พุตของแต่ละคนเพื่อสร้างเวกเตอร์ใหม่ $\ { y_0, y_1,..., y_{M-1} \}$. อินพุต เอาท์พุต และชั้นเซลล์ประสาทก่อตัวเป็นเพอร์เซปตรอนชั้นเดียว ด้วยการรวมเซลล์ประสาทหลายชั้นเข้าด้วยกัน โดยที่เอาต์พุตของเลเยอร์หนึ่งเป็นอินพุตของเลเยอร์ถัดไป เราจะได้เพอร์เซปตรอนหลายเลเยอร์ นอกจากนี้ยังอธิบายด้วยว่าเหตุใดฟังก์ชันการเปิดใช้งานจึงมักไม่เป็นเชิงเส้น - หากเราใช้ฟังก์ชันเชิงเส้น และเนื่องจากผลรวมถ่วงน้ำหนักแบบเอนเอียงยังเป็นเส้นตรงด้วย เพอร์เซพตรอนหลายชั้นทั้งหมดจะทำการคำนวณเชิงเส้นกับอินพุตที่เหมือนกัน เป็นผลบวกถ่วงน้ำหนักแบบง่าย ด้วยพลังของฟังก์ชันการเปิดใช้งานแบบไม่เชิงเส้น เราสามารถประมาณฟังก์ชันที่ซับซ้อนด้วยเพอร์เซปตรอนหลายชั้นแทนได้ แล้วเราจะปรับน้ำหนักและอคติในเซลล์ประสาทเพื่อให้ได้ค่าประมาณของฟังก์ชันที่คาดหวังได้อย่างไร ก่อนอื่น เราต้องการอินพุตและเอาต์พุตที่มีอยู่บางส่วน ซึ่งโดยปกติแล้วจะมีจำนวนมาก เพื่อฝึกฝนโดยการลดข้อผิดพลาดระหว่างเอาต์พุตที่คาดหวังและเอาต์พุตจริงให้เหลือน้อยที่สุด นี่เหมือนกับว่าคุณจะแสดงวิธีที่ถูกต้องในการทำบางสิ่งเพื่อสอนผู้อื่น วิธีการนี้เรียกว่า Backward Stage ตรงข้ามกับ Forward Stage ซึ่งเริ่มต้นจากอินพุต ไปจนถึงผลรวมถ่วงน้ำหนักของเพอร์เซพตรอนและฟังก์ชันการเปิดใช้งาน ไปจนถึงเอาต์พุต ส่วนนี้ยากกว่าและต้องใช้แคลคูลัส ดังนั้นเตรียมตัวให้พร้อม: เมื่อกำหนด perceptron ของเลเยอร์ $L$ ให้ $C$ เป็นข้อผิดพลาด $z^l_j$ เป็นผลรวมถ่วงน้ำหนัก $j$ ของเลเยอร์ $l$, $w ^l_{jk}$ และ $b^l_j$ เป็นน้ำหนักและอคติ และ $a^l_j = f^l(z^l_j)$ เป็นเอาต์พุตที่สอดคล้องกัน เราได้ $z^l_j = \sum ^{m^l} _{k=1} w^l_{jk} a^{l-1__k + b^l_j$ เพื่อลด $C$ ให้เหลือน้อยที่สุด เราใช้การไล่ระดับลงซ้ำๆ เพื่ออัปเดตแต่ละน้ำหนักและอคติ: $w = w - \epsilon \frac{\partial C}{\partial w}$, $b = b - \epsilon\frac{\ บางส่วน C}{\partial b}$ โดยที่ $\epsilon$ เป็นอัตราการเรียนรู้ ตอนนี้ ภารกิจคือค้นหาอนุพันธ์บางส่วน หรือการไล่ระดับสีเฉพาะที่สำหรับอคติน้ำหนักแต่ละรายการโดยใช้กฎลูกโซ่: $\frac{\partial C}{\partial w^l_{jk}} = \frac{\partial C}{ \บางส่วน z^l_j} \frac{\บางส่วน z^l_j}{\บางส่วน w^l_{jk}} = \frac{\บางส่วน C}{\บางส่วน z^l_j} a^{l-1__k$ $ \frac{\บางส่วน C}{\บางส่วน b^l_j} = \frac{\บางส่วน C}{\บางส่วน z^l_j} \frac{\บางส่วน z^l_j}{\บางส่วน b^l_j}} = \frac{ \partial C}{\partial z^l_j}$ และ: $\frac{\partial C}{\partial z^l_j} = \frac{\partial C}{\partial a^l_j} \frac{\partial a ^l_j}{\บางส่วน z^l_j} = \frac{\บางส่วน C}{\บางส่วน a^l_j} f^{l}'(z^l_j)$ $\frac{\บางส่วน C}{\บางส่วน a^ l_j} = \sum _{k=1}{m^{l+1}} w^{l+1__{jk \frac{\partial C}{\partial z^{l+1__k$ ดังนั้น ก่อนอื่นเราสามารถรัน Forward Stage เพื่อรับ $a$ และ $z$ ต่อไป เราเริ่มต้นด้วยผลลัพธ์สุดท้าย $a^{L-1__j$ ที่เลเยอร์ $L-1$ คำนวณ $\frac{\partial C}{\partial a^{L-1__j$ และ $\ frac{\partial C}{\partial z^{L-1__j$ จากนั้นใช้มันเพื่อคำนวณ $\frac{\partial C}{\partial a^{L-2__j}$ และ $\frac{ \partial C}{\partial z^{L-2__j}$ จากนั้นทำซ้ำไปจนถึงเลเยอร์แรก เมื่อพิจารณาอนุพันธ์ย่อยทั้งสองของแต่ละชั้นแล้ว เราก็สามารถคำนวณความชันเฉพาะที่สำหรับอคติน้ำหนักแต่ละชั้นได้ โดยการทำซ้ำขั้นเดินหน้า - ถอยหลังหลาย ๆ ครั้ง ข้อผิดพลาดจะลดลง เนื่องจากการคำนวณการไล่ระดับสีเฉพาะที่เริ่มจากเลเยอร์สุดท้ายไปยังเลเยอร์แรก เราจึงเรียกมันว่า Backpropagation ฉันหวังว่าสิ่งนี้จะช่วยให้คุณเข้าใจแนวคิดเหล่านี้ได้ดีขึ้น
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence