Talk:Backpropagation

message: What does the notation y(x) mean when y is an R^n vector and x is an R^m vector? That notation is found in the loss function section, and I've been having a hard time inferring what it means. 2804:14C:8793:86F6:76D4:35FF:FE5B:6F91 (talk) 16:14, 20 February 2017 (UTC)
replies: text: It refers to an output vector y corresponding to a training example vector x. The definition at the top of the section ( y, y' \in \R^n ) has been implicitly altered to something more like  y : \R^m \to \R^n , a mapping from input vector to output vector. I agree it is confusing. Andars97 (talk) 01:46, 22 April 2017 (UTC)
thread_title: Confusing notation

message: Dear All, 
Apologies if this is a very naïve question, but  in section 6.1 shouldn't the reference be to all neurons directly affected by the neuron (ie L is the next layer), rather than all neurons (L is the total set of neurons lying between the input neuron and the output neurons).
Thx
NeilHyatt (talk) 11:08, 9 January 2017 (UTC)
replies: text: Hopefully this has been clarified. - Eyrian 05:30, 22 Apr 2005 (UTC)

text: This is due to that in the structure of a Neural Network, the neuros are all connected. Each link that connects two neurons carries a weight. - BestDaNiu (talk) 13:37, 12 November 2014 (UTC)

text: I think that this is reasonable terminology for use in an article on optimization (though hopefully clarified somewhat). - Eyrian 05:30, 22 Apr 2005 (UTC)

text: In all optimization problems, the objective is to find the maximum or minimum value of a given function with or without constraints. Backprobagation can be viewed as an optimization problem, as it tries to minimize the cost function between the hypothesis outputs and the actual outputs. And as the objective function of backprobagation is non-convex, given a vector of initially random weights, it usually ends with a local minima. -BestDaNiu (talk) 13:37, 12 November 2014 (UTC)

text: The order doesn't matter because the difference between these two variables is being squared. The order was chosen for convenience. [Similarly, the 1/2 that appears in the error/loss expression is there for convenience to make the terms simpler after the derivatives are taken. The error expression needs to measures how far off the mark the training round was. I don't think the training's behavior is understood well enough to define a best form for the loss function in all scenarios.]Hozelda (talk) 08:11, 21 June 2019 (UTC)
thread_title: Questions

message: There seems to be much more information in the German version of this page.  Please translate it to English. Thanks! --Jcarroll 23:19, 5 May 2006 (UTC)
replies: text: Added the template to the article. Nicholas Léonard 02:05, 8 January 2013 (UTC)
thread_title:  Please translate from German to English 

message: "Backpropagation usually allows quick convergence on satisfactory local minima for error in the kind of networks to which it is suited." —The preceding unsigned comment was added by 129.170.31.11 (talk • contribs) 03:16, 16 January 2007 (UTC)
replies: text: I don't think so. The sentence indicates that backpropagation works well on certain networks. --Eyrian 05:49, 16 January 2007 (UTC)
thread_title:  Tautology? 

message: Actually i would like some links to alternative methods for teaching multi-layered networks. Maybe a see also-section  —Preceding unsigned comment added by 80.164.105.90 (talk) 07:11, 8 September 2007 (UTC)
thread_title:  Alternatives 

message: Citation: Material seems to be directly copied from http://www2.cs.uh.edu/~ceick/ai/nn.ppt (slide 6); if it is, a reference should be included.
Explanation: I'm not understanding how to compute the per-node error. How much blame should be subtracted from each connection's weight, and how much should be propagated back to the inputing nodes'? (I'm assuming that it backpropagates according to the proportion of error contributed by each earlier connection.) --Jesdisciple 03:54, 8 October 2007 (UTC)
replies: text: I detail the error propagation algorithm in multilayer perceptron. Perhaps some of the math should be copied to here? SamuelRiv (talk) 13:04, 18 November 2007 (UTC)
thread_title:  Algorithm 

message: The question is whether or not a section which was alternately added and removed is pertinent, relevant, and suitable for inclusion in this article. — Athaenara  ✉  03:16, 19 November 2007 (UTC)
replies: text: Responding to RfC. This article is about a computer algorithm, while the section in question describes a biological process that works in the same way. I don't believe the section should be included, as it is of little relevanse to what I believe the article should be about (the algorithm and its properties). But the information presented in the section is interesting and seems to be notable, so I beleive it should be added to a seperate article and linked to from this article. Labongo (talk) 11:58, 19 November 2007 (UTC)
replies: text: My main problem is that every neural network algorithm doubles as a biological model for the time being, because we simply don't know for sure what algorithms the brain uses. We have some evidence for several different algorithms, so where do we put all that information? SamuelRiv (talk) 15:17, 19 November 2007 (UTC)
replies: text: The information should probably be in the other article or some related article, since how the brain works is clearly outside the scope of this article. Labongo (talk) 16:00, 20 November 2007 (UTC)

text: I created Neural backpropagation, as per the third opinion. However, I frankly think this is ridiculous, as the literature only refers to the phenomenon as "backpropagation" and there is enough overlap between these topics that they deserve separate articles. I'd also like to say that repeatedly deleting large-scale factual and arguably relevant contributions to an article seems to me to violate the spirit of Wikipedia, as stated in its revert policies. Someone will inevitably come along and suggest these articles be merged, if anyone ever reads them. SamuelRiv (talk) 23:58, 20 November 2007 (UTC)
replies: text: I added otheruses templates to both algorithms, to ensure that there is no confusion with regard to the term. Since the issues seems to be resolved I have also removed to RfC tag from the talkpage. Labongo (talk) 15:32, 22 November 2007 (UTC)
thread_title:  Request for comments on biological evidence section 

message: The article attributed the first description to "Paul Werbos in 1974". According to my source this is incorrect, I have updated the text to cite Bryson and Ho 1969. I am mentioning this in Talk since I am surprised to see a long-standing error of such importance. 78.105.234.140 (talk) 17:01, 15 October 2009 (UTC)
thread_title: Invented by

message: The sentence enclosing the link to the Delta rule for this page states:
"It [Back-propagation] is a supervised learning method, and is an implementation of the Delta rule."
Implying that back-propagation is a subset of Delta Rule, but for the link to Back-propagation from the Delta Rule page it states:
"It [The Delta Rule] is a special case of the more general backpropagation algorithm."
Can this be? Or is the wording simply a bit confusing?  —Preceding unsigned comment added by 72.221.98.197 (talk) 02:44, 20 December 2010 (UTC)
replies: text: If you look in books, it appears that the delta rule only works at outputs where you have a target, and the back-prop is a generalization of it.  So the first quoted sentence should have "implementation" changed to "generalization", I think.  Dicklyon (talk) 03:17, 20 December 2010 (UTC)
thread_title:  Relationship to Delta Rule? 

message: Could we change the layout of the algorithm? Why not make each instruction a link to additional information? But should this information be put in the same page, or a one relating to the 'next level of detail', for the algorithm?  —Preceding unsigned comment added by 139.80.206.172 (talk) 08:57, 1 May 2011 (UTC)
thread_title:  A new algorithm proposal 

message: The article is missing the equation(s) for back propagation learning algorithms. Malithyapa (talk) 23:21, 31 August 2011 (UTC)
thread_title:  Equations 

message: I was unfamiliar with the term "weight" used in this context- I think it ought to be more clearly explained early on.
Also, it might be good for someone more knowledgeable to add a quick reference to the Weight disambiguation page.
Brauden (talk) 03:20, 7 May 2012 (UTC)
replies: text: I added a bit at the disambig page.  Dicklyon (talk) 04:22, 7 May 2012 (UTC)
thread_title:  Meaning of Weight 

message: In adding cross-references to the  Modes of Learning section, I found an apparent contradiction between this article and that for stochastic gradient descent (SGD), where the latter (specifically, in the  Iterative method section) equates SGD with  online learning while this article distinguishes between them.  Come anyone wiser than me please advise if these should be equated here or the other article corrected?  
Also, the statement that "Stochastic goes through the data set in a random order in order to reduce its chances of getting stuck in local minima" seems quite far from the method and purpose described in the SGD article.  Perhaps the Modes of Learning section would be better simply cross-referencing the others rather than trying to summarise them.  Or have I entirely missed a point?  
Many thanks.  p.r.newman (talk) 13:33, 4 April 2013 (UTC)
thread_title:  Stochastic versus online? 

message: 1. What happens with the threshold? It is mentioned in othe articles, here is no word of it. In the German version, they say they replace the threshold with an "on-neuron", but even they do not venture to describe it.
2. How do you get the derivative? - I think this is very nicely explained here:
https://en.wikipedia.org/wiki/Delta_rule
3. It should be explained what happens with other activation functions. In particular, that the derivative may actually be 1 in case of a linear activation. It is elsewhere mentioned that you can use tanh as activation, too.
- Nino  — Preceding unsigned comment added by 188.23.245.69 (talk) 05:38, 26 February 2014 (UTC)
thread_title:  Threshold? Derivative? Other activation functions? 

message: It wasn't said or implied in the article that input layer isn't affected by error estimate. Corrected algorithm description. Rest of article still misleading. 2001:470:600D:DEAD:E94B:92C8:B4E1:F8C5 (talk) 11:57, 28 August 2014 (UTC)
thread_title:  misleading statements 

message: This article, or at least parts of it, are quite outdated. They follow the old definition of backpropagation, where this name refers to the entire gradient descent algorithm for squared-error feed-forward networks. The lede, by contrast, uses the more modern meaning, where backprop is the generic gradient computation algorithm based on the chain rule, which can be combined with any gradient-based optimizer (conjugate gradient, L-BFGS) and any differentiable loss (log-loss, squared-error).
I'm planning a rewrite of this entire article to bring it in line with Bishop's (2006) Pattern Recognition and Machine Learning instead of Rojas's (1996) Neural Networks, which (judging by the notation) is the main source for the current text. QVVERTYVS (hm?) 20:34, 4 November 2014 (UTC)
thread_title:  Outdated 

message: Statement "Yet batch learning will yield a much more stable descent to a local minimum since each update is performed based on all patterns." can be misleading. Batch learning requires one to go through all of the test cases, while online learning can cope with a adding a single one, or a few. But if you pass through all of the test cases with on-line learning, you shouldn't end up further away from solution than with a batch learning which should actually get completely abandoned, as it is nonesense. Refer to http://axon.cs.byu.edu/papers/Wilson.nn03.batch.pdf for explanation why Wiki should abandon any talks of batch learning entirely, due to it not being useful in any sort of way.
--213.174.16.2 (talk) 14:38, 21 January 2015 (UTC)
replies: text: Usefulness is not the criterion for covering something on WP. Also, while batch learning may not be optimal or even better for gradient descent, it also allows using algorithms like L-BFGS or conjugate gradient (see Bishop, Pattern Recognition and Machine Learning, p. 240). These are not easily recast as online or minibatch algorithms. QVVERTYVS (hm?) 16:57, 21 January 2015 (UTC)
thread_title:  Modes of learning 

message: "However, convergence to the global minimum is said to be guaranteed using the adaptive stopping criterion.[3]" is an extraordinary claim.  As such, it requires extraordinary proof.  The referenced article provides only the claim.
Mborg (talk) 15:25, 16 September 2015 (UTC)
replies: text: It's not really an extraordinary claim. The quotation is not a claim; the quotation reports that "it is said". If you feel that's too strong, you could change it to "articles report..., but there is no proof for it".--Gciriani (talk) 15:52, 16 September 2015 (UTC)
replies: text: "It is said" is certainly not a strong claim; it's far too vague a claim for a technical article. I've removed the claim and the reference because a poorly-cited article by some unknown researchers in an off-track journal that presents a ridiculous algorithm without proof of effectiveness or even an intuitive justification as to why its crazy formulas should work is not the kind of material on which to base an encyclopedic article. QVVERTYVS (hm?) 20:09, 16 September 2015 (UTC)
thread_title:  global convergence? 

message: In its current form the algorithm has two nested loops
   initialize network weights (often small random values)
   do
      forEach training example ex
         prediction = neural-net-output(network, ex)  // forward pass
         actual = teacher-output(ex)
         compute error (prediction - actual) at the output units
           // backward pass
            // backward pass continued
         update network weights // input layer not modified by error estimate
   until all examples classified correctly or another stopping criterion satisfied
   return the network
The way I learned the algorithm, the network weights aren't updated for every training example, but rather once for each iteration of the outer loop.  That is the inner loop is used to calculate the gradient and then, after the inner loop, the gradient is used to update the weights.  So I suggest
   initialize network weights (often small random values)
   do
      forEach training example ex
         prediction = neural-net-output(network, ex)  // forward pass
         actual = teacher-output(ex)
         compute error (prediction - actual) at the output units
           // backward pass
            // backward pass continued
      end forEach
      update network weights // input layer not modified by error estimate
   until all examples classified correctly or another stopping criterion satisfied
   return the network
— Preceding unsigned comment added by 142.166.157.21 (talk • contribs) 
:It's explained (inadequately) below the pseudocode:
:The pseudocode is actually that of stochastic gradient descent, not backprop; backprop is the part labeled "backward pass" and practically glanced over. What you're suggesting is batch gradient descent. QVVERTYVS (hm?) 15:24, 18 October 2015 (UTC)
thread_title:  Error in algorithm? 

message: I believe that under the "Intuition" heading, given the current example of (x1,x2,t) = (1,1,0), the correct error function is NOT a parabolic bowl as written, but instead what Wolfram Alpha refers to as a parabolic cylinder.  I believe the correct graphic should be of E= 0 - (x1*w1 + x2*w2)^2, and not the current graphic which models E= 0 - [(x1w1)^2 + (x2w2)^2].
I concur - this is a very confusing picture. If w1=-w2 then the error is zero. 
Henk.muller (talk) 10:37, 6 June 2016 (UTC)
thread_title:  Wrong Error Function Visualization and Description under the "Intuition" Heading 

message: According to various sources,Stuart Dreyfus (1990). Artificial Neural Networks, Back Propagation and the Kelley-Bryson Gradient Procedure. J. Guidance, Control and Dynamics, 1990. Eiji Mizutani , Stuart Dreyfus, Kenichi Nishio (2000). On derivation of MLP backpropagation from the Kelley-Bryson optimal-control gradient formula and its application. Proceedings of the IEEE International Joint Conference on Neural Networks (IJCNN 2000), Como Italy, July 2000. Online Jürgen Schmidhuber (2015). Deep learning in neural networks: An overview. Neural Networks 61 (2015): 85-117. ArXiv Jürgen Schmidhuber (2015). Deep Learning. Scholarpedia, 10(11):32832. Section on Backpropagation
basics of continuous backpropagation were derived in the context of control theory by Henry J. KelleyHenry J. Kelley (1960). Gradient theory of optimal flight paths. Ars Journal, 30(10), 947-954. Online in 1960 and by Arthur E. Bryson in 1961,Arthur E. Bryson (1961, April). A gradient method for optimizing multi-stage allocation processes. In Proceedings of the Harvard Univ. Symposium on digital computers and their applications. using principles of dynamic programming. In 1962, Stuart Dreyfus published a simpler derivation based only on the chain rule.Stuart Dreyfus (1962). The numerical solution of variational problems. Journal of Mathematical Analysis and Applications, 5(1), 30-45. Online 
In 1970, Seppo Linnainmaa finally published the general method for automatic differentiation (AD) of discrete connected networks of nested differentiable functions.Seppo Linnainmaa (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master's Thesis (in Finnish), Univ. Helsinki, 6-7.Seppo Linnainmaa (1976). Taylor expansion of the accumulated rounding error. BIT Numerical Mathematics, 16(2), 146-160. This corresponds to the modern version of backpropagation which is efficient even when the networks are sparse.Griewank, Andreas (2012). Who Invented the Reverse Mode of Differentiation?. Optimization Stories, Documenta Matematica, Extra Volume ISMP (2012), 389-400.Griewank, Andreas and Walther, A.. Principles and Techniques of Algorithmic Differentiation, Second Edition. SIAM, 2008.
In 1973, Stuart Dreyfus used backpropagation to adapt parameters of controllers in proportion to error gradients.Stuart Dreyfus (1973).  The computational solution of optimal control problems with time lag. IEEE Transactions on Automatic Control, 18(4):383–385. In 1974, Paul Werbos mentioned the possibility of applying this principle to artificial neural networks,Paul Werbos (1974). Beyond regression: New tools for prediction and analysis in the behavioral sciences. PhD thesis, Harvard University. and in 1982, he applied Linnainmaa's AD method to neural networks in the way that is widely used today.Paul  Werbos (1982). Applications of advances in nonlinear sensitivity analysis. In System modeling and optimization (pp. 762-770). Springer Berlin Heidelberg. Online
In 1986, David E. Rumelhart, Geoffrey E. Hinton and Ronald J. Williams showed through computer experiments that this method can generate useful internal representations of incoming data in hidden layers of neural networks. In 1993, Eric A. Wan was the first to win an international pattern recognition contest through backpropagation.Eric A. Wan (1993). Time series prediction by using a connectionist network with internal delay lines. In SANTA FE INSTITUTE STUDIES IN THE SCIENCES OF COMPLEXITY-PROCEEDINGS (Vol. 15, pp. 195-195). Addison-Wesley Publishing Co.
One should insert the missing references in the article. Mathpriest (talk) 15:56, 28 March 2016 (UTC)
thread_title:  Sources on the history of backpropagation 

message: I have written a candidate for a better description of the algorithm here: User:Esraiak/sandbox, and I am considering replacing the current Algorithm (and/or Summary) section with that one.
I will do the replacement in a few days unless someone objects.
Esraiak (talk) 14:25, 28 September 2016 (UTC)
thread_title:  Remake of the algorithm section 

message: I added some sections from the German article (mostly the Extension section) and from the Spanish article (introduction).
I also tried to make the introduction and a few other sections better for non-technical readers.
AlgorithmEdits (talk) 02:02, 12 December 2016 (UTC)
thread_title:  Added content from Spanish/German articles. Improved for non-technical readers. 

message: Some buzzwords in the algorithm description: input thought, output activations, weight-synapse.
With a bit of critical thinking it's possible to infer what they refer to, but they are not defined here and inappropriate (subjective interpretations) for a purely technical description.  — Preceding unsigned comment added by 88.177.31.169 (talk) 15:38, 26 December 2016 (UTC)
thread_title:  Buzzwords 

message: I am unhappy with the first sentences in this article. I don't mean that they are wrong, only that they do not explain well what it is all about. Here is a better explanation that I found in Deep Learning by Goodfellow, Bengio and Courville, 2016. I think this is now the dominating course book on Deep Learning. It says on page 198: "The term back-propagation is often misunderstood as meaning the whole learning algorithm for multi layer neural networks. Actually back-propagation refers only to the method for computing the gradient, while another algorithm, such as stochastic gradient descent, is used to perform the learning." That is, when tuning an ANN to perform well on a set of data, the weights in the network are changed so that a cost calculated from the difference between the network output for the data and the known correct output is minimized. This minimization algorithm calculates the gradient of the cost as a function of the weights. Back-propagation is a method to calculate that gradient. Therefore, in my view, backprop is a method to calculate a gradient that is needed in the calculation of the weights to be used in an artificial neural network. --Ettrig (talk) 08:50, 5 February 2018 (UTC)
thread_title:  Core concepts in first sentences 

message: Why is gradient descent mentioned in this wiki article? Backpropagation is an algorithm to find the gradients, then what you do with those gradients is an entirely different issue. Reading the wiki one may think that backpropagation also concerns itself with SGD or similar; see discussion about choosing an adaptive learning rate, etc.
What do you think? Should we delete those discussions? User:Daniel.Cardenas 
:Good point! For orientation, gradient descent should be mentioned as the most common application and the context in which it was developed. Currently gradient descent occurs 12 times. That is far too much. The subject is difficult as it is. We should not add to the confusion by adding off-topic material.--Ettrig (talk) 06:42, 28 November 2018 (UTC)
replies: text: There are whole sections of such off-topic material. Should this be just removed, or dumped on articles where it belongs? --Ettrig (talk) 07:20, 28 November 2018 (UTC)

text: I moved it to artificial neural network. That is at least a small step in the right direction. But a lot of restructuring of ANN material is neede. --Ettrig (talk) 14:16, 28 November 2018 (UTC)

text: 10K bytes moved, out of 38K. Now, there is a lot to clean up in ANN, but at least it is in the right place. There is a lot of mathematical notation, which is cumbersome to produce. So it would be unfortunate to just lose it. I think it is mostly correct. --Ettrig (talk) 16:43, 28 November 2018 (UTC)
thread_title:  Confusing discussion of gradient descent 

message: I added a history section.  I consider it a poor attempt, but figured something was better than nothing.  Please improve.   Thanks! Daniel.Cardenas (talk) 16:14, 30 September 2018 (UTC)
replies: text: There was a history at the bottom of the article. I merged yours with that one.--Ettrig (talk) 14:17, 28 November 2018 (UTC)
thread_title: History section added

message: Using o_k for both the input and output of a neural network layer in the Derivation section is super confusing. Could this be changed (at least add some accent to distinguish the two)? Attila I Szabo (talk) 09:49, 11 April 2019 (UTC)
replies: text: Looks like several people have cleaned up most of that Hozelda (talk) 13:10, 16 June 2019 (UTC)
thread_title: Confusing notation #2

message: :Added title. —Nils von Barth (nbarth) (talk) 23:53, 8 March 2020 (UTC)
replies: text: Probably not critical.  It used to be common to use the logistic sigmoid to get outputs between 0 and 1 for class probabilities, but nowadays the use of a "softmax" layer is more commom for that.  The sigmoid would be great for definiteness, but it's certainly not required or unique. Dicklyon (talk) 07:01, 5 March 2020 (UTC)
replies: text: Thx. Tony (talk) 07:03, 5 March 2020 (UTC)
thread_title:  Sigmoid function? 

message: The text reads:
The new \Delta w_{ij} is added to the old weight, and the product of the learning rate and the gradient, multiplied by -1 guarantees that w_{ij} changes in a way that always decreases E.
This is false for any reasonable definition of "guarantees".  E.g. consider if the present value of w_{ij} is a local minimum.  At such a location any change to w_{ij} will result in an increase in error, while the gradient at that value will be zero.
The text further says:
In other words, in the equation immediately below, - \eta \frac{\partial E}{\partial w_{ij}} always changes w_{ij} in such a way that E is decreased:
This is also incorrect for any definition of "always" since, with large values of \eta, it is possible to overshoot a local minimum an increase the error.
Let's tighten up this language.
Skremer (talk) 17:48, 18 May 2020 (UTC)
thread_title:  Imprecise language at the end of the section Finding the Derivative of the Error. 

message: Hi All,
I think there is a problem with the equation
 \frac{\partial E}{\partial w_{ij}} =  o_i \delta_j
because the index i and j are interchaged.
The correct expression could be
 \frac{\partial E}{\partial w_{ij}} =  o_j \delta_i
The source of the problem may be in Eq.1
\frac{\partial E}{\partial w_{ij}} = \frac{\partial E}{\partial o_{j}} \frac{\partial o_{j}}{\partial w_{ij}}
= \frac{\partial E}{\partial o_j} \frac{\partial o_j}{\partial\text{net}_j} \frac{\partial \text{net}_j}{\partial w_{ij}}
And the correct expression could be
\frac{\partial E}{\partial w_{ij}} = \frac{\partial E}{\partial o_{i}} \frac{\partial o_{i}}{\partial w_{ij}}
= \frac{\partial E}{\partial o_i} \frac{\partial o_i}{\partial\text{net}_i} \frac{\partial \text{net}_i}{\partial w_{ij}}
Please, look at the book Bishop, C. M. (2006). Pattern recognition and machine learning (1st ed.). Springer-Verlag New York, p. 243 at the equation 5.53
--Memo26167 (talk) 02:08, 9 August 2021 (UTC)
thread_title:  Problem with equation before equation 5 

message: Wikipedia has this habit of writing introductions to mathematical topics as if the reader is a Math graduating student.
Why can't the introduction just start saying that backpropagation at its core uses iteractive methods like inverse gradient method:
Xk+1 = Xk - ε .ᐁf(Xk)
to atune the parameters X={x1, x2, ..., xn} of a neural neural network, so that it minimizes an error function f(X), and that the basis of it is rather simple, but implementation can be complicated due to troubles of calculating ᐁf(Xk)? Instead one gets right out of the bat: "stockastic gradient method" "g(X) = lenghty formula". These things are very confusing and discouraging to those like me that don't want to be mathematicians.
I read the article in Wikipedia first, understood nothing of it, then went to https://codesachin.wordpress.com/2015/12/06/backpropagation-for-dummies/, and it was completely clear to me, I wrote my first neural network the same day. That was almost 10 years ago. As time passes Wikipedia is becoming less and less of an asset to the public and more and more an obscure "mathematician's pub (and physicist's pub too, btw)". I write this with the greatest love, as I love Wikipedia and I think it is (and should increasingly be) an asset to the general population. 136.54.50.251 (talk) 04:49, 30 April 2024 (UTC)
thread_title:  Introduction is way, way, way too complicated