Hello and welcome to the NVIDIA AI Podcast.
I'm your host, Noah Kravitz. Our guest today was the very first guest on this podcast.
Episode one, Deep Learning 101, is the most listened to episode of the show to date, and still a great introduction for understanding what deep learning and AI are all about.
So go listen to it after you stick around for this conversation with Will Ramey.
Will is Senior Director and Global Head of Developer Programs at NVIDIA, and his GTC digital session, Deep Learning Demystified, is also available online.
So add that to your Will Ramey playlist to check out after you listen to today's show.
I'm also extra excited because I was not the host of the podcast for that first episode.
So this is my first chance to really sit down and chat with Will.
He's here to talk about the current state of deep learning, supporting the developer community, So let's just jump right into it.
Will Ramey, thank you for taking the time to join the NVIDIA AI podcast again.
Well, thanks for having me back, Noah. I know it's been a while, but this is one of my favorite things to do.
Excellent. Well, I couldn't think of a better way to spend a Friday morning as we tape this than than talking to you about deep learning.
So let's start for folks who maybe didn't listen to the first episode, aren't familiar, et cetera, et cetera.
Tell us a little bit about who you are and what you do at NVIDIA.
And, you know, feel free to weave in a little backstory to that as you like.
Okay, well, let's see. I started my career many years ago working at a series of technology companies, mostly startups. and gradually transitioned from software engineering roles to product management roles until I joined NVIDIA about 17 years ago.
And that was a lot of fun. Those were heady times here in Silicon Valley.
Yeah, right. And then about 10 years ago, I took on the role of product manager for this curious new technology that we called CUDA.
And that was really the first step towards NVIDIA transforming ourselves from a hardware-focused semiconductor company which many people still think of us as, into a product and services company that we are today.
But back then, we were just trying to figure out what GPU accelerated parallel computing was even capable of.
And most of the use cases were in scientific computing.
We were looking at things like big scientific simulations, things like molecular dynamics, for material science and drug design, computational fluid dynamics for everything from, well, this was actually kind of funny, everything from airplanes, which is a pretty common use case for computational fluid dynamics to one really interesting use case where they were optimizing the design of low flow toilets using GPU accelerated CFD simulations.
I guess that's another story for another time.
I mean, at the risk of oversharing, I do have one in my house, and now I'm really curious if it's sort of powered by NVIDIA, so to speak.
So I'll have to look into that later. Well, it turns out there are a lot of places in the world where water consumption or the availability of water is a real challenge.
And so being able to have... low-flow toilet designs can be both great for the environment and a tremendous competitive advantage for a company that can bring a product like that to market.
So everything from small, mundane, everyday things to astronomical simulations. that were helping scientists better understand the universe.
So those are some really exciting... initial use cases for this GPU accelerated parallel computing paradigm that we called CUDA.
But then about five years ago, we started seeing research papers from people who were using GPUs to accelerate a new type of machine learning that they called deep learning.
And at the time, My team was offering some online CUDA training courses to help developers learn how to build GPU accelerated applications.
And we released a couple of short courses on deep learning.
And whoa, in a very short amount of time, the enrollments in these deep learning courses eclipsed the number of people who were learning how to program in CUDA.
And we realized that we had a tiger by the tail.
So that's when we doubled down. And the Deep Learning Institute team that now offers all of our developer training has trained over 200,000 people worldwide.
And we're just gearing up for even more.
Right now, during the COVID-19 situation, so many people are working from home.
It's really a great time to invest in developing some new skills and kind of sharpening your tools. for the next series of projects.
So how does deep learning, and we're going to, you know, We don't want to give away the talk from GTC Digital that people can go check out, but obviously we're going to reference some of these things when we're talking you know, sort of broadly about deep learning.
So I'll leave it to you to kind of hint at the talk and other available resources as you go.
But let's start by talking about how deep learning is different from previous approaches to machine learning.
Sure. So the talk I gave earlier this week has slides and visuals and everything that is really helpful to understanding how the workflow of training a deep neural network really works.
And so that's a great place to really internalize how deep learning works.
But the key differences between deep learning and previous approaches to machine learning really focus around a couple key points.
The first is that with previous approaches to machine learning, the process of figuring out what are the characteristics in the data set that actually matter what are the features, which is called feature engineering, is now automated.
So let's say you wanted to design an old-fashioned house.
And it's not really fair to call it old fashioned.
Let's just say, using the previous approach to machine learning, we wanted to design a neural network, not a deep neural network, but a machine learning neural network, to do something like count the number of vehicles going through an intersection and get a sense for what kind of vehicle it is because trucks put a lot more wear on the road than you know, say small sedans or motorcycles and so forth.
Sure. Well, the person doing that work, the engineer or the data science trying to implement that solution would have to have really, really expert knowledge about all of the different subtle characteristics that would allow a software algorithm to tell the difference between a car versus a truck versus a bus versus a motorcycle.
And they could spend a tremendous amount of time implementing custom algorithms to distinguish, to recognize and count, say, the number of headlights or the height or the ratio of the length to the width or something like that of the vehicle to try and figure out what kind it was.
And that's a tremendous amount of work. And after you're done with that part, you then have to figure out how to stitch all of those different feature extractors or feature recognition algorithms together into a neural network to perform the vehicle classification job.
And they would use some data examples to kind of fine tune the weights between these fairly complicated, manually defined feature extraction algorithms. in a lot of cases, could get pretty good results.
The big difference with deep learning is that all of that effort and expertise knowledge, that subject matter expertise that meant that very few people in the world could do that work for each particular type of problem. is now completely automated by deep learning.
So deep learning automates the feature engineering process of creating neural networks.
That makes this technology much more approachable and much faster to develop for a lot of use cases.
The second difference, is that unlike the previous approaches to machine learning where you had relatively large, complicated algorithms to detect all these individual features, Deep learning uses much, much simpler sort of atomic type algorithms for each node in the neural network.
And that means that it takes a lot more of them to build up a sophisticated enough neural network to have that level of understanding of what it's actually seeing.
But it also means that it requires a tremendous amount of data examples, or you could think of it as the experience from which that neural network will learn.
So that's one of the reasons why GPU acceleration is basically a requirement for training these deep neural networks.
They're much larger, they're deeper, meaning they have lots more layers.
And it requires a lot more data to train them.
And so being able to do that work in a practical amount of time requires something like a a GPU parallel accelerator to do the work.
So you touched on a bunch of points in there, but a few points that echo what I've heard from other guests on the show in the past couple of years since I've been But having these conversations, the automation of the feature extraction that you talked about kind of speaks to this democratization of tools and making... deep learning just more accessible to more and also different kinds of people, right?
So it's not just in the big research centers with the supercomputers, It's available to more people and then the tools are a little bit easier to use for people who this isn't their primary profession. also obviously um the the sort of rise of gpus being in the stack and being perfect for this kind of thing and and the hardware itself getting faster.
We've heard from guests who've talked about that as well.
These factors and what other factors and how does it all kind of come together?
Why is deep learning taking off right now?
And kind of with that, Where are we seeing people or where do you think people are really kind of pushing the frontiers of what's possible now with deep learning and kind of AI more broadly?
Well, actually, deep learning has been taking off for several years now, but we're really starting to see widespread adoption of it now. because a lot of that basic research that was happening several years ago has enabled the applied research and the R&D efforts inside organizations that result in applications that then get deployed across all kinds of different industry use cases.
And so... while the technology has been taking off, the thing that's been taking time is for large numbers of people to kind of how to effectively apply this new approach to take a more data-centric approach to machine learning, whereas previously it was much more algorithm-based.
I think that's an important point for folks who might be kind of wondering what that means.
What does that mean kind of to the lay person or the end user who's able to now see results from this, the difference between data-centric and algorithm-centric?
Well, so, for example, with... The previous approaches to machine learning that were very algorithm centric, you needed to have really subject matter experts who were both data scientists and software developers, which is an increasingly common combination, but that used to be a little bit less common and there weren't enough of those people in the world. to write the custom algorithms, basically software programming.
To create, let's just take a really simple example.
Let's say that you have two different image classification problems.
Let's say that you are working at an animal shelter and you have tons and tons of pictures cats and dogs and lizards and fish and all the kinds of things that people have as pets.
And you need to very quickly classify all those images into categories of cat, dog, snake, etc.
And then you have another organization that is a food processing facility.
And they need to be able to very quickly tell the difference between apples and pears and grapes and strawberries and everything that might be coming down the conveyor belt to be packed up.
And it's a bit of a contrived example here, but both of these are image classification problems.
You're basically looking at pictures either captured statically or sampled from a video feed of some kind.
And you're trying to determine what is in that picture.
Is it this or is it that? Is it a class A, class B, or class B kind of thing?
It's what's called image classification.
It used to be, using previous approaches to machine learning, that you'd have to have someone who was a subject matter expert writing algorithms to detect and classify the differences in the features between dogs and cats and other kinds of pets.
And a completely different person with a completely different set of skills and subject matter expertise to write the custom algorithms that tell the difference between different kinds of fruits and vegetables.
Yeah. And that subject matter expertise took many, many years for a person to develop.
And significant amount of time for them to actually apply and implement to each different use case for the applications that needed to be built. two or N number of unicorns in your organization as opposed to just one, which is hard enough.
Exactly. But now with this new approach to machine learning that we call deep learning, you can start with a deep neural network. that is designed to be good at image classification in general.
And then you can have a data science that is a data scientist that is familiar enough with the data to make sure that you have enough representative samples of all the different kinds of animals or all the different kinds of fruits and vegetables, just from a statistical perspective, and then use that data set as the experience from which you can train a neural network for that particular task.
So it could be the exact same neural network model but trained to perform very different tasks based on the data set that you use to train it.
And that has made it, I think you said democratization, which is a great word, that has made this technology available to many, many more people. with much less kind of domain-specific subject matter expertise and more of a focus on the data as the key to training these neural networks to perform particular tasks. as opposed to the custom algorithm development that was previously the focus.
I'm talking with Will Ramey. Will is Senior Director and Global Head of Developer Programs at NVIDIA.
And his GTC digital session entitled Deep Learning Demystified.
Well, it's great. If you haven't heard Will speak before today, you're getting a sense of how he's able to take his longstanding expertise in the field and really break it down into clear, easy to follow examples.
So no matter what your own proficiency, and understanding of deep learning is.
I highly encourage you to check out that session online, which kind of leads me into asking, Will, what else is going on, obviously, with everything going on in the world right now, the shift to GTC Digital, kind of new ground for all of us.
But there's a lot of really exciting stuff.
A lot of people are participating. So what is going on with GTC Digital and deep learning right now?
Well, for many years, NVIDIA has hosted a series of GPU technology conferences that we call GTC.
And we've hosted these conferences all over the world.
But every year, the biggest one is here in Silicon Valley, where we attract you know, many thousands of people to join us each year.
And it's really something that everyone looks forward to because it's an opportunity for so many people across lots of different research domains and industry segments to connect and share their best practices in the application of both GPU accelerated computing and increasingly deep learning, as well as graphics and ray tracing and other technologies that benefit from GPUs.
This year, because of the COVID-19 situation and reduced travel and everyone working from home and so forth, we... about three weeks before the biggest event of the year decided to transform the entire thing into an online event instead.
And so our team scrambled really to figure out what was possible.
What were the parts of the GTC experience that we could bring online? and reached out and connected with hundreds of presenters all over the world, either researchers, and software developers and business leaders who had been planning to come to the conference and deliver their talks and share their knowledge and connect with with friends and colleagues at the conference.
We invited them, many of them to give their presentations live online. and many more to pre-record their sessions as a way to share their expertise with the community. hundreds of them answered the call.
And so starting earlier this week and for the next couple of weeks, we have over 150 sessions, many of them will be live online, as well as opportunities to connect with experts live and also view the research posters and demos and other aspects of GTC that were previously really only available if you attended the conference. conference in person.
My Deep Learning Institute team, for example, is offering seven full-day workshops and 15 short courses.
Some of them are sold out, but yeah, some of them are sold out, but there's a few, a few spots still available.
This is hands-on training for developers, data scientists, and researchers that are taking advantage of thousands of GPU servers that are available in the cloud.
In fact, we're very grateful to Microsoft Azure for sponsoring the hands-on training at GTC Digital this year.
They've been a great partner to work with and are helping us ensure that developers, data scientists, and researchers all over the world have a great experience learning how to create deep learning applications.
You asked earlier, over 30,000 people have signed up for this online digital event.
More than would have... attended the in-person conference here in Silicon Valley.
So we're really excited about this kind of new generation of online digital learning experiences that we're able to deliver and thinking about how we can combine that more into our developer programs and future GPU technology conferences.
Well, as you said, it's... A difficult time, obviously.
We're all banding together to help each other through it.
But while many of us are... Spending more times in our home maybe than we would have previously.
It is a good time to kind of sharpen your tool set and catch up and learn some new things.
And so it's not surprising, but still really awesome that so many folks answered the call and so many folks have signed up to participate and learn and share the Deep Learning Institute's online efforts.
Yeah, and one of the other things we're doing is making most of the sessions available as on-demand recordings after the conference.
So for people who don't happen to be in the same time zone, or maybe need to be taking care of family or loved ones at that particular time when a live session was happening.
It's all free to sign up, register online and get access to this rich collection. of educational and learning materials.
And so to that point with the on-demand materials, are those going to be available online after, you know, GTC itself is over, so to speak?
Yes, in fact, my presentation from earlier this week The recording is already available.
We're trying to get everything up within about 48 hours after the live sessions.
And if you just go to the session schedule page, it has all the links.
You can download slides, you can view the recordings.
It's available to everyone who is registered for the conference.
Registration is free for the first 30 days or so after the conference.
And then after that will be. adding it to our developer program archives so that all of that one point Yeah, we have 1.7 million members of our developer program today, and it's continuing to grow pretty rapidly.
All of them will have free access to the archives from this GTC Digital event, as well as previous GPU technology conferences and other recordings.
That's great. And that kind of leads me into kind of looking at the past. with an eye towards the future and kind of talking about, you know, pulling together all of the shared knowledge and just how quickly things are evolving.
What are some areas where deep learning has proven effective that might have even surprised you, somebody who's been at the heart of this field for so long?
What are some things going on that folks might be interested to hear about that have kind of been a pleasant surprise in how effective deep learning has been?
Well, you know, in the early part of my career, I did a fair amount of work in game development, running a game studio before joining NVIDIA, and then also working to support game developers in the first several years after I joined the company.
One of the things that has been really a pleasant surprise for me is that the way that deep learning has been able to make a really huge difference in improving the visual quality of graphics.
And just maybe a year or so ago, NVIDIA Research and others started releasing some really exciting new approaches to using deep neural networks to predict the color value of pixels in array tracing pipeline.
So for those who don't, in case you don't understand, there's sort of two popular approaches to creating computer graphics.
One is called rendering, which is basically the way that a lot of computer... graphics and games have created images for the screen in the past.
And another is called ray tracing, which uses kind of a, a physical-based simulation that models the way that really individual photons or rays of light travel through a scene and bounce off objects before they get to your eye.
And this ray tracing technique is tremendously computationally intensive and widely used in movies. and special effects to create photorealistic environments in a way that a lot of games that have to be rendered in real time and interactive weren't quite able to achieve.
But when this deep learning approach to predicting what the color values of rays traveling through a ray tracing were going to be started to be applied What we realized is that we could now bring the same kind of photorealistic, incredibly high-quality immersive environments to interactive graphics, like in video games, the same way that it had previously only been available in movies.
And so there's some great, actually some great talks at GTC Digital this year, one from Pixar. and a few from other NVIDIA experts.
They're talking about how this technology works and how it's being implied And I just found that really, really amazing.
And I've been delighted with the way that it's developed over the last year or so.
Very cool. There's one other area that when I first heard about it completely blew my mind.
And that was, in order to use deep learning effectively, you have to have a significant amount of data to represent the experience from which the deep neural network will learn how to perform its task.
And when you consider tasks that self-driving cars or robots need to be able to perform, in order to travel safely through the world and do the work that we want them to do.
Well, let's just take a self-driving car, for example.
If I wanted to train a self-driving car to be safe in all of the circumstances that human drivers are able to be safe and react quickly to, There's a lot of things that are kind of dangerous.
Like imagine that you're just driving down your neighborhood street. and a basketball bounces out into the street in front of your car.
Now, you might look at that and say, well, the basketball is going to be on the other side of the street by the time I get there, so I don't need to slow down.
But as a human being, you are anticipating what's going to come right after that basketball.
What's going to come out into the street, right?
You know, chasing that basketball, right?
Most likely it's going to be a little kid, right?
And so, you know, that you need to slow down.
Because you've kind of seen that thing happen and you can imagine it happening and you want to be safe.
You don't want to run over the kid, right?
I'm hearing my parents' voice yelling in my ears telling me, don't hit the kid. don't go into the street, you know, or when, if you were a teenage driver, your parents sitting next to you saying, slow down, pushing, pushing their feet through the floorboards.
Well, a, uh, an AI, an artificial intelligence driving a car, doesn't have the benefit of having had their parents yell at them to not run into the street. or the parents sitting next to them, pushing their foot through the floorboards and telling them to slow down.
And so you need to have data, but you don't want to put a bunch of cameras on the car and drive it through a neighborhood and have real children jump out in front of it. that would be reckless, right?
So you need a way to simulate all of those different kinds of simulations or all those different kinds of situations.
And it turns out that photorealistic ray tracing, super high quality visualization technology that we just talked about, can be used to create simulations, not only of all of the just normal driving to work, driving to the grocery store kind of situations, but also of all of the dangerous situations that you might need to train an AI to avoid.
So now- The stray basketball, the squirrel from your earlier example, wasn't right for that example, but the squirrel's gonna chase the basket. all that stuff.
Yup. Yup. The windy, icy, rainy, you know, sunset sun glaring in the windshield.
So you can't see. The late at night super dark with those annoying halogen headlights shining in your eyes.
Even the earthquake simulation where the light pole falls over in front of you. you can imagine.
We can now create these situations and basically create a virtual reality.
And then we take it one step further. If you were a human being, you would have to drive a lifetime to accrue all of the experience and have the ability to predict and react very quickly. to situations that are actually happening or maybe even that you just anticipate are going to happen.
In fact, it would take more than one human's lifetime to experience all of those things.
But what we can do in simulation is we can take an infinite number of copies of this AI brain, this neural network or collection of deep neural networks that we're going to use to create a self-driving car. and train them all in parallel.
So now instead of one person driving down a street, and having to drive hundreds of thousands of miles and millions of miles over decades to accrue this experience, we can have tens of thousands of virtual environments, all training on different scenarios. and combine their experience into a single neural network so that it can both effectively and safely drive our autonomous vehicles and take us to work, take us to school, take us wherever we need to go, to the grocery store and back. in a very, very safe way.
It's just amazing. Like you said, it's mind-blowing to think about all of those parallel experiences and wrapping them up for this event. this hugely important reason.
Exactly. Another example of this that I've seen that also really surprised me is there's been some work using a deep learning technique called enforcement learning where they basically create a physical model of the robot, you know, all of its joints and armatures and wheels and treads and things like that.
Even like a virtual model of its sensors, right, if it has a camera or a LIDAR to be able to detect things at a distance and through fog and things like that. and put that in a virtual environment.
And then just give it a goal that says, hey, try to stand up.
Just move around until you can stand up.
And then it has a feedback function that says, you know, basically, this is what standing up looks like.
I mean, you may be standing up, maybe the head of the top is at a certain height or something like that. and it's not falling over, right?
Just give it the goal. And then you turn it loose and tens of thousands of copies of it and it figures it out.
And if you watch this thing, watch the simulation as it unfolds, these little virtual robots in a completely virtual reality simulation start to wiggle around on the ground. and they do the most crazy things they wiggle here and they get one thing up and they stand up and they fall over but each step of the way they're learning yeah And every once in a while, you take a pause in the simulation.
You combine all of the experience of trying to stand up that they have so far. and then let them go again with each copy has the accumulated experience of all the others.
And very quickly, they figure out not only how to stand up, but you can teach them how to walk.
You can teach them how to like... put hundreds of them in a crowd and they can navigate an open space without crashing into anybody else. all operating independently based on this accumulated experience from training and simulation.
So really, really cool approach to using this technology to accomplish some amazing results.
Yeah. So on a kind of wrapping up note here, That idea of letting these things go off and learn things on their own and then hitting pause to combine their experience and then take that knowledge and move forward.
Kind of leads me into the work that you do with developer programs and running developer programs.
Using this as a little meta, but are you using deep learning or perhaps kind of making plans to use deep learning to better support your support of the NVIDIA developer community.
Wow, that's sort of a meta question. I know, I want a couple levels of meta there and may have lost myself there.
So it's funny that you think about that because one of our... uh important developer programs is called inception you know like the movie there there was a a a reality within a reality and so forth but our inception program IS, UM, IS, UM, IS, UM, A designed to help early-stage companies, startups, get a great handle on the technology and successfully build their products or services that is their vision to bring into the world.
And so there are over 5,000 members in this program today. and we're helping them to build AI solutions to improve the world.
As far as how we are using deep learning in our developer programs to make our developer programs better, One of the things that we did actually for this GTC is we built a recommender system. that looked at the titles and abstracts of the talk proposals that people, Nvidia employees and third party experts and business leaders all over the world were submitting to present at the conference.
And it's a huge, huge number of submissions that we need to go through and carefully read and understand.
And they're over a hundred people involved in helping us to select really the best of the best.
One of the ways that we figure out who needs to review which proposals is based on some keywords and some categories. that we ask the submitters to supply.
And one of the challenges is that there are lots of different keywords, so many different topics. that people want to share about.
And selecting those topics from a big long list is kind of tedious for human beings.
So this year, what we did is we looked at the past history of all the GTC session abstracts that we've ever accepted.
And the keywords that we used when we published them in the online schedule and the mobile app for attendees to help them find all the sessions they were interested in.
And we use that data as the experience from which we could train a neural network to automatically recommend highly correlated keywords for new sessions that were being proposed for the very first time for this year's conference.
And the results were really, really fantastic.
It allowed us to very quickly understand and route all these submissions to our experts for review and then also to provide feedback to some of the submitters as they were filing their submissions around what the recommended keywords were.
So we made it easier for them to... submit submissions and then easier for us to manage the reviews of them.
Taking that same technology, what I want to do next is apply that kind of recommendation capability to categorizing all of our developer resources and building a kind of recommendation service to help developers very quickly connect with all of the resources that they need to build the particular types of applications that they want to accelerate using GPUs, right?
So if you're trying to develop a medical imaging algorithm to help detect lung cancer tumors or something like that.
It turns out we have a lot of examples and research papers and things that are helpful to you, but they're kind of hard to find.
And likewise, if you're trying to build a delivery robot so that it'll go to the store and pick up your groceries and then deliver them to your house or or you know pick up some some dominoes pizza and deliver it to your front door that's a completely different kind of um of resource that you're looking for.
You need to have an understanding of the space and the environment and how you move through it and do some path planning and collision avoidance and things like that.
Those are different capabilities. And it turns out we have lots of resources to help people learn how to do that as well.
But there are so many that it's difficult for any one person to find exactly the combination of things that they need to help them quickly develop an application.
So I'm really excited about the ability to offer a more personalized recommendation service that will help connect our developers with the resources they need to build the next generation of breakthrough applications.
If Netflix can use machine learning to recommend videos for me to stream, I have full confidence that you can use it to recommend the right resources to developers.
That's super cool, right? It's great. And it's simple to hear you talk about it. because you've done the hard work of thinking about it, but it makes perfect sense.
It's really awesome to hear about. Unfortunately, we need to wrap to keep this to a podcast length.
But Will, there's a ton of information in here you've gone through and exponentially more available online. to folks online through GTC Digital and the Deep Learning Institute and other resources.
Kind of as a wrap up for next steps to folks, where would you recommend people start online to start exploring more of what's available to sharpen their skills?
Well, first, thanks for having me, Noah.
I really appreciate the opportunity to come and talk with you and hopefully this will be. useful to everyone who's listening as well.
For everyone who's listening, I'd really encourage you to join our developer program at developer.nvidia.com.
This is the easiest way for you to get connected with all of the tremendous collection of resources. as well as our online community that can help you very quickly make progress in building your applications.
The second thing I'd encourage you to do would be to check out our Deep Learning Institute.
You can just search for NVIDIA DLI or go to www.nvidia.com slash DLI to take a look at our online course catalog.
There's a pretty great collection of self-paced online courses that you can just take at your own pace.
And we also offer instructor-led workshops.
Until now, most of those have been sort of scheduled on-site workshops at a conference or we bring on sites to a particular organization's facility and everybody gets in the same room.
But based on our experience with GTC Digital and delivering this kind of training in a live online format, we're going to be increasing that as well and making it available to everyone in the world so that our expert certified instructors can be available to teach workshops to distributed groups of people, whether they're working from multiple offices or working from home or wherever they may be in the world.
This kind of training covers not only the deep learning and accelerated computing use cases that we talked about, but also...
We have courses in developing self-driving cars, autonomous vehicles, and robots, as well as healthcare. and manufacturing.
We have some predictive maintenance and other courses that I think will be really useful.
In fact, Just recently we introduced, well, we upgraded our data science course. which is helping people apply GPU acceleration to traditional data science workflows.
And we introduced a brand new course for IT professionals that helps them learn everything they need to know about building and managing and monitoring GPU accelerated infrastructure in their data centers.
So along the lines of using deep learning for applications to solve problems out in the real world, so to speak, now that it's deep learning is something that's more easily usable across different industries and and different projects how does one go about thinking about well is deep learning actually a good solution for what I'm trying to do right now.
Do you have thoughts on how people are approaching just kind of that first step to using deep learning?
Yeah, that's a great question. I think my first advice would be if there's a straightforward way to solve the problem directly, do that first.
If you're getting good enough results for your particular use case, Don't do all the extra work to implement a deep learning approach unless it's just kind of for your own edification and you're using it to learn the technology.
But it turns out that one of the keys to mastering deep learning is to find a way to describe the work you want it to do in terms of mapping from an input domain to an output domain.
Let me give you an example of what I mean.
Yeah. Let's say that you have a collection of pictures, images that you've taken with your camera or your phone over the years. you want to automatically go through and find all the pictures of your kids or your wife or your parents or something like that, right?
Your loved ones, people whose faces you actually care about.
That's an example of where the input domain is images, and the output domain would be the labels for the people who are in those pictures.
And this would actually be a two-step application of deep learning.
The first step would just to be to go through all the pictures and find where the faces are.
You need to detect where the faces are.
And so your input domain would be, here's an image.
It has some dimensions. and your output domain is some kind of a bounding box, a square or a circle. around each face in the picture.
Because each picture could have between zero and some large number of faces in it, right?
Right. So then you would take those regions of the pictures as your next input domain.
So say that it's either a circle or a square around each face.
And you could have somewhere between zero and a large number that started from each of your original source pictures.
And you'd want to figure out who that is actually a picture of.
So where the first deep learning task was detecting, you were just detecting where the faces were, the second deep deep learning task is one of classification, where you're trying to tell the difference between lots of different faces.
And the data set that you would need for that would be examples of lots of faces that are labeled.
So, you know, like these are pictures of my mom.
These are pictures of my kids, of this kid versus that kid, et cetera.
Yeah. Just give all the kids the same name.
Make it easy. Exactly. But it turns out it's really important because you need to train the neural network at the same level of detail, the same level of granularity that you want it to be able to apply to pictures that it hasn't seen before.
So you build up this data set, you label the faces, you train your neural network.
And let's say you have... 100,000 pictures in your family picture collection.
A lot of people have more than that just on their phone and in the back of the cloud these days.
Right, right, right. And so then you would choose, maybe choose a couple thousand of them several hundred of each person with the labels to train the neural network.
And then you could use the neural network to automatically go through and figure out who all of the people are in all of the rest of your pictures.
So it would save you a tremendous amount of manual effort going through and adding the names of people.
You know, my family's big into pictures and we have photo albums where, you know, on the back of many of the pictures in grandma's or some auntie's handwriting is the list of the people who are in the picture.
But when I look at it, I'm like, I'm not, did they write the names in the right order?
Like who's who? I ended up having to look at lots of different pictures to figure out who's who.
It turns out we had all of those pictures taken. scanned in and digitized and have been able to apply a process kind of similar to this to knowing who is in which pictures.
So a few years ago when my mom had a major birthday, I was able to go into my computer and search by her name. to get a whole bunch of pictures, to sort them in chronological order, and I built an hour-long slideshow With all of her favorite music through the decades contributed by her sister and her sorority friends and all that kind of stuff.
Yeah, yeah. And it was just a really wonderful experience to have that playing in the background at her surprise birthday party.
Right. Oh, that's great. I've only gotten up to five-minute long slideshows for my six-year-old's birthday last year, but I
I have something greater to aspire to now and deep learning on my side.
So it's perfect. Well, and, you know, five or six minutes for a six-year-old perfectly matches their attention span.
Yes, yes, exactly. Will, it's been an absolute pleasure to talk to you.
And like we said before, tons of great information in here on what's going on in deep learning and places people can go to keep going.
And as we've spoken to, it's kind of a brave new world right now and things kind of being shifted from in-person events to virtual learning and learning on your own.
But at least in the world of deep learning with the efforts that you and your team are doing, there's a ton of great stuff out there for people to absorb and share and work on.
And so it's really good stuff. Thanks for taking the time to come on the show and share it.
Thanks for having me, Noah. Thank you. ¶¶