Deep Convolutional Neural Networks and Data Augmentation for Environmental Sound Classification

08/15/2016 ∙ by Justin Salamon, et al. ∙ NYU college 0

The ability of deep convolutional neural networks (CNN) to learn discriminative spectro-temporal patterns makes them well suited to environmental sound classification. However, the relative scarcity of labeled data has impeded the exploitation of this family of high-capacity models. This study has two primary contributions: first, we propose a deep convolutional neural network architecture for environmental sound classification. Second, we propose the use of audio data augmentation for overcoming the problem of data scarcity and explore the influence of different augmentations on the performance of the proposed CNN architecture. Combined with data augmentation, the proposed model produces state-of-the-art results for environmental sound classification. We show that the improved performance stems from the combination of a deep, high-capacity model and an augmented training set: this combination outperforms both the proposed CNN without augmentation and a "shallow" dictionary learning model with augmentation. Finally, we examine the influence of each augmentation on the model's classification accuracy for each class, and observe that the accuracy for each class is influenced differently by each augmentation, suggesting that the performance of the model could be improved further by applying class-conditional data augmentation.

READ FULL TEXT VIEW PDF
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

Code Repositories

UrbanInformaticsCourse

For Sustainable Design Studio fall 2017


view repo
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

I Introduction

The problem of automatic environmental sound classification has received increasing attention from the research community in recent years. Its applications range from context aware computing [1] and surveillance [2] to noise mitigation enabled by smart acoustic sensor networks [3].

To date, a variety of signal processing and machine learning techniques have been applied to the problem, including matrix factorization

[4, 5, 6], dictionary learning [7, 8], wavelet filterbanks [9, 8] and most recently deep neural networks [10, 11]. See [12, 13, 14] for further reviews of existing approaches. In particular, deep convolutional neural networks (CNN) [15] are, in principle, very well suited to the problem of environmental sound classification: first, they are capable of capturing energy modulation patterns across time and frequency when applied to spectrogram-like inputs, which has been shown to be an important trait for distinguishing between different, often noise-like, sounds such as engines and jackhammers [8]. Second, by using convolutional kernels (filters) with a small receptive field, the network should, in principle, be able to successfully learn and later identify spectro-temporal patterns that are representative of different sound classes even if part of the sound is masked (in time/frequency) by other sources (noise), which is where traditional audio features such as Mel-Frequency Cepstral Coefficients (MFCC) fail [16]. Yet the application of CNNs to environmental sound classification has been limited to date. For instance, the CNN proposed in [11] obtained comparable results to those yielded by a dictionary learning approach [7] (which can be considered an instance of “shallow” feature learning), but did not improve upon it.

Deep neural networks, which have a high model capacity, are particularly dependent on the availability of large quantities of training data in order to learn a non-linear function from input to output that generalizes well and yields high classification accuracy on unseen data. A possible explanation for the limited exploration of CNNs and the difficulty to improve on simpler models is the relative scarcity of labeled data for environmental sound classification. While several new datasets have been released in recent years (e.g., [17, 18, 19]), they are still considerably smaller than the datasets available for research on, for example, image classification [20].

An elegant solution to this problem is data augmentation, that is, the application of one or more deformations to a collection of annotated training samples which result in new, additional training data [21, 20, 22]

. A key concept of data augmentation is that the deformations applied to the labeled data do not change the semantic meaning of the labels. Taking an example from computer vision, a rotated, translated, mirrored or scaled image of a car would still be a coherent image of a car, and thus it is possible to apply these deformations to produce additional training data while maintaining the semantic validity of the label. By training the network on the additional deformed data, the hope is that the network becomes invariant to these deformations and generalizes better to unseen data. Semantics-preserving deformations have also been proposed for the audio domain, and have been shown to increase model accuracy for music classification tasks

[22]. However, in the case of environmental sound classification the application of data augmentation has been relatively limited (e.g., [11, 23]), with the author of [11] (which used random combinations oftime shifting, pitch shifting and time stretching for data augmentation) reporting that “simple augmentation techniques proved to be unsatisfactory for the UrbanSound8K dataset given the considerable increase in training time they generated and negligible impact on model accuracy”.

In this paper we present a deep convolutional neural network architecture with localized (small) kernels for environmental sound classification. Furthermore, we propose the use of data augmentation to overcome the problem of data scarcity and explore different types of audio deformations and their influence on the model’s performance. We show that the proposed CNN architecture, in combination with audio data augmentation, yields state-of-the-art performance for environmental sound classification.

Ii Method

Ii-a Deep Convolutional Neural Network

The deep convolutional neural network (CNN) architecture proposed in this study is comprised of 3 convolutional layers interleaved with 2 pooling operations, followed by 2 fully connected (dense) layers. Similar to previously proposed feature learning approaches applied to environmental sound classification (e.g., [7]), the input to the network consists of time-frequency patches (TF-patches) taken from the log-scaled mel-spectrogram representation of the audio signal. Specifically, we use Essentia [24] to extract log-scaled mel-spectrograms with 128 components (bands) covering the audible frequency range (0-22050 Hz), using a window size of 23 ms (1024 samples at 44.1 kHz) and a hop size of the same duration. Since the excerpts in our evaluation dataset (described below) are of varying duration (up to 4 s), we fix the size of the input TF-patch to 3 seconds (128 frames), i.e. . TF-patches are extracted randomly (in time) from the full log-mel-spectrogram of each audio excerpt during training as described further down.

Given our input , the network is trained to learn the parameters of a composite nonlinear function which maps to the output (prediction) :

(1)

where each operation is referred to as a layer of the network, with layers in our proposed architecture. The first three layers, , are convolutional, expressed as:

(2)

where

is a 3-dimensional input tensor consisting of

feature maps, is a collection of 3-dimensional kernels (also referred to as filters), represents a valid convolution,

is a vector bias term, and

is a point-wise activation function. Thus, the shapes of

, , and are , and respectively. Note that for the first layer of our network

, i.e., the dimensions of the input TF-patch. We apply strided max-pooling after the first two convolutional layers

using a stride size equal to the pooling dimensions (provided below), which reduces the dimensions of the output feature maps and consequently speeds up training and builds some scale invariance into the network. The final two layers, , are fully-connected (dense) and consist of a matrix product rather than a convolution:

(3)

where is flattened to a column vector of length , has shape , is a vector of length and is a point-wise activation function.

The proposed CNN architecture is parameterized as follows:

  • : 24 filters with a receptive field of (5,5), i.e.,

    has the shape (24,1,5,5). This is followed by (4,2) strided max-pooling over the last two dimensions (time and frequency respectively) and a rectified linear unit (ReLU) activation function

    .

  • : 48 filters with a receptive field of (5,5), i.e., has the shape (48, 24, 5, 5). Like , this is followed by (4,2) strided max-pooling and a ReLU activation function.

  • : 48 filters with a receptive field of (5,5), i.e., has the shape (48, 48, 5, 5). This is followed by a ReLU activation function (no pooling).

  • : 64 hidden units, i.e., has the shape (2400, 64), followed by a ReLU activation function.

  • : 10 output units, i.e., has the shape (64,10), followed by a softmax activation function.

Note that our use of a small receptive field in compared to the input dimensions is designed to allow the network to learn small, localized patterns that can be fused at subsequent layers to gather evidence in support of larger “time-frequency signatures” that are indicative of the presence/absence of different sound classes, even when there is spectro-temporal masking by interfering sources.

For training, the model optimizes cross-entropy loss via mini-batch stochastic gradient descent

[25]. Each batch consists of 100 TF-patches randomly selected from the training data (without repetition). Each 3 s TF-patch is taken from a random position in time from the full log-mel-spectrogram representation of each training sample. We use a constant learning rate of 0.01. Dropout [26] is applied to the input of the last two layers,

, with probability 0.5. L2-regularization is applied to the weights of the last two layers with a penalty factor of 0.001. The model is trained for 50 epochs and is checkpointed after each epoch, during which it is trained on random minibatches until 1/8 of all training data is exhausted (where by training data we mean all the TF-patches extracted from every training sample starting at all possible frame indices). A validation set is used to identify the parameter setting (epoch) achieving the highest classification accuracy, where prediction is performed by slicing the test sample into overlapping TF-patches (1-frame hop), making a prediction for each TF-patch and finally choosing the sample-level prediction as the class with the highest mean ouptut activation over all frames. The CNN is implemented in Python with Lasagne

[27], and we used Pescador [28] to manage and multiplex data streams during training.

Ii-B Data Augmentation

We experiment with 4 different audio data augmentations (deformations), resulting in 5 augmentation sets, as detailed below. Each deformation is applied directly to the audio signal prior to converting it into the input representation used to train the network (log-mel-spectrogram). Note that for each augmentation it is important that we choose the deformation parameters such that the semantic validity of the label is maintained. The deformations and resulting augmentation sets are described below:

  • Time Stretching (TS): slow down or speed up the audio sample (while keeping the pitch unchanged). Each sample was time stretched by 4 factors: .

  • Pitch Shifting (PS1): raise or lower the pitch of the audio sample (while keeping the duration unchanged). Each sample was pitch shifted by 4 values (in semitones): .

  • Pitch Shifting (PS2): since our initial experiments indicated that pitch shifting was a particularly beneficial augmentation, we decided to create a second augmentation set. This time each sample was pitch shifted by 4 larger values (in semitones): .

  • Dynamic Range Compression (DRC): compress the dynamic range of the sample using 4 parameterizations, 3 taken from the Dolby E standard [29] and 1 (radio) from the icecast online radio streaming server [30]: {music standard, film standard, speech, radio}.

  • Background Noise (BG): mix the sample with another recording containing background sounds from different types of acoustic scenes. Each sample was mixed with 4 acoustic scenes: {street-workers, street-traffic, street-people, park}111We ensured these scenes did not contain any of the target sound classes.. Each mix was generated using where is the audio signal of the original sample, is the signal of the background scene, and

    is a weighting parameter that was chosen randomly for each mix from a uniform distribution in the range

    .

The augmentations were applied using the MUDA library [22], to which the reader is referred for further details about the implementation of each deformation. MUDA takes an audio file and corresponding annotation file in JAMS format [31, 32], and outputs the deformed audio together with an enhanced JAMS file containing all the parameters used for the deformation. We have ported the original annotations provided with the dataset used for evaluation in this study (see below) into JAMS files and made them available online along with the post-deformation JAMS files.222https://github.com/justinsalamon/UrbanSound8K-JAMS

Ii-C Evaluation

To evaluate the proposed CNN architecture and the influence of the different augmentation sets we use the UrbanSound8K dataset [17]. The dataset is comprised of 8732 sound clips of up to 4 s in duration taken from field recordings. The clips span 10 environmental sound classes: air conditioner, car horn, children playing, dog bark, drilling, engine idling, gun shot, jackhammer, siren and street music. By using this dataset we can compare the results of this study to previously published approaches that were evaluated on the same data, including the dictionary learning approach proposed in [7]

(spherical k-means, henceforth SKM) and the CNN proposed in

[11] (PiczakCNN) which has a different architecture to ours and did not employ augmentation during training. PiczakCNN has 2 convolutional layers followed by 3 dense layers, the filters of the first layer are “tall” and span almost the entire frequency dimension of the input, and the network operates on 2 input channels: log mel-spectra and their deltas.

The proposed approach and those used for comparison in this study are evaluated in terms of classification accuracy. The dataset comes sorted into 10 stratified folds, and all models were evaluated using 10-fold cross validation, where we report the results as a box plot generated from the accuracy scores of the 10 folds. For training the proposed CNN architecture we use 1 of the 9 training folds in each split as a validation set for identifying the training epoch that yields the best model parameters when training with the remaining 8 folds.

Iii Results

Fig. 1: Left of the dashed line: classification accuracy without augmentation – dictionary learning (SKM [7]), Piczak’s CNN (PiczakCNN [11]) and the proposed model (SB-CNN). Right of the dashed line: classification accuracy for SKM and SB-CNN with augmentation.
Fig. 2:

(a) Confusion matrix for the proposed SB-CNN model with augmentation. (b) Difference between the confusion matrices yielded by SB-CNN with and without augmentation: negative values (red) off the diagonal mean the confusion is reduced with augmentation, positive values (blue) off the diagonal mean the confusion is increased with augmentation. The positive values (blue) along the diagonal indicate that overall the classification accuracy is improved for all classes with augmentation.

Fig. 3: Difference in classification accuracy for each class as a function of the augmentation applied: Time Shift (TS), Pitch Shift (PS1 and PS2), Dynamic Range Compression (DRC), Background Noise (BG) and all combined (All).

The classification accuracy of the proposed CNN model (SB-CNN) is presented in Figure 1. To the left of the dashed line we present the performance of the proposed model on the original datast without augmentation. For comparison, we also provide the accuracy obtained on the same dataset by the dictionary learning approach proposed in [7] (SKM, using the best parameterization identified by the authors in that study) and the CNN proposed by Piczak [11] (PiczakCNN, using the best performing model variant (LP) proposed by the author). To the right of the dashed line we provide the performance of the SKM model and the proposed SB-CNN once again, this time when using the augmented dataset (all augmentations described in Section II-B combined) for training.

We see that the proposed SB-CNN performs comparably to SKM and PiczakCNN when training on the original dataset without augmentation (mean accuracy of 0.74, 0.73 and 0.73 for SKM, PiczakCNN and SB-CNN, respectively). The original dataset is not large/varied enough for the convolutional model to outperform the “shallow” SKM approach. However, once we increase the size/variance in the dataset by means of the proposed augmentations, the performance of the proposed model increases significantly, yielding a mean accuracy of 0.79. The corresponding per-class accuracies (with respect to the list of classes provided in Section

II-C) are 0.49, 0.90, 0.83, 0.90, 0.80, 0.80, 0.94, 0.68, 0.85, 0.84. Importantly, we note that while the proposed approach performs comparably to the “shallow” SKM learning approach on the original dataset, it significantly outperforms it (

according to a paired two-sided t-test) using the augmented training set. Furthermore, increasing the capacity of the SKM model (by increasing the dictionary size from

to ) did not yield any further improvement in classification accuracy. This indicates that the superior performance of the proposed SB-CNN is not only due to the augmented training set, but rather thanks to the combination of an augmented training set with the increased capacity and representational power of the deep learning model.

In Figure 2(a) we provide the confusion matrix yielded by the proposed SB-CNN model using the augmented training set, and in Figure 2(b) we provide the difference between the confusion matrices yielded by the proposed model with and without augmentation. From the latter we see that overall the classification accuracy is improved for all classes with augmentation. However, we observe that augmentation can also have a detrimental effect on the confusion between specific pairs of classes. For instance, we note that while the confusion between the air conditioner and drilling classes is reduced with augmentation, the confusion between the air conditioner and the engine idling classes is increased.

To gain further insight into the influence of each augmentation set on the performance of the proposed model for each sound class, in Figure 3 we present the difference in classification accuracy (the delta) when adding each augmentation set compared to using only the original training set, broken down by sound class. At the bottom of the plot we provide the delta scores for all classes combined. We see that most classes are affected positively by most augmentation types, but there are some clear exceptions. In particular, the air conditioner class is negatively affected by the DRC and BG augmentations. Given that this sound class is characterized by a continuous “hum” sound, often in the background, it makes sense that the addition of background noise that can mask the presence of this class will deteriorate the performance of the model. In general, the pitch augmentations have the greatest positive impact on performance, and are the only augmentation sets that do not have a negative impact on any of the classes. Only half of the classes benefit from applying all augmentations combined more than they would from the application of a subset of augmentations. This suggests that the performance of the model could be improved further by the application of class-conditional augmentation during training – one could use the validation set to identify which augmentations improve the model’s classification accuracy for each class, and then selectively augment the training data accordingly. We intend to explore this idea further in future work.

Iv Conclusion

In this article we proposed a deep convolutional neural network architecture which, in combination with a set of audio data augmentations, produces state-of-the-art results for environmental sound classification. We showed that the improved performance stems from the combination of a deep, high-capacity model and an augmented training set: this combination outperformed both the proposed CNN without augmentation and a “shallow” dictionary learning model with augmentation. Finally, we examined the influence of each augmentation on the model’s classification accuracy. We observed that the performance of the model for each sound class is influenced differently by each augmentation set, suggesting that the performance of the model could be improved further by applying class-conditional data augmentation.

Acknowledgment

The authors would like to thank Brian McFee and Eric Humphrey for their valuable feedback, and Karol Piczak for providing details on the results reported in [11]. This work was partially supported by NSF award 1544753.

References

  • [1] S. Chu, S. Narayanan, and C.-C. Kuo, “Environmental sound recognition with time-frequency audio features,” IEEE Trans. on Audio, Speech, and Language Processing, vol. 17, no. 6, pp. 1142–1158, Aug. 2009.
  • [2] R. Radhakrishnan, A. Divakaran, and P. Smaragdis, “Audio analysis for surveillance applications,” in IEEE Worksh. on Apps. of Signal Processing to Audio and Acoustics (WASPAA’05), New Paltz, NY, USA, Oct. 2005, pp. 158–161.
  • [3] C. Mydlarz, J. Salamon, and J. P. Bello, “The implementation of low-cost urban acoustic monitoring devices,” Applied Acoustics, vol. In Press, 2016.
  • [4] A. Mesaros, T. Heittola, O. Dikmen, and T. Virtanen, “Sound event detection in real life recordings using coupled matrix factorization of spectral representations and class activity annotations,” in International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brisbane, Australia, Apr. 2015, pp. 151–155.
  • [5] E. Benetos, G. Lafay, M. Lagrange, and M. D. Plumbley, “Detection of overlapping acoustic events using a temporally-constrained probabilistic model,” in IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Shanghai, China, Mar. 2016, pp. 6450–6454.
  • [6]

    V. Bisot, R. Serizel, S. Essid, and G. Richard, “Acoustic scene classification with matrix factorization for unsupervised feature learning,” in

    IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Shanghai, China, Mar. 2016, pp. 6445–6449.
  • [7] J. Salamon and J. P. Bello, “Unsupervised feature learning for urban sound classification,” in IEEE Int. Conf. on Acoustics, Speech and Signal Processing (ICASSP), Brisbane, Australia, Apr. 2015, pp. 171–175.
  • [8] ——, “Feature learning with deep scattering for urban sound analysis,” in 2015 European Signal Processing Conference, Nice, France, Aug. 2015.
  • [9] J. T. Geiger and K. Helwani, “Improving event detection for audio surveillance using gabor filterbank features,” in 23rd European Signal Processing Conference (EUSIPCO), Nice, France, Aug. 2015, pp. 714–718.
  • [10] E. Cakir, T. Heittola, H. Huttunen, and T. Virtanen, “Polyphonic sound event detection using multi label deep neural networks,” in 2015 International Joint Conference on Neural Networks (IJCNN), July 2015, pp. 1–7.
  • [11] K. J. Piczak, “Environmental sound classification with convolutional neural networks,” in 25th International Workshop on Machine Learning for Signal Processing (MLSP), Boston, MA, USA, Sep. 2015, pp. 1–6.
  • [12] D. Giannoulis, E. Benetos, D. Stowell, M. Rossignol, M. Lagrange, and M. D. Plumbley, “Detection and classification of acoustic scenes and events: An IEEE AASP challenge,” in IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA), New Paltz, NY, USA, Oct. 2013, pp. 1–4.
  • [13] D. Stowell, D. Giannoulis, E. Benetos, M. Lagrange, and M. D. Plumbley, “Detection and classification of acoustic scenes and events,” IEEE Transactions on Multimedia, vol. 17, no. 10, pp. 1733–1746, Oct. 2015.
  • [14] S. Sigtia, A. Stark, S. Krstulovic, and M. Plumbley, “Automatic environmental sound recognition: Performance versus computational cost,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. PP, no. 99, pp. 1–1, 2016.
  • [15] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner, “Gradient-based learning applied to document recognition,” Proceedings of the IEEE, vol. 86, no. 11, pp. 2278–2324, Nov. 1998.
  • [16] C. V. Cotton and D. P. W. Ellis, “Spectral vs. spectro-temporal features for acoustic event detection,” in IEEE Worksh. on Apps. of Signal Processing to Audio and Acoustics (WASPAA), New Paltz, NY, USA, Oct. 2011, pp. 69–72.
  • [17] J. Salamon, C. Jacoby, and J. P. Bello, “A dataset and taxonomy for urban sound research,” in 22nd ACM International Conference on Multimedia (ACM-MM’14), Orlando, FL, USA, Nov. 2014, pp. 1041–1044.
  • [18] K. J. Piczak, “ESC: Dataset for environmental sound classification,” in 23rd ACM International Conference on Multimedia, Brisbane, Australia, Oct. 2015, pp. 1015–1018.
  • [19] A. Mesaros, E. Fagerlund, A. Hiltunen, T. Heittola, and T. Virtanen, “TUT sound events 2016, development dataset,” Available online: http://dx.doi.org/10.5281/zenodo.45759 (accessed 10 August 2016), 2016. [Online]. Available: http://dx.doi.org/10.5281/zenodo.45759
  • [20]

    A. Krizhevsky, I. Sutskever, and G. Hinton, “ImageNet classification with deep convolutional neural networks,” in

    Advances in neural information processing systems (NIPS), 2012, pp. 1097–1105.
  • [21] P. Y. Simard, D. Steinkraus, and J. C. Platt, “Best practices for convolutional neural networks applied to visual document analysis.” in International Conference on Document Analysis and Recognition, vol. 3, Edinburgh, Scottland, UK, Aug. 2003, pp. 958–962.
  • [22] B. McFee, E. Humphrey, and J. Bello, “A software framework for musical data augmentation,” in 16th Int. Soc. for Music Info. Retrieval Conf., Malaga, Spain, Oct. 2015, pp. 248–254.
  • [23]

    G. Parascandolo, H. Huttunen, and T. Virtanen, “Recurrent neural networks for polyphonic sound event detection in real life recordings,” in

    International Conference on Acoustics, Speech and Signal Processing (ICASSP), Shanghai, China, Mar. 2016, pp. 6440–6444.
  • [24] D. Bogdanov, N. Wack, E. Gómez, S. Gulati, P. Herrera, O. Mayor, G. Roma, J. Salamon, J. Zapata, and X. Serra, “ESSENTIA: an audio analysis library for music information retrieval,” in 14th Int. Soc. for Music Info. Retrieval Conf., Curitiba, Brazil, Nov. 2013, pp. 493–498.
  • [25] L. Bottou, “Large-scale machine learning with stochastic gradient descent,” in 19th International Conference on Computational Statistics (COMPSTAT), Paris, France, Aug. 2010, pp. 177–186. [Online]. Available: http://dx.doi.org/10.1007/978-3-7908-2604-3_16
  • [26] N. Srivastava, G. E. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov, “Dropout: a simple way to prevent neural networks from overfitting,” Journal of Machine Learning Research, vol. 15, no. 1, pp. 1929–1958, 2014.
  • [27] S. Dieleman, J. Schlüter, C. Raffel, E. Olson, S. Sønderby, D. Nouri, D. Maturana, M. Thoma, E. Battenberg, and J. Kelly, “Lasagne: First release,” https://github.com/Lasagne/Lasagne, 2015. [Online]. Available: http://dx.doi.org/10.5281/zenodo.27878
  • [28] B. McFee and E. J. Humphrey, “pescador: 0.1.0,” https://github.com/bmcfee/pescador, 2015. [Online]. Available: http://dx.doi.org/10.5281/zenodo.32468
  • [29] Dolby Labortories, Inc., “Standards and practices for authoring Dolby Digital and Dolby E bitstreams,” 2002.
  • [30] “Icecast streaming media server forum,” (accessed 12 August 2016). [Online]. Available: http://icecast.imux.net/viewtopic.php?t=3462
  • [31] E. J. Humphrey, J. Salamon, O. Nieto, J. Forsyth, R. Bittner, and J. P. Bello, “JAMS: A JSON annotated music specification for reproducible MIR research,” in 15th Int. Soc. for Music Info. Retrieval Conf., Taipei, Taiwan, Oct. 2014, pp. 591–596.
  • [32] B. McFee, E. J. Humphrey, O. Nieto, J. Salamon, R. Bittner, J. Forsyth, and J. P. Bello, “Pump up the JAMS: V0.2 and beyond,” Music and Audio Research Laboratory, New York University, Tech. Rep., Oct. 2015.