Skip to main content

Blog

Learn About Our Meetup

5000+ Members

MEETUPS

LEARN, CONNECT, SHARE

Join our meetup, learn, connect, share, and get to know your Toronto AI community. 

JOB POSTINGS

INDEED POSTINGS

Browse through the latest deep learning, ai, machine learning postings from Indeed for the GTA.

CONTACT

CONNECT WITH US

Are you looking to sponsor space, be a speaker, or volunteer, feel free to give us a shout.

Author: torontoai

[N] Microsoft is hosting an online global AI Hackathon. $23,000 in prizes. Submissions due Sept 10th.

Sorry if this is a repost, I posted it before but I think it got picked up by a spam filter, because I don’t see it on the front page at all (please correct me if this is not the case).

Here’s the link to the hackathon

https://azureai.devpost.com/

If you’re looking for a team you can post a profile here

https://azureai.devpost.com/participants?search%5Bonly_looking_for_teammates%5D=1

submitted by /u/BatmantoshReturns
[link] [comments]

[D] LSTM with walk-forward validation and data normalization/standardization

I’m currently trying to build a multivariate model to predict stock market movements using LSTM. The model is not seq-to-seq, but rather seq-to-one, if that matters.

I’ve read that walk-forward validation is the ‘gold-standard‘ for validation in time-series forecasting and that crossvalidation doesn’t work due to the spatial-temporal relevancy of the data.

This creates some weird implications for data normalization…

I’ve firmly held the belief that information leakage can spoil a model by providing unreasonable in-sample performance accuracy/loss. Consequently, I’m pretty careful when train-test splitting and then using custom tranforming pipelines to standardize the data (i.e. fit_transform() vs. transform() ). How do you overcome this issue? Is it really that big of a deal to split before standardization?

Main question: If you’re using a moving-window walk-forward validation, how would you handle train/test data splits and data normalization?

submitted by /u/punknothing
[link] [comments]

[R] My first paper: Deep Learning for Cybersecurity

Hello everyone, I’m an engineering student and recently I was notified that my first paper was accepted in a regional conference of AI. I’m really happy about it and I want to share the preprint paper with you. Naturally, there is a lot of future work and improvements to do since it is my first research experience.

Detecting DNS Threats: A Deep Learning Model to Rule Them All

Abstract:

Domain Name Service is a central part of Internet regular operation. Such importance has made it a common target of different malicious behaviors such as the application of Domain Generation Algorithms (DGA) for command and control a group of infected computers or Tunneling techniques for bypassing system administrator restrictions. A common detection approach is based on training different models detecting DGA and Tunneling capable of performing a lexicographic discrimination of the domain names. However, since both DGA and Tunneling showed domain names with observable lexicographical differences with normal domains, it is reasonable to apply the same detection approach to both threats. In the present work, we propose a multi-class convolutional network (MC-CNN) capable of detecting both DNS threats. The resulting MC-CNN is able to detect correctly 99% of normal domains, 97% of DGA and 92% of Tunneling, with a False Positive Rate of 2.8%, 0.7% and 0.0015% respectively and the advantage of having 44% fewer trainable parameters than similar models applied to DNS threats detection.

Thanks for reading, have a nice day!

submitted by /u/QuitoMeister
[link] [comments]

[R] Fooling real cars with Deep Learning (Deep Learning + Cybersecurity))

First time posting!

We attacked a real vehicle using Deep Learning to generate real life Adversarial traffic signs, effective on cars from different manufacturers. We used nothing more than a strong GPU and commercially available printing services.

Would love feedback and/or discussion 🙂

the paper https://arxiv.org/abs/1907.00374

medium post with a Demo video https://medium.com/@shacharm/fooling-real-cars-with-deep-learning-cace6422c396

submitted by /u/oblongatas_blancas
[link] [comments]

[R] Reprogrammable Electro-Optic Nonlinear Activation Functions for Optical Neural Networks

I am very excited to share our recently published work towards developing nonlinear activation functions for optical neural networks (ONNs).

There has been a lot of interest in specialized hardware for achieving high efficiency and performance on machine learning tasks. Matrix-vector multiplications are one of the most important (and computationally expensive) operations in neural networks. It turns out that analog optical processors can perform these operations in O(1) time (rather than the O(n^2) time on GPUs and CPUs). These specialized ONN processors, which are driven by modulated lasers, could potentially be scaled to use far less energy per operation than conventional digital processors.

Of course, the other piece of the puzzle for neural networks is the nonlinear activation function. Optics is excellent for performing linear operations, but nonlinearities are far more difficult, especially in on-chip circuits. Basically, in nature, if you want to see something or to send information, you use light. But, if you want to make a decision on that information you use electrical charge.

Our paper (linked below) proposes a scheme for building a full ONN with an activation function by coupling a small electrical circuit to the output of each ONN layer. This electrical circuit converts a small amount of the optical signal into and electrical voltage, which then nonlinearly modulates the optical signal. We performed a benchmark of this ONN on the MNIST image recognition task and found that our activation function significantly boosted the classification accuracy of the ONN, from ~85% without the activation to ~94% with the activation. This is still a bit below the performance achieved in state-of-the-art models, but our setup used only 16 complex Fourier coefficients of the images as inputs (rather than all 784 pixels).

Checkout the paper below and feel free to ask questions. Our two Python ONN simulator packages (developed by two of my co-authors) are available on GitHub: https://github.com/fancompute/neuroptica and https://github.com/solgaardlab/neurophox. These repos include several examples if you’re interested in playing around with training ONNs on a computer.

Journal Paper: https://doi.org/10.1109/JSTQE.2019.2930455

arXiv preprint: https://arxiv.org/abs/1903.04579 (same content as the journal version)

submitted by /u/ian_williamson
[link] [comments]

[P] TACO: Trash Annotations in Context Dataset

Hey, for the past year, I have been building, with a friend of mine, an image dataset for litter detection, similar to COCO object segmentation. Check out our project here: tacodataset.org

Our aims are:

  1. To crowdsource more images and annotations.
  2. To support and stimulate more research and applications to address this problem.

Stay tuned for further updates.

submitted by /u/cvwiz
[link] [comments]

Robust Neural Machine Translation

In recent years, neural machine translation (NMT) using Transformer models has experienced tremendous success. Based on deep neural networks, NMT models are usually trained end-to-end on very large parallel corpora (input/output text pairs) in an entirely data-driven fashion and without the need to impose explicit rules of language.

Despite this huge success, NMT models can be sensitive to minor perturbations of the input, which can manifest as a variety of different errors, such as under-translation, over-translation or mistranslation. For example, given a German sentence, the state-of-the-art NMT model, Transformer, will yield a correct translation.

“Der Sprecher des Untersuchungsausschusses hat angekündigt, vor Gericht zu ziehen, falls sich die geladenen Zeugen weiterhin weigern sollten, eine Aussage zu machen.”

(Machine translation to English: “The spokesman of the Committee of Inquiry has announced that if the witnesses summoned continue to refuse to testify, he will be brought to court.”),

But, when we apply a subtle change to the input sentence, say from geladenen to the synonym vorgeladenen, the translation becomes very different (and in this case, incorrect):

“Der Sprecher des Untersuchungsausschusses hat angekündigt, vor Gericht zu ziehen, falls sich die vorgeladenen Zeugen weiterhin weigern sollten, eine Aussage zu machen.”

(Machine translation to English: “The investigative committee has announced that he will be brought to justice if the witnesses who have been invited continue to refuse to testify.”).

This lack of robustness in NMT models prevents many commercial systems from being applicable to tasks that cannot tolerate this level of instability. Therefore, learning robust translation models is not just desirable, but is often required in many scenarios. Yet, while the robustness of neural networks has been extensively studied in the computer vision community, only a few prior studies on learning robust NMT models can be found in literature.

In “Robust Neural Machine Translation with Doubly Adversarial Inputs” (to appear at ACL 2019), we propose an approach that uses generated adversarial examples to improve the stability of machine translation models against small perturbations in the input. We learn a robust NMT model to directly overcome adversarial examples generated with knowledge of the model and with the intent of distorting the model predictions. We show that this approach improves the performance of the NMT model on standard benchmarks.

Training a Model with AdvGen
An ideal NMT model would generate similar translations for separate inputs that exhibit small differences. The idea behind our approach is to perturb a translation model with adversarial inputs in the hope of improving the model’s robustness. It does this using an algorithm called Adversarial Generation (AdvGen), which generates plausible adversarial examples for perturbing the model and then feeds them back into the model for defensive training. While this method is inspired by the idea of generative adversarial networks (GANs), it does not rely on a discriminator network, but simply applies the adversarial example in training, effectively diversifying and extending the training set.

The first step is to perturb the model using AdvGen. We start by using Transformer to calculate the translation loss based on a source input sentence, a target input sentence and a target output sentence. Then AdvGen randomly selects some words in the source sentence, assuming a uniform distribution. Each word has an associated list of similar words, i.e., candidates that can be used for substitution, from which AdvGen selects the word that is most likely to introduce errors in Transformer output. Then, this generated adversarial sentence is fed back into Transformer, initiating the defense stage.

First, the Transformer model is applied to an input sentence (lower left) and, in conjunction with the target output sentence (above right) and target input sentence (middle right; beginning with the placeholder “<sos>”), the translation loss is calculated. The AdvGen function then takes the source sentence, word selection distribution, word candidates, and the translation loss as inputs to construct an adversarial source example.

During the defend stage, the adversarial sentence is fed back into the Transformer model. Again the translation loss is calculated, but this time using the adversarial source input. Using the same method as above, AdvGen uses the target input sentence, word replacement candidates, the word selection distribution calculated by the attention matrix, and the translation loss to construct an adversarial target example.

In the defense stage, the adversarial source example serves as input to the Transformer model, and the translation loss is calculated. AdvGen then uses the same method as above to generate an adversarial target example from the target input.

Finally, the adversarial sentence is fed back into Transformer and the robustness loss using the adversarial source example, the adversarial target input example and the target sentence is calculated. If the perturbation led to a significant loss, the loss is minimized so that when the model is confronted with similar perturbations, it will not repeat the same mistake. On the other hand, if the perturbation leads to a low loss, nothing happens, indicating that the model can already handle this perturbation.

Model Performance
We demonstrate the effectiveness of our approach by applying it to the standard Chinese-English and English-German translation benchmarks. We observed a notable improvement of 2.8 and 1.6 BLEU points, respectively, compared to the competitive Transformer model, achieving a new state-of-the-art performance.

Comparison of Transformer model (Vaswani et al., 2017) on standard benchmarks.

We then evaluate our model on a noisy dataset, generated using a procedure similar to that described for AdvGen. We take an input clean dataset, such as that used on standard translation benchmarks, and randomly select words for similar word substitution. We find that our model exhibits improved robustness compared to other recent models.

Comparison of Transformer, Miyao et al. and Cheng et al. on artificial noisy inputs.

These results show that our method is able to overcome small perturbations in the input sentence and improve the generalization performance. It outperforms competitive translation models and achieves state-of-the-art translation performance on standard benchmarks. We hope our translation model will serve as a robust building block for improving many downstream tasks, especially when those are sensitive or intolerant to imperfect translation input.

Acknowledgements
This research was conducted by Yong Cheng, Lu Jiang and Wolfgang Macherey. Additional thanks go to our leadership Andrew Moore and Julia (Wenli) Zhu‎.

[D] Is it common to discard all ‘non-full-time-trajectory’ pedestrian from data in pedestrian prediction domain?

[D] Is it common to discard all 'non-full-time-trajectory' pedestrian from data in pedestrian prediction domain?

Hello, I’m relatively new to pedestrian trajectory prediction, and I have a question about the preprocessing of pedestrian data. Actually, I sent the question e-mail for the author of SocialGAN paper and no reply was received (yet). If anyone knows anything about this topic, your answer would help me a lot.

It is quite common that may ML pedestrian trajectory prediction employs LSTM in order to capture the temporal correlation. For example, look at the diagram below from the paper ”Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks’ (https://arxiv.org/pdf/1803.10892.pdf ). In the paper, the author said that the model was trained to observe 3.2 seconds (8f) then predict 4.8 seconds (12f).

Adopted from SocialGAN paper. Since some of the trajectories terminates earlier than others, LSTM steps should handle this uneven data length.

However, since the common pedestrian dataset (like ETH and UCY) collected from a single still camera, trajectory terminates when the agent moves out of sight. Thus, unlike the conceptual diagram in many papers, we cannot simply gather whole data for 3.2sec (8f) and let them consist of LSTM hidden state.

Therefore, I’ve curious about how other researchers handled this missing value problem.

While following the author’s code on GitHub, I’ve found that the code discarded every individual when their trajectory throughout the given interval is shorter than its whole interval length. (https://github.com/agrimgupta92/sgan/blob/master/sgan/data/trajectories.py, an excerpt from class ‘TrajectoryDataset’)

When the SocialGAN paper preprocesses the raw pedestrian data into pytorch dataset, agents with short trajectory length discarded from the dataset and not used for inference.

In result, the final dataset for training does not contain a nonnegligible portion of trajectories despite that some of them could exist near to ‘considered’ individuals and may affect their trajectories.

I want to raise two questions on this point.

Am I correctly understanding the code and its consequences? I would like to show a small toy example in order to visualize and verify my understandings of SocialGAN code.

Let us assume that seq_len = 4 (obs_len = 2, pred_len = 2) and consider the frame 1~4. Then, according to my understandings, SocialGAN code discards green agent(below) because it does not have a full 4-frame trajectory.

Crude visualization of pedestrian dataset.

But, in my opinion, I think the green agent would affect red agent’s trajectory a lot compared to blue one does. Although the missing value of the trajectory is an inevitable problem of the dataset itself (since no one can collect an indefinite amount of tracked position), ignoring the whole trajectory because of those value might decrease the overall accuracy.

Furthermore, since this preprocessing handles frame-based trajectory data with a moving window (i.e. it makes frame 1~4 as a first data and 2~5 as second, 3~6 as third, and so on.), an agent like green might affect red agent in some data, while discarded in other data2.

– Secondly, (under the assumption that my understanding of the situation is correct), Is this kind of preprocessing (discarding non-full-trajectory individuals) common for preprocessing of the public pedestrian datasets such as ETH and UCY, or is this preprocessing was particular for SocialGAN and there are other ways to preprocess pedestrian data? I’d like to know that is there another way to deal with this missing value problem.

I’m currently trying to implement a model and preprocessing which can alleviate this problem, but I’m not certain whether this problem had been already addressed and well-known in CV/ML society, or it hadn’t.

Again, any response or shared opinion will be grateful 🙂

submitted by /u/nokpil
[link] [comments]