The following is a short interview with Succinctly series author James McCaffrey, whose book Introduction to CNTK Succinctly was published on Monday, April 9. You can download the book here.
What should people know about Microsoft CNTK? Why is it important?
CNTK is an open source code library from Microsoft that can be used to create deep neural networks and other machine learning models. The idea is that, although it’s possible to write deep learning code from scratch, that approach is extremely difficult, so using a library like CNTK is almost a requirement. There are dozens of deep neural libraries but CNTK and Google TensorFlow are the two most sophisticated and powerful. CNTK is written in C++ for performance reasons, but the most common way to use CNTK is through its Python language API.
When did you first become interested in deep learning?
My passion for deep learning began when I was a college student and created a computer program (using the old Pascal language) that predicted NFL professional football scores. I still fire the system (I call it “Zoltar”) up every year, and add a new twist or two to experiment with research ideas such as node dropout and optimization algorithms. Before college, I loved to play chess and poker—two activities that are closely related to deep learning.
By writing Introduction to CNTK Succinctly, did you learn anything new yourself?
Heck yes, I learned quite a bit. For example, some of the most challenging problems in machine learning are time series problems where the goal is to predict the value of something at a point in the future, such as a sales amount in six months. In Introduction to CNTK Succinctly I show readers how to tackle a time series problem using an LSTM network (“long short-term memory”) in a novel way that uses the LSTM as an ordinary network rather than a sequential memory network.
James McCaffrey
How will Microsoft CNTK and deep learning change over the next few years?
I think the biggest change over the next two to four years will be that basic deep learning techniques, such as deep classifiers and recurrent neural networks, will become standard parts of almost all software developers’ personal skill sets. For example, in the mid-1990s most developers didn’t know much about web languages such as HTML and JavaScript, but now, most devs have some degree of familiarity with those technologies. In the same way, developers will pick up deep learning skills.
Do you see deep learning as part of a larger trend in software development?
Absolutely. Deep learning, and closely related ideas such as machine learning, data science, and artificial intelligence, are arguably the biggest trend in software development right now. Every company I know is looking to infuse intelligence into some (or even all) of their systems via deep learning. I know at Microsoft, where I work, deep learning is on everybody’s mind and all my colleagues are ramping up on these new skills as best they can.
What other books or resources on Microsoft CTNK or deep learning do you recommend?
Because CNTK is so new—version 2 was released in June of 2017, only nine months ago as I talk to you—there are very few CNTK resources available. My go-to resource is the CNTK Python API documentation at https://cntk.ai/pythondocs/cntk.html. That site also has some pretty good examples. For deep learning in general, the gold standard is a set of online videos from Stanford University at https://www.coursera.org/learn/machine-learning.