JSJ 405: Machine Learning with Gant Laborde
Gant Laborde is the Chief Innovation Officer of Infinite Red who is working on a course for beginners on machine learning. There is a lot of gatekeeping with machine learning, and this attitude that only people with PhDs should touch it. In spite of this, Gant thinks that in the next 5 years everyone will be using machine learning, and that it will be pioneered by web developers. One of the strong points of the web is experimentation, and Gant contrasts this to the academic approach.
Hosted by:
Show Notes
Gant Laborde is the Chief Innovation Officer of Infinite Red who is working on a course for beginners on machine learning. There is a lot of gatekeeping with machine learning, and this attitude that only people with PhDs should touch it. In spite of this, Gant thinks that in the next 5 years everyone will be using machine learning, and that it will be pioneered by web developers. One of the strong points of the web is experimentation, and Gant contrasts this to the academic approach.
They conversation turns to Gant’s course on machine learning and how it is structured. He stresses the importance of understanding unicode, assembly, and other higher concepts. In his course he gives you the resources to go deeper and talks about libraries and frameworks available that can get you started right away. His first lesson is a splashdown into the jargon of machine learning, which he maps over into developer terms. After a little JavaScript kung fu, he takes some tools that are already out there and converts it into a website.
Chris and Gant discuss some different uses for machine learning and how it can improve development. One of the biggest applications they see is to train the computers to figure monotonous tasks out while the human beings focus on other projects, such as watching security camera footage and identifying images. Gant restates his belief that in the next 5 years, AI will be everywhere. People will grab the boring things first, then they will go for the exciting things. Gant talks about his creation NSFW.js, an open source train model to help you catch indecent content. He and Chris discuss different applications for this technology.
Next, the panel discusses where machine learning can be seen in everyday life, especially in big companies such as Google. They cite completing your sentences in an email for you as an example of machine learning. They talk about the ethics of machine learning, especially concerning security and personal data. They anticipate that the next problem is edge devices for AI, and this is where JavaScript really comes in, because security and privacy concerns require a developer mindset. They also believe that personal assistant devices, like those from Amazon and Google, will become even more personal through machine learning. They talk about some of the ways that personal assistant devices will improve through machine learning, such as recognizing your voice or understanding your accent.
Their next topic of discussion is authenticity, and how computers are actually incredibly good at finding deep fakes. They discuss the practice of placing passed away people into movies as one of the applications of machine learning, and the ethics surrounding that. Since developers tend to be worried about inclusions, ethics, and the implications of things, Gant believes that these are the people he wants to have control over what AI is going to do to help build a more conscious data set.
The show concludes with Gant talking about the resources to help you get started with machine learning. He is a panelist on upcoming DevChat show, Adventures in Machine Learning. He has worked with people with all kinds of skill sets and has found that it doesn’t matter how much you know, it matters how interested and passionate you are about learning. If you’re willing to put the pedal to the metal for at least a month, you can come out with a basic understanding. Chris and Gant talk about Tensorflow, which helps you take care of machine learning at a higher level for fast operations without calculus. Gant is working on putting together a course on Tensorflow. If you’re interested in machine learning, go to academy.infinite.red to sign up for Gant’s course. He also announces that they will be having a sale on Black Friday and Cyber Monday.
Panelists
- Christopher Buecheler
With special guest: Gant Laborde
Sponsors
- React Round Up
- Sentry use the code “devchat” for 2 months free on Sentry’s small plan
- Adventures in Angular
Links
- Machine Learning: How To go from Zero to Hero
- NSFW.js
- Tensorflow.js
- PyTorch
- Keras
- Academy.infinite.red
- Gantlaborde.com
Picks
Christopher Buecheler:
Gant Laborde:
Free 5 day mini course on academy.infinite.red
Special Guest: Gant Laborde.
Transcript
Hey folks, I'm a super busy guy and you probably are too. You probably have a lot going on with kids going back to school, maybe some new projects at work. You've got open source stuff you're doing or a blog or a podcast or who knows what else, right? But you've got stuff going on and if you've got a lot of stuff going on, it's really hard to do the things that you need to do in order to stay healthy. And one of those things, at least for me, is eating healthy. So when I'm in the middle of a project or I just got off a call with a client or something like that, a lot of times I'm running downstairs, seeing what I can find that's easy to make in a minute or two, and then running back upstairs. And so sometimes that turns out to be popcorn or crackers or something little. Or if not that, then something that at least isn't all that healthy for me to eat. Uh, the other issue I have is that I've been eating keto for my diabetes and it really makes a major difference for me as far as my ability to feel good if I'm eating well versus eating stuff that I shouldn't eat. And so I was looking around to try and find something that would work out for me and I found these Factor meals. Now Factor is great because A, they're healthy. They actually had a keto line that I could get for my stuff and that made a major difference for me because all I had to do was pick it up, put it in the microwave for a couple of minutes and it was done. They're fresh and never frozen. They do send it to you in a cold pack. It's awesome. They also have a gourmet plus option that's cooked by chefs and it's got all the good stuff like broccolini, truffle butter, asparagus, so good. And, uh, you know, you can get lunch, you can get dinner. Uh, they have options that are high calorie, low calorie, um, protein plus meals with 30 grams or more of protein. Anyway, they've got all kinds of options. So you can round that out, you can get snacks like apple cinnamon pancakes or butter and cheddar egg bites, potato, bacon and egg, breakfast skillet. You know, obviously if I'm eating keto, I don't do all of that stuff. They have smoothies, they have shakes, they have juices. Anyway, they've got all kinds of stuff and it is all healthy and like I said, it's never frozen. So anyway, I ate them, I loved them, tasted great. And like I said, you can get them cooked. It says two minutes on the package. I found that it took it about three minutes for mine to cook, but three minutes is fast and easy and then I can get back to writing code. So if you want to go check out Factor, go check it out at factormeals. Head to factormeals.com slash JSJabber50 and use the code JSJabber50 to get 50% off. That's code JSJabber50 at factormeals.com slash JSJabber50 to get 50% off.
Hey folks, I'm a super busy guy and you probably are too. You probably have a lot going on with kids going back to school, maybe some new projects at work. You've got open source stuff you're doing or a blog or a podcast or who knows what else, right? But you've got stuff going on and if you've got a lot of stuff going on, it's really hard to do the things that you need to do in order to stay healthy. And one of those things, at least for me, is eating healthy. So when I'm in the middle of a project, or I just got off a call with a client or something like that. A lot of times I'm running downstairs, seeing what I can find that's easy to make in a minute or two, and then running back upstairs. And so sometimes that turns out to be popcorn or crackers or something little, or if not that, then something that at least isn't all that healthy for me to eat. Uh, the other issue I have is that I've been eating keto for my diabetes and it really makes a major difference for me as far as my ability to feel good if I'm eating well versus eating stuff that I shouldn't eat. And so, um, I was looking around to try and find something that would work out for me and I found these factor meals. Now factor is great because a, they're healthy. They actually had a keto, uh, line that I could get for my stuff. And that made a major difference for me because all I had to do is pick it up, put it in the microwave for a couple of minutes and it was done. Um, they're fresh and never frozen. They do send it to you in a cold pack, it's awesome. They also have a gourmet plus option that's cooked by chefs and it's got all the good stuff like broccolini, truffle butter, asparagus, so good. And you can get lunch, you can get dinner. They have options that are high calorie, low calorie, protein plus meals with 30 grams or more protein. Anyway, they've got all kinds of options. So you can round that out, you can get snacks like apple cinnamon pancakes or butter and cheddar egg bites, potato bacon and egg, breakfast skillet, you know obviously if I'm eating keto I don't do all of that stuff. They have smoothies, they have shakes, they have juices, anyway they've got all kinds of stuff and it is all healthy and like I said it's never frozen. So anyway I ate them, I loved them, tasted great and like I said you can get them cooked. It says two minutes on the package. I found that it took it about three minutes for mine to cook, but three minutes is fast and easy and then I can get back to writing code. So if you want to go check out Factor, go check it out at factormeals, head to factormeals.com slash JSJabber50 and use the code JSJabber50 to get 50% off. That's code JSJabber50 at factormeals.com slash JSJabber50 to get 50% off.
CHRISTOPHER BUECHELER: Hello everybody and welcome to JavaScript Jabber. I'm Chris Beechler from closebrace.com coming to you from Providence, Rhode Island. Today our guest is Gant Laborde and he's gonna be talking to us about machine learning which is awesome for me because I know very little about it and have lots of questions. Hi Gant, why don't you tell us a little bit about yourself?
GANT_LABORDE: Hey, all right. So I am CIO of InfantRed but that stands for Chief Innovation Officer. I love coding. I've been coding for a ridiculously long time, about 20 years professionally now. And I think that I've gotten a chance to really explore, burn out, and come back, and then just really find the passion behind what it is. And I think, you know, my goal is to become a mad scientist in helping people create awesome things.
CHRISTOPHER BUECHELER: That is a noble goal.
A couple of years ago, I put out a survey asking people what topics they wanted us to cover on devchat.tv and I got two overwhelming responses. One was from the JavaScript community. They wanted a react show and the other one was from the Ruby community and they wanted an Elixir show. So we started both. The react show though is react roundup. And every week we bring in people from the React community and we have conversations with them about React, about the community, about open source, about what goes into React, how to build React apps, and what's going on and changing in the React community. So if you're looking to keep current on the current React ecosystem and what's going on in React, you definitely need to be checking out React Roundup. You can find it at reactroundup.com.
CHRISTOPHER BUECHELER: We were chatting a bit before the show started and you said that you're working on a course on machine learning for beginners, so. Tell me a little bit about how one begins with machine learning.
GANT_LABORDE: Well, right now it's a pretty sad and angry world out there. A lot of people that you'll talk to will say, actually, it was really funny as I did this one blog post called machine learning zero to hero. Right now it's on free code camp. I think it has over 10,000 claps, even though they've moved off of medium. And it's still doing really, really well. And one of the first comments I got on that, was somebody saying, well, you can't tell people this because they need to understand the linear algebra and you're just kind of not helping the community and only people with PhDs should be touching machine learning. And it really was just a, it was a bit of bad taste in my mouth because I see this constantly. There's a lot of gatekeeping with machine learning and there's a lot of academia holding on to the secrets not really sharing in a way that developers, you know, people who do this daily and actually understand the workflow. And I see a lot of times data scientists are taken aback by the times that they try to put something in production. All the processing, all the difficulty, understanding staging and DevOps and all these other things, they're sort of alien to them. These are the things that us as programmers could be excelling at, sort of making machine learning tangible and having cool products and building amazing things. I think that that's where we're all going to be in the next five years. Every product is going to have machine learning in it. All the cool startups are going to have it. Google added, in 2012, they had four TensorFlow objects in production. In 2017, I think they had over 4,000. They can't find enough places to shove machine learning.
CHRISTOPHER BUECHELER: That is substantial growth. I think one of the real strong points of the web in general is the experimentation and sort of the attitude of experimentation. People like to just make stuff and sort of see what happens.
GANT_LABORDE: It's very rewarding and we build fun things, interactive things. I really enjoy doing silly stuff. This is sort of the way I learned how to program. That's the way I've learned machine learning as well. And the more I sort of like read the academic papers, the more I feel like there's a great chance for developers and it's a demand for developers to come in here and sort of reform the structure of this cool new technology that's getting like, sort of like JavaScript, right? There's a new thing every week. The same thing's happening over in machine learning, but they don't know how to handle it as well.
CRIS: So you think because it comes more out of academia that they're used to a little bit of a different approach from what developers are used to?
GANT_LABORDE: Oh yeah, very, very, very much. Now, there are some similarities. For instance, academia is really awesome about sharing data, like open access to data, helping out people. I'm sure they had teams of TAs labeling stuff for weeks on end and they just kind of give that stuff away. And sort of like their version of open source. But as we're over here on the other side of things, we're trying to figure out how to connect these into a product. How we... A paper now doesn't come with... A developer builds a blog post and a GitHub repo. And in academia, they take screenshots and release white papers and get published. That's their version of it. And then we come over and say, oh, cool, can I see this information? They're like, sure, no problem. Here's how you go gather it yourself. And the onboarding's just, it's very high, high, high garden walls on some of these things. And if anything, I think JavaScript developers know how to go knock that down.
CHRISTOPHER BUECHELER: Right, and so your goal is to help facilitate that.
GANT_LABORDE: Oh yeah, I think it's really cool. And there's a lot of movers and shakers already there. And my trick here is that I'm semi-creative. There's a lot more way creative people out there. I do a great job playing second fiddle to help those people get that information.
CHRISTOPHER BUECHELER: And so the test you're building, what's, sorry, not the test, the course that you're building. What's sort of the approach that you're taking there?
GANT_LABORDE: Oh, yeah. So there are some YouTube personalities out there. They're like, you don't need math. You can do everything in three months. I'm not going to go that route. I'm going to say just like it is important that you understand. Unicode, you understand bytes, you understand like what is assembly doing? Hell, if you really want to get into it, like if you have an application and it gets deep deep deep into performance, you might need to understand discrete logic and all those kinds of things. For the most part, you don't, right? You kind of just need to understand these higher concepts that have been figured out by these very very very smart people. And so I think the same thing kind of comes here is that I'm not going to start you in the linear algebra. But I'm going to give you a couple of the things that say, if you want to go deeper into it, here's the resources. If you have to go deeper into it, here are the resources. But there are some really cool libraries already available. There are frameworks available that allow you to actively start kicking butt and building cool websites right now. What I start off with is I kind of give a splashdown into the crazy jargon terminology to help people understand. I mean, I think a lot of these terms come from academia and mathematical sort of histories. And so they sound really confusing. And I just take those and map them over to developer terms. Right? So, in machine learning, there's a machine learning model. And that is just, I call it, I think it's just a function. Data in, data out. Like, it can take parameters in and it gives you something out. That's a function. It's called a model because of you know, the inner workings and the graph and the weights that that kind of came into this. And if you're building one in math lab, you want to go ahead and say, okay, I'm going to call this a model. But for a developer, we can think of it like a function. And so I think the terminology, then a little bit of like, kung fu with it, you know, a little bit of JavaScript kung fu around here, I can take this data and move it around however I want to. And then the last thing I like to do is let's take some of the cool things that are already out there and just, just like convert them into a website. So I trained a model, which by the way, is a complete, uh, perfectly application of, of what you should machine learning for. I trained one to solve, uh, fizz buzz.
CHRISTOPHER BUECHELER: Coding interview question.
GANT_LABORDE: Anybody out there who knows fizz buzz is just the most ridiculous interview question ever. And so it's a complete pointing a missile at an anthill for fun. We bring in a AI, a machine learning model that can sort of basically has the answers to Fizz Buzz, and it effectively just figures those out as it goes forward, and then show you how to like bring something like that in there. We also play with images and cool kinds of classification algorithms and stuff. So I think that you can take a model that someone in academia with a PhD created, maybe like the joke from Silicon Valley, hot dog, not hot dog, right? You can get that model, download it, and then put it into an app. And then you don't have to actually, as a developer, you can have all these benefits of these extremely cool machine learning algorithms without having to go out there and train one on your GPU for two weeks.
CHRISTOPHER BUECHELER: Nice, so you actually can access the data or the models that other people have built and apply that immediately to whatever you're building.
GANT_LABORDE: There's so many cool creations and things that people are doing out there. And honestly, it's not that hard to find someone who's done something that you could really use.
CHRISTOPHER BUECHELER: This is not necessarily on the subject of what you could really use, but I was taking a look at the article that you mentioned, and one of the videos linked in your article is training a computer how to play Super Mario Brothers, Super Mario World, I think. Not necessarily the most applicable model on the planet in terms of other uses, but I just thought it was really interesting to take this very high-concept mathematical world network approach and be like, all right, just get through this Mario level.
GANT_LABORDE: Yeah, people are having so much fun with this. So JavaScript goes everywhere, which I think is really fun. You know, you could put JavaScript on a drone. And one of the things that they're doing now is. They're training drones to try to race against humans in drone races. Um, I have a video of it. They're not very good yet. It goes through one of them and then just hit like basically every time I've ever played Flappy Bird, it makes over the first one, then instant death. Yeah. It'd be really cool to have, you know, just like the interesting technology that we can create. We would be able to take JavaScript, put on some awesome things and have it solve problems like Super Mario Brothers. Like I saw somebody actually solve your internet's down dinosaur game. They had AI basically be able to beat that and get a huge high score. It's just a lot of fun kind of applications and what we're seeing, because at the company I work for, Infinite Red, people are coming in with sort of already existing industry ideas and their disrupter is the fact that they're throwing in AI.
CHRISTOPHER BUECHELER: Right.
GANT_LABORDE: So they're like, okay, we're doing something. There are two companies already doing this, but neither of them are already doing AI and that's the thing that we're going to bring. And so when we're implementing that, it's kind of like, actually, this is a little bit of a game changer.
CHRISTOPHER BUECHELER: That's cool. So it seems like one of the main points of value that that would bring is that now you don't, there are certain tasks that are just tedious tasks. You have to throw a bunch of developers hours at the meeting to massage the data or to create the algorithms that do that. And now we're at a point where we can start to train computers. And like you said, just, okay, go use some GPU processes for a few weeks and figure this out. And we can have the human beings focusing on other projects that require less just like banging your head against the wall.
GANT_LABORDE: Way more filling work for, for humans.
CHRISTOPHER BUECHELER: Right.
GANT_LABORDE: That's what I like to think of it as. I mean, here's the gist of it. You have You have an amazing advantage now because remember when there was the whole, there's an app for it world. Like there's an app for that. What happened at that point, we hit a tipping point. People were able to make smart apps, right? And for a little while there, we're like, Oh, I'm surprised by this app. I'm surprised by that app. I'm surprised by this one. There were a couple of people who jumped out ahead and made a lot of money building relatively simple apps just before people knew that that was possible. And then it hit this one moment where everybody kind of got it. It just clicked and then you had an app for everything. And so that's what the head that there's an app for that. That's kind of like where we're at with AI. Over the next five years, it's going to take creative people and developers to kind of put some of these really cool ideas. I mean, you've seen the face app, which is one of those things that kind of took off except for the fact that they were sending all that stuff to the server and taking all the rights. So the aging face app was a problem. No, I mean, honestly, if we did that, I'd say, let's do it on device, you know, and keep it nice and secure. But one of the things that's happening is like people are coming up with ideas and then they're catching on fire. And it's like, oh my God, I didn't know that was possible. And then probably over the next five years, people are going to really come up with things and I think everybody's going to have an AI idea. And it's going to be a little bit, it's going to be a really interesting world to live in because, you know, there are so many things that only paying a person who has no life to just sit there and do, you know, like stare at a security camera, like that's fulfilling work. AI can look at it all day and then tell you the second it sees a person, a cat, a gun, you know, it's great for security. And then it can tell you all kinds of really cool information about it and send notifications. Applications like that, inventory management, the boring things are going to be the things that people grab first. The exciting things are going to be the next wave.
CHRISTOPHER BUECHELER: Right. That makes sense. And the boring things are often the things where there's a decent profit margin where you can just say like, look, you don't have to have reams and reams and reams of video being analyzed by people, you can just have the AI catch the important parts that then maybe a human being needs to take a look at and actually get more in-depth on. That makes sense.
GANT_LABORDE: It's really kind of a cool thing. I'm trying to think of ideas for open source in that world. One of the things that I created is called not safe for work JS, which is don't worry everybody, you don't have to turn the audio down. This is okay. NSFWJS is an open-source train model to help you catch indecent content for you. So one of the things that can happen is Facebook and Google have thousands of employees that dig through content and then remove things that are inappropriate. Right. You as like a small startup or something like that, you can't do that as much. And so what way to do it wrong would be to do it like Tumblr where somebody's uploading a toaster and it's like the 1% mistake, and it's like, you can't upload toasters.
CHRISTOPHER BUECHELER: Or it's a picture of their elbow and it somehow mistakes that for something much more nefarious. Yeah.
GANT_LABORDE: Yeah, but what could be cool is that you have this automatically warning and flagging them. So if you say, hey, by the way, this is gonna get flagged. It's gonna be a little while before it comes up. You could do that on the client's machine before they even upload it. So if they know it's not kosher, they can say, ah, man, I've been caught. I'm not going to upload this at all. Or you could use it, things like between chat, between people where you can't even have a human read that conversation. If you get a message on a forum from a person, you don't want another person sitting through and reading all those messages. But you could run it through an algorithm that says, hey, this person sent you a photo and it's like a scoring of 98 on the not so okay list. You can click and it'll unblur. But that's your choice, right?
CHRISTOPHER BUECHELER: Right, but you might not want to.
GANT_LABORDE: You might not want to. And like, since like cool application, I mean, you could add that tomorrow and it's open source and free and it can go to any product immediately. And it's JavaScript, so it can be in mobile apps, websites, backend. Drones. That's like one of the things I think that's really cool. Like we're able to give that kind of technology for free. And I mean, honestly, a lot of people reached out and said, why didn't you pay wall this? And I don't think that that's where we're at. I don't want to pay wall something as useful as that. You know, the really cool ideas are the next one.
CHRISTOPHER BUECHELER: There's certainly no shortage of people who are using or creating open source software, who have figured out other ways to monetize that than just sticking it behind a paywall. So, you know, it's definitely doable. And I actually was just thinking, you were saying that, you know, Google and Facebook have countless employees, they can throw out this problem. But even there, this kind of stuff is valuable because I've read things about, for example, employees at YouTube who have to look at inappropriate stuff so much that it's actually difficult for them. It has a negative impact on their lives. If you've got a computer that's filtering out a lot of the most egregious stuff, you're actually helping your employee base not have to deal with that.
GANT_LABORDE: Yeah. And it's funny those companies are the ones saying like, oh, we don't have enough data to do that. I actually have a article where Facebook was saying that. And I'm like, I think you have the most data to be able to identify these things. Like, I think we're all trying to catch up to you.
CHRISTOPHER BUECHELER: Right. It seems like you have plenty of stuff you could be training the algorithms on compared to, you know, the average startup who's getting maybe 100 images a day in Facebook, I'm sure is doing easily 100,000, if not 100 million.
GANT_LABORDE: With people labeling and curating and tagging them as mistakes.
CHRISTOPHER BUECHELER: Right.
GANT_LABORDE: They even have the system of people tagging it for them.
This episode is sponsored by sentry.io. Recently, I came across a great tool for tracking and monitoring problems in my apps. Then I asked them if they wanted to sponsor the show and allow me to share my experience with you. Sentry provides a terrific interface for keeping track of what's going on with my app. It also tracks releases so I can tell if what I deployed makes things better or worse. They give you full stack traces and as much information as possible about the situation when the error occurred to help you track down the errors. Plus, one thing I love, you can customize the context provided by Sentry. So, if you're looking for specific information about the request, you can provide it. It automatically scrubs passwords and secure information, and you can customize the scrubbing as well. Finally, it has a user feedback system built in that you can use to get information from your users. Oh, and I also love that they support open source to the point where they actually open source Sentry if you want to self-host it. Use the code DevChat at sentry.io to get two months free on Sentry's small plan. That's code DevChat at sentry.io.
CHRISTOPHER BUECHELER: You mentioned that, you know, Google's use of machine learning has grown exponentially over the past 10 years or so. Do you happen to know a few specific projects that they've applied it to?
GANT_LABORDE: One of the interesting ones, like, um, just go take a look at your Gmail right now. Right. You're going to typing an email and it's finishing your sentences for you. When you hit tab to complete that sentence. You best believe that you've just tagged that as, oh, an excellent suggestion, and that moves up the ranks. And if you type your own message, so Google's really done a great job of looking at this idea of federated learning and also being able to remove your information from the models. So that's a key part of it, is that your data doesn't go back. So if I trained a food classifier tomorrow on five gigabytes of images, the actual resulting model would not be five gigabytes plus. It would be like a distilled sort of realm of forms of what food is. So that's one of the things that's true is like, I don't think that they can come back and like take your text, you know, but I think that what they can do is train on whether or not they were getting accurate what the styles of text are. And then if you're updating weights and values for a model that's existing on your machine and sending that back. Yeah. I think that that's something they can absolutely use the ethics of machine learning are pretty wild and crazy place right now. What is your data versus what is something that they trained on your machine and sent back to themselves is unique, but I kind of want them to do that. I want them to keep me anonymous, but learn about that. Apple's doing a really good job with that they are keeping you super secure by updating the models directly on your machine. And so CoreML 3 has all these cool security features to sort of create like a very nice model but it gets better and more accustomed to your needs and your habits directly on your device. And this is like the next problem, right? I think take a look at the FaceApp with sending your stuff off to a server.
CHRISTOPHER BUECHELER: Right.
GANT_LABORDE: I think the next problem is edge devices for AI. And this is where JavaScript really comes in. Because sure, the cool stuff is in Python, and you're creating all these advanced things. But I don't think the data scientists really have a great way to gather that information and send it back and then aggregate the results to train a supermodel based off of all that stuff. As of right now, they probably, depending on people, actually send their actual data back. I think that the security and the privacy concerns really require a developer mindset.
CHRISTOPHER BUECHELER: That's a really interesting point. I think also the, you know, what you were saying about sort of the next steps. If you look at the virtual assistants that every phone has now, you've got, you know, Siri or whomever. And I would assume that the next step with those is to try to make them as personal as possible to try to get them to know you and know how you use your device and know what's interesting to you. That stuff is coming along. You got me thinking about other stuff that Google is assuredly using machine learning for like Google maps knows what I'm doing practically before I do a lot of the time because
GANT_LABORDE: it's what YouTube video to show you next knows where you're going. Yeah. Then the better they can do that, the better they can actually promote their ad. Like, I mean, ads drive them so much. So knowing you and knowing what you want is very important to Google. And very important to Amazon as well. What's really funny is I'll actually, my CEO at Infinite Red always has his speakers on and then he has an Echo in the background. So sorry everybody whose wake word is Echo, I apologize. But you're not gonna like this next part. But I'll say, Echo sent alarm for 3 a.m. And sure enough, me coming through with speakers, he's gonna have a bad morning. But I think that they're getting better at identifying who the owner's voice is and curtail into their accents and their particular way of saying things. And I'm looking forward to the day where I say, you know, echo, send alarm for 3 a.m. Sorry again, everybody out there. When that happens, it's going to basically just ignore me, you know,
CHRISTOPHER BUECHELER: and I think that's a no, that you're not the user.
GANT_LABORDE: And then, I mean, honestly, then product purchases through those kinds of devices are like, become more attainable, more secure, more viable.
CHRISTOPHER BUECHELER: Right. Voice commands in general, I think make a lot more sense if they can identify the voice. My wife is French and has an accent and periodically has to speak to her Google phone in a really bad American accent to try to get it to understand what she's saying because when she speaks using her normal accent, it gets confused at times. That kind of thing, I'm sure we're not that far off from a phone that can... If it doesn't come out of the box, able to understand a French accent can at least adapt and learn to understand a French accent over time.
GANT_LABORDE: Yeah. Authenticity is reaching superhuman levels in identifying things. So with deepfakes, people being able to look like whatever this. Funny enough, computers are amazing at identifying that that's a fake. They're actually really good at it. And as they kind of get beyond, and humans are amazing at vision. We are really good at vision. We usually are around like 99% accurate with just about everything. But when computers pass up humans, we'll have to depend on computers to tell what's real and what's not. And this is like a natural progression of like what's been going on like a long time to have an authentic document. It had a wax seal on it, and only the right people knew how to read anyway. So, like you knew it was real. You know, even if it's been carried by a, you know, a pigeon or a bunch of people for two weeks. Right. And we've gotten a new world now, but we're able to like sort of create these things that are superhuman in their, they're looking like their authenticity. So we kind of need at the same time our computers to tell us what is authentic and what isn't. And that's like an exciting but really scary future that's coming up for all of us.
CHRISTOPHER BUECHELER: That's a really interesting point that is something we've been dealing with for forever, the sort of security and authentication and trying to be sure of what you're seeing or reading or hearing. This is not a new issue. I think the deep fake stuff is scary to people because it's so visual and you can look and see you know, Bill Hader morphing into Tom Cruise as he's doing a Tom Cruise impression. And we're like, wow, that's really alarming. But I think our brains can sense the potential for all of the misuses there. But there's also an incredible number of really exciting uses that are happening.
GANT_LABORDE: Yeah. So Andrew Ng says that AI is new electricity and it's going to transform industry like electricity transform industry, where it'll go into a bunch of different it's going to cross cut all the different laterals and change everything. And I'll say that I think that that's very, very accurate. And what happens with this cool stuff depends who's doing it. That's why I want developers and job. I want to democratize it. I think there's quite a few of us out there that say, you know, with the AI revolution, we want to be a part of it. And I think it would be really cool for people to build awesome things like this because one of the limitations that we have is like, take a look at Star Wars where we're able to take a character who's been dead for a long time and then actually re-put them back into the show, like doing all things right, you know, making sure that they're okay with it, that the people have the rights, and it actually made the experience really awesome. So placing passed-away people into a movie with very, very nicely asking. I think they did the same kind of stuff in the Fast and I don't know what number they're on, like Fast and Furious 99.
CHRISTOPHER BUECHELER: Right. Oh, right with Paul Walker where he...
GANT_LABORDE: Yeah. They used his brother and some deep fake technology, I believe. So I think that this is like a great opportunity as long as it's done ethically. And then it's of course, every superpower can be used for super evil. At the same time, someone could be using this to control people. We saw a lot of that stuff too. So I think that's a call to action as well for a lot of developers out there. We tend to be one of the more worried about inclusion, worried about ethics, and worried about the implications of things. I see constantly on my Twitter people fighting for accessibility and diversity and all kinds of really cool stuff. So these are the people I want to have control over what AI is going to do.
CHRISTOPHER BUECHELER: I think that's a great point. And I think to speak back to your point about open source, we've found over the years that open-sourcing things actually makes them more secure, because you're more likely to have people identifying issues and that kind of thing. So I think that, you know, bringing this out into the development world, that's a good way to get more people looking at it and having more people looking at it is the best way to identify the issues.
GANT_LABORDE: Yeah, that's true. I mean, you know, you have the Kodak film scandals and all the other problems that just basically a lot of the settings that we've had are pretty racist. So one of the things that we're seeing now is like cool things like IBM released the diversity faces data set for free and it's for people training on faces to make sure that they have a huge, awesome, diverse facial data set.
CHRISTOPHER BUECHELER: Nice, they can use.
GANT_LABORDE: Which is very nice. Because No, a lot of people like us, if I'm going to train a paper rock scissors classifier for my webcam, it's going to be trained on my hands. Right? That's it. That's all I have. I don't even have the European way of they do scissors with the thumb out and everything like that. I don't do any of that. Right. So I think together we can actually build a more conscious data set.
CHRISTOPHER BUECHELER: That's awesome. That's really cool. You're actually a panelist on one of the sister shows, correct? The Adventures in Machine Learning.
GANT_LABORDE: Yeah. So that's about to get started. Well, we're recording it. Uh, hopefully when this comes out, it exists. I hope so.
CHRISTOPHER BUECHELER: I believe Chuck has already announced it. So I don't think I'm sort of, you know, pulling back the curtain on anything that isn't already known, but, uh, if so, feel free to edit this. Um, yeah. So, uh, that's, that's good to know. I'm going to proceed as if this is a known thing. We have a dev chat has a a adventures in machine learning podcast that is starting up. People are interested in that. They can definitely learn more. I think this is a super interesting topic. If the, is there anything that you think we should cover, particularly for newbies or beginners to this that we haven't talked about yet? Yeah, I would love to hear a little more about it.
GANT_LABORDE: I want to let people know that I've been working with people of all different skill sets that have been programming for any number of years. If you're interested in getting awesome at AI, like the limitation doesn't matter if you've got a degree or not, doesn't matter any of that stuff. It does matter how interested and how passionate you are about learning. That's the key thing. Cause it is a little bit of a jargon acrobatics, some new concepts. And if you're willing to like kind of put the pedal to the metal for at least about a month, you can come out of this with a excellent understanding.
CHRISTOPHER BUECHELER: Cool. And you've mentioned a couple of times, TensorFlow. I'm not actually familiar with TensorFlow. If you could explain a little bit about that, that'd be awesome.
GANT_LABORDE: Yeah, no problem. Quick heads up might help actually explain a little bit of the confusion of what's happened over a while. It's like, AI kind of was birthed late 40s, 50s, and people were playing tic-tac-toe against robots and cool stuff died. No one cared about AI or it was properly killed and then moved underground. I have no idea. Whatever. Enjoy your conspiracy theory. But this was called the AI winter. And for 60 or so years, nobody cared about AI anymore. It's just sort of this thing that the coolest AI you would have ran into is like Street Fighter can actually play with one-quarter in it. You can play against someone else that's not actually there. Outside of that and about 2012, AI started like kind of coming back and then being like really exciting. And so I started to get the ball rolling a little bit more. So you used to have to write all this junk from scratch and with it sort of blowing up again in 2012 and sort of doing this, you don't have to use a math lab and all these crazy octave and write stuff from scratch libraries started showing up, they started to help you with the insane math parts that came along. Vector math, matrix math, taking derivatives of functions and matrices, all these things were really a huge barrier and so frameworks showed up. And there's quite a few frameworks out there, Theano, PyTorch, and then Google released theirs, I think it was maybe 2017 or something like that. They released TensorFlow which helps you actually take care of your machine learning stuff at a higher level. It actually was originally, I think, written for Python, but for fast operations without you having to do any kind of calculus. I'd say the frameworks take away all the linear algebra and calculus, but you still won't understand it. Then they decided to say, like, let's take so you have TensorFlow Lite started going to mobile apps, and then you had TensorFlow.js, which started going to websites. You could actually have it running on the client's browser. And this is because you need to do some serious math to make these things happen. And it wraps all that math up for you. So you're actually just kind of like typing in and fiddling with these different controls and levers that identify how the machine should learn and then process these things, I think that frameworks made this whole thing way more attainable. And that's why we're seeing all these cool creations every week. So TensorFlow is Google's answer to that. PyTorch is usually, I think that came from Uber and Facebook working together. And so there are really cool tools out there. But I would say TensorFlow.js is obviously a great spot, because it's TensorFlow logic, but we get to do it in JavaScript. So that kind of just, I would say, Long answer long. Most recently hiding all the math and hiding all that stuff inside of our framework is what we want to do. Nobody wants to write vector multiplication and JavaScript.
CHRISTOPHER BUECHELER: Right. Yeah. People want to want to dive in and get started doing some of the cooler stuff.
GANT_LABORDE: Yes.
CHRISTOPHER BUECHELER: It sounds a little bit, it's sort of like a, you know, jQuery approach to machine learning of like get in and start building stuff immediately, and then you can proceed to learn as much as you want to learn from there, I'm sure.
GANT_LABORDE: Right, right, right. Yeah, you set these things. Now, the way it's kind of the terminology that it has is still a little bit archaic, but they really fix that up because this gentleman, Francois Chalet, a terrible French pronunciation for you, did this framework called Keras. Then he started working for Google because everybody loved Keras. And now TensorFlow is sort of taking on this Keras look and feel to it. So it's getting simpler and cleaner every day. Sort of like JavaScript's getting simpler and cleaner every day. Nice. If you take a look at how JavaScript was, and now it has all these really familiar and readable functions that are showing up, I see that same thing happening over in TensorFlow.
CHRISTOPHER BUECHELER: Yep. That's very cool. And you're actually putting together a course on TensorFlow, correct?
GANT_LABORDE: Yes. Yeah. So it'll be TensorFlow.js, which a lot of this will, if you decide to go into Python, a lot of this information will transfer over. But I'm sticking with the JavaScript people. I'm not playing over there. If you're interested and actually, you know nothing about machine learning and you want to kind of start writing it in your browser and start playing with it. So like we do everything as web devs, then you want to go and check this out. So it's going to be academy.infinite.red. And so that's the URL. We'll have that course up probably by the time this airs. And if it's near Black Friday Cyber Monday, we're gonna have a sale at that time as well.
CHRISTOPHER BUECHELER: Awesome. Well, that's very cool. And something I might actually check out in the very limited time I have for experimenting at the moment. I think that's a great introduction. I think, you know, it's a very cool subject and I'm really interested to see where people take it over the next few years. Where can we find other than academy.infinite.red, where can we find you and your work on the web?
GANT_LABORDE: Yeah, so I have a website, ganttlabord.com. I love going around and speaking. I've spoken at a lot of React Native conferences, speak at React conferences, and a lot of JavaScript places as well. So I will be traveling around in 2020 and probably speaking at quite a few conferences. You can check out there at ganttlabord.com and see which ones. I'll be talking my head off about TensorFlow.js and all the cool stuff that I plan on building. I have a list of 11 things. And I've knocked out two of them. So I have a lot of things I want to build.
CHRISTOPHER BUECHELER: Nice. Very cool.
One of my favorite communities in programming these days is the Angular community.Every time I go to an Angular conference or meet up with some of my friends who are in the Angular community, I have a great time. And a lot of them have wound up on Adventures in Angular. So if you're doing front-end development, you're looking for a way to keep current on the Angular ecosystem, and you want to have a good time listening to fun people talk about great topics related to Angular, then go check out Adventures in Angular at AdventuresInAngular.com.
CHRISTOPHER BUECHELER: I think I'm going to move us on to picks. So there's just the two of us today. It should be probably relatively quick. Why don't we go ahead and start with Gantt? What are your picks for this week?
GANT_LABORDE: I'll start off with something ridiculous. We'll go with, I have a website that I did in TensorFlow.js called nickornot.com. Sort of as a fun adventure, I've made a React Native app and a website that can identify and find Nicholas Cage. This is for you to use if you have the Declaration of Independence at any time. I also made declarationofindependencyf.com, which hosts the models. If you happen to find yourself being harassed by Nicolas Cage, which who hasn't? This is a website for identifying and sort of getting, identifying them in photos and finding them in person. The second thing I'll say as a pick is that at academy.infant.red, we are going to do a free five-day mini-course. That's going to probably be up next week. So that'll definitely be there by the time this airs. And that five-day mini-course is like a hundred percent free. And it's like the anti-jargon course. Like you take the course for free and then it's going to help tell you what all the different terminology people are throwing out. So you can use that to either understand AI. Or to get VC funded. I'm not sure which one.
CHRISTOPHER BUECHELER: Right from the course to your PowerPoint decks.
GANT_LABORDE: Yes.
CHRISTOPHER BUECHELER: Excellent. Cool. My picks this week, I have tech one and I've got a non-tech one. So my tech pick this week is probably very familiar to a decent number of people listening. Uh, it's next JS, which is a, uh, react platform. If you want to get up and running and start working immediately building pages and building components and not have to deal with getting your whole webpack environment set up and all that stuff. Next.js is really, really cool. It does server-side rendering right out of the box, tons of stuff. And they just recently released version 9, which I actually need to upgrade to on one of my projects. I haven't touched it yet, but it's got a whole bunch of new great stuff, including API routes, which I was reading about the other day and seem really very cool. You basically are building an API the same way you build pages, which is super easy and intuitive. My other pick is a music pick, which I've been doing a lot of lately, but there's a band called Big Rec. Most of their members are actually Canadian, but they're based in Toronto, I think, but they do a lot of US touring. I've been a fan of them since the mid-90s and their new album that came out a few weeks ago called close to two decades. Just really great kind of Led Zeppelin-y rock and roll. So if that's your thing, if you like lots of guitars and lots of booming drums, definitely check out Big Wreck and check out their new album, but for the sun. And those are my picks for this week. Anything else?
GANT_LABORDE: No, I'm good.
CHRISTOPHER BUECHELER: Well, I think we're good. And you know, again, if you're interested in more machine learning stuff, definitely check out Adventures in Machine Learning when it debuts. Thanks very much, Gant.
GANT_LABORDE: Thank you.
Bandwidth for this segment is provided by Cashfly, the world's fastest CDN. To deliver your content fast with Cashfly, visit c-a-c-h-e-f-l-y dot com to learn more.
JSJ 405: Machine Learning with Gant Laborde
0:00
Playback Speed: