Deep Learning
A gentle guide to deep learning object detection - PyImageSearch
A gentle guide to deep learning object detection Today's blog post is inspired by PyImageSearch reader Ezekiel, who emailed me last week and asked: Hey Adrian, with the followup tutorial for real-time deep learning object detection . I've been using your source code in my example projects but I'm having two issues: How do I filter/ignore classes that I am uninterested in? How can I add new classes to my object detector? I would really appreciate it if you could cover this in a blog post. In fact, if you go through the comments section of my two most recent posts on deep learning object detection (linked above), you'll find that one of the most common questions is typically (paraphrased): How do I modify your source code to include my own object classes? Since this appears to be such a common question, and ultimately a misunderstanding on how neural networks/deep learning object detectors actually work, I decided to revisit the topic of deep learning object detection in today's blog post. Specifically, in this post you will learn: The differences between image classification and object detection The components of a deep learning object detector including the differences between an object detection framework and the base model itself How to perform deep learning object detection with a pre-trained model How you can filter and ignore predicted classes from a deep learning model Common misconceptions and misunderstandings when adding or removing classes from a deep neural network To learn more about deep learning object detections, and perhaps even debunk a few misconceptions or misunderstandings you may have with deep learning-based object detection, just keep reading. A gentle guide to deep learning object detection Today's blog post is meant to be a gentle introduction to deep learning-based object detection. I've done my best to provide a review of the components of deep learning object detectors, including OpenCV Python source code to perform deep learning using a pre-trained object detector.
Advanced AI: Deep Reinforcement Learning in Python
What you will learn in this course? In this course, you'll work with more complex environments, specifically provided by the OpenAI Gym: CartPole Mountain Car Atari games to train effective learning agents so you'll need new techniques. We've seen that reinforcement learning is an entirely different kind of machine learning than supervised and unsupervised learning.Supervised and unsupervised machine learning algorithms are for making predictions about data and analyzing, while reinforcement learning is about training an agent to interact with an environment and maximize its reward. Deep reinforcement learning and AI has a lot of potentials also carries huge risk. One main principle of training reinforcement learning agents is that there are unintended consequences when training an AI.
Machine Learning and System Identification for Estimation in Physical Systems
In this thesis, we draw inspiration from both classical system identification and modern machine learning in order to solve estimation problems for real-world, physical systems. The main approach to estimation and learning adopted is optimization based. Concepts such as regularization will be utilized for encoding of prior knowledge and basis-function expansions will be used to add nonlinear modeling power while keeping data requirements practical. The thesis covers a wide range of applications, many inspired by applications within robotics, but also extending outside this already wide field. Usage of the proposed methods and algorithms are in many cases illustrated in the real-world applications that motivated the research. Topics covered include dynamics modeling and estimation, model-based reinforcement learning, spectral estimation, friction modeling and state estimation and calibration in robotic machining. In the work on modeling and identification of dynamics, we develop regularization strategies that allow us to incorporate prior domain knowledge into flexible, overparameterized models. We make use of classical control theory to gain insight into training and regularization while using flexible tools from modern deep learning. A particular focus of the work is to allow use of modern methods in scenarios where gathering data is associated with a high cost. In the robotics-inspired parts of the thesis, we develop methods that are practically motivated and ensure that they are implementable also outside the research setting. We demonstrate this by performing experiments in realistic settings and providing open-source implementations of all proposed methods and algorithms.
Discriminative Few-Shot Learning Based on Directional Statistics
Park, Junyoung, Yi, Subin, Choi, Yongseok, Cho, Dong-Yeon, Kim, Jiwon
Metric-based few-shot learning methods try to overcome the difficulty due to the lack of training examples by learning embedding to make comparison easy. We propose a novel algorithm to generate class representatives for few-shot classification tasks. As a probabilistic model for learned features of inputs, we consider a mixture of von Mises-Fisher distributions which is known to be more expressive than Gaussian in a high dimensional space. Then, from a discriminative classifier perspective, we get a better class representative considering inter-class correlation which has not been addressed by conventional few-shot learning algorithms. We apply our method to \emph{mini}ImageNet and \emph{tiered}ImageNet datasets, and show that the proposed approach outperforms other comparable methods in few-shot classification tasks.
Approximate Inference Turns Deep Networks into Gaussian Processes
Khan, Mohammad Emtiyaz, Immer, Alexander, Abedi, Ehsan, Korzepa, Maciej
Deep neural networks (DNN) and Gaussian processes (GP) are two powerful models with several theoretical connections relating them, but the relationship between their training methods is not well understood. In this paper, we show that certain Gaussian posterior approximations for Bayesian DNNs are equivalent to GP posteriors. As a result, we can obtain a GP kernel and a nonlinear feature map simply by training the DNN. Surprisingly, the resulting kernel is the neural tangent kernel which has desirable theoretical properties for infinitely-wide DNNs. We show feature maps obtained on real datasets and demonstrate the use of the GP marginal likelihood to tune hyperparameters of DNNs. Our work aims to facilitate further research on combining DNNs and GPs in practical settings.
GRAM: Scalable Generative Models for Graphs with Graph Attention Mechanism
Kawai, Wataru, Mukuta, Yusuke, Harada, Tatsuya
Graphs are ubiquitous real-world data structures, and generative models that can approximate distributions over graphs and derive samples from it have significant importance. There are several known challenges in graph generation tasks, and scalability handling large graphs and datasets is one of the most important for applications in a wide range of real-world domains. Although an increasing number of graph generative models have been proposed in the field of machine learning that have demonstrated impressive results in several tasks, scalability is still an unresolved problem owing to the complex generation process or difficulty in training parallelization. In this work, we first define scalability from three different perspectives: number of nodes, data, and node/edge labels, and then we propose GRAM, a generative model for real-world graphs that is scalable in all the three contexts, especially on training. We aim to achieve scalability by employing a novel graph attention mechanism, formulating the likelihood of graphs in a simple and general manner and utilizing the properties of real-world graphs such as community structure and sparseness of edges. Furthermore, we construct a non-domain-specific evaluation metric in node/edge-labeled graph generation tasks that combine a graph kernel and Maximum Mean Discrepancy. Our experiments on real-world graph datasets showed that our models can scale up to large graphs and datasets that baseline models had difficulty handling, and demonstrated results that were competitive with or superior than the baseline methods.
OpenEI: An Open Framework for Edge Intelligence
Zhang, Xingzhou, Wang, Yifan, Lu, Sidi, Liu, Liangkai, Xu, Lanyu, Shi, Weisong
In the last five years, edge computing has attracted tremendous attention from industry and academia due to its promise to reduce latency, save bandwidth, improve availability, and protect data privacy to keep data secure. At the same time, we have witnessed the proliferation of AI algorithms and models which accelerate the successful deployment of intelligence mainly in cloud services. These two trends, combined together, have created a new horizon: Edge Intelligence (EI). The development of EI requires much attention from both the computer systems research community and the AI community to meet these demands. However, existing computing techniques used in the cloud are not applicable to edge computing directly due to the diversity of computing sources and the distribution of data sources. We envision that there missing a framework that can be rapidly deployed on edge and enable edge AI capabilities. To address this challenge, in this paper we first present the definition and a systematic review of EI. Then, we introduce an Open Framework for Edge Intelligence (OpenEI), which is a lightweight software platform to equip edges with intelligent processing and data sharing capability. We analyze four fundamental EI techniques which are used to build OpenEI and identify several open problems based on potential research directions. Finally, four typical application scenarios enabled by OpenEI are presented.
Human Activity Recognition with Convolutional Neural Netowrks
Bevilacqua, Antonio, MacDonald, Kyle, Rangarej, Aamina, Widjaya, Venessa, Caulfield, Brian, Kechadi, Tahar
The problem of automatic identification of physical activities performed by human subjects is referred to as Human Activity Recognition (HAR). There exist several techniques to measure motion characteristics during these physical activities, such as Inertial Measurement Units (IMUs). IMUs have a cornerstone position in this context, and are characterized by usage flexibility, low cost, and reduced privacy impact. With the use of inertial sensors, it is possible to sample some measures such as acceleration and angular velocity of a body, and use them to learn models that are capable of correctly classifying activities to their corresponding classes. In this paper, we propose to use Convolutional Neural Networks (CNNs) to classify human activities. Our models use raw data obtained from a set of inertial sensors. We explore several combinations of activities and sensors, showing how motion signals can be adapted to be fed into CNNs by using different network architectures. We also compare the performance of different groups of sensors, investigating the classification potential of single, double and triple sensor systems. The experimental results obtained on a dataset of 16 lower-limb activities, collected from a group of participants with the use of five different sensors, are very promising.