#### Overview of this book

Are you fascinated by how deep learning powers intelligent applications such as self-driving cars, virtual assistants, facial recognition devices, and chatbots to process data and solve complex problems? Whether you are familiar with machine learning or are new to this domain, The Deep Learning Workshop will make it easy for you to understand deep learning with the help of interesting examples and exercises throughout. The book starts by highlighting the relationship between deep learning, machine learning, and artificial intelligence and helps you get comfortable with the TensorFlow 2.0 programming structure using hands-on exercises. You’ll understand neural networks, the structure of a perceptron, and how to use TensorFlow to create and train models. The book will then let you explore the fundamentals of computer vision by performing image recognition exercises with convolutional neural networks (CNNs) using Keras. As you advance, you’ll be able to make your model more powerful by implementing text embedding and sequencing the data using popular deep learning solutions. Finally, you’ll get to grips with bidirectional recurrent neural networks (RNNs) and build generative adversarial networks (GANs) for image synthesis. By the end of this deep learning book, you’ll have learned the skills essential for building deep learning models with TensorFlow and Keras.
Preface
1. Building Blocks of Deep Learning
Free Chapter
2. Neural Networks
3. Image Classification with Convolutional Neural Networks (CNNs)
4. Deep Learning for Text – Embeddings
5. Deep Learning for Sequences
6. LSTMs, GRUs, and Advanced RNNs
7. Generative Adversarial Networks

# 1. Building Blocks of Deep Learning

## Solution

Let's solve the following quadratic equation:

Figure 1.29: Quadratic equation to be solved

We already know that the solution to this quadratic equation is `x=5`.

We can use an optimizer to solve this. For the optimizer, `x` is the variable and the cost function is the left-hand side expression, which is as follows:

Figure 1.30: Left-hand side expression

The optimizer will find the value of `x` for which the expression is the minimum – in this case, it is `0`. Please note that this will work only for quadratic equations that are perfect squares, such as in this case. The left-hand side expression is a perfect square that can be explained with the following equation:

Figure 1.31: Perfect square

Now, let's look at the code for solving this:

1. Open a new Jupyter Notebook and rename...