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

[R] “we propose a training objective that is invariant to changes in depth range and scale” – Towards Robust Monocular Depth Estimation

Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-Shot Cross-Dataset Transfer

Video: https://youtu.be/ITI0YS6IrUQ

The success of monocular depth estimation relies on large and diverse training sets. Due to the challenges associated with acquiring dense ground-truth depth across different environments at scale, a number of datasets with distinct characteristics and biases have emerged. We develop tools that enable mixing multiple datasets during training, even if their annotations are incompatible. In particular, we propose a training objective that is invariant to changes in depth range and scale. Armed with this objective, we explore an abundant source of training data: 3D films. We demonstrate that despite pervasive inaccuracies, 3D films constitute a useful source of data that is complementary to existing training sets. We evaluate the presented approach on diverse datasets, focusing on zero-shot cross-dataset transfer: testing the generality of the learned model by evaluating it on datasets that were not seen during training. The experiments confirm that mixing data from complementary sources yields improved depth estimates, particularly on previously unseen datasets. Some results are shown in the supplementary video: this https URL

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

Parrotron: New Research into Improving Verbal Communication for People with Speech Impairments



Most people take for granted that when they speak, they will be heard and understood. But for the millions who live with speech impairments caused by physical or neurological conditions, trying to communicate with others can be difficult and lead to frustration. While there have been a great number of recent advances in automatic speech recognition (ASR; a.k.a. speech-to-text) technologies, these interfaces can be inaccessible for those with speech impairments. Further, applications that rely on speech recognition as input for text-to-speech synthesis (TTS) can exhibit word substitution, deletion, and insertion errors. Critically, in today’s technological environment, limited access to speech interfaces, such as digital assistants that depend on directly understanding one’s speech, means being excluded from state-of-the-art tools and experiences, widening the gap between what those with and without speech impairments can access.

Project Euphonia has demonstrated that speech recognition models can be significantly improved to better transcribe a variety of atypical and dysarthric speech. Today, we are presenting Parrotron, an ongoing research project that continues and extends our effort to build speech technologies that help those with impaired or atypical speech to be understood by both people and devices. Parrotron consists of a single end-to-end deep neural network trained to convert speech from a speaker with atypical speech patterns directly into fluent synthesized speech, without an intermediate step of generating text—skipping speech recognition altogether. Parrotron’s approach is speech-centric, looking at the problem only from the point of view of speech signals—e.g., without visual cues such as lip movements. Through this work, we show that Parrotron can help people with a variety of atypical speech patterns—including those with ALS, deafness, and muscular dystrophy—to be better understood in both human-to-human interactions and by ASR engines.

The Parrotron Speech Conversion Model
Parrotron is an attention-based sequence-to-sequence model trained in two phases using parallel corpora of input/output speech pairs. First, we build a general speech-to-speech conversion model for standard fluent speech, followed by a personalization phase that adjusts the model parameters to the atypical speech patterns from the target speaker. The primary challenge in such a configuration lies in the collection of the parallel training data needed for supervised training, which consists of utterances spoken by many speakers and mapped to the same output speech content spoken by a single speaker. Since it is impractical to have a single speaker record the many hours of training data needed to build a high quality model, Parrotron uses parallel data automatically derived with a TTS system. This allows us to make use of a pre-existing anonymized, transcribed speech recognition corpus to obtain training targets.

The first training phase uses a corpus of ~30,000 hours that consists of millions of anonymized utterance pairs. Each pair includes a natural utterance paired with an automatically synthesized speech utterance that results from running our state-of-the-art Parallel WaveNet TTS system on the transcript of the first. This dataset includes utterances from thousands of speakers spanning hundreds of dialects/accents and acoustic conditions, allowing us to model a large variety of voices, linguistic and non-linguistic contents, accents, and noise conditions with “typical” speech all in the same language. The resulting conversion model projects away all non-linguistic information, including speaker characteristics, and retains only what is being said, not who, where, or how it is said. This base model is used to seed the second personalization phase of training.

The second training phase utilizes a corpus of utterance pairs generated in the same manner as the first dataset. In this case, however, the corpus is used to adapt the network to the acoustic/phonetic, phonotactic and language patterns specific to the input speaker, which might include, for example, learning how the target speaker alters, substitutes, and reduces or removes certain vowels or consonants. To model ALS speech characteristics in general, we use utterances taken from an ALS speech corpus derived from Project Euphonia. If instead we want to personalize the model for a particular speaker, then the utterances are contributed by that person. The larger this corpus is, the better the model is likely to be at correctly converting to fluent speech. Using this second smaller and personalized parallel corpus, we run the neural-training algorithm, updating the parameters of the pre-trained base model to generate the final personalized model.

We found that training the model with a multitask objective to predict the target phonemes while simultaneously generating spectrograms of the target speech led to significant quality improvements. Such a multitask trained encoder can be thought of as learning a latent representation of the input that maintains information about the underlying linguistic content.

Overview of the Parrotron model architecture. An input speech spectrogram is passed through encoder and decoder neural networks to generate an output spectrogram in a new voice.

Case Studies
To demonstrate a proof of concept, we worked with our fellow Google research scientist and mathematician Dimitri Kanevsky, who was born in Russia to Russian speaking, normal-hearing parents but has been profoundly deaf from a very young age. He learned to speak English as a teenager, by using Russian phonetic representations of English words, learning to pronounce English using transliteration into Russian (e.g., The quick brown fox jumps over the lazy dog => ЗИ КВИК БРАУН ДОГ ЖАМПС ОУВЕР ЛАЙЗИ ДОГ). As a result, Dimitri’s speech is substantially distinct from native English speakers, and can be challenging to comprehend for systems or listeners who are not accustomed to it.

Dimitri recorded a corpus of 15 hours of speech, which was used to adapt the base model to the nuances specific to his speech. The resulting Parrotron system helped him be better understood by both people and Google’s ASR system alike. Running Google’s ASR engine on the output of Parrotron significantly reduced the word error rate from 89% to 32%, on a held out test set from Dimitri. Below is an example of Parrotron’s successful conversion of input speech from Dimitri:

Input from Dimitri Audio
Output from Parrotron Audio

We also worked with Aubrie Lee, a Googler and advocate for disability inclusion, who has muscular dystrophy, a condition that causes progressive muscle weakness, and sometimes impacts speech production. Aubrie contributed 1.5 hours of speech, which has been instrumental in showing promising outcomes of the applicability of this speech-to-speech technology. Below is an example of Parrotron’s successful conversion of input speech from Aubrie:

Input from Aubrie Audio
Output from Parrotron Audio
Input from Aubrie Audio
Output from Parrotron Audio

We also tested Parrotron’s performance on speech from speakers with ALS by adapting the pretrained model on multiple speakers who share similar speech characteristics grouped together, rather than on a single speaker. We conducted a preliminary listening study and observed an increase in intelligibility when comparing natural ALS speech to the corresponding speech obtained from running the Parroton model, for the majority of our test speakers.

Cascaded Approach
Project Euphonia has built a personalized speech-to-text model that has reduced the word error rate for a deaf speaker from 89% to 25%, and ongoing research is also likely to improve upon these results. One could use such a speech-to-text model to achieve a similar goal as Parrotron by simply passing its output into a TTS system to synthesize speech from the result. In such a cascaded approach, however, the recognizer may choose an incorrect word (roughly 1 out 4 times, in this case)—i.e., it may yield words/sentences with unintended meaning and, as a result, the synthesized audio of these words would be far from the speaker’s intention. Given the end-to-end speech-to-speech training objective function of Parrotron, even when errors are made, the generated output speech is likely to sound acoustically similar to the input speech, and thus the speaker’s original intention is less likely to be significantly altered and it is often still possible to understand what is intended:

Input from Dimitri Audio
Output from Parrotron Audio
Input from Dimitri Audio
Output from Parrotron/Input to Assistant Audio
Output from Assistant Audio
Input from Aubrie Audio
Output from Parrotron Audio

Furthermore, since Parrotron is not strongly biased to producing words from a predefined vocabulary set, input to the model may contain completely new invented words, foreign words/names, and even nonsense words. We observe that feeding Arabic and Spanish utterances into the US-English Parrotron model often results in output which echoes the original speech content with an American accent, in the target voice. Such behavior is qualitatively different from what one would obtain by simply running an ASR followed by a TTS. Finally, by going from a combination of independently tuned neural networks to a single one, we also believe there are improvements and simplifications that could be substantial.

Conclusion
Parrotron makes it easier for users with atypical speech to talk to and be understood by other people and by speech interfaces, with its end-to-end speech conversion approach more likely to reproduce the user’s intended speech. More exciting applications of Parrotron are discussed in our paper. If you would like to participate in this ongoing research, please fill out this short form and volunteer to record a set of phrases. We look forward to working with you!

Acknowledgements
This project was joint work between the Speech and Google Brain teams. Contributors include Fadi Biadsy, Ron J. Weiss, Pedro Moreno, Dimitri Kanevsky, Ye Jia, Suzan Schwartz, Landis Baker, Zelin Wu, Johan Schalkwyk, Yonghui Wu, Zhifeng Chen, Patrick Nguyen, Aubrie Lee, Andrew Rosenberg, Bhuvana Ramabhadran, Jason Pelecanos, Julie Cattiau, Michael Brenner, Dotan Emanuel and Joel Shor. Our data collection efforts have been vastly accelerated by our collaborations with ALS-TDI.

[P] TorchKGE : a PyTorch-based Python library for Knowledge Graph embedding.

TorchKGE is an open-source Python library based on PyTorch that aims at implementing in a unified way all existing methods for knowledge-graph embedding. Currently, are implemented : TransE, TransH, TransR, TransD, RESCAL, DistMult, HolE, ComplEx, Analogy. More models should be coming soon (e.g. deep ones such as RGCN, ConvE, ConvKB).

I’d like it to be a clean library that respects PyTorch idiom. Feel free to contribute directly in the repo or just by sending your remarks.

Documentation: https://torchkge.readthedocs.io/en/latest/?badge=latest

PyPi: https://pypi.org/project/torchkge/

Github repo: https://github.com/torchkge-team/torchkge

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

AMA: We are Noam Brown and Tuomas Sandholm, creators of the Carnegie Mellon / Facebook multiplayer poker bot Pluribus. We’re also joined by a few of the pros Pluribus played against. Ask us anything!

Hi all! We are Noam Brown and Professor Tuomas Sandholm. We recently developed the poker AI Pluribus, which has proven capable of defeating elite human professionals in six-player no-limit Texas hold’em poker, the most widely-played poker format in the world. Poker was a long-standing challenge problem for AI due to the importance of hidden information, and Pluribus is the first AI breakthrough on a major benchmark game that has more than two players or two teams. Pluribus was trained using the equivalent of less than $150 worth of compute and runs in real time on 2 CPUs. You can read our blog post on this result here.

We are happy to answer your questions about Pluribus, the experiment, AI, imperfect-information games, Carnegie Mellon, Facebook AI Research, or any other questions you might have! A few of the pros Pluribus played against may also jump in if anyone has questions about what it’s like playing against the bot, participating in the experiment, or playing professional poker.

We are opening this thread to questions now and will be here starting at 10AM ET on Friday, July 19th to answer them.

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

[R] KeOps v1.1: free x30 speed-up + linear memory footprint for kernel methods, Sinkhorn and more

[R] KeOps v1.1: free x30 speed-up + linear memory footprint for kernel methods, Sinkhorn and more

Hi Reddit,

KeOps v1.1 is out! This package provides a new LazyTensor wrapper for PyTorch and Numpy that speeds up all kernel-related computations with an efficient, tailor-made CUDA scheme. It should be especially useful to people who work with kernel matrices, geometric deep learning or point clouds.

https://i.redd.it/9uozdr0tjva31.png

https://i.redd.it/084g9udunva31.png

To use it: just install CUDA, nvcc, and type pip install pykeops[full]. This works out-of-the-box on Google Colab !

Our documentation is available at www.kernel-operations.io , with numerous examples and tutorials (spectral coordinates, Sinkhorn, K-NN, K-Means…). If you have any remark or suggestion, please let us know 🙂

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

[P] Larq, an Open-Source Library for Training Binarized Neural Networks

Hi all, I’m working for Plumerai, a London-based startup that is developing hardware for binarized neural networks (BNN). BNNs are designed to make neural networks much more efficient, so that it becomes feasible to use them in embedded applications such as self-driving cars and mobile phones.

Over the past few months we’ve been developing Larq, an open source library to make it easier for researchers and developers to work with BNNs. We have also reproduced a number of key papers in the field and made pretrained BNNs available in Larq-Zoo (Bi-Real Net, XNOR-net, BinaryNet), and we’ll soon add more. The library is built on top of tensorflow.keras. Larq has already been very valuable to us in our own research (we recently made our first paper available on arxiv – it even got some attention on this subreddit!), and we are now at a point where we are very eager to share it with others.

If you’re interested in this space, please have a look and let us know what you think!

Documentation: https://larq.dev/

GitHub Larq: https://github.com/larq/larq

GitHub Larq-Zoo: https://github.com/larq/zoo

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

[P] A library of pretrained models for NLP: Bert, GPT, GPT-2, Transformer-XL, XLNet, XLM

Huggingface has released a new version of their open-source library of pretrained transformer models for NLP: PyTorch-Transformers 1.0 (formerly known as pytorch-pretrained-bert).

The library now comprises six architectures:

  • Google’s BERT,
  • OpenAI’s GPT & GPT-2,
  • Google/CMU’s Transformer-XL & XLNet and
  • Facebook’s XLM,

and a total of 27 pretrained model weights for these architectures.

The library focus on:

  • being superfast to learn & use (almost no abstractions),
  • providing SOTA examples scripts as starting points (text classification with GLUE, question answering with SQuAD and text generation using GPT, GPT-2, Transformer-XL, XLNet).

It also provides:

  • a unified API for models and tokenizers,
  • access to the hidden-states and attention weights,
  • compatibility with Torchscript…

Install: pip install pytorch-transformers

Quickstart: https://github.com/huggingface/pytorch-transformers#quick-tour

Release notes: https://github.com/huggingface/pytorch-transformers/releases/tag/v1.0.0

Documentation (work in progress): https://huggingface.co/pytorch-transformers/

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

[Discussion] How to detect anomalies (errors and exceptions) in log files?

Is this a good approach?

So I’m working on a Root Cause Analysis system which should help find the cause/the root error of failed system builds (packaged in a tarball), through the analysis of log files (database logs, system logs, etc) inside it.

The only labeling of data available is whether a specific tarball contains the logs of a failed system build or rather the logs of a successful build.

My reasoning:

Instead of trying to find the specific log statements which mention the root cause, I though it would be easier to first find the log file in which this specific lines are saved. A log file containing failure log statements should be detected as an “outlier” log file, compared to the normal log files, that are created from successful builds. If we find log files that are outliers, we would only have to search the failure log statements in this few log files.

My strategy to find the anomalous log files (outliers) so far:

Consider a list of tars containing the logs of a successful build. For each tar:

  1. Extract the tar and consider only log files (filter/remove configuration files, cache files, etc)
  2. Group the log files per service (mongodb, apt, fsck, etc)

For each service:

  1. Remove the timestamp from the log body for each log statement, inside each log file
  2. Concatenate, combine all the log statements of the same log file into a single string, let’s call it “log file content”
  3. Create an array containing the log file contents of each log file
  4. Use the Tf-ifd transformer on this array (TfidfVectorizer) to create a dataframe (fit/transform)
  5. Create an isolation forest (sklearn.ensemble IsolationForest) or a one class SVM (sklearn.svm OneClassSVM) called model
  6. Fit the dataframe inside the model

To find anomalous log files in a failed tar, we analyse it the following way:

  1. Extract and group the log files (see previous step 1 and 2)
  2. For every file:

    2.1. Preprocess it the same way the successfull log files for the training were preprocessed (removal of timestamp, concatenate, Tf-ifd transform, etc), into a dataframe

    2.2. Whether this log file is anomalous or not, will be predicted by passing the dataframe as argument to the “predict” function” of the model of the corresponding service

What do you think?

  • Is this a good approach?
  • I think OneClassSVM would be better suited since it can be used for semi supervised learning (ideal for this case), instead of unsupervised learning. But I’m getting too much false positives. Any tips on choosing the right values for the nu and gamma parameters?
  • Other suggestions?

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

Shopify Data Science Interview Questions

Shopify powers 800,000 businesses in approximately 175 countries.

The first iteration of Shopify (before it was called that) was an online store that sold snowboards. Eventually, there was a pivot to becoming an e- commerce platform. It’s been named Canada’s “smartest” company, among myriad other well-earned accolades. Shopify was the third largest e-commerce CMS in 2018, with a market share of 10.03% in the first million websites. In 2018, Shopify platform did 1.5+ Billion $ in sales on Cyber Monday alone.

Source: https://mobilesyrup.com/2018/05/08/shopify-new-retail-features-chip-reader/

Interview Process

The first step is the phone screen with HR person. The next step is a three part in person interview (‘life story’ and technical interview). Once those are clear, there is an onsite interview which consists of two more technical interviews, and three more interviews before prospective team leads.

Important Reading

surviving-flashes-of-high-write-traffic-using-scriptable-load-balancers

Data Science Related Interview Questions

  • Go through a previously completed project and explain it. Why did you make the choices in the project that you did?
  • What’s the difference between Type I and Type II error?
  • Explain the difference between L1 and L2 regularization.
  • Write a program to solve a simulation of Conway’s game of life.
  • What is the difference between supervised and unsupervised machine learning?
  • What’s the difference between a generative and discriminative model?
  • What’s the F1 score? How would you use it?
  • What is your experience working on big data technologies?
  • Do you have experience with Spark or big data tools for machine learning?
  • How do you ensure you are not overfitting with a model?

Reflecting on the Question

The 800,000 businesses that Shopify powers generates massive amounts of data. The Data Science team at Shopify asks basic data science questions which are fundamental in nature. Sometimes, the questions revolve around your resume and the problems you have solved in your past career. Good grip on fundamentals can surely land you a job with the world’s largest e-commerce platform!

Subscribe to our Acing AI newsletter, I promise not to spam and its FREE!

Acing AI Newsletter – Revue

Thanks for reading! 😊 If you enjoyed it, test how many times can you hit 👏 in 5 seconds. It’s great cardio for your fingers AND will help other people see the story.

The sole motivation of this blog article is to learn about Shopify and its technologies helping people to get into it. All data is sourced from online public sources. I aim to make this a living document, so any updates and suggested changes can always be included. Please provide relevant feedback.


Shopify Data Science Interview Questions was originally published in Acing AI on Medium, where people are continuing the conversation by highlighting and responding to this story.