Deep Learning for Physical Scientists. Edward O. Pyzer-Knapp
Чтение книги онлайн.

Читать онлайн книгу Deep Learning for Physical Scientists - Edward O. Pyzer-Knapp страница 6

Название: Deep Learning for Physical Scientists

Автор: Edward O. Pyzer-Knapp

Издательство: John Wiley & Sons Limited

Жанр: Химия

Серия:

isbn: 9781119408352

isbn:

СКАЧАТЬ Professor of Industrially Applied AI at the University of Liverpool, and the Editor in Chief for Applied AI Letters, a journal with a focus on real‐world application and validation of AI.

      Dr Matt Benatan received his PhD in Audio‐Visual Speech Processing from the University of Leeds, after which he went on to pursue a career in AI research within industry. His work to date has involved the research and development of AI techniques for a broad variety of domains, from applications in audio processing through to materials discovery. His research interests include Computer Vision, Signal Processing, Bayesian Optimization, and Scalable Bayesian Inference.

      Acknowledgements

      EPK: This book would not have been possible without the support of my wonderful wife, Imogen.

      MB: Thanks to my wife Rebecca and parents Dan & Debby for their continuing support.

      Paradigm shifts in the way we do science occur when the stars align. For this to occur we must have three key ingredients:

      1 A fundamental problem, which is impeding progress;

      2 A solution to that problem (often theoretical); and crucially

      3 The capability to fully realise that solution.

      Whilst this may seem obvious, the lack of (3) can have dramatic consequences. Imperfectly realised solutions, especially if coupled with overzealous marketing (or hype) can set back a research field significantly – sometimes resulting in decades in the wilderness.

      Machine learning has suffered this fate not once, but twice – entering the so‐called AI‐winters where only a few brave souls continued to work. The struggle was not in vain, however, and breakthroughs in the theory – especially the rapid improvement and scaling of deep learning – coupled with strides in computational capability have meant that the machine learning age seems to be upon us with a vengeance.

      This “era” of AI feels more permanent, as we are finally seeing successful applications of AI in areas where it had previously struggled. Part of this is due to the wide range of tools which are at the fingertips of the everyday researcher, and part of it is the willingness of people to change the way they think about problems so as to use these new capabilities to their full potential.

      The aims of this book are twofold:

      1 Introduce you to the prevalent techniques in deep learning, so that you can make educated decisions about what the best tools are for the job.

      2 Teach you to think in such a way that you can come up with creative solutions to problems using the tools that you learn throughout this book.

      Typically in the sciences, particularly the physical sciences, we focus on the model rather than on the task that it is providing. This can lead to siloing of techniques in which (relatively) minor differences become seemingly major differentiating factors.

      As a data‐driven researcher it becomes much more important to understand broad categorisations and find the right tools for the job, to be skilled at creating analogies between tasks, and to be OK with losing some explainability of the model (this is particularly true with deep learning) at the gain of enabling new capabilities. More than any other area I have been involved with, deep learning is more a philosophy than any single technique; you must learn to “think deep.” Will deep learning always be the right approach? Of course not, but with growing experience you will be able to intuit when to use these tools, and also be able to conceive of new ways in which these tools can be applied. As we progress through this journey I will show you particularly innovative applications of deep learning, such as the neural fingerprint, and task you to stretch your imagination through the use of case studies. Who knows, you might even improve upon the state of the art!

      Key Features of Thinking Deep

      1 Never get tied into domain specific language, instead use broad terms which describe the process you are trying to achieve.

      2 Look for analogies between tasks. By forcing yourself to “translate” what is going on in a particular process you often come to understand more deeply what you are trying to achieve.

      3 Understand the difference between data and information. A few well chosen pieces of data can be more useful than a ton of similar data points.

      4 Finally, never lose sight of your true goal – at the end of the day this is more likely to be “provide insight into process X” than “develop a super fancy method for predicting X.” The fancy method may be necessary, but it is not the goal.

      2.1 Python Overview

      Why use python? There are a lot of programming languages out there – and they all have their plus and minuses. In this book, we have chosen to use Python as our language of choice. Why is this?

      First of all, is the ease of understanding. Python is sometimes known as “executable pseudo code,” which is a reference to how easy it is to write basic code. Now this is obviously a slight exaggeration (and it is very possible to write illegible code in Python!), but Python does represent a good trade‐off between compactness and legibility. There is a philosophy which went into developing Python which states “There should be one (and preferably only one) obvious way to do a task.” To give you an illustrative example, here is how you print a string in Python:

       print("Hello World!")

      It is clear what is going on! In Java it is a little more obscure, to deal with system dependencies:

       system.out.println("Hello World!")

      And in C, it is not obvious at all what is going on (C is a compiled language so it really only needs to tell the compiler what it needs to do):

      “Hello World!" >> cout

      In fact, C code can be so hard to read that there is actually a regular competition to write obfuscated C code, so unreadable it is impossible to work out СКАЧАТЬ