So I’m taking a bit of a detour (it’s easy to get positively distracted into that) from my container/cloud learning in my off time. I’ve been hearing some buzz about “Machine Learning” from a former employer who says there’s more and more opportunities in it. One of my favorite instructors, Stephen Grider, has just released a brand new course called “Machine Learning in Javascript”. On the job, I’m doing a lot of professional programming with React/Redux and much of my foundational learning was from Grider’s “React” courses. When I saw that he just released a Javascript Machine Learning course, that’s when I said “Ok, it’s detour time, I don’t know much about what it is and since I know Javascript and really like Grider’s courses, I’m going to buy this course and see what it’s about”.
Here is the course
https://www.udemy.com/machine-learning-with-javascript/
So far, I’m about 20-25% in it and have taken the introductory pieces and have followed along with his examples.
If you’re a Javascript programmer who wants to learn about Machine Learning but does not want to have to deal with learning Python (due to time constraints, etc..), then this course is for you!
I almost want to say that this is more like AI but it’s really a lot like data mining.
ML helps to solve common everyday problems such as:
“Is this email SPAM? If so, place in your spam box”.
“You just took a photo of the shape of a sign, I’ll examine the shape of the item in the photo and tell you what I think it is”.
“You just ordered a few items from the past, based on what you ordered, here are some other items/products we think you would be interested in”.
“You just viewed these videos on youtube, based on what you saw, we think the following videos would be of interest to you”.
There are so many more applications of it. Even the health industry is getting into it.
Basically any system that needs to make a prediction about “what’s next” as accurate as possible. How to get there is by “previous data” known as test sets. With the advent of the cloud and “infinite space”, there is practically no limit to the amount of data you can collect. There are several algorithms out there based on “features you want to feed as input” that will help reveal “the final result” (which is known as a label). But ML is not 100% accurate. Parameters and algorithms and sample sizes need to be refined and revisited and tweaked in order to get a good prediction.
I watched a useful video on it in which they say efficiently tweaking your ML parameters is more of an art than a science but it’s getting better and better and companies are finding it useful in many of their applications. Unline Nueral Networking (which is based on algorithms without data collection over time), ML tends to get more and more accurate with more “samples”.
Again, I don’t claim to be an expert in this. I’m only 20% into Griders course but my main goal is to understand the basics about it.
I do know that Python has been the “defacto” language for ML apps. Javascipt, however, is starting to take off on it. There are more and more projects/libraries coming out such as Tensorflow.js, etc.. They’re even working on native bindings in node.js which may help allow your algorithms and models (which can now be imported from Python models) to work within your Javascript apps.
See 19:29 at this video to learn about what the node.js bindings will do
The video has a really cool example of ML where they used the camera in the browser to capture photos of your face movements and then based on that, they play a pacman game where the guy just moves his head up/down and turns his head left/right (while the application is capturing his face movements) and that controls where the “pacman” character moves on the game board. It uses ML to learn about the “face movements” and then make a prediction on where the pacman should go (whether it be up/down left or right).
I have a “gut” feeling that ML will be a part of the next generation of Javascript apps. I also have a feeling that Javascript will continue to gain ground rapidly in ML as more and more libraries are developed and may even surpass Python as the language for ML apps. Don’t underestimate the “power of numbers” (no pun intended)
I do not object to Python. I have not really worked with it much. Back in my Unix days in the 1990’s and early 2000’s, I did quite a bit with shell scripting, regular expressions and perl. When I moved more into .NET apps, Python was sort of coming into it’s own. I missed that. I’m more than happy to learn Python and I’d like to but I have so much more to learn (that is higher priority for me right now) so Python is lower on that list. Having said that, I was thrilled when Grider released this ML course in Javascript as it meant that I could really focus more on ML and it’s applications/concepts rather than being bogged down by learning the “python” language at the same time. Again it’s not that I object to Python or that I don’t want to learn it. I just don’t want the ML concepts “muddied” by Python when I am very comfortable with Javascript 🙂
I don’t really know what I expect to get out of this course other than learning quite a bit (hopefully). A Stephen Grider course is a really good investment. If you’re trying to learn React or React native or Javascript, etc, Stephen Grider courses are known for being one of the best courses to take.
I do think after the end of this course (17 hours of video instruction), I will at least be able to know at a high level what ML can do and whether or not it can be utilized in any of the applications we’re doing at work. I don’t expect to be “an expert” or to be able to walk into a place and say “I took that course on it, therefore I’m an expert”. I’m not an expert (I’m a lifelong learner aspiring to get better) in anything anyways so I’d never call myself that to begin with. I think of this course more as a “first drive thru Yellowstone park where I’m not stopping off everywhere to hike for miles off the beaten paths, etc.. This is more of a drive thru the whole park to see the high level main attractions, maybe park the car and take pictures and leave with a *I know what’s at Yellowstone park*”. Someday if I want/need to go back there to hike for miles off the beaten path, I’ll do more and more research (ie, more deep learning on machine learning). So basically I am counting on this course being like a first drive thru Yellowstone to see all of the attractions but not to really go off and spend the winter there in a remote cabin with snow shoes where I can hike thru remote passageways and mountainous backdrops, etc..
Terms
- features (Inputs)
- label (known answer)
- test data – known sample data
- Supervised Learning (its test data contains labels)
- Unsupervised Learning (its test data does not contain labels)
- Classification – known discreet answers
- Regression – real time computed numbers
- K Nearest
- Linear Regression – allows for multi features
- Mean Squared Error – algorithm for accuracy
- Python, Javascript, R – Languages that you can do ML with
- TensorFlow – powerful multi-featured open source library
- MNIST – free dataset for image recognition to learn ML
Thanks for reading.