From f800a34d8b768e04709be4269f9cce31cb784e00 Mon Sep 17 00:00:00 2001 From: Brad Boehmke Date: Tue, 31 Oct 2023 15:30:51 -0400 Subject: [PATCH] Add generative AI section to ch 1 --- book/01-intro.qmd | 72 ++++++++++++------- book/figures/a-brain-riding-a-rocketship.jpg | Bin 0 -> 16165 bytes book/figures/flamingo.png | Bin 0 -> 18585 bytes 3 files changed, 45 insertions(+), 27 deletions(-) create mode 100644 book/figures/a-brain-riding-a-rocketship.jpg create mode 100644 book/figures/flamingo.png diff --git a/book/01-intro.qmd b/book/01-intro.qmd index 3ed9ab1..6e44076 100644 --- a/book/01-intro.qmd +++ b/book/01-intro.qmd @@ -31,12 +31,12 @@ In essence, these tasks all seek to learn and draw inferences from patterns in d use a given set of _features_\index{features} to train an algorithm and extract insights. These algorithms, or _learners_\index{learners}, can be classified according to how they learn to make predictions and the four main groups of learners are: -* Supervised learners -* Unsupervised learners +* Supervised learning +* Unsupervised learning * Reinforcement learning * Generative artificial intelligence (AI) -Which type you will need to use depends on the learning task you hope to accomplish. +Which type you will need to use depends on the learning task you hope to accomplish; and the primary focus of this book is on the first two groups of learners - supervised and unsupervised learning. ## Supervised learning @@ -265,7 +265,7 @@ learning models in recent years (often driven by their availability in both prop ### Knowledge check ::: {.callout-caution icon=false} -Identify the features, response variable, and the type of supervised model required for +Identify the features, response variable, and the type of supervised model (regression or classification) required for the following tasks: * There is an online retailer that wants to predict whether you will click on a certain @@ -309,8 +309,7 @@ Clustering differs from classification because the categories aren't defined by Clustering weather patterns which we would label the clusters based on our understanding of the data. ::: -In _dimension -reduction_\index{dimension reduction}, we are often concerned with reducing the number +In _dimension reduction_\index{dimension reduction}, we are often concerned with reducing the number of variables in a data set. For example, classical linear regression models break down in the presence of highly correlated features, a situation known as *multicollinearity*.^[To be fair, and as we'll see later in the book, the interpretation of most fitted ML models becomes problematic in the presence of correlated or (otherwise dependent) fetures.] Some dimension reduction techniques can be used to reduce the feature set to a potentially smaller set of uncorrelated variables. @@ -359,46 +358,59 @@ down by combining all those highly correlated features into groups. ## Reinforcement learning -Reinforcement learning (RL) refers to a family of algorithms that learn to make predictions by getting rewards or penalties based on actions performed within an environment. A reinforcement learning system generates a policy that defines the best strategy for getting the most rewards. +_Reinforcement learning_\index{reinforcement learning} (RL) refers to a family of algorithms that learn to make predictions by getting rewards or penalties based on actions performed within an environment. A reinforcement learning system generates a policy that defines the best strategy for getting the most rewards. This best strategy is learned through interactions with the environment and observations of how it responds. In the absence of a supervisor, the learner must independently discover the sequence of actions that maximize the reward. This discovery process is akin to a trial-and-error search. The quality of actions is measured by not just the immediate reward they return, but also the delayed reward they might fetch. As it can learn the actions that result in eventual success in an unseen environment without the help of a supervisor, reinforcement learning is a very powerful algorithm. A few examples of RL include: -* **[Robotics](https://www.wired.com/2010/07/robot-learns-to-flip-pancakes/)**. Robots with pre-programmed behavior are useful in structured environments, such as the assembly line of an automobile manufacturing plant, where the task is repetitive in nature. In the real world, where the response of the environment to the behavior of the robot is uncertain, pre-programming accurate actions is nearly impossible. In such scenarios, RL provides an efficient way to build general-purpose robots. It has been successfully applied to robotic path planning, where a robot must find a short, smooth, and navigable path between two locations, void of collisions and compatible with the dynamics of the robot. -* **[AlphaGo](https://deepmind.com/research/case-studies/alphago-the-story-so-far)**. One of the most complex strategic games is a 3,000-year-old Chinese board game called Go. Its complexity stems from the fact that there are 10^270 possible board combinations, several orders of magnitude more than the game of chess. In 2016, an RL-based Go agent called AlphaGo defeated the greatest human Go player. Much like a human player, it learned by experience, playing thousands of games with professional players. The latest RL-based Go agent has the capability to learn by playing against itself, an advantage that the human player doesn’t have. -* **[Autonomous Driving](https://arxiv.org/pdf/2002.00444.pdf)**. An autonomous driving system must perform multiple perception and planning tasks in an uncertain environment. Some specific tasks where RL finds application include vehicle path planning and motion prediction. Vehicle path planning requires several low and high-level policies to make decisions over varying temporal and spatial scales. Motion prediction is the task of predicting the movement of pedestrians and other vehicles, to understand how the situation might develop based on the current state of the environment. +* **[Robotics](https://lamarr-institute.org/blog/reinforcement-learning-and-robotics/)**. Robots with pre-programmed behavior are useful in structured environments, such as the assembly line of an automobile manufacturing plant, where the task is repetitive in nature. However, in the unpredictable real world, where the interaction between a robot's actions and the environment is uncertain, achieving precise pre-programmed actions becomes exceedingly challenging. In such situations, Reinforcement Learning (RL) offers an effective approach to develop versatile robots. RL has demonstrated success in the context of robotic path planning, where robots need to autonomously discover optimal, obstacle-free, and dynamically compatible paths between two locations. +* **[AlphaGo](https://deepmind.com/research/case-studies/alphago-the-story-so-far)**. Go, a Chinese board game dating back 3,000 years, stands out as one of the most intricate strategic games known. Its complexity is attributed to the staggering number of possible board configurations, estimated at 10^270, surpassing the complexity of chess by several orders of magnitude. In 2016, AlphaGo, an artificial intelligence agent based on Reinforcement Learning (RL), achieved victory against the world's top human Go player. Much like a human player, AlphaGo learned through experience, engaging in thousands of games against professional opponents. Notably, the most recent RL-based Go agent possesses the unique ability to enhance its skills by playing against itself, a capability not available to human players. +* **[Autonomous Driving](https://arxiv.org/pdf/2002.00444.pdf)**. An autonomous driving system faces the challenge of executing numerous perception and planning functions within an environment characterized by uncertainty. Reinforcement Learning (RL) is employed in various specific tasks, including vehicle path planning and motion prediction. Vehicle path planning entails the use of multiple low and high-level policies to make decisions that span different temporal and spatial scales. On the other hand, motion prediction involves the anticipation of pedestrian and other vehicle movements, thereby enabling an understanding of how the current environmental state might evolve. + +Reinforcement learning as field has existed for quite some time but it really gained mainstream popularity after DeepMind’s break through application of Q-learning to play Atari games [@rlatari2013]. Since then reinforcement learning has experienced several major breakthroughs and gains in popularity. Unfortunately, this topic is beyond the scope of this book but we recommend @sutton2018reinforcement, @powell2021reinforcement, and @szepesvari2022algorithms to learn more about RL. ## Generative AI -Generative AI is a class of models that creates content from user input. For example, generative AI can create novel images, music compositions, and jokes; it can summarize articles, explain how to perform a task, or edit a photo. +_Generative AI_\index{generative AI} represents a category of models that generate content based on user input. It possesses the capability to generate various forms of content, including original images, musical compositions, and humorous jokes. Additionally, it can summarize articles, provide instructions for performing tasks, or even enhance and modify photographs. -Generative AI can take a variety of inputs and create a variety of outputs, like text, images, audio, and video. It can also take and create combinations of these. For example, a model can take an image as input and create an image and text as output, or take an image and text as input and create a video as output. +Generative AI is versatile in its ability to work with a wide range of inputs and produce diverse outputs, encompassing text, images, audio, and video. Furthermore, it can handle combinations of these input and output types. For instance, a model can take an image as input and generate both an image and accompanying text as output, or it can accept input in the form of an image and text and produce a video as the output. We can discuss generative models by their inputs and outputs, typically written as "type of input"-to-"type of output." For example, the following is a partial list of some inputs and outputs for generative models: -Text-to-text -Text-to-image -Text-to-video -Text-to-code -Text-to-speech -Image and text-to-image +- Text-to-text +- Text-to-image +- Text-to-video +- Text-to-code +- Text-to-speech +- Image and text-to-image + +@tbl-example-generative-models lists example use-cases of generative models. -The following table list examples of generative models, their input, and an example of their possible output: +| Model | Input | Example output | +|:------|:------|:------| +| Text-to-text | Who came up with the michelin star rating for restaurants? | The Michelin star rating system for restaurants was introduced by the French tire company Michelin. The system was first developed in the early 20th century as a means to promote travel and, by extension, the use of automobiles, in order to increase the demand for tires. Michelin began publishing restaurant and hotel guides in 1900, and in 1926, they started awarding stars to restaurants in recognition of their culinary excellence. The Michelin Guide is highly regarded in the culinary world, and Michelin stars have become a prestigious mark of quality for restaurants. [source: [ChatGPT](https://chat.openai.com) ]| +| Text-to-image | A brain riding a rocketship heading towards the moon. | ![a-brain-riding-a-rocketship](figures/a-brain-riding-a-rocketship.jpg) [source: [Imagen](https://imagen.research.google) ] | +| Text-to-code | Write a hello world statement in R | `print("Hello, World!")` [source: [Bard](https://bard.google.com/) ] | +| Image-to-text | ![flamingo](figures/flamingo.png) | This is a flamingo. They are found in the Caribbean. [Source: [Google DeepMind](https://deepmind.google/)] | -TBD +: Examples of generative models, their input, and an example of their possible output. {#tbl-example-generative-models} {tbl-colwidths="[20,30,50]"} How does generative AI work? At a high-level, generative models learn patterns in data with the goal to produce new but similar data. To produce unique and creative outputs, generative models are initially trained using an unsupervised approach, where the model learns to mimic the data it's trained on. The model is sometimes trained further using supervised or reinforcement learning on specific data related to tasks the model might be asked to perform, for example, summarize an article or edit a photo. Generative AI is a quickly evolving technology with new use cases constantly being discovered. For example, generative models are helping businesses refine their ecommerce product images by automatically removing distracting backgrounds or improving the quality of low-resolution images. +Although this book does not delve into generative AI directly, the deep learning chapters do provide the foundation that many generative AI models are built upon. + ## Machine learning in `r fontawesome::fa("r-project")` -Historically, the R ecosystem provides a wide variety of ML algorithm implementations. -This has its benefits; however, this also has drawbacks as it requires the users to learn -many different formula interfaces and syntax nuances. +The ML open-source ecosystem is a vibrant and rapidly evolving collection of software tools, libraries, frameworks, and platforms that are made freely available to the public for building, training, and deploying ML. This ecosystem has played a crucial role in democratizing ML and making ML accessible to a wide range of data scientists, researchers, and organizations. -More recently, development on a group of packages called [**Tidymodels**](https://www.tidymodels.org/) +Although this ecosystem expands multiple programming languages, our focus will predominately be with the R programming language. The R ecosystem provides a wide variety of ML algorithm implementations. This makes many powerful algorithms available at your fingertips. Moreover, there are almost always more than one package to perform each algorithm (e.g., there are over 20 packages for fitting random forests). There are pros and cons to this wide selection; some implementations may be more computationally efficient while others may be more flexible (i.e., have more hyperparameter tuning options). + +This book will expose you to many of the R packages and algorithms that perform and scale best to the kinds of data and problems encountered by most organizations while also showing you how to use implementations that provide more consistency. + +For example, more recently, development on a group of packages called [**Tidymodels**](https://www.tidymodels.org/) has helped to make implementation easier. The **tidymodels** collection allows you to perform discrete parts of the ML workflow with discrete packages: @@ -409,14 +421,20 @@ discrete parts of the ML workflow with discrete packages: - [yardstick](https://yardstick.tidymodels.org/) for measuring model performance - and several others! -Throughout this book you'll be exposed to several of these packages. Go ahead and make -sure you have the following packages installed. - ::: {.callout-note} The **tidymodels** package is a meta package, or a package of packages, that will install several packages that exist in the **tidymodels** ecosystem. ::: +Throughout this book you'll be exposed to several of these packages and more. Moreover, in some cases, ML algorithms are available in one language but not another. As data scientists, we need to be comfortable in finding alternative solutions to those available in our native programming language of choice. Consequently, we may even provide examples of implementations using other languages such as Python or Julia. + +Prior to moving on, let's take the time to make sure you have the required packages installed. + +::: {.callout-warning} +# TODO +Once book is complete provide link to DESCRIPTION file or alternative approach for an easy way for readers to install all requirements. Maybe discuss `renv`?? +::: + ```{r} #| label: packages-to-install #| eval: FALSE diff --git a/book/figures/a-brain-riding-a-rocketship.jpg b/book/figures/a-brain-riding-a-rocketship.jpg new file mode 100644 index 0000000000000000000000000000000000000000..72a4674952275ef58fb7bd42561af61408d7ab04 GIT binary patch literal 16165 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