title: Intuition for perceptron weight update rule
body: <p>I am having trouble understanding the weight update rule for <a href="https://en.wikipedia.org/wiki/Perceptron#Steps" rel="noreferrer">perceptrons</a>:</p>
  
  <p><em>w(t + 1) = w(t) + y(t)x(t)</em>.</p>
  
  <p>Assume we have a linearly separable data set.</p>
  
  <ul>
  <li><em>w</em> is a set of weights [w0, w1, w2, ...] where w0 is a bias.</li>
  <li><em>x</em> is a set of input parameters [x0, x1, x2, ...] where x0 is fixed at 1 to accommodate the bias.</li>
  </ul>
  
  <p>At iteration <em>t</em>, where <em>t</em> = 0, 1, 2, ...,</p>
  
  <ul>
  <li><em>w(t)</em> is the set of weights at iteration <em>t</em>.</li>
  <li><em>x(t)</em> is a misclassified training example.</li>
  <li><em>y(t)</em> is the target output of <em>x(t)</em> (either -1 or 1).</li>
  </ul>
  
  <hr>
  
  <p>Why does this update rule move the boundary in the right direction?</p>