Perceptrons are a type of artificial neural network where each unit is called a perceptron. Perceptrons take a vector of inputs and can only deal with linearly separable functions like AND and OR, but not XOR. The perceptron training rule modifies weights at each step according to the error between the target and actual output. If there is no error, the weights are not updated. Gradient descent was introduced to handle non-linearly separable functions by finding weights for the best fit without a threshold, by minimizing the squared error over all training examples through iterative weight updates in the direction of steepest descent. The delta rule for gradient descent is similar to the perceptron rule but uses the linear unit output rather than the