To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure firstname.lastname@example.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
This extraordinary three-volume work, written in an engaging and rigorous style by a world authority in the field, provides an accessible, comprehensive introduction to the full spectrum of mathematical and statistical techniques underpinning contemporary methods in data-driven learning and inference. This final volume, Learning, builds on the foundational topics established in volume I to provide a thorough introduction to learning methods, addressing techniques such as least-squares methods, regularization, online learning, kernel methods, feedforward and recurrent neural networks, meta-learning, and adversarial attacks. A consistent structure and pedagogy is employed throughout this volume to reinforce student understanding, with over 350 end-of-chapter problems (including complete solutions for instructors), 280 figures, 100 solved examples, datasets and downloadable Matlab code. Supported by sister volumes Foundations and Inference, and unique in its scale and depth, this textbook sequence is ideal for early-career researchers and graduate students across many courses in signal processing, machine learning, data and inference.
This extraordinary three-volume work, written in an engaging and rigorous style by a world authority in the field, provides an accessible, comprehensive introduction to the full spectrum of mathematical and statistical techniques underpinning contemporary methods in data-driven learning and inference. This second volume, Inference, builds on the foundational topics established in volume I to introduce students to techniques for inferring unknown variables and quantities, including Bayesian inference, Monte Carlo Markov Chain methods, maximum-likelihood estimation, hidden Markov models, Bayesian networks, and reinforcement learning. A consistent structure and pedagogy is employed throughout this volume to reinforce student understanding, with over 350 end-of-chapter problems (including solutions for instructors), 180 solved examples, almost 200 figures, datasets and downloadable Matlab code. Supported by sister volumes Foundations and Learning, and unique in its scale and depth, this textbook sequence is ideal for early-career researchers and graduate students across many courses in signal processing, machine learning, statistical analysis, data science and inference.
Computer scientists often need to learn new programming languages quickly. The best way to prepare for this is to understand the foundational principles that underlie even the most complicated industrial languages. This text for an undergraduate programming languages course distills great languages and their design principles down to easy-to-learn 'bridge' languages implemented by interpreters whose key parts are explained in the text. The book goes deep into the roots of both functional and object-oriented programming, and it shows how types and modules, including generics/polymorphism, contribute to effective programming. The book is not just about programming languages; it is also about programming. Through concepts, examples, and more than 300 practice exercises that exploit the interpreter, students learn not only what programming-language features are but also how to do things with them. Substantial implementation projects include Milner's type inference, both copying and mark-and-sweep garbage collection, and arithmetic on arbitrary-precision integers.
This extraordinary three-volume work, written in an engaging and rigorous style by a world authority in the field, provides an accessible, comprehensive introduction to the full spectrum of mathematical and statistical techniques underpinning contemporary methods in data-driven learning and inference. This first volume, Foundations, introduces core topics in inference and learning, such as matrix theory, linear algebra, random variables, convex optimization and stochastic optimization, and prepares students for studying their practical application in later volumes. A consistent structure and pedagogy is employed throughout this volume to reinforce student understanding, with over 600 end-of-chapter problems (including solutions for instructors), 100 figures, 180 solved examples, datasets and downloadable Matlab code. Supported by sister volumes Inference and Learning, and unique in its scale and depth, this textbook sequence is ideal for early-career researchers and graduate students across many courses in signal processing, machine learning, statistical analysis, data science and inference.
The Science of Deep Learning emerged from courses taught by the author that have provided thousands of students with training and experience for their academic studies, and prepared them for careers in deep learning, machine learning, and artificial intelligence in top companies in industry and academia. The book begins by covering the foundations of deep learning, followed by key deep learning architectures. Subsequent parts on generative models and reinforcement learning may be used as part of a deep learning course or as part of a course on each topic. The book includes state-of-the-art topics such as Transformers, graph neural networks, variational autoencoders, and deep reinforcement learning, with a broad range of applications. The appendices provide equations for computing gradients in backpropagation and optimization, and best practices in scientific writing and reviewing. The text presents an up-to-date guide to the field built upon clear visualizations using a unified notation and equations, lowering the barrier to entry for the reader. The accompanying website provides complementary code and hundreds of exercises with solutions.
This self-contained introduction to machine learning, designed from the start with engineers in mind, will equip students with everything they need to start applying machine learning principles and algorithms to real-world engineering problems. With a consistent emphasis on the connections between estimation, detection, information theory, and optimization, it includes: an accessible overview of the relationships between machine learning and signal processing, providing a solid foundation for further study; clear explanations of the differences between state-of-the-art techniques and more classical methods, equipping students with all the understanding they need to make informed technique choices; demonstration of the links between information-theoretical concepts and their practical engineering relevance; reproducible examples using Matlab, enabling hands-on student experimentation. Assuming only a basic understanding of probability and linear algebra, and accompanied by lecture slides and solutions for instructors, this is the ideal introduction to machine learning for engineering students of all disciplines.
Computer science majors taking a non-programming-based course like discrete mathematics might ask 'Why do I need to learn this?' Written with these students in mind, this text introduces the mathematical foundations of computer science by providing a comprehensive treatment of standard technical topics while simultaneously illustrating some of the broad-ranging applications of that material throughout the field. Chapters on core topics from discrete structures – like logic, proofs, number theory, counting, probability, graphs – are augmented with around 60 'computer science connections' pages introducing their applications: for example, game trees (logic), triangulation of scenes in computer graphics (induction), the Enigma machine (counting), algorithmic bias (relations), differential privacy (probability), and paired kidney transplants (graphs). Pedagogical features include 'Why You Might Care' sections, quick-reference chapter guides and key terms and results summaries, problem-solving and writing tips, 'Taking it Further' asides with more technical details, and around 1700 exercises, 435 worked examples, and 480 figures.
In modern computer science, there exists no truly sequential computing system; and most advanced programming is parallel programming. This is particularly evident in modern application domains like scientific computation, data science, machine intelligence, etc. This lucid introductory textbook will be invaluable to students of computer science and technology, acting as a self-contained primer to parallel programming. It takes the reader from introduction to expertise, addressing a broad gamut of issues. It covers different parallel programming styles, describes parallel architecture, includes parallel programming frameworks and techniques, presents algorithmic and analysis techniques and discusses parallel design and performance issues. With its broad coverage, the book can be useful in a wide range of courses; and can also prove useful as a ready reckoner for professionals in the field.
This vignette describes the Therac-25 radiation therapy machine, whose software bugs and lack of hardware safety interlocks led to six serious accidents between 1982 and 1987. Three lives were claimed due to overconfidence in software and loose design regulations. Ultimately, these events were a catalyst for the FDA to begin investigating and regulating medical software.
This vignette discusses the failed launch of the online marketplace for purchasing individual healthcare insurance that was created as part of the Affordable Care Act (ACA) in fall 2013. A key component of this effort was the website www.HealthCare.gov, through which individuals would be able to buy health insurance.
This chapter discusses the processes of identifying the needs of our users, which is the first step in the software life cycle. We begin with an overview of the structure of creating new projects. Next, we apply the “Brown Cow” model (Section 11.1) as a guide for how to go about understanding the user’s current situation and future needs.
In this short chapter, we discuss the final three steps in the software life cycle: (1) deployment (Section 16.1), (2) maintenance (Section 16.2), and (3) decommissioning (Section 16.3). These are complex topics in their own right.
In the case of the Boeing 737 MAX disaster, the manufacturer tried to address hardware problems with software fixes in order to avoid the costs of recertification of what would have been a new airplane (had the fixes been done in hardware). Overconfidence in the software and insufficient testing and pilot training led to two fatal crashes and 346 fatalities.
Providing a concise and accessible overview of the design, implementation and management of medical software, this textbook will equip students with a solid understanding of critical considerations for both standalone medical software (software as a medical device/SaMD) and software that is integrated into hardware devices. It includes: practical discussion of key regulatory documents and industry standards, and how these translate into concrete considerations for medical software design; detailed coverage of the medical software lifecycle process ; accessible introduction to quality and risk management systems in the context of medical software; succinct coverage of essential topics in data science, machine learning, statistics, cybersecurity, software engineering and healthcare bring readers up-to-speed; six cautionary real-world case studies illustrate the dangers of improper or careless software processes. Accompanied by online resources for instructors, this is the ideal introduction for undergraduate students in biomedical engineering, electrical engineering and computer science, junior software engineers, and digital health entrepreneurs.