Some Thoughts on Machine Learning


It is easy to see that machine learning as a new technology is at its peak or close to it. There are more and more positions popping up on Linkedin and other sites asking for knowledge in ML. They start with modest requirements, but if you read the preferred qualifications then it is clear that the goal is to find experts with graduate degrees who are experts in certain areas of ML. I said new field, but if you read a book or two on ML and AI you will find some very familiar algorithms and techniques, especially if you have some background in numerical analysis and digital signal processing or other math intensive fields. I shared this observation with a friend and he answered quickly that ML is just the well known linear regression. I agree only if the problem you are solving can be solved with linear regression, because there are many other classes of algorithms that seem to go into the category of ML, which expands continuously as more and more people are contributing to the field. When a new technology pops up we always ask ourselves: is this something I need to pay attention to, is it for me, or is there any future in it? It is hard to answer this at the beginning, but at this point for ML it is clear that it has established itself as a long term and widespread technology, penetrating many areas. Some examples are: robotics, the health industry, the financial industry and even the entertainment industry. It will continue to grow and become so common that we will not even think of it as revolutionary. The impact is so big that it has place for different categories of users.

Who are the users of ML?

  • The most advanced users of ML are the people who do research in the field and create the tools for the rest of the world. These are companies that come up with specialized libraries and other open source and commercial tools as well as university researchers who publish new methods and techniques in the field.
  • In the next group are the people who use libraries like Tensorflow https://www.tensorflow.org/ and Pytorch https://pytorch.org/, scikit-learn https://scikit-learn.org/stable/ and others. This group is fluent in at least Python and maybe other languages like C++, Go or Julia and other languages that are offered with some of the libraries.
  • The following group are people who use higher level tools without coding. More and more solutions are appearing for this group and possibly the group will grow as more tools become available.
  • The last group is the rest of the users who have no idea what machine learning is, but still use it implicitly when for example shopping on Amazon or looking for what they want to watch on Netflix. The algorithms used by Amazon and Netflix are different and are well described on the Internet.

Why is machine learning so successful? There are many reasons, but I am going to point out only some of them. Machine learning algorithms, especially deep learning algorithms were able to solve problems in image processing and natural language processing that were slowly moving for decades. Now we are seeing applications in self driving cars and robotics that are using deep learning and reinforcement learning to the extent that they are really useful. For this to happen we have to acknowledge the faster hardware in the form of GPUs https://en.wikipedia.org/wiki/Graphics_processing_unit and TPUs https://en.wikipedia.org/wiki/Tensor_processing_unit as well as the generally faster CPUs we see everywhere today.

It is all about the crush of Python - I mean the programming language. All libraries that you want and more exist in Python. So whether you like it or not it most likely will be a language by necessity and not so much choice if you do ML. It is nice to see though that there are bindings for programming languages like Go and Julia and even Rust. I am kind of seeing Julia as the right heir of the ML throne, since it is high level enough and has a cleaner syntax than Python and many other languages. I wished Python did not use indentation where braces or something like that should have been used when defining blocks! Hope that Julia can gain momentum, or even the language like Go can give us an alternative to Python. This is probably wishful thinking on my part though. Judging from history languages come to prominence for different reasons, but rarely or maybe never by elegance. You can look at C or even C++ and see the code legacy we have today and the number of books devoted to how to avoid its pitfalls. Nothing is perfect, but the ML algorithms can live in any language. That is why Tensorflow offers C++ too for those of us who prefer C++ to Python. So Python and C++ are not going to go away even if they have obvious deficiencies. Same could be said about natural languages like English being so popular and de facto standard for almost everything, business, literature, music, entertainment. English is going to continue to grow in popularity even if it has some grammatical inefficiencies. Those include some issues in gender representation, some missing moods that could ease meaning, suffering from not being phonetic and having inconsistent spelling, missing richness in diminutive words, changing the meaning depending on the ending sound of a word, etc. Yet knowing English is essential for anything so is Python for machine learning.

The applications of machine learning are numerous and will be growing even more in the future. I can think of some fictional examples that can be pretty useful based on some of my experiences. Believe it or not these examples are just around the corner (maybe five to ten years away):

  • The Japanese beetle: I have an orchard behind the wooded area of my backyard. Every year in the first 3 weeks of July I see an infestation of Japanese beetles who come and multiply like crazy and feed on the leaves of my fruit trees. They like some trees more than others and thus strip their leaves almost completely. During this period I put on gloves in the morning and collect as many beetles as I can and crush them in hopes to alleviate the problem only to find as many the next day until their cycle ends in three weeks. What if I had a small robot bee that can fly around, learn that it needs to kill just the Japanese invader beetles and kill them all as they appear saving my orchard and bringing justice to the ecosystem which does not have a place for the species in Pennsylvania. So the little techno bug would just buzz around and come home and recharge again and leave every other insect alone, but recognize the invading species and decimate them. I would gladly surrender this duty to machine learning if I had a mini flying robot like this.
  • Drone roof inspection and moisture inspection: You want to buy a home and hire an inspector. He comes with binoculars and looks at the roof and you hope he sees it all, but maybe he does not. What if instead you just rent a small drone which can learn the perimeter of the house under inspection and create a video without missing an inch in all n nooks of the roof and even give you an assessment of how good the roof is and then you would surely know whether you can buy the property or not. You can also trust your mini drone to fly inside without leaving a scratch and sense the moisture in every wall in all floors. Fast, reliable and objective. Can you trust your inspector more? Based on my experience inspectors sometimes miss obvious issues even if they don't really mean to.
  • Amazon Alexa: I have written a previous article about Alexa and have given it a lot of thought how it would be something I would really want and need to use for many things I can't do with it today. Here are some of those things that I want to see in Alexa or similar devices in the future:
  1. Language Support: Wouldn't it be nice if Alexa was able to understand many languages and to take cues from the user to form opinions and learn about its user. What if I just switched to another language than English and explained an idea to somebody. Wouldn't it be nice if Alexa did not think this was just noise, but gleaned out the thought and used it to learn more about my preferences. What if it responded to me in this language and offered something relevant.
  2. Music training: Imagine you listen to one of your favorite metal songs and the guitar solo comes in in its fury and you say aloud "Wow, I wish I could play this like the guy from Metallica". The song ends and Alexa says: "Do you want me to show you some tabs for guitar that can help you learn this solo?" Alexa has a screen, has a connection to the Internet, it has a microphone. You start playing the tabs and Alexa starts guiding you in the process like a guitar teacher. It overlays your playing on the music to help you become a guitar god! I am not trying to put music teachers out of business, but their job is going to get really tough with more choices that we will see in the future.
  3. Language training: I am a Duolingo user, not that I think that Duolingo is the best foreign language tool, but because it is free and available, works on your phone and does help with the basics of a new language. What if Alexa took the role of Duolingo and improved it to the level that you feel you are interacting with a tutor. Then you would be ready for your next trip to Mexico or France in a much more natural and painless way. Not suggesting that language teachers should become machine learning specialists, but there is some indication that language training can be significantly improved by machine learning. For example what if Alexa learned which languages I already knew and customized the content just for me based on this knowledge, saving me time and effort in the process. What if Alexa classified me as the type of learner I am and further customized the delivery of the content to ease my progress. Wouldn't I buy it just for this reason. Yes I would in a heartbeat. By the way I still dream of this future Alexa and I know it is a matter of time. When I think of features like these about Alexa I tend to think of it as a being. Maybe this is what the creators meant for Alexa to be... Some of my friends are part of the Alexa team at Amazon and I am really happy to have met them.
  4. Dance Instruction: You come home at 9pm right after your dance lesson. Your instructor gave you two new moves, part of the Rumba you are working on this summer. You have an hour or so before you turn in and between the option of turning the TV on or improve your dancing. You select the second and turn to Alexa with hopes that she can deliver. "Alexa play us a Rumba". Alexa selects a popular Rumba, but you stop her and say "I need a slower one, so that we can practice our new moves". Alexa obliges and you dance it twice. Then you say "Alexa play the previous Rumba for us". "The one you asked me to find 14 minutes ago " - she asks. "Yeah, I thought it was only five minutes, but whatever, just play it" - and she does. You master the moves on the faster beat and feel confident.Then you say "Alexa can you show me videos that can help me learn the Cuban Walk in Rumba". Alexa shows you a list and you find that the first two are the ones that really show you how to do it. After watching them you ask again "Can you play that last Rumba" and she knows to play the fast one. Satisfied with your progress you and your significant other decide to record the progress and email it to your dance instructor. "Alexa can you record us dancing". Alexa does it and reminds you to stay within the viewing angle of the camera. After you finish you ask her to email it to your dance instructor by providing the email address. You feel ready for your upcoming vacation in Miami where dancing to Latin music would not be so difficult. Alexa sends the email and reminds you that it is probably time for you to go to bed. You have one more request for her though. "Alexa can you provide a list of machine learning books on my Amazon Prime account ?". "Yes of course" - she says - "Any preferences". "Yes, please do not send me any self published ones and I prefer to see MIT Press, Cambridge Mass, Oxford England and similar editions first. Can you sort them in this order for me". "You will find a complete list soon" - she replies. You are so happy that want to yell "Alexa, I love you", but you stop in your tracks and realize that you are with your significant other. You summon all your human intelligence even if it is late and say something more appropriate like : "Thank you Alexa, We love you". Alexa pauses as if not knowing what to say. Then it provides the right response "Good night folks. You did great tonight". You are ready to go to bed. While brushing your teeth you think that would have been nice if you knew when you were in college that linear algebra would become so important many years later. You drift into sleep and dream of linear algebra and calculus and other good things during your college years. You wake up refreshed, rush to your computer even before breakfast and order three books on machine learning with your Amazon Prime account with 2 day free delivery. You can't help but notice the suggestions that the ML algorithms of Amazon are trying to offer you to buy in addition to your selection, things like how to improve your guitar soloing, or how to eat healthy. But you have a different mission now and all this ML noise is just annoying. Can't the ML algorithms understand when you mean business?

Yes, machine learning is not a fad, it is real, it is here and it will stay. I hear people saying that they would not trust a self driving car, but they would trust a person instead. Some say there is no guaranteed answers in those algorithms, referring to deep learning and issues like over fitting, etc. Other criticism involves the lack of precise analysis of solutions like deep neural networks. It is interesting to see that ML solutions may not be perfect, but may be good enough in many cases. Kind of against what a computer scientist is taught in college. A different paradigm. This is like us humans, we are not perfect, but maybe only good enough and only for some things. There are some technologies that stay even after the hype. For example there is still need for digital signal processing, FPGA programming and for fuzzy sets algorithms, although these are not so broad areas like machine learning. Now we have the combination of numerical analysis, neural networks, reinforcement learning and other algorithms to come together and offer solutions for all of us, for many applications. The theory is there, the interesting part is how we will be able to use it for areas that can benefit from it.

要查看或添加评论,请登录

Anton Hristozov的更多文章

  • The millennial generation has come of age

    The millennial generation has come of age

    Intro I am sitting at my counter top on one of the swivel chairs, writing my first post of the year. It started even…

  • Linux for all and all for Linux

    Linux for all and all for Linux

    I remember when Linux appeared in the early nineties and it was this new thing after BSD Unix had been established and…

  • What to consider when looking for a new position, lessons learned.

    What to consider when looking for a new position, lessons learned.

    I am going to start with the statement that it is impossible for two persons to agree on what is the right job for them…

    5 条评论
  • First impressions from Alexa

    First impressions from Alexa

    My wife bought an Alexa device and I was trying to play with the device on and off, since it was available. Still…

社区洞察

其他会员也浏览了