Deep Learning - Getting Started
"Learning about Deep Learning..." touched on the beginning of what is turning out to be an adventurous learning path to deepen my understanding of AI, Machine Learning (ML), and Deep Learning (DL) and sharing my experiences while doing so. The good news is that I have learned alot and the great news is that I have gained a bunch of wisdom during that journey. The first piece of wisdom that I would like to share is that the is that understanding the fundamentals, taking foundational training and even putting to practice is not for the faint of heart. Be prepared to make a significant investment for which I am sure there will be a significant reward.
First I took the time to read Jeff Heaton's three volume Artificial Intelligence for Humans which provided the theory behind AI/ML/DL with an explanation of key algorithms/methods critical to the workflow - data ingestion, data prep, model selection/training/building, model testing and deployment. Frankly I would recommend starting with Volume 3: Deep Learning and Neural Networks and fill in content from the other volumes as necessary. Also I spent some time reading introductory chapters to several other books thanks to Safari Books Online just to get a feel for workflows, language and basic concepts. The reinforcement deepens the learning.... (pun intended).
I also spent a fair amount of time taking a number of online video courses for another approach to better understanding the concepts and practice. Previously mentioned Udacity's free Intro to Machine Learning is outstanding however there is a major caveat to be discussed momentarily. Plus I reviewed many much of the other online course content mentioned in the previous article. However the caveat to many of the courses and even books is that to have the most flexibility and take advantage of most of the capabilities you must understand a programming language (or 2 or 3). As consequence of this insight I went off on a learning tangent in Python which has been pretty easy to learn. Bottom line to be a productive practitioner in AI/ML/DL (or more generally Data Science) learn Python or similar languages such as Java, R, C, C++, Scala, etc.
Lastly, I felt it was important to understand the ecosystem that has built up around AI/ML/DL including the libraries, tools, frameworks, applications, etc. that may be useful in both for learning and putting to practice. In the immortal words of George Takei, "Oh My!" was my reaction both in terms of the volume of resources and the non-trivial nature of those resources -- Scikit - Learn, Caffe, Tensorflow, Theano, Pylearn2, Torch, dmlc mxnet, Chainer, Keras, NVIDIA Digits, etc. to name a few. Most of which require at least basic understanding of a programming language with Python being the most commonly supported by the frameworks. While the survey approach to learning has been fruitful the next step on the path is putting what I have learned to practice.
To be continued.... Part 3 - Deep Learning - "Hello World" or MNIST is your friend.
About the Author - Darrin Johnson has more than 25 years of experience in the computer industry largely in system software engineering with a passion for innovation. His latest quest is to understand Deep Learning and more importantly how it can be leverage to drive innovation. Any comments, suggestions, etc. will be appreciated.
Software & Computer Product Development - Performance Technology
7yDarrin, nice articles - I can relate having gone done a few of the on-line paths you list. My background is in HPC ans Accelerated Computing with a passing familiarity with AI - Now that I have left Oracle I am looking at positions with Nvidia and accordingly honing my DL skills
Assistant Secretary of the Navy, Research, Development Acquisition | F-35 Joint Strike Fighter Acquisition Executive
7yWhat an exciting undertaking. I am inspired to go along for the ride. I'm working on a paper to correlate system design and testing by having a testable architecture. Once that is done, I'll join you - in a few weeks.