Machine Learning is a core subject of the Specialty in Computing belonging to the Computer Science Degree. It is given in the 6th semester of the degree.
Machine learning deals with computer programming and aims to optimization tasks by means of examples or previous experience. It is really useful for solving those problems in which we cannot write a computer program straight away, when there is not previous human experience to be used or it is not possible to capture and use the former.
The challenge of building systems capable to adapt to their environment and then learn by experience has come to the attention of researchers from the following fields: Computer Science, Engineering, Mathematics Physics, Neuroscience, and Cognitive Science. From this field of research a big pool of machine learning techniques are transforming Industry and Science. The exponential growth of computing power as well as memory low costs have provided a feasible application of machine learning algorithms to problems which seemed to be intractable a decade ago.
At present, machine learning techniques can be classified according to the following criteria: supervised learning, in which the system is input with data samples an its solution, for a classification problem according to a discrete set of categories or for a regression problem in case of continuos variables; unsupervised learning, whenever the training data set does not include the solution, for which the system goal consists in discovering clusters gathering similar data samples or clustering, or estimating the data distribution according to the input (also known as density estimation); reinforcement learning, for problems in which proper actions are required for specific situations, and aims to reward maximization, in these cases the algorithm is not input with examples; en estos casos al algoritmo no se le dan ejemplos, but it has to discover them by means of a “trial and error” process.
Nowadays, there exist a wide range of machine learning techniques for many application domains. There exist commercial systems for speech recognition and natural language and handwriting recognition, for learning about customer uses by previous purchases, for analyzing commercial transactions and prediction of credit risk, for spam detection, for news clustering (e.g. Google News) and so on. In addition, robots learn behaviour optimization minimizing resource usage. These applications are being developed in a frantic rhythm, and it can be seen that they are able to cope with increasing complex problems in a wide range of fields.