This image here, that's all I've done. I've taken this image, I've copied the categories into my Jupyter notebook.


Using Machine Learning to Replicate Airbnb's Amenity Detection Part 2: Data Exploration

Now I got to figure out how to get these particular images from open images,


because that is how you do machine learning projects.


A lot of the time when you're first beginning, there'll be datasets available for you to use.


But those datasets are often small datasets like this.


The entire, if I was to download every single image from this website,


I think it's like 560 something gigabytes, and that's too many for me to use for now.


So my whole goal for today, as I said, is to get the subset of images and work on that.


And that's another thing to remember is when you're working on machine learning projects of your own,


a lot of your time will be spent on getting your data collected first,


and then building a small model to begin with.


That's enough talking. I'm going to go do what I just said I'm going to do,


and we'll see if we can get a small model within today or tomorrow. Fingers crossed.


346 minutes later.


Woo!


Oh, you know when you stare at a computer screen for too long, you start to go a little bit crazy.


Well, that's where I'm at at the moment, but good news is, and I will say it until I go hoarse,


machine learning, or at least a lot of practical machine learning,


is about lining up the inputs you have, aka the data you're working with,


with some sort of machine learning algorithm, and then with the outputs that you want from that algorithm.


In my case, the algorithm I kind of want to use is Detectron 2, the bee's knees for object detection,


and my input data is a whole bunch of images from Open Images. Where are they? Here we go.


So this is the data set that I'm working with, sub set with bounding boxes, 600 classes.


So what I'm trying to do now is, instead of these 600 object classes, we spoke about this before,


is get only these 30 classes from Airbnb.


And so what I've done is I've written some code to see whether those classes exist on Open Images,


or if Airbnb have like, for example, kitchen and dining room table, did they just make that themselves?


Or is that an actual class in Open Images?


And so, hopefully, instead of downloading all 1.7 million images, I download a subset of like 200,000,


which fulfill the 30 classes. Or I think Airbnb ended up with like 35,000 images, don't quote me on that.


So come here, my JupyterLab, I started off with this subset, these are the classes directly just taken from here.


I took this, turned it into a Python list, started exploring the Open Images,


so I downloaded the class descriptions boxable, which is just a CSV, turned that into a pandas data frame,


did some matching, so created a match column, so if the name is in my subset list,


I just had a Boolean column there, value counts.


And so this is where my first little issue kind of arose, was maybe there's only 20 out of 30,


because there's 30 classes in the subset, maybe there's only 20 out of 30 of them that exist in Open Images.


But then I did some digging, I did some exploring, I did some dancing, well, not yet, I haven't done some dancing.


I will dance though, once Detectron 2 starts to run. Hold me to that.


I wrote some code here, just a whole bunch of matching strings and all that sort of stuff.


And then I figured out that if we look at actual missing classes, there's none,


because the only difference between Airbnb's classes is they have underscores,


whereas when you download them from Open Images, it doesn't have underscores.


So just removing the underscores meant that all the classes lined up, which is amazing.


We have a lineup, so that means I then went and used the script from Learn OpenCV, this GitHub repo,


this script in particular, DownloadIOI.


I was typing that DownloadIO, because you know IO, input, output, but it stands for DownloadOpenImages.py,


just a little script that's going to hit up this database or this Open Images and go,


hey, give me these classes, you can run a code like something like this.


I'll just show you the exact code that I ran.


I tried out the Jacuzzi class, because there's not many Jacuzzi images.


Here we go. You run something a little bit like this.


So Python 3 DownloadIOI.py classes Jacuzzi mode train, which is going to go,


hey, go to the training data set and download all the images in the Jacuzzi class.


So I did that, but then, and it worked great.


So this script works amazing, but we ran into another issue where if an image has multiple objects in a scene,


as you could imagine, like a bathroom has a toilet and a bathtub, aka this example,


running that script downloads the image twice and a text label, sort of a text file with separate labels.


So it's in one label for the bathtub and one label for the toilet, but two images.


So let me just show you.


If I download it into validation, it comes into the validation folder.


And then if I go into toilet, there's a particular example I want to show you.


Which one is it?


I think it's this one.


Right, so there's the label, toilet, and then these are coordinates for a bounding box.


There we go.


Right, fairly pixelated, so hopefully it works.


There's a toilet, but you can see there's also a bathtub in there.


So if we go back into bathtub and if we open up, there's the same image file name.


Here we go.


We compare these two file names.


Let me close some of these.


So you can see these are the same image, but then if we look at this label, it's going to be bathtub,


but these are the same file names.


So my next steps are is potentially before I download a bunch more images with all the other classes


is to figure out how Detectron 2, as I said, remember, practical machine learning.


When you're using something for some sort of certain application,


you need to line up your inputs with your outputs with your machine learning algorithm in the middle.


So my next step, what I'm thinking of doing tomorrow is to figure out the inputs to Detectron 2


and then see how compatible my images and labels are with that.


What I'm suspecting is that I will have to, Detectron 2 will probably take one image,


but can handle multiple labels, but I may be wrong.


I may have to check that out.


I got to check Detectron 2.


So that's what I'm going to do next.


Explore Detectron 2, see how it takes inputs, and then download all the images for the Airbnb classes


into my workspace, into my Google deep learning VM,


and then I should be able to write some code in here to start building a small model and see how we go.


By the way, one last update before we go off.


I created a GitHub repo for all the code, so you can expect this GitHub repo to start to be updated,


as well as this little Notion document to be updated.


The Notion document, remember, is just like a diary entry, literally.


I'm just spilling out everything that I find.


This was day four.


I'm going to wrap it up here.


It's time for a walk, you know.


But the GitHub repo will have code and other tidbits.


All right, so tomorrow, figure out the inputs to Detectron 2 and try and build a small model.


It's walk time for me.


My puppies are knocking at my door.


I can hear them scratching.


They're like, please take me for a walk.


It's getting to 5 p.m.


I got to do what I got to do.


Completing the Deeplearning.ai Specialization on Coursera | Learning Intelligence 18

Alright guys, so what you're seeing on screen here is a live submission status.


I just submitted my car or autonomous driving car assignment for the Coursera


DeepLearning.ai course as a project assignment. Notebook successfully submitted and we'll click


OK. Here it is here. Here's the assignment and let's see how I did. We got in here. Did I pass?


Yes! Look at that. I'll prove to you that it was live. Look, 15th of January, 4.37pm and it is now


4.38pm if you can read that. Welcome to Learning Intelligence 18. Thank you so much for tuning in


and this episode is going to be good fun. I might not be able to get onto the Artificial Intelligence


Nanodegree for a few days yet. Reason being is I'm not sure what happened but I paid to sign


up for term 2 but I don't have access to it yet. So I emailed support and I'm waiting for


a response back and I did get a response back like an automated one and it said they weren't


or they're out of office for the time being. I think they should be back within 28, 24 to 48


hours. That doesn't matter to me. I'm going to keep going through with the DeepLearning.ai


specialisation on Coursera. I just finished as you saw completing that autonomous. I'll show you.


Car detection with YOLOv2. What is YOLO? Well YOLO is an object detection algorithm and if you,


I don't know if I mentioned in the last episode but object detection deals with when there's more


than one item in an image. So in last week's classes we went through image classification


which is deciding whether an object is in an image or what's in an image sorry. The example I


gave in last episode was is my friend smiling or not smiling. What the algorithm would do is


just like decipher if the face is smiling or not smiling. Just as easy as that and what object


detection does is it looks for multiple objects in an image. Say for example you're driving a self-driving


car or you won't be driving it but the object detection system will be looking for multiple


objects. Of course you've got plenty of different cars out there, you've got traffic lights, you've


got stop lights, you've got pedestrians, you've got crazy birds flying at your windscreen but that's


enough talking for me. Let me show you an example. So if we look here I'll go straight into the code.


Object detection. Now the data set was provided by drive.ai which is a startup working on autonomous


vehicles and so this is what object detection looks like. You'll have your your scenery there and it's


probably a bit out of focus. I don't know if you can see that really but this is a road, the road,


traffic lights and object detection means putting a box around the main object in screen in this case


a car and let me go through to a better example and that is the final output of my algorithm.


It found seven boxes for test.jpg and there's a car car bus car car car car and now look at that.


I hardly even saw this bus in the first image but this is what the algorithm we built and it's called


the YOLO detection algorithm. If you want to know what YOLO stands for apart from YOLO live once,


it stands for you only look once and so what this algorithm does is it only looks once at the image


so it saves a lot of computation power rather than continually looking over the image over and over


and over again and I won't fully go in depth in explaining the YOLO algorithm however I do have


a good resource for you to learn more. It's Siraj's video and now I haven't watched this but I can tell


it's good look how many views it's got and Siraj is a wizard so come on you know what he puts out


is good stuff. I'm going to watch this video because I've just passed the assignment so I'm


really happy with that. I'll let you check out the video as well and learn more about YOLO object


detection. Tomorrow I'm going to get into week four which is the final week about convolutional


neural networks which is on facial recognition so I'm really excited for that and we'll check in


once I've done some more. Guys it's been a massive day probably one of the biggest days I've had in


a while definitely the biggest day of 2018 in terms of learning and completing goals and whatnot.


I'm definitely well and truly ready for bed I'm going to show you guys what I've been up to today


and I'm dressed in my PJs already. Check out the Captain America shirt. I haven't worn this one in


a while actually I think my mum got it for me so thanks mum. Let's check out what I've done. First


off we completed this assignment which was art generation with neural style transfer and what


essentially this is is using neural networks or using deep learning to combine the style of one


image with the content of another image to create something completely new. So I'll show you what I


did. There's a photo of my face which gets a fair bit of work out on these uh these image tests and


there's one of Picasso's paintings. I don't know exactly which one it's called. Here's the combination


after about I think that's 20 minutes of training. So what do you think?


Which one looks better? I actually like that that looks pretty cool but then we moved on so we


finished that one we passed that assignment which was really fun and then we did facial recognition


for the happy house. In the last clip I think I mentioned that uh or in the last video I'm not


sure that I did the image recognition assignment that involved designing a model that wouldn't let


people into a house unless they were smiling so this one was really fun and I learned how the


difference between facial recognition and facial verification. Facial verification is face verification


is comparing it to one image and facial recognition uh it's not on the screen there but let me give


you an example. So facial verification is say you're going through the airport right and you


give someone your passport and they put it on a scanner and the scanner compares your passport


photo with your face image so that's facial verification only comparing one image to one image


essentially it's an image of you compared to your actual face whereas facial recognition


is say for example in Baidu that which is a big Chinese internet company like Google in China and


they have a facial recognition system to let people into their building so facial recognition


deals with one face aka my face if I was walking into the building comparing it with thousands of


other faces or more than one other face and in the case of Baidu if I was to try to walk in their


building and their facial recognition system picked up my face they would compare my face with all the


other staff there and see if I was in that database and it wouldn't let me in if I wasn't part of it


that's a quick difference between facial verification and facial recognition and in the case of the iPhone


10 I've used that as an example before that's facial verification because it's comparing your


face to your real life face to the saved data on the iPhone so that's facial verification rather


than facial recognition we've got a few more tabs to work through and then uh and then we'll wrap it


up and for that assignment actually if you're working on it if you're working on the facial


recognition assignment for course four of the deep learning.ai specialisation there is a post


here from a Coursera engineer so it actually took me a while to get that one submitted because there's


an error in in the programming assignment and I had to run these two codes to fix it up I'll leave


that forum link in the description so you can access it if you need it but they said they should


fix it up relatively soon so we'll see if that's fixed if you're up for that and there we go look


at that I'm really proud of this one that was probably one of my favorite courses so far I rated


it five stars and left a good review for it because I had so much fun going through the


convolutional neural networks and that's four out of five look at that that's what I completed today


week four I did a week's worth of classes and programming assignments in one day how did I get


through it all because that's what is it it rates it at about two two hours per programming assignment


and about two hours with the classes about six hours worth of learning and ideally you could


get that done quite easily over a week but I I just fast forwarded and got it done in a day


I'll show you what my breakdown is of of what I do on a general day I have the privilege at the


moment I'm really lucky that I can study five days a week I can get up and just devote my time to


learning and I'll show you this is my rough routine of what I do pretty much every day wake up that'll


be around six seven a.m and then this will read for an hour at least and then I have a study 1.5


hour block no interruptions there that's really important that's with all these blocks as well


no interruptions I'm focusing on one single task at a time so study 1.5 hours then I have a 1.1


hour break and I eat then has breakfast that'll be around 11 12 o'clock and I study for another


one and a half hours or until I've reached my study goal for the day I make sure at the start


of the day I have a one major goal that if I completed that the rest of the day would be a


good day because once you get that one major thing out of the way the rest of days on you


can go on autopilot almost and just cruise so get the biggest task out of the way first study 1.5


hours then finish or finish the goal and I have a 30 minute break and then if I haven't finished the


goal I'll study for an hour again usually by about this point I'm zoned out and that's when I need to


go and work out which is what I did today and why I'm doing this clip at 9 36 p.m at night because


I finished learning for the day and then I went and worked out had an awesome session to clear


my head when I finished studying today I was my my brain was was all over the shop I was it was


ready to shut down I could go for a nap and not wake up till tomorrow I think the workout cleared


my head and now I'm ready to actually talk again I couldn't record a clip before because I would


would not be able to talk we're going to get moved through these tabs it's going to be the longest


clip I've ever done here's my beautiful certificate look at that I just realized the camera was zoomed


in on my face that's all right look at this Daniel Burke convolutional neural networks an online


non-credit course authorized by deep learning.ai and offered but through Coursera I'm so stoked


with this that's number four that's a four certificate I'll show you them all once I've


finished the whole course this is the last one course five out of five for the deep learning.ai


this is what I'm going to do next and it's not released yet so it's on sequence models sequence


models are used for like voice recognition uh text recognition and whatnot anything that's in a


sequence or a time sequence so text on a page that can be in a sequence what's it called when


they make sound waves sound waves over time that's a sequence so like when you say hey Siri and your


iPhone goes that's it that's essentially using voice recognition so that's a sequence model


and then let's register with the MIT artificial general intelligence course together to sign up


for this one the link is in the description by the way I know I mentioned in the last video


oh I need to unlock master pass one password to save this we'll cancel that I'll just save it in


google there we go so we're signed up to the MIT artificial general intelligence course that'll be


going soon and last but not least is this film clip I'm not going to do the whole thing but


check it out Justin Timberlake's new video has a reference to deep learning in it look at the first


clip here we go pan asia deep learning conference kuala lumpur malaysia 2028 I don't know if you


saw that I'll leave a link in the description that is Justin Timberlake's latest song and it


references deep learning and AI what could be better artificial intelligence and deep learning


meets Justin Timberlake is this true yes it is it's amazing check it out but guys that's it I'm


going to do some reading before I go to bed I'm going to get back up in the morning and I'm going


to go over my notes for the past two days because I haven't heard back from the artificial intelligence


netted degree term two yet I've completed all that's available on the Coursera deep learning


dot AI specialization so far so the sequence models course isn't out yet but I'm signed up


for notifications so when it comes out I'll let you know and I'll show you my progress


we'll catch you tomorrow and uh that was a long clip thank you for bearing with me


okay okay okay okay okay okay okay okay okay okay okay okay okay okay okay okay okay okay okay


okay guys so since I'm finished the all the courses in the deep learning.ai all the ones


that are available I've just been going over the last two weeks worth of content week three and


week four of course for the convolutional networks course and I was pulling out some key points and


I thought I'd share with you what my favorite key points were from the object detection classes


and the computer vision using YOLO the YOLO algorithm so first of all object detection


and classification what are the differences so what are localization and detection so if we look


at image classification right that is just what is in the image so in this one it's a car so you


think of image classification as what and I think of image localization as where so we know that


there's a car right and but with localization we want to know where it is so what are the y and x


coordinates and what can we do with these well I'll show you later what we can do but then if


you take it a step further and we go to detection now detection is a combination of both of these


so image classification and localization but with multiple objects so if we see here we have car


that could be number one and this could be number two and then even if we draw some red boxes up


here we've got some traffic lights and even way back down here we've got a street sign that we


could also classify as an object so really you have three four five six objects so multiple


objects and as a combination of localization right we have x and y coordinates for all of those and


also another another coordinate of this is or another number another variable we can pull out is


the height and the width of the box around but we'll check that out in a second actually I think


it's on this slide oh and ps all of this is from the or wherever you see the source label here so


down in the bottom it's from the deep learning.ai course so make sure you check that out the link


will be in the description and we go here so what we're trying to figure out when we do object


detection or object classification or object localization is find the target label y and what


is y well why we come down here and essentially y is a list of numbers aka an encoding which is


here but we'll get onto that in a second so why look at this box so this is what we're trying to


turn this into we're trying to turn this image into y the output and now first the first major


thing or major actually forget about here for the time being so let's just calculate the different


coordinates of y but I'll cover the first major component of y is pc so this is the main one we


want to find out first and what's pc well I like to think of it as the principal component but I


don't know if that's the exact terminology but this is how I think of it because it's easy easy


to remember and the principal component what that essentially is asking is this little green circle


here is there any object and if there is an object which in this image there is you have the car here


we're going to put a one because one is yes and of course zero is no and look at this image there


is no car in here that's what we're looking for and now if we do have a zero right we essentially


don't care about the rest of the parameters because why would we expend extra computing power


if the object we are looking for is not in the image so we're just going to not care about these


right we don't need these these extra parameters but what are these actual parameters well if we


look back over to this box we got here we've got bx by bh bw 010 what exactly do these mean we've


got x and y coordinates as well and so bx we come up here is the position in the box let's change


the different color so if you imagine x is x is down here and y is here so we want to know bx is


the position of this box on the x x axis so this axis here all right and by is the position of this


box on the y axis and then we got bh is the height of this box all right and then bw is the width of


this box okay so that's that's the components that we have here there's variables the main ones we


have one yes there is an object and then we have where the object is on the in the x and the whole


image where it is in the y and the height and the width of it now that's very useful information


because what we can then use is that to further calculate these three and now where do these three


numbers come from well they come from up here all right so this is our list of of potential things


so we've got a pedestrian car motorcycle background and then five if you wanted to add in might be


in the case of a self-driving car traffic lights and then six you could have pedestrians but we


won't the list could go on and on and on and on and on right but if we look back to this little


section here we got zero one zero and now that is that only has three components but in the case of


a real self-driving car you might have zero one zero and it would just keep going in the example


we used in the in the lectures it had 80 different classifications so you have pedestrians traffic


lights stop signs road signs etc etc etc but in this case we're just keeping it simple we have


three different items and it has a number one for car so no pedestrians in this image no motorcycles


but there is a car and remember we don't care about any of these because it's it's just a


background right and now what can we do with these numbers so remember computers love numbers i'm


going to put that in purple writing here so you you understand it computers or i'm trying to get


around my head as well love numbers all right so a computer does has no idea what a car is but it


does know what a big list of numbers what this list of numbers and remember it's going to be


bigger in real life actually is well sorry it really it can compare this list of numbers to


say we had a database of other lists of numbers right so then we got our our car our pedestrians


our traffic lights our stop signs our buses our trucks and it's going to go okay let's compare


let's compare our car so this this number here let's compare that to our database of different


numbers and figure out which one of these matches up best okay so we've got a car now what can it


do with this once it knows that it's a car there what can it do well in the case of a self-driving


car it might uh go back to the main computer and then give it some directions so does it need to


go forward left back or right or it might need to go forward it doesn't need to go right it doesn't


need to go left it doesn't need to go back but forward okay well how close is it that's when


other sensors can come in and then we can calculate how fast do we need to go forward so remember


as we talked about before and as i mentioned i think in the face example the face example before


what a computer is doing is pulling out components from this we have here finding a list of numbers


and then comparing it to a database and these two lists of numbers are called encodings so whenever


you hear the the word encoding i know it took me a long time to get around this i don't know why but


encoding essentially means turning an image or turning a piece of raw data into a list of numbers


so we can compare it to another list of encoding all right and then another cool part was the yolo


algorithm so this is the state-of-the-art computer vision model so state of the art it's in what i


mean by that it's it's it's probably the best one that's out there and now it's it's actually yolo v2


at the moment so this should really be yolo v2 but we won't worry about that too much there's


there's other yolo algorithms out there i'll leave the link in the description by the way to saraj's


video on the yolo algorithm and he does a great explanation of it and so this this all this


information is sourced from here so thank you to pj ready and if we look at what does the yolo


algorithm actually do well we'll start off we start off with an image much like we did in the


previous slide and the yolo algorithm stands for you only look once so it's only going to look at


this image one time all right and what it does in that one time is it creates a grid so we've got


a grid here see all these my lines are really roughly drawn drawn and then we we what it does


in the next step is it uses those uses that grid that it made and it creates all these little boxes


here so you can see all these little boxes and each one of the each square in this grid will have


five boxes so this imagine this is one box so that means this box has one one one one one one one one


one so a whole box doesn't have to be in there for a box to be counted if if this box here this one


here had another box like this that would mean it would have two because it's got the corner of the


orange and corner of the white box so it's each one of these is going to have about five it could


be a different number depending on what type of yolo algorithm you're using what type of parameters


you're using but what it will do then is it will run the image through a cnn which outputs an


encoding remember what an encoding is a list of numbers right so we're just this is our end goal


our end goal always with with many deep learning models is a list of numbers okay and then what


how does it how does it go from here to here what's the significance of of all these little boxes


all these tiny ones in this section here and tiny ones in this section here well you see how this


one is thicker this here this this yellow box this red box and this green box in the back if


you can if you can see that what that's going to do is it's going to translate it's going to bring


those over and then we finish up here with the dog a bicycle and a car that's what we're left with


because these boxes were the thickest and now how does it how does it do that how does it find out


which boxes are the are the most other are the thickest well that's why we come down to this


last major step which is we filter filter through all the boxes using a score threshold right we'll


get to that in a second and we only keep the boxes of high accuracy so those that pass the score


threshold so say our score threshold was 0.8 right so if a box is boxes with high accuracy if it is


if the accuracy is higher than 0.8 we're going to keep that box all right so that's that's an


example now 0.8 is just an arbitrary number it will vary depending on what parameter you want to


use for your yolo algorithm and then we can also combine that with an intersection over a union


algorithm to eliminate the overlapping boxes right so if we look up at this image look how many there


are there are hundreds if not a thousand plus boxes in here and they're all overlapping everywhere so


there's a big cluster right in here they're all overlapping so how do you work out what oh actually


how do you work out if there's another thick box around the dog how do you work out which one to


keep well if they both pass the scoring threshold what you can use is the intersection over union


to further eliminate overlapping boxes and now let's take a look at that so the intersection


over union is a further way to narrow down how you can find in your image where's your dog where's


your bicycle and where's your car so this is one of the last steps you can do in the yolo algorithm


so but look here where's the union so oh sorry the intersection the intersection of these two boxes


is this little yellow part here and the intersection we're going to scribble over the yellow is the


whole area of both boxes so let's start from fresh we have two boxes two really roughly drawn squares


there this is the intersection this little yellow part here so we're going to take that area and


we're going to put that the size of the intersection up in this this uh the denominator oh no so the


numerator and then we have here and the list this is the union so all this area including the


the intersection we're going to take that area we're going to put it there right and that's


how we calculate the ratio right so if there's two boxes here this purple one this purple box here


it's still got the car in it but it's not a good fit as the as the one in the red and you can't


really see anything here anymore because of color over it but just think of it the red is a better


fit and now this is where we bring in another threshold so correct the label is correct if it


passes an iou of of a greater than equal to or greater than 0.5 and what you can also do is up


this ratio so you could have 0.6 or you could have 0.7 or you could have 0.8 it really depends on how


accurate or or what what threshold you've discovered when using your all yolo algorithm


and now as a whole the iou is a measure of the overlap between two bounding boxes okay and now


that is how we use the combination of score thresholding so say for example uh this yellow box


here had a threshold of point 0.8 and it was 0.83 that it was a dog so it would make it through


but then there's another another one here that was 0.84 that would make it through then you'd use the


iou algorithm to work out which one of these we're going to keep same goes for the bicycle


same goes for the car same goes for all of these that's what we don't keep any of them because they


don't pass our score threshold and they don't pass our intersection over union algorithm so let me


give you a quick demo of the yolo algorithm running live on video and of course the yolo


algorithm works great on images but it needs to work in the case of a self-driving car on video


and i mean video is just essentially a lot of images being played really quickly so as you can


see it's picking up different boxes around different items but there is still some space in


there which some items that don't have a box around them and so these boxes are just part of


the database that doesn't have encodings for yet so as i mentioned the yolo algorithm we tried out


in the classes in the deep learning.ai specialization had 80 different classes so as as


computing gets more powerful and more powerful it will more classes will be available in the case of


a self-driving car you'll need to make sure you've got all the classes covered for for road conditions


in the case of other robots maybe a chef robot you should or a chef computer vision thing or a food


detector it will need to have lots of different food classes and remember classes and codings


just think of them as a list of numbers and whenever it tries to figure out what the item is


it compares that's that list of numbers that it discovers for that person to the database


of other people and figures out okay is this a match does this pass our threshold and does this


pass our intersection over union algorithm and so there's some of the there's some of just the the


quick my quick takeaways there's a lot more in the in the classes but remember if you want to


find out more you can go to the where is a clean one you can go to the deep learning.ai course


on Coursera the link will be in the description thank you for your patience through that last


clip guys i know it was a bit lengthy and if you want to see more of that leave it in the


comment below do you want it in a separate video or do you want to just not see any of that and


just want to see what i'm doing now like a face-to-face vlog thing rather than a sort of


educational type stuff i'm trying to mix these up to give you guys as much variety as possible and


really dive into to how i'm experiencing studying on my own and learning these things so they were


some of my favorite takeaways with the yolo algorithm and the object detection and whatnot


i have two more things i want to show you or i'm not sure how many i think it's two two more things


i want to show you before we wrap up this video give this some shout outs and then talk about


what's going to happen in next week's video term two of the artificial intelligence nanodegree is


a go we now have access so next week's video will definitely be covering everything i'm working on


through here i did a bit of work on it today but we'll save that for next week's video the last


thing i want to leave you with is this new course i found sorry it was running last year but this


is the 2018 version deep learning for self-driving cars and of course the links to to everything as


always will be in the description so check it out there but this is a introduction to the practicing


of deep learning for self-driving cars i'm really excited for this it's all free i'm going to be


checking it out so i if you want it if you guys want to do it with me let me know i think it's


starting relatively soon so or already has started we can catch up on all the lectures on on youtube


anyway i was about to start checking this one out here lecture one deep learning by this guy who's


an absolute legend i think he is lex lex friedman check out his channel guys he's got about 20,000


subscribers so definitely putting out some valuable content and if you really wanted to


you could get the the self-driving car t-shirt check that out pretty cheap i think the links


in there in their youtube description of of the course or it will be somewhere here again i'll put


this link in the description but now it's time for some shout outs alrighty guys thank you so much


for watching right through to the end of learning intelligence 18 this video is for the wrap up of


the deep learning.ai course which is probably i'm going to be honest is one of the best courses i've


ever done definitely in the top three and that's that's without a doubt by far it is extremely well


made the forums are great the content is great the teaching method is great i really enjoyed that


course so if you're thinking about getting into deep learning have a go try it out deeplearning.ai


you can find it on Coursera of course the link will be in the description but now it is time for


drumroll please shout outs of the week okay so these people either reached out to me via email


left a comment in the youtube section or wherever else on the internet you can find me you can reach


out to me at any time my email is daniel at mrdberg.com i'm happy to answer any of your


questions regarding my learning journey ai machine learning health fitness anything i can i'll do my


best to help you out otherwise if you want to help everyone else out leave a comment below of


any sort of advice you have for me anything you have for others and this week's question of the


week is what's one of your favorite courses that you ever done so mine is the deep learning.ai


course leave a comment below of what a course that you've done either in the past or you're doing


right now that's that's really really you think is really great and should be shared with others


without any further ado thank you to madison thank you so much for the question on ai versus


blockchain that made me that made me think a lot and i think you guys can see that question


in the last video that'll be in the comment section antonio thank you for your kind words


you're very very generous justin all the best with learning ai jabastian good luck with the


deep learning nanodegree if you give it a go don't be afraid to jump in when i first started i only


had three weeks of python knowledge and i'm so glad i i went through with it jeffrey thank you


so much for the words as well i really appreciate it hasa thank you for being active in the comment


section you've left a comment on almost every one of my latest videos so thank you so much


your your contribution is very valued i very appreciate it charan thank you again for your


words i really appreciate all of this guys it's really it really drives me forward to see this


stuff in the comments adnan all the best with learning ai and i'm very honored to be able to


inspire your learning journey that's what i'm really trying to do with others so i'm having so


much fun doing what i'm doing and i make these videos so i can at least share that with all you


guys to wrap it up we've got one more question actually leave a comment below why did i choose


the thumbnail i did give you a clue it relates to something in the video leave a comment below if


you get that one as well next week's video is going to be covering my progression in the artificial


intelligence nanodegree term two so i'm really excited for that we're starting off with computer


vision describe leave a like leave a comment if you want to see anything in the future otherwise


1 week out from SPARTAN Race + How to bake a sweet potato in 5-minutes!

What's going on guys welcome back to another Spartan trainer and as of today


Officially one week out so this is I think one of the last three or last four training sessions that I'm doing


It's a grip and stability workout. You probably noticed I'm sitting on the ground right now. I don't know


I'm in a bit of warm-up position. I'll show you how to do it


It's one of my favorite warm-up exercises. So what you want to do is get your butt next to the wall


I start sidewards and put my legs I rotate them up


against the wall and then I kind of move my butt closer to the wall and


Put my legs into like a squat position


And now the idea is get your butt right up press against the wall as close as you can


It's going to be really tight on your hips and and your glutes and your ankles and your knees


But it's it's a really great stretch to get your lower body


Primed for the exercises you're about to do in the gym and it can be can be for any workout


Because I mean your hips come into play with everything and you can also set up bending your knees put your legs


Straight up against the wall and spread them out like kind of in a in a split position


And so I alternate between both these I'll try to hold them for about a minute


But what do we have on today's workout agenda?


Well, it is a strength and stability workout or grip and stability workout


So first exercise we're going to start off


I'm going to start off with a circuit and we're also going to do two circuits today


Actually, it's ten burpees five pull-ups one minute plank one minute plate carry one minute rest


We do five rounds of that and then we get into ten deadlifts some beast activations


Which is like a core exercise and then some hanging leg raises and we'll do a few more rounds of that


I think that's a ten minute arm wrap. Let's jump in. All right, so we ran into a little bit of a roadblock


This is dead, but not to worry. We've got my trusty pal Benny. What's going on, brother?


We got the I got the iPhone cam. So


So yeah, that's it. No excuses. I'm gonna get this workout filmed start off first thing first burpees


Nothing will get your heart rate up like burpees


We got five pull-ups


One minute plank


Attention to the next dimension


Let's just let our bodies be true. We make out but we love it mess around for the thrill of it


One minute plank done. We've got one minute plate carry. I picked the picket


I picked the thicker plate because it's a bit harder to grip


At least one minute hint


Lets rock


Okay, so that's one round. We're gonna do that five times usually with the plate carry.


That must have been a fast walk. It's about a minute all the way to the end of the gym


and back. So four rounds to go.


Five sets done. That's only like 15 minutes of work, but it's ridiculous. We're gonna


go into a 10 minute AMRAP. Got deadlifts, beast activations, which are a core exercise,


and then some hanging leg raise. More core exercise.


Five hanging leg raises. And then five reps of beast activation, both


sides. This is not the exact beast activation in the catalog, but it works for me.


Now the deadlift isn't as heavy as what I've usually been going, but that's because we're


in the later stages of training and I want to keep my legs fresh for a bunch of running.


So about 15 seconds rest and we'll just keep going, repeating it over and over. 10 minute


cycle. So the goal of that workout is to get the


grip strength going so when you're on the obstacles, you can hold on and move around.


Same with the core strength. Over those long distances, your legs could probably take it,


but your core is what'll end up letting you down. So that was the main focus of this workout.


And of course the short rest times to mimic in between the running and the obstacles.


Let's go eat.


We're going to bake a sweet potato in five minutes.


Okay, well this hotter than the sun type object is cooling. We've got another one in the microwave


going, but while that's running, we're going to prep the other stuff so by the time this


is out, everything's ready to go.


My


A wise man once told me to never eat alone.


Alright, yeah so I'm gonna, what I'm gonna do, I'm gonna go, how is it mate?


And then I'm gonna sign off the video that I did. Alright, so you say, when I ask you how is it mate,


just say whatever you think and then I'll put the finishing touches on with a bit of lemon.


Then I'll sign out the video. Alright, so how's it look mate? Mate, I can't believe what I've got in front of me.


It is a wish bang new beauty. We've got one more thing, the finishing touch.


We're gonna squeeze a lemon on there to finish off. Yeah. I'll do the same on mine.


So this is going on YouTube dad, you know what that is? Yeah, not. I'm one week out from Spartan Race, how do you reckon I'll go?


Spartans were pretty good, you're not Greek, that's the only problem.


Alright, I won't hold you too long on this. So we've got some greens at the bottom, sweet potato,


avocado, some hokey fish, some spices, a little bit of capsicum and of course topped it off with a drizzle of olive oil and lemon to finish off.


You keen to eat? I'm very keen to eat. I'm holding back here, I have to say. Don't, don't, don't, don't, I need to get the video.


One week out from Spartan Race, I'm getting keen, I'm a little bit scared but we'll get it done.


Nutrition's on point, training's going well, we'll see you next week. You wanna sign off with me? Yeah.


Self-Studying Machine Learning? Remind yourself of these 6 things

Alright back to you Terry. Wait it's me. Where's the jingle? My own jingle? Alright.


Welcome back to another episode with Daniel Burke, Self-taught machine learning engineer.


On today's episode we're going to go through six tips to help you with your self-learning


machine learning. Now I get a lot of questions asking how do I learn machine learning, how do


I learn math for machine learning, how do I get motivation to study every day and to be honest


it's gonna the answer is going to be different for for every single person because everyone's


learning journey is unique. However I did write an article the other day I posted on Medium the


link will be below and I've printed it out now because you know that's what you do when you're


a professional newsreader you get papers and continually shuffle them. The title of the article


was thinking of self-learning. Thinking of self-studying machine learning? Remind yourself


of these six things. So in this video we're going to go through those six things. It won't be the


same as the article because I've just written the the titles down I'm just going to be riffing them


off. Number one is to get some python foundations. Now if you if you're just a beginner and you want


to get into machine learning and you're thinking of learning it yourself you probably definitely


want to start with with learning some code and learning how to run it and now why python? You


could use a bunch of different other programming languages Java, R, C to all code up machine


learning. However python is one of the lowest barriers to entry and what do I mean by that?


It's that when you read a line of python code it's very similar to how you would say the same thing


in real life. Now where can you learn python? When I first started I started learning it on Treehouse.


Now of course the resources I list there's a bunch of them online and it doesn't really matter


where you learn it but my brother's starting to learn it now and I recommended him to use


DataCamp because of their focus on teaching python for data science and machine learning.


Do you necessarily have to use it? No of course not but if you do want to get into machine learning


you do have to start learning how to code.


So you've started learning to code you're about three four months in you've got a bit of python


foundations what do you do next? Well number two in this this beautifully written article by the way


I'm kidding. Number two is to start making things when you're not ready and what do I mean by that?


Well the best learning I've had is working on projects that I didn't necessarily know what


the outcome was and so doing online courses is great however there's a structure to them. So


someone's gone ahead and worked through the problems giving you a bit of a scaffolding of


how to get through and you can go to the forums and ask how to get through this step and you'll


probably find an answer. That's well and good to be able to do that sort of research but what happens


when you come across something that finding the answer is a little bit more difficult or in fact


there is no answer. Now the reason I recommend working on things when you're not ready is because


that's going to even though it might not feel like it when you begin it's going to exponentially


increase your learning rate because not only will you will you start to build upon those foundations


you'll start to learn oh okay I can look at things and think of different ways of solving them


even if I don't necessarily know what the outcome is going to be. That's a very valuable mindset to


have. Start building things when you're about 70% ready because in reality you'll never be 100% ready.


Number three there's a lot of clutter out there so reduce it and what do I mean by that?


Well if you google how to learn machine learning or different machine learning courses you'll


probably be overwhelmed by the amount of learning resources out there and they're all great which is


which is actually amazing and an amazing time to be getting into to learning machine learning.


However having too many things to do in your day is going to make you feel like you're not ready.


Having too many things to choose from can hold you back from actually choosing one thing.


It's like when you go to the ice cream store and they have 36 different flavors and you're like


well I can't choose because there's there's so many different flavors.


So one of the best things I ever did was creating my own custom pathway. Now that's my you might


have seen it before it's my AI master's degree and I wrote an article about it I linked some of the


resources that I was doing and it's ever expanding. Now if you've got some foundations in Python


some three of the best resources that that I use day to day or that have helped me most day to day


as a machine learning engineer have been the hands-on machine learning book, the fast AI


machine learning course and the applied data science with Python course on Coursera. They're


three of the things that relate most most to my job day to day as a machine learning engineer


and now of course that again is going to differ depending on what you want to work on,


what your job requires etc. But they're just three things you might want to bookmark


for after you've got some Python foundations. The benefit in having that was that when I when I


thought about trying another course or something like that I was like no I'm going to stick to my


curriculum follow that that'll give me a good set of foundations then I can start building things.


Number four research is necessary but pointless if you can't apply it. There's a lot


coming out in the machine learning world and deep learning world AI world and data science world and


what what I mean by that where you look on medium you look on archive you look everywhere you go


there's headlines of of new ways to do things and now when you're first beginning that can be


incredibly overwhelming as well because at the same time you're trying to get Python foundations


and oh you've got you've got your foundations now you're trying to trying to work on your project


and trying to learn a bit more in-depth machine learning stuff and you're getting all this new


research state-of-the-art this state-of-the-art that how do you keep up? Well the the fact is


you can't right now I work on this stuff every day and I I struggle to to keep up so when you're


first beginning ignore it ignore all the new stuff unless it's directly relevant to the project you're


working on so remember when you're first starting out get the foundations have a set curriculum that


you said you're going to follow through and then if you've if you've got a project that you're


working on maybe then you might want to look at new ways of doing things but in the beginning


focus on the foundation.


Number five is a little bit every day now when I when I get frustrated most of the time it's


because I'm trying to control things I can't control what do I mean by that well when you're


studying what's something that you can't control you can't control how fast you learn or how fast


you'll be able to solve a project sure these are things you can work towards improving but if you're


first beginning out learning learning machine learning there's a lot to take in so something you


can't necessarily control is how quickly you you grasp the concepts how quickly you can start


putting them into play what you can control is how much time you spend on practicing those concepts


every day so that's something everyone is has the ability to control and what does that look like


I'll say instead of getting up and saying well today I'm going to nail that new concept that I've


been struggling with I'm going to learn how to build a neural network in PyTorch well that's


that's a great goal to have but are you necessarily going to be able to complete it in a day maybe


if it was a really good day but the opposite of that and the other side the thing that you


definitely can't control is getting up and going I'm going to spend three hours on this


thing and control is getting up and going I'm going to spend three hours working on that that


project right that's all you have to do you work for three hours on that project and you've


completed the goal set the system up so you always win and if you miss a day that's fine right life


happens these things happen when you hear people saying yeah I do this every day sure that's great


but not again not everyone's the same and sometimes things will come up so if you miss a day


that's fine there's always tomorrow you can get back into it focus on the things you can control


not the things you can't control


all right five down


number six this is this is actually really important these last two I've decided I'm going


to throw in a bonus for number seven for the video version but number six is don't beat yourself up


knowing something at the end of the day who does this help no one especially not you if you're


beating yourself up going wow I wish I knew this you go online I'm guilty of this I read articles


and I see what people are doing I see people's amazing amazing projects right and the stuff


that's coming out of this world is just just incredible and I'm going wow why can't I do that


well what what you often miss with with with everyone's journey is you see you see that final


little little little projects right at the end right right at the end so it's got all this work


and all you really see is that that last little bit so when you go to the movies right you're


watching 90 minutes of of a pristine movie and it's it's gets all the great reviews however


when that movie first started out it was probably like 100 hours of footage that's been cut back


to being that final little polished product so that's that's important when it's when you're


learning something when you're learning something new is to don't beat yourself up don't compare


yourself to to other people how far they are ahead sure it's great to use them as inspiration


for for where you can get to but feeling negative about where you're not and where they are is not


going to help your learning journey and I mean people think and Gary you probably want to you'll


probably want to put the graphic over here for this one people think learning is a straight line


it's more like all over the place right the first year of learning something new is is yeah you suck


at it and then the second year you're you're better than you were the first year but now you


know how much you don't know so you think you suck even more but you're actually you're actually


getting better than the third year well I can't tell you that yet because I'm not there but stay


tuned and I'll fill you in. And this is a bonus and probably really important too all right just


as important as all the others and it's number seven and on the original on the original version


of this actually no I did a live stream the other day asking in Q&A and Matty S left a comment which


was very valuable which is something that I probably should have included in the the original


article was what's the rush all right it's it's not going to help again this is tying back into


what you can control what you can't control and not beating yourself up for things you don't know


whenever I feel down whenever I I don't have the motivation to study it's because I'm trying to be


too far ahead of where where I'm actually at and now machine learning is in a compass of of


programming mathematics statistics probability communication a whole bunch of different fields


right and each of them you could spend years learning so combining them and expecting to be


an incredibly good machine learning engineer after a short period of time is kind of kind of working


against yourself and that's what I have to remind myself is to to have patience to learn these


things takes time but it's worth it right there are seven tips that I have for people who are


just getting into self-studying machine learning maybe you're just starting out maybe maybe you're


getting into it I've been studying self-studying machine learning for about two years and now


when I say self-studying I've spent I definitely have spent a lot of time in this room however


everything that I've learned and everything that I've worked on has been because of the incredible


work that other people have done and put online and whatnot so self-study is not really self-study


it's because I'm standing on the shoulders of giants right and that's a I believe that's from


Isaac Newton the the guy who kind of invented calculus at the age of 23 man why did I invent


something by age of 23 and that's back to 0.6 right don't beat yourself up for things that


that you don't know yet but with any learning journey it's going to be unique will these things


apply to you maybe they will maybe they won't if you have something that you would add leave a


comment below try and help someone else out otherwise all the best learning machine learning


and as always keep learning I'm back to you Gary. PS before you go if you're looking for any of the


links that I've said throughout the show they'll be in the description below and if you have any


more questions feel free to leave a comment or email me at daniel at mrdberg.com and I'll get


Transformer combining Vision and Language? ViLBERT - NLP meets Computer Vision

Hello and welcome!


In the last video about Transformers, we found out how the Transformer architecture works.


In this video, you will find out how the Transformer architecture can process images and text simultaneously.


But let's not spoil everything already and start with the beginning.


The Transformer architecture has proven to be very impactful in natural language processing.


But what can be even cooler than looking at only text?


Well, looking at text and images at the same time.


And because we speak about two different input types being processed by a machine learning


algorithm, we are here speaking about multimodal learning.


Okay, but what does this have to do with Transformers?


Well, they can be applied to multimodal problems too, like for integrating vision and language


in a unified model.


How cool is that?


This kind of model has been proposed almost simultaneously by a number of different researchers.


All these papers proposed almost concurrently the same base model, of course with some slight


variations, but with the same basic idea.


They process language and images simultaneously with the Transformer architecture.


And most often the Transformer architecture chosen is BERT, a bi-directional version of


the Transformer.


And to it, they add the capability of processing visual input in the same time with language


input.


We will not discuss all of these papers here.


You can find a comprehensive list of most of them linked below, in the description.


Discussing all these papers would not only take a while, but because of the high topic


overlap it would be also quite redundant.


Instead, Ms. Coffee Bean chose her favorite paper by the Facebook AI team.


She chose this one over all others because they provided the code base, which is not


only available for everyone, but also clean and maintained.


In the following, we will discuss first how image and language are integrated at once


in the BERT Transformer model and second about the training procedure, which I would like


to call the pre-train-ception.


Okay so let's dive into it.


From now on, we will call this the Transformer module, which is formed like we have explained


in the last video.


So it is formed of the multi-head self-attention layer, the feed-forward layers and the residual


connections acting like information highways between them.


So this everything now is the Transformer module.


The trick here is to train the model on text-image pairs, like images and their captions.


The text part is easy to explain because it is exactly like what the usual BERT architecture


does, we feed the word or tokens in vector representation together after we added the


positional embeddings or identifiers to these vectors.


So our model is informed about the word order by these positional embeddings.


And we feed this to our usual Transformer module to process the text.


Now let's put the text part to the side a little bit and see what we can do on the image


side.


We also have to somehow transform our image into a vector sequence format, because the


Transformer is specialized for exactly this, sequences.


But how?


Well the idea is, if we combine vision and language anyway, why not have an architecture


that specializes on finding correspondences between words and image regions?


Ach, regions, there we said it, let's extract such image regions and order them in an arbitrary


sequence.


We can represent each region by a vector, by employing a CNN-based neural network that


we borrow from computer vision.


Good, we got this far.


Now the idea is to really compute these correspondences between image regions and the text by adding


the layers that do this computation with co-attention.


Now what does co-attention mean?


Until now we had attention, we had self-attention, now we have co-attention.


Well while the usual Transformer modules in green look only at their own branch for computing


attention through self-attention, the co-attention modules in blue are looking also at the other


branch to compute importance scores between images and text and vice versa.


So with co-attention, the image computes attention based on the text and vice versa.


For refinement, we add then another layer of Transformers and another co-attention layer


and another Transformer module and another and you get it.


The deeper the better.


We are doing deep learning here, huh?


Now the question is how do we end this?


How do we get to our output?


And what is our output anyway?


Well it depends what we train our network to do.


It can be just a multilayer perceptron followed by a softmax for getting out a score, for


example for the similarity between image and text.


This is really dependent on the task and the whole network can have many of these output


heads, one for each task it is trained on.


And sometimes it is trained also in parallel on many different tasks.


So naturally we have to discuss what we train this monster to do.


In this pre-train inception, how I like to call it, it is a very interesting part.


Because like in every inception, we have multiple stages and here we are ready to explain what


stage one is.


We do pre-training at this first stage on the text side and on the image side, but separately.


For the text, we have BERT trained on huge amounts of English text, so we take that BERT


weights and use them here to initialize our BERT modules.


Then the image side has to be also pre-trained to produce useful features from the images.


Here in the Wilbert paper they have used a fasterr-cnn architecture, useful in object


detection for computer vision.


For the second stage of pre-training, the Wilbert paper uses the conceptual captions


dataset.


They use this one and no other because it is huge and contains images and their captions.


And on this conceptual captions dataset, they train the network that was already trained


on English text further with the following objectives.


One task is to predict labels for what the image regions might be.


Another training task is also followed at this stage, which is masked word prediction


like in the classical transformer.


So here the model would ideally predict mountain, because it knows from the image through co-attention


layers what should fall into that place best.


And we are already at the training stage number 3, where the same model that at stage 1 learned


to process images and text separately, at stage 2 combines them and understands the


relations between text and image and is now ready to be trained to solve a task involving


both textual and visual modalities.


Such tasks are, for example, visual question and answering, where the model is given an


image and a question and it has to provide the right answer to the question based on


the image.


Wilbert not only beat the state of the art at the time of publication on this task, but


by a large margin.


Visual common sense reasoning is the better brother of visual question and answering,


where the system has to provide the answer to the question, but also to give the reason


for the answer.


And ideally this reason is, you know, reasoning about the problem and is not giving a tautologic


explanation like this picture is a mountain because it is a mountain, but rather an explanation


that this image depicts a mountain because the mountain is taller than the horizon, for


example.


Here Wilbert also achieved state of the art by a large margin.


Image retrieval is the task where given a caption of an image, the model has to select


the right image that is described by the caption from a pool of many other images.


And surprise surprise, state of the art again for Wilbert.


Phrase grounding is a more fine grained task, but also perfect for Wilbert, that thanks


to the co-attention layers learns relationships between image regions and words, because here


in this task, given a phrase in the caption like mountain, the system has to identify


the region that this phrase refers to.


And yes, again, state of the art for Wilbert.


So now that you have seen pre-training in so many stages, first on text, on images,


then on text and images, and you have seen how this has helped Wilbert to perform so


well on many downstream tasks, we can selfy say that this whole pre-train-ception, or


you know, different stages or strategies to pre-train the model before being applied and


trained further on a downstream task is really, really helpful.


And because these pre-training strategies are so cool, we will spend the whole next


video only about this.


We will discuss different pre-training strategies, because Wilbert follows only two of the pre-training


strategies, but there are others proposed in other papers about multimodal transformers.


So we will see these strategies in the next video, and not only strategies for multimodal


transformers, but also for the pure language BERT.


See you then!


What I Would Do Differently At High School - TDBS 23 April 2017

What is going on everyone? Welcome back to day 82 of the Daniel Burke Show.


It is April 23rd. Every time I have to think about the date, I should really get better at doing the date.


What is this? So, what I've been up to today, woke up this morning at my friend's house, George's.


We were staying there, we played Monopoly last night. Thank God that last night's game went a bit shorter than last weekend's.


It's become like a Saturday tradition that we gather around, have a meal with friends and play Monopoly.


We've done it the past two Saturdays. It's been really good fun.


Otherwise, I've edited some videos today. So, if you check out my YouTube channel at mrdburke.com slash videos,


there'll be about four different videos up there and some more are going to come tomorrow,


including one of me working out with one of my friends, Jay, at his gym, Raw Training Australia.


I was meant to upload that one today, but editing took a bit longer than I thought.


And then the upload failed a couple of times and there's no excuse really. It should have been up today.


But nonetheless, I'm going to upload it tomorrow morning. I'm going to wake up early so that I have all the internet in my house free to use


and push it up onto YouTube as fast as I can. So, I don't know. I think it's a pretty cool video.


I learned a lot. It was fun being bad at some exercises.


When I was training with Jay, I did some exercises that I've never done before.


And that's what I've been trying to do more lately is work on things that I'm not good at.


So, I've been running. I've been sprinting. I've been trying to do handstands. I've been doing Olympic lifting.


Because I've done all the type of bodybuilding exercises in the past like bench press, overhead press, squat, deadlift.


And I still love them. I love them all fundamentally. But I've also wanted to try out new things and put some more skills on my belt.


More tools on my tool belt if you want. And think, oh, if I wanted to try that, I could try that.


That's the kind of person I want to be throughout my whole life. I want to look at something and think, you know what? I could give that a go.


I don't want to be that person who's like, oh, I can't do that. And it's, what is it, 10.22 tonight.


And before I pressed record on this podcast, I wasn't really feeling like it. I just had something to eat.


And you know when you get that past eating feeling, you're a bit tired now.


I'm almost ready for bed, to be honest. I'm going to go to bed shortly after I finish this and upload it.


And I don't know. I find that once I start the podcast, I get this energy level.


Because I'm trying to bring value to people. And let me know if I'm not, if I am.


If you've got any feedback or advice for me, I'd love to hear it. Whether it's on YouTube, whether it's on the podcast.


Hit me up because I'm open to feedback. I can watch some of it back my own.


But to be honest, if I was to watch back every video, I'd lose time. And I want to dedicate that in other places.


I'm not complaining. And I'm not looking for, I don't know, an excuse or something like that.


I don't believe in excuses, really. This is just me, myself. And that's, what was I even talking about?


My brain is, all the blood from my brain is going to digesting food. Yeah. That's it.


Trying things that I'm bad at. So before I started YouTube, recording these videos, I wasn't that great on camera.


Now I'm finding that when the camera's there, it's alright. I'm getting slightly better.


I don't know. I watched the video today of me and Jay working out. I edited it.


And I think I'm slowly getting better at being on camera. Don't know. Not perfect.


Podcasting, I'm really loving. If it's just the mic in front of me, I can talk, I can throw chat, talk a bit of banter.


I think I'm getting a little bit better at that. Maybe I'm still talking too fast.


I'm consciously thinking of all these things while I'm doing this.


Today, I don't have a plan. I usually have my iPad here if you're watching on YouTube.


You can see that I have my iPad and I talk about a few key points.


But today, Sunday, Sunday can be a fun day. Freestyling.


But I think this week I've got a guest on the show. Yeah, my first female guest on the show.


Most of my close friends are all males, so they're the only people I've really had on the show.


But the next three guests will probably be girls, to be honest.


I've been reaching out and asking more people if they want to come on the show,


just so I can try to bring more value to you guys by getting, not just my point of view.


Because I like to be the dumbest person in the room.


I learn a lot from everyone out there.


It's hard for me to get over the fact that I'm humble.


I think that I can bring value to other people.


So that's why I find it hard to talk myself up. I really do.


I find it hard to be in a leadership position and delegate to others.


But I'm working on it. I'm practicing every day and maybe getting better at it, maybe not.


But over time, I think it's something you have to build up to. You have to just keep doing it.


Day one of the podcast, not that great. Day 83, maybe a bit better. Day 82, maybe a bit better. Whatever.


But I'm going on tangents here everywhere. I'm sorry, guys.


What else did I do? Today I watched one of my good friends, George, play soccer.


The cheerleaders there, the girls who are friends and girlfriends of the boys that are playing soccer,


and my friends as well, they were all into drama in high school.


I said, yeah, well, in my high school, I went to an all-boys school, and drama had a negative connotation to it.


Music and art and whatnot. It was seen as gay classes.


I know it's 2017, and if you say that something's gay, it's like, whatever.


Not politically correct, but that was the terminology used. Gay was sort of a synonym for bad, or don't do that,


because it's even actually worse than bad in my high school. This is 2004, 5, 6, 7, 8, 9, 10.


If something was called gay, it was almost worse than bad. That was a very negative connotation to be told to.


I know that's just a bad way of doing things. Now that I'm sort of smarter, or not smarter, smarter, older, wiser,


that's not a good way of talking down to things at all. Talking down to anything is not...


I'm a very optimistic person, so talking down on anything, particularly something of knowledge and way of expressing yourself,


is not... I don't know. Those words shouldn't be used, and just the fact of talking down on it shouldn't be used either.


Fundamentally, that's how human beings express themselves, through art, through music, through drama.


I think I lacked a lot of that coming out of high school. I was talking to these girls about drama,


because one of them was really into it, and actually all three of them were. They were teaching me some games.


I think it's called Zoom, or something like that. You're in a group of people, and you give these directional signals with your arms.


If you do the wrong signal, you're out. The idea is you keep going until there's only one person left in the circle.


That's a really fun game. In high school, I really wish that I... If I was to go back, I would totally do those classes.


Art, music, drama. Because, okay, I did maths. I loved all the other classes I did. Maths, physics, and all that sort of stuff.


But at the same time, I think it took me a few years, at least until this year, for me to really start expressing myself in ways that I hadn't before.


That's through video, through podcasting, through different outlets. I'm actually really thankful, looking back, that I did public speaking and debating in high school.


Because being able to communicate, being able to project yourself to a crowd, and be okay with expressing your true self in whatever art form it may be,


and whatever creative outlet you may have, that, I think, at least in my opinion, that's a phenomenally important skill.


I was talking to these girls and just praising them on how they go about their lives.


One is studying to be a teacher, and studying education, as well as drama. She's going to be an English and a drama teacher.


If I'm getting this wrong, Rose, I'm sorry. But, if you're watching, hey.


But I was saying, that's a really important skill, to be able to teach people.


Or to maybe not even teach people, just to enable them to be themselves and express themselves in ways they might not have thought before.


I think that's really because it's already inside of them. Fundamentally, we're all meant to express ourselves.


I did a podcast to me like 40 days ago or something, the top five regrets to live by.


Number one was not of... and long story short, this nurse worked for eight years in, I think it's palliative care or hospice care,


which is where essentially people go to die. It's their last 12 weeks of their life.


She was a nurse for eight years, and she interviewed people on their lives.


The number one regret all of them had, well not all of them, sorry. The most common one was not expressing their true selves.


I believe that not expressing your true self is one of the fundamental causes for so many things in life, like anxiety, depression, etc.


All these mental diseases, all these other diseases, physical maybe as well, comes from not expressing your true self.


That's something that was one of my goals for this year, is to be the truest version of myself, to express myself,


and not be afraid of putting myself out there in front of others. That's what I'm trying to do with this YouTube video and podcast.


Just generally when I have interactions with others, I used to... well I still am, but I used to a lot more, a lot more than I am now,


be paralyzed by my thoughts on what other people would think about me.


So I thought way too much about what other people thought. And don't get me wrong, I still do, 100% still do.


But I'm getting better at managing that. I don't know if you can fully ever get rid of it, but it's probably always going to be there.


I think you just get better at dealing with it over time. And that's what I'm trying to work on this year.


And so this has gone from... actually this is a good tie-in. I started the podcast, I'm talking about doing things that I'm bad at.


And so in the past, I've been bad at expressing my true self, whether it be... whatever scenario.


And before, like in the past, I think I have a good understanding of what my true self is now.


And it's impossible to explain in words, but I think everyone has that sort of voice in their head of what's telling them what to do or what not to do.


But I feel like I'm in a good place right now in terms of expressing myself and following that voice in my head or what not.


And that was something I was bad at before this year. And so at the start of the podcast, at the start of this episode, I was talking about doing things that I'm bad at.


And that's what I've been enjoying as well. It's just expressing myself through these different outlets.


And I've said that so many times, expressing myself. I'm just thinking in my head.


You've said expressing yourself like a dozen times in the past two minutes, but that's all right.


That was something I used to be bad at. Now I'm slowly improving. And that's the same with anything.


Like there's exercise I was doing with Jay in the video where I was working out with him. You can see that.


It's going to be called Functional Friday on the 24th of April. Or just look in my recent uploads.


And running as well. But slow progress is good progress. I used to think I used to want to do everything so quickly.


But now I've realised that the long game is the only game. And patience is such a key virtue. As well as expressing yourself.


So I might wrap that up there. What's today's challenge? Today's challenge is... I don't know.


Go into a crowd and... Or go up to a random person and just ask them a question. That's it. Or say hello. That's it.


Something you wouldn't usually do. Try to challenge yourself and just see what happens. Right? You don't know.


You might go and ask... If you see a girl walking at the coffee shop reading a book, ask her what book she's reading.


Vice versa. If it's a guy, if it's a girl. It doesn't have to be the opposite sex. It could be same sex. Whoever.


But if you just see someone that's doing something interesting, ask them why they're doing that. That's the daily challenge.


But thank you all so much for listening. I've uploaded a few videos on YouTube recently if you want to check them out.


Actually, why am I saying that now? This video won't be up for another few days because I'm going to do a bi-weekly upload schedule.


No, sorry. Twice weekly. I don't know if I'm saying it right. But anyway, you get the deal. I'll upload when I can.


Every few days because you know the drill. If you listen to previous episodes, my internet's not the greatest so each video takes 6 plus hours to upload.


And no one can use the net when it's happening at home. But that's a story for another time.


So whatever you're doing, I hope you have an awesome day. Text someone you love them. Or call them. Call them's better.


Call someone and tell them you love them. But I'll see you all tomorrow for day 83.


How I passed the TensorFlow Developer Certification exam (and how you can too)

You know what? I believe, um, this is a bit of a lie.


Won't take two weeks. Surely it's there already.


Cause it's there...


Oh my goodness.


Congratulations, you have passed the test flow to Billaburra!


It's a certificate exam!


Oh!


Oh, I could cry.


I could cry.


You'll be happy to know I didn't cry.


The only two times I'll allow or permit myself to cry


is in the final scene or one of the final scenes of Terminator


where he's sinking down into the lava with a thumb up


or when fixing a CUDA error when training a machine learning model.


They're the only two times.


But what you just saw was me passing the TensorFlow Developer Certification Exam.


And so four weeks ago or so, start of May, I decided,


you know what, I'm going to get TensorFlow Developer Certified.


And so that's what we're going to do in this video.


I'm going to talk about what it is, why you might want to look at doing it yourself,


how I did it and subsequently how you can too.


Let's start with what.


So what is the TensorFlow Developer Certification?


But first, what is TensorFlow?


Well, TensorFlow is an open source numerical computing library.


And what I mean by that, that's a fancy way of saying it's a,


it's a computing library that allows you to take some sort of data


and a data can be a whole, data is very wide, wide ranging term.


It could be a structured table of numbers.


It could be an image.


It could be a body of text, anything you can imagine almost.


Turn that data into numbers.


So that's, that's usually called pre-processing


and then find patterns in those numbers, usually referred to as models.


Typically, you'll build a deep learning style model,


which is a neural network with TensorFlow.


And then this is all within TensorFlow, by the way.


And then you can use the same library to serve or to deliver those patterns


that you find in data to people all over the world


through the form of an application, a machine learning powered application.


Now, TensorFlow has sections within its library.


It's a very big library that allows you to do each part of those.


It's what Google uses to power all of their machine learning services.


Now, the TensorFlow developer certification, as you might have guessed,


is a way to showcase your ability to use TensorFlow.


Now, if we think about it, I just broke it down TensorFlow


into pre-processing, modeling and serving.


At its current standpoint, the TensorFlow developer certification


is focused on the modeling part.


And so what I mean by that more specifically


is building deep learning neural networks for computer vision,


natural language processing, so identifying patterns


in natively written text or naturally written text,


and time series forecasting.


So if you imagine you have a series of events across a certain time period,


how can you build a deep learning model to predict what comes next


in that time series?


Now that you have a rough idea of what TensorFlow is


and what the TensorFlow developer certification is,


why might you want to get TensorFlow developer certified?


Well, my first reason was fun.


That's the first reason I use for a lot of things.


But it was at the start of May, and I'm like, you know what?


I want to sharpen up my machine learning skills.


And so I discovered, well, this is a great thing to work towards,


to give me an excuse not only to read this beautiful book


that we'll get into later, but to just sharpen up a few of the things


that I'd wanted to learn for a while or wanted to practice for a while.


Now, two other very valid reasons, aside from fun,


I kind of touched on it just before, is to number two would be to acquire


the foundational skills required to build machine learning powered applications.


And number three, to showcase your ability to work on machine learning problems


to a potential future employer.


And speaking of future employers, based on some data from Hacker News,


now this is from a website called HNTrends.com.


And based on some data from Hacker News' Who's Hiring page,


it seems that TensorFlow outperforms in terms of job postings,


like if the deep learning framework was mentioned in the job posting


of a company that's hiring, it seems that at the moment,


TensorFlow outperforms other deep learning frameworks.


Now, this is not to say that one's better than the other,


it's just an observational thing, like it could be completely different


depending on what kind of role you're going for.


And of course, a paid certificate is no guarantee for a job.


But in the world of online learning where most of us or many of us


are learning these skills now, it's a way to compensate or to go to someone,


hey, you know what, I've done the effort, I've put in the effort


to learn these things and I've gone to the trouble of going through this,


this skill competency test to make sure that I can go,


hey, look, I can do these things.


I think of it, and I'll say this probably more than once,


I think of it as a nice to have, not a need to have.


It's something that you can use beside, to go alongside with the projects


that you've worked on yourself.


Now, you might have heard all this and be like, yep, sounds great.


How do I do it?


Well, let me tell you how I did and maybe give some inspiration


for how you can too.


The first thing I did was read the handbook that you can find


on the TensorFlow Developer Certification homepage.


And then I did my research on what I needed to know.


So once I've done that, I put together a curriculum document in Notion.


Namely, I wrote out each of the different topics I needed to cover


and then gathered resources together for each topic.


So if we started by reading the handbook, the exams is going to be on,


and now I'm breaking down each of these into the four main topics.


It's build and train a neural network model using TensorFlow 2.x,


aka match the input shape of data to the input shape of a neural network.


Then it was number two, image classification.


Can you define convolutional neural networks or train on real world images?


Number three, natural language processing.


Can you build models that identify the category of a piece of text


using binary or multi-class classification?


And number four, time series, sequences and predictions.


Use recurrent neural networks and convolutional neural networks


for time series and forecasting models.


Now, if you were to first read this handbook,


if you've had some experience with TensorFlow,


you might read it and go, you know what, this is pretty straightforward.


I might need to touch on a few things,


but none of it seems too outlandish to me.


But if you're a beginner and you're new to the field


and you're still learning machine learning,


I mean, I'm still learning machine learning.


But if you haven't had much experience or hands-on experience with TensorFlow,


you might read it and be quite overwhelmed, but that's OK.


The resources that I'm about to list,


the ones that I'd collected and discovered


after I knew what the exam was on,


they will help you to learn these things.


The first place you want to go is if you want to prepare for the exam


or if I only had to pick one resource,


was the TensorFlow in Practice specialisation on Coursera.


And then I actually used a few more.


So the three, the main three that I used


was the TensorFlow in Practice specialisation on Coursera,


the hands-on machine learning book


with Scikit-learn Keras and TensorFlow by Aurélie Léon-Garon.


Now, only half of this book is related to the exam.


So it's a part on neural networks.


So I think I don't know exactly what page it's on, what starts.


But in the blog post, I list what exact chapters


are relevant to the exam from this book.


Finally, was the introduction to deep learning by MIT.


So the first three lectures of that series on YouTube


are most relevant to the exam.


Oh, finally, the bonus one is the getting started with PyCharm


and tutorials on the PyCharm website


because the exam takes place in PyCharm.


And so if you haven't, if you're not familiar with PyCharm,


most of my development I do in Jupyter Notebooks.


So if you haven't used PyCharm before,


it's definitely a good idea to get familiar with that


before you start the exam.


So now that we know kind of a brief overview of like,


what are the main resources,


I'll just quickly run through a bit more details about each,


namely cost, how long, and usefulness of each one.


First up was the TensorFlow in Practice specialisation


taught by Laurence Moroney and Andrew Ong,


who are titans of TensorFlow.


In fact, titans of artificial intelligence


and machine learning.


Incredible, incredible instructors.


You might have seen some of their videos on YouTube.


Now, the cost for this was about 59 US dollars,


by the way, all the costs in this video are US dollars.


And well, it costs that much


after a seven day free trial, I believe.


But you can apply for financial aid.


And there are also equivalent versions


of the videos of Coursera on YouTube.


So there'll be links to all of that below.


Now, in terms of helpfulness, as I said before,


if I could only pick one resource for the certification,


this would be it, the TensorFlow in Practice specialisation.


Not only is it great for the certification,


it is phenomenal for just getting hands-on practice


with TensorFlow in general.


And so for me, it took, I started about the 8th of May,


and I took the certification on June the 3rd.


So it took me about three weeks.


Now, I wanna stress this,


is that I have experience with TensorFlow


and machine learning.


So I was able to go through the projects


relatively quickly.


But if you're a beginner, as for all of these resources,


you want to take as much time as possible,


because at the end of the day,


you're not optimising for getting a certification,


you're optimising for building skill.


That's what you're mostly after.


And my puppy's saying hi.


Sit, sit, come on.


No, no, no, no.


Oh.


All right, yeah, all right, let's dance.


Okay, well, it looks like Seven's gonna be in my feet


for the rest of this video.


And so where were we?


Well, yes, oh, the tip, it was a please, please, please,


not only take your time, take as much time as you need,


but for the coding projects,


be sure to write the code yourself.


And when you do the coding projects,


you'll get these gaps that you'll have to fill in.


But I found it extremely valuable


is to write out the whole thing.


So you get familiar with writing


the end-to-end project yourself.


It does take longer, but what's important


is to understand what's going on in each line


rather than just becoming an expert


at just filling the gaps


where someone else has built the structure for you.


You should become that expert as building the structure


and filling gaps yourself.


Now, the second one is the hands-on machine learning book


with Scikit-learn, Keras, and TensorFlow.


Wow, I had to, I was reading that from behind


and that was kind of difficult by Aurelion Guaron.


Amazing, amazing book.


As I said, for the exam, only part two,


the part that covers neural networks


is related to the certification.


But if you're a long-time machine learning practitioner


and you wanna set yourself up


with a solid foundation for the future,


I highly, highly, highly recommend


getting a copy of this book.


Read it through, I've read it through.


I read it through cover to cover.


I was averaging about 25 to 30 pages a day


because I would read an hour per day


and then do two to three hours of practical work.


I think that's a really good balance


is that whatever you're reading,


try to balance that with the same,


or watching videos, that is.


So if you watch one hour of video,


do at least one hour of coding.


If you read one hour of a book,


do at least one hour of implementing what you've read.


So I rated this a helpfulness rating seven out of 10,


only because half the book


is not related to the certification.


But in terms of a helpfulness rating


for machine learning in general, this gets a 10.


Now, the cost will vary depending on where you're from,


but it's around about, I got the physical copy


because I just like reading physical books.


But yeah, it'll depend.


It's around about 55 US dollars.


But you can see all of the code examples


that come from the book for free on GitHub.


Number three is the Introduction to Deep Learning by MIT,


or intro to deeplearning.com.


Now, this is the 2020 series, which is phenomenal.


Let's just put it that way.


Like the quality of these resources,


we're talking world-class deep learning material,


world-class university, all on YouTube, all for free.


So again, I've rated this one a helpfulness level


at eight out of 10,


only because some of it isn't related to the exam.


But in terms of getting started


with deep learning in general, I would highly recommend it.


So it's gonna get a 10 for that.


I only watched the first three lectures


and went through the TensorFlow lab


that they did on GitHub myself,


again, writing out all the code,


because the first three lectures


are the most relevant to the certification.


Again, the serious student will want to


not only go through all of the series,


you'll want to put into practice what you've learned,


much like the book.


Number four was the Getting Started


with PyCharm resources on the PyCharm website.


And so this is also free, but it's basically required.


So when I went through the PyCharm resources I got,


not only did I get familiar with PyCharm,


just the interface, it's a little bit different


than if you typically use Colab or a Jupyter Notebook.


And I went through two TensorFlow tutorials


on the TensorFlow website to make sure


that TensorFlow worked on my local machine.


So that's definitely required.


Get familiar with PyCharm before you take the exam.


Now that we've covered the resources I used


to learn the materials,


I've kind of touched on a little bit of how


I went through them, but I just wanna


just go through a few things that you might wanna,


that you might be interested in in terms of like,


studying tidbits, let's call it that, studying tidbits.


So when I, as I said, I collected all of the resources


that I needed, I went through the TensorFlow handbook,


made sure I was aware of the criteria for the exam.


This is kind of what I do for any project going forward


is that I create like a baseline ground truth,


put it that way, in machine learning terms.


I create a ground truth for myself.


And that is, I've been using Notion,


you could use almost any note taking software or whatever,


Notion just has a few cool things that you can do.


And so when I was studying, I put down all the resources


in my Notion document, created a curriculum,


and then put them into a Kanban chart.


So what that is, is it's kind of, it has four


in a simple way, it has three columns.


So it's like not started, in progress, finished.


And so as I went through each section,


so for example, I read a chapter of this,


I would move it through in progress to finish.


I went through a module of the TensorFlow


and practice specialization, I'd move it from not started


to in progress while I was doing it, and then to finish.


And then I worked through until I was pretty satisfied


with what I'd learned in terms of how it was related to the,


had I gone through the criteria enough?


That's what I was going through this process.


So the little ritual I sort of created throughout May


was every morning, get up, go for a walk,


get some physical activity, get the brain working,


do an hour of reading, do two to three hours of coding.


So going through the TensorFlow and practice specialization,


again, I can't stress that enough, code, code, code, code.


And then...


Now Seven's getting treats.


Here, I'll let you out.


There you go, I'm recording a video.


All right, now that Poppy's out of the room,


I should really take care of this


before I start recording videos.


Anyway, so the ritual I would do was walk for an hour


in the morning, come home, or about an hour,


and read, code, two to three hours.