Why do we need weights when training a perceptron as an OR gate?
This would successfully simulate an OR gate.


Of course. In fact, hardware implementation of an OR gate needs just a few transistors. It may sound surprising, but the best python implementation of OR is a or b.


  So why do I need to "train" any weights?


It's one of the simplest functions out there, everyone understands how OR works just from the boolean table. The task shows that a neural network can learn it as well, just from examples and without specification what a logical operation is and how to wire it.