
Foreword
Several technological drivers that arose in the last decade that I made big data possible, irreversibly reshaping the world completely. Among these, machine learning plays a singular role, since it provides the main functionalities required for data analysis, mining, knowledge discovery, and many other features that provide actionable autonomous intelligence in a way invisible but pervasive to most of the systems we use in our daily lives. Although not new, the formalisms and methods within machine learning have quickly evolved, driven by the growing demands of e-commerce, social networks, internet-related services and products, and similar enterprises centered on online business.
Breakthroughs in machine learning have been fueled by other technological innovations sprouted and matured within the Hadoop ecosystem, including horizontally scalable computational resources and superior warehousing capabilities that have made the real-time analysis of huge datasets feasible. At the same time, community supported initiatives around the Python programming language have made the use and evolution of sophisticated analysis libraries widspread, giving rise to a remarkable amount of knowledge and experience, at the same time fast and easy to deploy and to put into production.
Within machine learning, neural networks play a singular role nowadays. Perhaps the first artificial intelligence paradigm to be proposed more than 70 years ago, neural networks have experienced several cycles of being abandoned by the community only to be rediscovered some years later. This was likely due to the lack of computational power to perform really complex analysis adequately, together with the burdensome task of assembling, training, and testing different topologies by trial and error. This has changed dramatically in recent years, mostly due to the availability of cloud computing, GPUs, and programming libraries that allow the set up of networks with simple scripts. Today, a network with hundreds of millions of degrees of freedom can be assembled in minutes, trained in hours, and put into production in a few days, (obviously, if you know the right technologies to so). This is one of the reasons why most of the radical advancements in computer vision, language understanding, and pattern recognition in general are being driven specifically by different flavors of neural networks that have been proposed recently.
This exponentially growing set of knowledge, techniques, and programming libraries makes most classical texts on the subject obsolete, at least for the deployment of fast and practical applications. For this reason, a book like this can be celebrated as a quick and to-the-point text that provides all the materials required to successfully implement and understand a machine learning application in a single reading. In this book, you will find:
- The fundamentals of machine learning tasks (classification, clustering, regression, and data reduction), together with a quick, yet comprehensive introduction to the mathematical and statistical foundations of the subject.
- A more detailed presentation of Neural Networks as a learning model, together with basics of the training algorithms, convergence crite0ria, and the evaluation of results.
- An introduction the most advanced learning models using more elaborate networks, including convolutional, recurrent, and adversarial networks. Each of the models is analyzed thoroughly, both in theoretical and in practical considerations.
- A comprehensive guide to open source software that, together with the previous material, allows the reader to put the concepts into practice very quickly.
This book is highly recommended for practitioners in academia who feel their expertise is becoming outdated, for developers who need to deploy sophisticated machine learning features in business applications, and for anyone willing to gain a broad and practical understanding of machine learning. The author transmits his vast experience in the subject in a very clear and systematic manner, making the book easy to follow and put into practice.
Claudio Delrieux
Full Professor at Electric and Computer Engineering Department - Universidad Nacional del Sur
Fellow - National Research and Technology Council of Argentina
Chair - Imaging Sciences Laboratory