What is a perceptron and how does it function in machine learning? How does a perceptron process input data to make predictions or classifications? What are the key components of a perceptron model? How does the perceptron learning algorithm update weights during training? What are the advantages and limitations of using perceptrons in machine learning applications?