Introduction to Machine Learning for Developers at F8 2019
Skills:
ML Maths Basics60%
Key Takeaways
Covers the basics of machine learning and popular developer tools and workflows from Facebook
Full Transcript
all right everyone thanks for joining my name is Bruce Lin and I support developer parka team here at Facebook in our main focus on the team is to make sure that you the developers have access to the tools the educational resources and the communities that you need to build with latest technologies and so one area that's come up a lot has been machine learning in machine learning development so as a result I think at f8 this year we've got 13 sessions covering AI everything from how Facebook builds and deploys machine learning systems to new open source tools that you can go check out today so for anyone that's new to machine learning development I wanted to spend the next 15 minutes really really quickly going through some of the common terminology and the common concepts you'll come across and also take a look at the developer workflow and some developer tools that you can start using now so the hope is to freighting some quick context for understanding the sessions happening later today and tomorrow so you can better understand how they can be relevant to your work so let start with some terminology so AI or artificial intelligence refers the ability for a machine to complete tasks that involve human level intelligence as well as or better than a human can so when you think about popular culture and how are they reference AI that's usually referencing a GI or artificial general intelligence so this refers to a machine that can perform any intellectual task as well as a human can so you think of your favorite droid from a galaxy far far away this is usually a GI in contrast to that most of what we'll talk about in this session as well as today and tomorrow and a lot of the work that's being done now is still in narrow AI which is the ability for machine to perform a specific task so that could be understanding what's in an image or it could be translating languages or it could be making business predictions for your company so machine learning and artificial intelligence are two terms are used pretty interchangeably I know I've been using them interchangeably for the last minute or so but it's actually not the same thing so machine learning is a subfield of AI that involves giving a machine the ability to perform tasks without being explicitly programmed to do so so you can imagine in situations it can be really tedious or difficult or sometimes even impossible to try and code every single rule that a machine would need in order to successfully perform a task we can use machine learning instead and there's also other subfields of AI but we'll focus on machine learning all right so deep learning so deep learning is a type of machine learning that uses artificial neural networks that can learn the associations between inputs and outputs and deep learning has actually gotten really popular and driven a lot of the advances in AI in the past few years and this is largely due to researchers and engineers applying existing and new techniques to larger and larger datasets which allows us to train models more accurately and also the use of more more higher performance hardware so especially the use of GPUs to perform all the computations that we need for machine learning so mention that deep learning uses artificial neural networks so artificial neural networks our computing system is made up of interconnected nodes and when we talk about deep learning we're referring to computing systems that use many many layers of these interconnected nodes so the node is the basic unit of a neural network where computations are performed taking a deeper look at that we can understand notes as a linear transformation enclosed in a non-linear transformation so in the linear transformation the input data comes in and you multiply it by a number or a weight and then the addition of a bias or a constant so you see the term weights and biases this is what it's referring to so after linear transformation we apply a nonlinear transformation or an activation function and and this is what allows us to go from inputs and outputs that don't always have a linear relationship and in a deep neural network the outputs of this linear nonlinear transformation then become the inputs to the next layer of these nodes so mathematically we can write that out as Y or the output equals function of the weighted sum of the inputs and the addition of a bias so the main idea here is that through these simple or relatively simple mathematical computations and a lot of these computations deep-learning allows us to model relationship and oftentimes complex relationships between inputs and outputs that otherwise would be very far apart so that could be between an image in a sense it's describing what's happening in that image so before we move on from some of the common terminology I wanna quickly touch on the learning process so how does a machine learn this happens through the model training process so in model training the first step is the forward pass so at this point the neural network is activated and data flows through the neural network in the four direction and we compute the output so at this point in time the weights and biases are still kind of randomly assigned we don't actually know the right parameters they're going to result in the correct output to be computed we then compared the computed output with the ground truth or our desired output and we look at the total error and then that error is propagated backwards through the neural network to adjust the parameters to more accurately calculate the correct output and so that's done through this concept of back propagation and lastly gradient descent is a commonly used optimization algorithm that helps us in adjusting parameters to minimize that total error between the computed output and the desired output it allows us to understand how the error changes in a response to a change in the parameter so it's a super super basic and quick explanation of supervised learning but there's also other learning techniques such as unsupervised learning and reinforcement learning all right so switching gears a bit I want to talk about how we apply AI at Facebook since it's not always something that's super obvious as you're interacting with the products and experiences on facebook so you probably use recommendations before so this is one experience that you probably familiar with that uses machine learning to power that experience we also have a immersive new video device video calling device that we launched last year called portal and portal has this really cool feature called smart camera and smart camera keeps the camera as it sounds focused on what's happening so whether you're talking or someone else is talking or just want to make sure that your whole family is fits the frame and you're not sort of cutting people out that's where smart camera comes in and that's powered by machine learning these are examples of how you can use machine learning to build experiences that bring people that much closer together even if they can't physically be near each other and lastly for completely new experiences like augmented reality or virtual reality we also use machine learning to power some of those experiences there so example here's oculus lip sync so the oculus lip sync your avatar in a virtual environment can sync the lip movements to what you're saying in real time to make it that much more natural when you're interacting alright so let's talk about some of the developer tools that you can use and the developer workflow involved to build some of these experiences so thanks to the proliferation of a lot of different developer tools and a lot more accessible developer tools it's not easier for developers with varying levels of experience or familiarity to get started with machine learning so we had a bucket the steps into kind of four rough steps the first one would be determining your approach so this is a point in time where you should really spend the right amount of time figuring out how machine learning is going to solve the problem that you have and how you're gonna get that data what you're gonna do with it and ultimate where you can do it the output of that machine learning model to solve whatever you're looking to do so once you've figured out your plan of attack you don't need to prepare that data this is another step that could also take a bit of time depending on and what sea state your data is in at this point you want to prepare it and it's a pre-processing generally get your data ready to be used by your machine learning model and then you can move into the fun part of building and training your model which we talked about a little bit earlier and once you've evaluate your model and you feel like you have a good proven model that's ready to go you'll transition it to a production environment where you can deploy that model and use it in your end application and then you also need to scale that up depending on your needs so obviously these steps require some sort of hardware and software stack so we're look at this again at a at a high level we can roughly bucket it on the left side you have your data science libraries so these are the steps or the tools that you're going to use to clean and pre process and take your data again get it ready for your machine learning and then the middle column you have your various components for building training and valuing your net your neural network so at the bottom you have hardware so this is your actual CPUs and GPUs that you're going to use to perform those calculations in your in your model and then a little bit above that you have your frameworks so if you've heard of frameworks like pi torch pack torch and other frameworks reduce a lot of the cognitive overhead involved in building and training your models so you can focus more on the problem that you're trying to solve and you'll hear more about pipe torch tomorrow in a couple different talks and then above the frameworks there are many libraries that can help support and accelerate your development so this could be in computer vision for example where you can use that computer you can use the computer vision library which gives you a lot of the components needed so that you can more quickly get started and then on the right side you have your deployment platforms we mentioned once you have that model ready to go don't need a transition to some sort of production environment so you can serve that model and use in your end application so know this looks like a lot potentially but luckily there's actually a lot of different open-source tools that you can cobble together and create your own stack but there's also many managed platforms and services and api's out there that you can use so that you can get started more easily so if we were to look at it in terms of level of abstraction for how you might interact with these different tools starting from low to high at the lower level of distraction we have framework so mention PI torch earlier and so this gives you kind of both ease of use as well as the fine level of granularity and the ability to customize and work with a lot of different concepts and techniques and architectures that you can kind of go and explore so this is where a lot of our researchers at Facebook will use this type of tool on the other side of things though if you're really just looking to incorporate kind of proven standard machine learning capabilities into your an application there are domain API so you can use there are more or less plug-and-play right so you can if it's a vision API send images and outcomes the pacification along with confidence levels and kind of in between these two levels of abstraction you have managed platforms as well as fine tunable api's so fine tunable API is much like the domain API as we just talked about basically allow you to get that kind of plug-and-play sort of ease of use but allow you to customize it on specific images for if it's a vision API for example so if you're doing certain medical imaging you might want to fine-tune that model to be more accurate for your type of needs and then the manage platforms you can think of this as sort of a fabric that goes across a number of different components that these assemble all the various tools that you might need it makes it a little bit easier for you to work across them so these are just some of the ways you can get started I encourage you to kind of explore and check out what makes sense for you based on what your what your machine learning needs are there's also a couple other tools that are resources that I wanted to point out really quickly before we wrap up so as you know Facebook does a lot of our AI work in the open so our researchers regularly publish papers that you can go check out they'll publish associated codes you can go explore there and we also open-source a lot of various tools that you'll also hear about today and tomorrow that you can use to get started in machine learning and also with data science and so if you check out Facebook AI there's a number of open source tools there that you can go and use immediately if you're interested in starting to play with frameworks and exploring what that looks like I encourage you to check out pipe torch org for the PI torch framework there's actually tutorials on there that you can open up right on your browser in an interactive notebook environment and start to see how things work without any setup and if you're looking for educational resources obviously this was a super short talk so as you want to kind of dig in more we work with a lot of companies like Udacity to provide both free courses that you can go check out just to kind of get a taste for what it what machine learning develops all about but there's also full on the Android agrees too and allow these are actually taught on pipe tours we kind of continue education in a way that is using the same sort of toolset and there's also really great educators in the community as well so we work with folks like fast I I so fast AI has both a software library that makes it easier to work with frameworks like pi torch as well as open courses that you can go and check out so that's it so hopefully this gives you some context for a better understanding some of the other AI sessions they're going to have at f/8 as I mentioned there's a number of them both today and tomorrow and so encourage you to check them out and see how they can be relevant to your work all right thanks again everyone and have a great [Applause]
Original Description
Advances in machine learning, along with more user-friendly tools and services, have helped global developers build AI capabilities that enhance existing products, power new experiences, and deliver real business value. We'll cover the basics of machine learning and walk through popular developer tools and workflows from Facebook and the larger community.
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from PyTorch · PyTorch · 9 of 60
1
2
3
4
5
6
7
8
▶
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
What is PyTorch?
PyTorch
PyTorch Tutorial: A Quick Preview
PyTorch
PyTorch Summer Hackathon 2019
PyTorch
Tips and Tricks on Hacking with PyTorch: A Quick Tutorial by Brad Heintz
PyTorch
PyTorch 1.2 and PyTorch Hub: A Quick Introduction by Soumith Chintala and Ailing Zhang
PyTorch
Torchtext 0.4 with Supervised Learning Datasets: A Quick Introduction by George Zhang
PyTorch
Torchaudio 0.3 with Kaldi Compatibility, New Transforms: A Quick Introduction by Jason Lian
PyTorch
Torchvision 0.4 with Support for Video: A Quick Introduction by Francisco Massa
PyTorch
Introduction to Machine Learning for Developers at F8 2019
PyTorch
Powered by PyTorch at F8 2019
PyTorch
Developing and Scaling AI Experiences at Facebook with PyTorch at F8 2019
PyTorch
New Approaches to Image and Video Reconstruction Using Deep Learning at Facebook at F8 2019
PyTorch
PyTorch Developer Conference 2018: Recap
PyTorch
PyTorch Developer Conference 2018: Keynote & Deep Dive
PyTorch
PyTorch Developer Conference 2018: Production & Research Sessions
PyTorch
PyTorch Developer Conference 2018: Cloud & Academia Sessions
PyTorch
PyTorch Developer Conference 2018: Enterprise, Education, & Future of AI Panel
PyTorch
PyTorch Developer Conference 2019 | Full Livestream
PyTorch
PyTorch Developer Conference 2019: Recap
PyTorch
PyTorch Developer Conference Keynote - Mike Schroepfer
PyTorch
What’s new in PyTorch 1.3 - Lin Qiao
PyTorch
PyTorch Front-End Features: Named Tensors and Type Promotion - Gregory Chanan
PyTorch
Research to Production: PyTorch JIT/TorchScript Updates - Michael Suo
PyTorch
Quantization - Dmytro Dzhulgakov
PyTorch
PyTorch ONNX Export Support - Lara Haidar, Microsoft
PyTorch
Apex - Michael Carilli, NVIDIA
PyTorch
Dataloader Design for PyTorch - Tongzhou Wang, MIT
PyTorch
Linear Algebra in PyTorch - Vishwak Srinivasan, CMU
PyTorch
PyTorch Mobile - David Reiss
PyTorch
Model Interpretability with Captum - Narine Kokhilkyan
PyTorch
Detectron2 - Next Gen Object Detection Library - Yuxin Wu
PyTorch
Speech Extensions to Fairseq - Dmytro Okhonko
PyTorch
PyTorch on Google Cloud TPUs - Google, Salesforce, Facebook
PyTorch
PyTorch Summer Hackathon Winners - Joe Spisak, Sebastien Arnold, Tristan Deleu
PyTorch
PyTorch in Robotics - Yisong Yue, Caltech
PyTorch
StanfordNLP - Yuhao Zhang, Stanford
PyTorch
Sotabench for Reproducible Research - Robert Stojnic, Papers with Code
PyTorch
Collaborative Natural Language Inference - Sasha Rush, Cornell
PyTorch
Privacy Preserving AI - Andrew Trask, OpenMined
PyTorch
CrypTen - Laurens van der Maaten
PyTorch
PyTorch at Uber - Sidney Zhang, Uber
PyTorch
PyTorch at Tesla - Andrej Karpathy, Tesla
PyTorch
PyTorch at Microsoft - Saurabh Tiwary, Microsoft
PyTorch
PyTorch at Dolby Labs - Vivek Kumar, Dolby Labs
PyTorch
PyTorch Developer Conference 2019 - Panel Discussion
PyTorch
Using deep learning and PyTorch to power next gen aircraft at Caltech
PyTorch
Named Tensors, Model Quantization, and the Latest PyTorch Features - Part 1
PyTorch
TorchScript and PyTorch JIT | Deep Dive
PyTorch
Announcing the PyTorch Global Summer Hackathon 2020
PyTorch
Opening Up the Black Box: Model Understanding with Captum and PyTorch
PyTorch
PyTorch Mobile Runtime for Android
PyTorch
Torchvision in 5 minutes
PyTorch
3D Deep Learning with PyTorch3D
PyTorch
What is Torchtext?
PyTorch
TorchAudio: A Quick Intro
PyTorch
PyTorch Mobile Runtime for iOS
PyTorch
PySlowFast: Deep learning with Video
PyTorch
PyTorch Pruning | How it's Made by Michela Paganini
PyTorch
Measuring Fairness in Machine Learning Systems
PyTorch
PyTorch for Hackathons
PyTorch
More on: ML Maths Basics
View skill →Related AI Lessons
⚡
⚡
⚡
⚡
How to Learn a Hard Technical Skill Without Burning Out
Dev.to · Anas Kalthoum | FreeBrain
After interviewing over 100 ML Candidates. Last Week Someone Walked In and Made Me Take Notes.
Medium · Machine Learning
How AI Learns with Less Labeled Data
Medium · Machine Learning
Mastering TypeScript — Understanding the TypeScript Compiler (tsc) from Scratch — Lesson 2
Medium · JavaScript
🎓
Tutor Explanation
DeepCamp AI