{"id":2934,"date":"2019-10-04T12:41:13","date_gmt":"2019-10-04T12:41:13","guid":{"rendered":"https:\/\/blogs.mathworks.com\/deep-learning\/?p=2934"},"modified":"2021-04-06T15:49:30","modified_gmt":"2021-04-06T19:49:30","slug":"whats-new-in-19b-deep-learning-examples","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/deep-learning\/2019\/10\/04\/whats-new-in-19b-deep-learning-examples\/","title":{"rendered":"What&#8217;s new in 19b: Deep Learning Examples"},"content":{"rendered":"<span style=\"font-family: courier;\">Not to be outdone by Heather with her <a href=\"https:\/\/blogs.mathworks.com\/deep-learning\/2019\/09\/20\/whats-new-in-19b-matlab\/\">latest features in MATLAB<\/a> post, Shounak Mitra, Product Manager for Deep Learning Toolbox, offered to post about new deep learning examples. Enjoy!<\/span>\r\n<h6><\/h6>\r\nThere are quite a few new deep learning features for 19b, since this was a major release for Deep Learning. Instead of listing all the new features, I'm listing the <strong>new examples<\/strong> which do a great job of highlighting the new features.\r\n\r\nThere are plenty of new examples listed below, plus I'll highlight the ones I think are the most exciting in each category.\r\n<h6><\/h6>\r\n<h2>General Deep Learning<\/h2>\r\nOne of the new things which deserves attention is Custom Training Loops and Auto Differentiation (Autodiff). This allows for new features such as GANs and Siamese Networks to be available in MATLAB! There are new examples to explore these more advanced concepts:\r\n<h6><\/h6>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><img decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" class=\"size-medium wp-image-2992 aligncenter\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/10\/TrainGAN-300x225.png\" alt=\"\" \/><\/td>\r\n<td><img decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" class=\"size-medium wp-image-2990 aligncenter\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/10\/TrainASiameseNetwork-300x225.png\" alt=\"\" \/><\/td>\r\n<\/tr>\r\n<tr>\r\n<td><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/examples\/train-generative-adversarial-network.html\"><span style=\"text-decoration: underline;\"><strong>This example<\/strong><\/span><\/a> shows how to train a generative adversarial network (GAN) to generate images.<\/td>\r\n<td><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/examples\/train-a-siamese-network-to-compare-images.html\"><span style=\"text-decoration: underline;\"><strong>This example<\/strong><\/span><\/a> shows how to train a Siamese network to identify similar images of handwritten characters.<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n&nbsp;\r\n<h2>Visualization<\/h2>\r\nMore and more, people want to understand <em>why<\/em> a deep learning model is making a certain prediction. These new examples offer new ways to gain more insight into your model.\r\n<h6><\/h6>\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/gradcam-explains-why.html\">Grad-CAM Reveals the Why Behind Deep Learning Decisions\u00a0<\/a><\/span><\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/examples\/understand-network-predictions-using-occlusion.html\">Understand Network Predictions Using Occlusion<\/a><\/span><\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/view-network-behavior-using-tsne.html\">View Network Behavior Using tsne<\/a><\/span><\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/examples\/visualize-features-of-lstml-network.html\">Visualize Activations of LSTM Network<\/a><\/span><\/li>\r\n<\/ul>\r\n<img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-2944 size-full\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/09\/GradCamVisual-e1570132846881.png\" alt=\"\" width=\"281\" height=\"266\" \/><h6><\/h6>If you can only check out one example, choose Grad-CAM. This is a highly visual and easy to implement way to visualize network predictions.\r\n<h6><\/h6>\r\n<h2>Computer Vision &amp; Image Processing<\/h2>\r\n19b was a good release for data preprocessing for deep learning. Here is a nice reference example showing the specifics of data preprocessing for many different applications: Semantic Segmentation, Object Detection, Image Classification, and more.\r\n<h6><\/h6>\r\n<img decoding=\"async\" loading=\"lazy\" width=\"764\" height=\"163\" class=\"alignnone size-full wp-image-2946\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/09\/imageAugmentation.png\" alt=\"\" \/>\r\n<h6><\/h6>\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/preprocess-data-for-domain-specific-applications.html\">Preprocess Data for Domain-Specific Deep Learning Applications<\/a>\u00a0\u00a0<\/span> - I think of this example as a document you can print and refer to when you are doing data preparation for deep learning, and I would recommend starting here.<\/li>\r\n<\/ul>\r\n\r\n<h6><\/h6>\r\nFor more image processing and computer vision, here are examples broken into categories.\r\n<h6><\/h6>\r\n<h3>Deep Learning on Large Images<\/h3>\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/examples\/deep-learning-classification-of-large-multiresolution-images.html#responsive_offcanvas\">Deep Learning Classification of Large Multiresolution Images<\/a><\/span>\u00a0- One of the new features for image processing is about large images, including <a href=\"https:\/\/www.mathworks.com\/help\/images\/ref\/bigimage.html\">bigImage<\/a>. This example walks you through these new features.<\/li>\r\n<\/ul>\r\n<h3>More Augmentation<\/h3>\r\nWhile these can be thought of as more advanced features, augmenting images and bounding boxes are great way to increase the robustness of your dataset and potentially increase the accuracy of your model.\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/augment-pixel-labels-for-semantic-segmentation.html\">Augment Pixel Labels for Semantic Segmentation\u00a0<\/a><\/span><\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/image-augmentation-using-image-processing-toolbox.html\">Augment Images for Deep Learning Workflows Using Image Processing Toolbox<\/a><\/span>\u00a0If you want details on image preprocessing options, this is a nice example showing all the augmentations that you can do.<\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/bounding-box-augmentation-using-computer-vision-toolbox.html\">Augment Bounding Boxes for Object Detection<\/a><\/span><\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/vision\/ug\/train-an-object-detector-using-you-only-look-once.html\">Train an object detector using YOLO<\/a><\/span> - This example show how you can use all the new augmentation features to train a detector , and it conveniently shows the whole workflow<\/li>\r\n<\/ul>\r\n&nbsp;\r\n\r\n<img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2956 size-large\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/09\/BigimageClassificationUsingDeepLearningExample-1024x425.png\" alt=\"\" width=\"1024\" height=\"425\" \/>\r\n<p style=\"text-align: center;\">Deep Learning Classification of Large Images, is especially useful Medical Imaging, where images can easily be so large as to not fit in memory.<\/p>\r\n&nbsp;\r\n<h2>Code Generation<\/h2>\r\nEvery release, keep an eye on new features and functions supported with Code Generation. A complete list of features can be found here, but of note this release is CUDA code generation of deep learning networks such as MobileNet-v2 and\u00a0DeepLab-v3+. There are new functions from Image Processing and Computer Vision, and you can generate code for LSTM networks. There are a few more examples than this, but here are some highlights:\r\n<h6><\/h6>\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/examples\/generate-cpp-code-for-object-detection-using-yolo-v2-and-intel-mkldnn.html\">Generate C++ Code for Object Detection Using YOLO v2 and Intel MKL-DNN<\/a> <\/span>(MATLAB Coder)<\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/code-generation-and-deployment-of-mobilenetv2-network-to-a-raspberry-pi.html\">Code Generation and Deployment of MobileNet-v2 Network to Raspberry Pi<\/a>\u00a0<\/span> (MATLAB Coder)<\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a class=\"a\" href=\"https:\/\/www.mathworks.com\/help\/gpucoder\/examples\/code-generation-sequence-to-sequence-LSTM.html\">Code Generation for a Sequence-to-Sequence LSTM Network<\/a><\/span>\u00a0(GPU Coder)<\/li>\r\n<\/ul>\r\n<h6><img decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"221\" class=\"size-medium wp-image-3006 aligncenter\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/10\/xxmatlabcoder_YOLOv2_output-300x221.png\" alt=\"\" \/><\/h6>\r\n<h2>Reinforcement Learning<\/h2>\r\nReinforcement learning is a hot topic right now, especially in the research community. Reinforcement Learning Toolbox, first released in 19a, gives you access to the complete RL workflow: from creating an environment, to training and deployment. In R2019b we added some new exciting examples:\r\n<h6><\/h6>\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/reinforcement-learning\/ug\/quadruped-robot-locomotion-using-ddpg-gent.html\">Quadruped Robot Locomotion Using DDPG Agent<\/a><\/span> -\u00a0This example is an extension of the <a href=\"https:\/\/www.mathworks.com\/help\/reinforcement-learning\/ug\/train-biped-robot-to-walk-using-ddpg-agent.html\">two-legged walking robot<\/a> example that was released in R2019a to quadruped robots. Have a look to see how you can teach robots like <a href=\"https:\/\/www.youtube.com\/watch?v=wlkCQXHEgjA\">Spot from Boston Dynamics<\/a> to walk!<\/li>\r\n<\/ul>\r\n&nbsp;\r\n\r\n<img decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"196\" class=\"size-medium wp-image-3026 aligncenter\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/10\/RL_dogpic-300x196.png\" alt=\"\" \/>\r\n\r\n&nbsp;\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/reinforcement-learning\/ug\/imitate-mpc-controller-for-lane-keeping-assist.html\">Imitate MPC Controller for Lane Keep Assist<\/a><\/span> -\u00a0If you already have a working decision-making system that you want to build on, why reinvent the wheel? This example shows how you can exploit an existing controller for lane keep assist to warm-start reinforcement learning training.<\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/reinforcement-learning\/ug\/create-agent-using-deep-network-designer-and-train-using-image-observations.html\">Create Agent Using Deep Network Designer and Train Using Image Observations<\/a><\/span> -If you are looking for a simple example to get started, then check out this one. While this isn't technically new this release, it\u2019s based on a simple pendulum environment and shows how you can put together neural network architectures interactively with Deep Network Designer.<\/li>\r\n<\/ul>\r\n&nbsp;\r\n\r\n&nbsp;\r\n<h2>Audio and Signal Processing<\/h2>\r\n<h3>Signal:<\/h3>\r\nA new highlight of this release in signal is <em>automated labeling<\/em>. You can create your own labeling algorithm and bring it into the labeling apps. These two examples will show details on implementing this:\r\n<h6><\/h6>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><span style=\"font-size: 11.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/signal\/ug\/label-qrs-complexes-and-r-peaks-of-ecg-signals-using-deep-network.html\">Label QRS Complexes and R Peaks of ECG Signals Using Deep Network<\/a><\/span><\/td>\r\n<td><span style=\"font-size: 11.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/signal\/ug\/label-spoken-words-in-audio-signals-using-external-api.html\">Label Spoken Words in Audio Signals Using External API <\/a><\/span><\/td>\r\n<\/tr>\r\n<tr>\r\n<td><img decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" class=\"alignnone size-medium wp-image-3042\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/10\/qrs-example-300x199.png\" alt=\"\" \/><\/td>\r\n<td><img decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"200\" class=\"size-medium wp-image-2960 aligncenter\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/09\/Signallabeler-300x200.png\" alt=\"\" \/><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<h6><\/h6>\r\n<h3>Audio:<\/h3>\r\nFor those developing <strong>audio and speech applications<\/strong> we've introduced new functionality for data augmentation and feature extraction. You can now set up pipelines of randomly-parametrized audio effects for augmenting data, including pitch and time stretching.\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/audio\/examples\/keyword-spotting-in-noise-using-mfcc-and-lstm-networks.html\">Keyword Spotting in Noise Using MFCC and LSTM Networks\u00a0<\/a><\/span>This example shows audio augmentation in practice.<\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/audio\/ug\/speech-emotion-recognition.html\">Sequential Feature Selection for Speech Emotion Recognition<\/a><\/span>\u00a0- An example of speech emotion recognition using audio files.<\/li>\r\n<\/ul>\r\n<h6><\/h6>\r\n<h3>Wavelets:<\/h3>\r\nThere are also two new examples for wavelets: Wavelet Time Scattering for <span style=\"font-size: 12.0pt; color: black;\"><a title=\"https:\/\/www.mathworks.com\/help\/wavelet\/examples\/wavelet-time-scattering-with-gpu-acceleration-music-genre-classification.html (link no longer works)\">Music Genre Classification<\/a><\/span> &amp; <span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/wavelet\/examples\/wavelet-time-scattering-with-gpu-acceleration-spoken-digit-recognition.html\">Spoken Digit Recognition<\/a><\/span>.\r\n\r\nYou can automatically extract features using wavelet time scattering on GPUs. This release includes these new examples that demonstrate how to use this new capability for signal classification.\r\n<h6><\/h6>\r\n<h2><strong>Data Synthesis for Training<\/strong><\/h2>\r\nWe also added some new examples that show how you can synthesize radar and communications data to train your networks.\r\n<ul>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a title=\"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/pedestrian-and-bicyclist-classification-using-deep-learning.html (link no longer works)\">Pedestrian and Bicyclist Classification Using Deep Learning<\/a><\/span><\/li>\r\n \t<li><span style=\"font-size: 12.0pt; color: black;\"><a href=\"https:\/\/www.mathworks.com\/help\/phased\/examples\/modulation-classification-of-radar-and-communication-waveforms-using-deep-learning.html\">Radar Waveform Classification Using Deep Learning<\/a><\/span><\/li>\r\n<\/ul>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><img decoding=\"async\" loading=\"lazy\" width=\"252\" height=\"300\" class=\"alignnone size-medium wp-image-3018 aligncenter\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/10\/datasyn1-252x300.jpg\" alt=\"\" \/><\/td>\r\n<td><img decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" class=\"alignnone size-medium wp-image-3020\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/10\/datasyn2-300x225.png\" alt=\"\" \/><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\nYou can synthesize Micro-Doppler signatures for pedestrians, bicycles, and pedestrians to train your networks.\r\n<h6><\/h6>\r\nThat's it! I hope you found one or more of these examples useful. Of course, you can check out the release notes for each product if you want to dive into more details. For any questions on these examples or new features, leave me a comment below!\r\n<h6><\/h6>\r\n<h6><\/h6>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/blogs.mathworks.com\/deep-learning\/files\/2019\/10\/TrainGAN-300x225.png\" onError=\"this.style.display ='none';\" \/><\/div><p>Not to be outdone by Heather with her latest features in MATLAB post, Shounak Mitra, Product Manager for Deep Learning Toolbox, offered to post about new deep learning examples. Enjoy!\r\n\r\nThere are... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/deep-learning\/2019\/10\/04\/whats-new-in-19b-deep-learning-examples\/\">read more >><\/a><\/p>","protected":false},"author":156,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/posts\/2934"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/users\/156"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/comments?post=2934"}],"version-history":[{"count":66,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/posts\/2934\/revisions"}],"predecessor-version":[{"id":6073,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/posts\/2934\/revisions\/6073"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/media?parent=2934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/categories?post=2934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/deep-learning\/wp-json\/wp\/v2\/tags?post=2934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}