My Journey into Deep Learning
In this post I’ll share how I’ve been studying Deep Learning and using it to solve data science problems. It’s an informal post but with interesting content (I hope).
A little about me and Deep Learning
I come from physics and computer engineering. I studied both in Venezuela, and then I did a Master in Physics in Mexico. But I consider myself a Data Scientist. Interesting right? So even though I have a good and extensive background in math, calculus and statistics, it was not easy to get started with machine learning and then deep learning.
This subjects are not new, but the way we study them, how we build software and solutions that use them, and also the way we program or interact with them has changed dramatically.
I did an article before where I cover some of the theory of deep learning and why is so important right now, but something to say again is that the factors that made deep learning the “hype” of the moment was the development of several simple but important algorithmic improvements, the advances in hardware (mostly GPUs), and the exponential generation and accumulation of data in the last decade.
Where did I start?
When I was studying computer engineering I had a class about Artificial Intelligence (that was the name of the course) around 2012. At that time I was really confused with the subject. I mean, I knew it was important (at that time “for reasons”), but it was weird.
I studied expert systems, neural nets, genetic algorithms, and read some papers, two I found really interesting were:
- Computing Machinery and Intelligence by Alan Turing
- Creativity and artificial intelligence by Margaret A. Boden
When I read those papers (I didn’t know about the advances on machine learning, or that it even existed) I thought that we were really really far away from achieving actual Artificial Intelligence. I still think we are not that close as we think, and there are some stuff we have to figure out, but more on that later.
So, because for me at that time (age 22) AI was a lost hope, I started studying quantum computing, for me it was the thing coming before AI, of course I was wrong:
But well it was really interesting for me because it mixed a lot of science and engineering.
My interest in AI
So going back to AI and all of that, what happened? Why now I’m so passionate about AI, machine learning, deep learning when I was sure that we were far away from all of that?
What happened to me was Apache Spark and Andrew Ng. What?
So, in 2014 (24 years old), just graduated from Physics, doing my thesis on black holes simulations in Engineering, and then, boom! I discovered Coursera, Machine Learning, Andrew Ng and Apache Spark.
I was so amaze with serious online learning, something I didn’t try before (I still don’t know why), and I started doing courses on everything, from genomics to astronomy, from scala to python, from machine learning to the philosophical theories of Søren Kierkegaard (he is awesome btw).
I did not have a path or a mentor, so I was just exploring the world, trying to figure out what I wanted to do with my life.
And then at the same time (the end of 2014) I discovered Andrew Ng course on Machine Learning and the Apache Spark project. I did the course in like 2 weeks, I could not believe how amazing this field was. Then I started coding what I learned in Scala and Apache Spark, so I got to know about distributed computing, Hadoop, HDFS and all of that great stuff.
Some of my early (not that good) projects on machine learning and spark you can find them in my GitHub. Go to my last repos!
My first Data Science job
I got my first job as a Data Science job ending 2014, I was the only data scientist in the company trying to figure out what you can do with data. I was very confused, the things were not as in the courses! I was not importing the Iris dataset in R anymore, I was dealing with weird data and I had no idea that data was “dirty” in real life.
But I continued learning all the time. Fun fact, I was not sure (at all!) what data science was back then.
I built some simple models, and them more complex ones, mostly in Scala and Python. Scala was my life in 2015.
And then I realized I loved Open Source. I started collaborating in simple projects, some of my own and then some big projects like Apache Spark. I had some accepted commits on the Spark project and man I felt like a hero. Some of them were simple, others more advance, but I felt I was contributing to society. I still didn’t know how, but I knew I was contributing.
The cosmological adventures
Roger Penrose theory of Conformal Cyclic Cosmology
Data science was my second passion after Physics and Cosmology (I think now they are in the same spot), so I came to Mexico to do a Master in Physics. It was an amazing experience, but still something was missing. I needed to code! I was in love with programming!
I took courses of fundamental Physics, like Classical Mechanics, Quantum Mechanics, but also Numerical Methods, High Performance Computing and then Bayesian Reasoning and Machine Learning.
So in the end my master was divided within my two passions. And I coded a lot in my thesis in Python, so I was really happy.
Becoming a Data Scientist
When I finish my master (2017) I decided that what I wanted to do was to help society being a Data Scientist. Yep, it took me a while.
If you want to know my journey on how I got an amazing job in the field take a look at this blog post I made some weeks ago: How to get a job as a Data Scientist?
I also started sharing my experience, thoughts and knowledge in my LinkedIn, something that was very important. I got to know amazing people, that helped me a lot, and now I’m helping people, giving back :).
Everyday I study, code, contribute in open source projects, and also help people so I’m very happy with what I’m doing.
What about Deep Learning?
Wasn’t this a post about Deep Learning?
Yes but I needed to tell you why is deep learning important for me now. All those steps I took let me to this point.
As a Data Scientist, and most careers, you need to be up to date with theories, technologies and frameworks; so last year we saw the explosion on Deep Learning, just when I was comfortable with Machine Learning, a whole new thing to learn. Amazing but stressful.
So did you know where I started? Guess...
YES! With Andrew Ng Again!
I’m truly amaze with him. When I’m starting in a field he’s already teaching it.
But well, I’m still doing these courses. But I did not stop there. I needed more practical information too. So I started learning TensorFlow and then Keras.
For those who don’t know Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. It was developed by François Chollet with a focus on enabling fast experimentation. Being able to go from idea to result with the least possible delay is key to doing good research.
There are great resources for learning practical deep learning, like GitHub repos and Books. Right now I’m reading this book, and it has been an amazing addition to my library:
Deep Learning with Python - The clearest explanation of deep learning I have come across...it was a joy to read. (www.manning.com)
The future of Deep Learning
“Forecasting is the art of saying what will happen, and then explaining why it didn’t!”
I don’t know how to predict the future. But what I can say is what I see happening and what could happen.
One of the best things for Deep Learning I saw last year was Deep Cognition. This is a solution for creating and deploying AI. The simple drag & drop interface helps you design deep learning models with ease. Deep Learning Studio can automatically design a deep learning model for your custom dataset thanks to their advance AutoML feature.
I think GUIs and AutoML can be the near future of Deep Learning. Don’t get me wrong, I love coding, and you can code there too. But I think the amount of code we will be writing next years will decay. We cannot expend so many hours worldwide programming the same stuff over and over again, so I think these two features (GUIs and AutoML) will help Data Scientist on getting more productive and solving more problems.
I will be creating some posts in the future about how to create some simple Deep Learning solutions both with Code and the Deep Cognition platform so I’ll see you soon.
If you have questions just add me and we’ll chat there: Favio Vázquez - Professional Profile
Bio: Favio Vazquez is a physicist and computer engineer working on Data Science and Computational Cosmology. He has a passion for science, philosophy, programming, and music. Right now he is working on data science, machine learning and big data as the Principal Data Scientist at Oxxo. Also, he is the creator of Ciencia y Datos, a Data Science publication in Spanish. He loves new challenges, working with a good team and having interesting problems to solve. He is part of Apache Spark collaboration, helping in MLlib, Core and the Documentation. He loves applying his knowledge and expertise in science, data analysis, visualization, and automatic learning to help the world become a better place.
Original. Reposted with permission.
- The 10 Deep Learning Methods AI Practitioners Need to Apply
- Deep Learning Made Easy with Deep Cognition
- Using Deep Learning to Solve Real World Problems