Quote:
Originally Posted by avorobey
In my perceptron code, I added a check that after updating the weights on a misclassified point, the point becomes "correct". The lecture claims that after updating w<w+x_i*y_i, w becomes correct on x_i (using a geometric obtuse/acute angle intuition). To my surprise, my check failed every now and then, not on every PLA run, but occasionally  meaning that sometimes the point stayed misclassified after an update. I didn't see any other issues with my code, and the answers it generated led to correct answers on the homework.
Before I delve into it and try to debug it, I thought of asking if this is known to be normal, or was experienced by others. Come to think of it, I don't see an obvious rigorous argument that updating makes w correct on the point under consideration  is there a simple way to prove this I'm missing?

The point does not necessarily become correctly classified in one update, but it "moves in the right direction" (gets closer to the boundary if it remains misclassified). What can be proved is that if you keep updating and the points are linearly separable, they will all
eventually become correctly classified.