Friday, July 16, 2021

Great Way to Start with Deep Learning: Introducing PyTorch Courses on Microsoft Learn

Deep Learning is one of the most popular topics amongst both students and software developers. We have recently released a learning path on Microsoft Learn that will help you get started with Deep Learning, based on one of the most popular frameworks: PyTorch.

 

TL;DR: If you want to jump straight into learning, go to http://aka.ms/learntorch. Learning Path includes topics on Computer VisionNatural Language and Audio. shwars_0-1626435217666.png

This blog is co-authored with Prof. Amir Pourabdollah from Nottingham Trent University, who is part of Microsoft Learn for Educators Program.

 

Learning Deep Learning

If you want to learn how to use PyTorch, your most obvious destination would be to go to the official web site at http://pytorch.org, and navigate to Tutorials -> Learn the Basics. There, you will be able to get a fast start with using the library by going straight into the code to define, train and use a neural network model to recognize different clothing types using FashionMNIST dataset.

shwars_1-1626435217746.png

 

While you can browse the code on PyTorch web site, you would probably want to start and run pieces of code to see how it works, and maybe make a few tweaks to understand better. To do it, you can click on “Learn with Microsoft Learn” button at the top of the page to switch to a learning mode.

shwars_2-1626435217749.png

 

Of course, you can also head straight into Microsoft Learn!

We believe that code-first approach is very convenient for those who are familiar with the basics of Python and data science, and want to get going with their project right away. Therefore, tutorial on PyTorch web site is structured around a complete example of image classification, and the first page shows you complete code, with links to go deeper into more detailed sections of the tutorial. Microsoft Learn module, on the contrary, starts with the simple concepts, and builds the whole code from the ground up.

 

Advantages of Using Microsoft Learn

There are a few reasons why you definitely want to use Microsoft Learn, and not just look at the code:

  • You can run the code interactively in the browser, without the need to set anything up.
  • You get GPU-enabled compute to power your notebooks, which becomes important once you go deeper into topics such as computer vision and NLP
  • You also get some knowledge check quizzes, which help you verify that you are actually learning something.

shwars_3-1626435217753.png

 

While PyTorch web site contains just one tutorial, the Microsoft Learn has a whole learning path of 4 modules:

 

Video Content

There are two video episodes available on PyTorch Learning Path, which have recently been streamed on Learn TV

Discussion at Ask the Expert show, together
with Dr. Amir Pourabollah and MLSAs
Learning Path introduction in The Launch Space Show 
with Brian Benz.

 

Course Structure

 

Introductory Module

First module in the learning path focuses on one example of image classification, but starts with the very basics: what are tensors, how you can build a neural network from them, what is computational graph, how to compute derivatives/gradient and to use that to optimize neural network parameters. It uses simple multi-layer perceptron to do image classification.

shwars_4-1626435217675.png

 

 

Computer Vision

In computer vision module, we first re-visit the problem of image classification using single-layer and multi-layer perceptrons, and learn about several different ways to implement neural networks in PyTorch. We then explain what convolutions are, and how convolutional neural networks can be used for computer vision. We then talk about pre-trained models, transfer learning, and lightweight models such as Mobilenet.

shwars_5-1626435217709.png

 

 

Natural Language Processing

NLP module start with the basics of natural language processing - different tokenization strategies, bag-of-word and TF/IDF models for text classification. We then switch to word embeddings and semantic embeddings (word2vec, GloVe), and show how we can achieve good results with pre-trained embeddings and simple linear classification.

shwars_6-1626435217701.png

 

We then cover specific neural models for sequence modeling - recurrent neural networks, and their more advanced versions: LSTM and GRU. We consider also text generation models and train character-level LSTM text generator. Finally, we move to more recent language models such as BERT, and train text classifier on top of pre-trained network using transformers library.

 

Audio Classification

Working with audio signals is a bit less common scenario, so this module will be especially useful for those who are looking to deal with audio. It explains the nature of audio signal, and how it can be transformed into frequency domain to build spectrograms, which can be used as features for machine learning models. It shows how we can classify audio signals based on image representation of their spectrograms.

 

Using the Course at the University

This course has been reviewed by Professor Amir Pourabdollah from Nottingham Trent University. Below is his feedback on the course:

 

I found some great potentials of this learning path to be adapted within a university level module of machine learning (ML). It has also potential of being taught as a stand-alone course for the university students of computer science, as well as the students of other science/technology disciplines who may be interested to apply ML on their subject area.

The highlights of my observations are as follows:

  • The learning path uses SandBox as an integrated Jupyter Notebook environment within Microsoft Learn environment. This is a very useful technology that I see for the first time in MS Learn. In AI-900 learning path, the Python-based labs were located in a GitHub repository, so that the students would need to have a separated Notebook (either local or cloud-based but not integrated). This makes the learning experience quite seamless for students and easier to manage by the educators.
  • A browser-based-only learning has also a great advantage of being similarly used at home or in university lab without being dependent on installing any tool or relying on local resources. Adaptability to home-based learning is a positive feature. Moreover, there will be no concerns over the tools needed to be installed on the university labs particularly where the necessary admin rights are not available to the students and/or their educators.
  • Not only the Jupyter Notebook is integrated in the learning environment, almost all the units are designed as a Notebook. In my experience of AI-900 teaching, the units of teaching contents were mostly separated from the practical units, so that the students had to queue up some concepts for practice while in this learning path, the concepts are immediately practiced.
  • Following the above point, my observation is that for each concept, there is a right level of blended teaching, i.e., a mix of theory and practice for each ML concept in a right order. As a result, by following the learning path units, the students have enough chance to practice the theoretical concepts before traversing to the next concept. This is an important factor in the teaching/learning experience. For example, when teaching the concept of “gradient descent” in back propagation of neural networks, the students would struggle picking up the concept unless they could experience it within a lab. However, before having such a chance, they had to pick up a number of other concepts around designing neural networks. This would make an overload of theory before being practiced. With the integrated Jupyter Notebook environment of this learning path, I predict a more efficient learning that the separated lecture-lab model.
  • Unlike my previous experience on AI-900, the contents of this learning path are not specifically designed for a Microsoft technology such as Azure. Even though PyTorch is linked to Microsoft, it is a well-known open-source technology within data science community. This gives a business-independent value to the teaching experience while at the same time gives an impression of being within the learning environment of (and supported by) big names such as Microsoft. In total, this makes it more adaptable/justifiable to be a (or part of a) university course.
  • The other observation is the completeness of the contents for a relatively fully-covered ML teaching/learning experience. This completeness can be seen at both theoretical and practical parts. The contents are oriented as some programming concepts, followed by the three main application areas of ML including vision, audio and text. In this view, I think that learning path can be used as an introductory course to ML on its own, as well as helping the students to closely practice the ML concepts.

 

Feedback from Microsoft Learn Student Ambassadors

shwars_7-1626435217713.jpeg

Rishit Dagli, Microsoft Student Ambassador, TEDx/TED-Ed Speaker

I had the chance to review this course early and share some feedback with the team, and I loved this PyTorch fundamentals course. One of the great aspects about this course is that most of the course content is a Jupyter Notebook, with some text followed by code, this course isn't one where you can just read stuff but focuses majorly on practical aspects; a great mix of theory and practice. On the same note, I also feel this course could teach you the basics on top of which you could most certainly work on other projects. What more? You could run all the code on the browser itself, without needing any special hardware or software! On top of that while taking this course, you could also play around with the code, probably make some changes to the existing code, and see how it affects the training, and also get a GPU to power your notebooks all in your browser itself. I also feel this course explains deep learning concepts in a very easy and novel manner accompanied with code to help you better understand these. If you are a beginner and are planning to learn the basics of PyTorch, I would definitely recommend you to take this course.
I love the way the course has been structured as interactive Microsoft Learn modules. It is beginner-friendly and at the same time, takes the learner on a thrilling journey of Computer Vision, NLP and Audio classification in a fun manner. The learners can resonate well with all the modules, and I believe that there is a high-demand and need for such courses in a rapidly growing field of Artificial Intelligence. shwars_8-1626435217703.jpeg

Syed Farhan Ahmad, Microsoft Gold Student Ambassador

Posted at https://sl.advdat.com/3en6WEA