Deep Learning

From EMC23 - Satellite Of Love
Revision as of 13:27, 11 October 2021 by Techbot (talk | contribs)
Jump to navigation Jump to search

Machine Learning is a subset of A.I

Definition[edit]

In traditional problem-solving with software, a person analyzes a problem and engineers a solution in code to solve that problem.
In machine learning the problem solver abstracts away part of their solution as a flexible component called a model, and uses a special program called a model training algorithm to adjust that model to real-world data. The result is a trained model which can be used to predict outcomes that are not part of the data set used to train it.

Applications[edit]

  • Speech Recognition
  • Voice Based emotion classification
  • Noise recognition
  • Musical Genre Instrument Mood Classificatiob
  • Music Tagging
  • Music Generation

Supervised Learning[edit]

In supervised learning, every training sample from the dataset has a corresponding label or output value associated with it. As a result, the algorithm learns to predict labels or output values.

Unsupervised Learning[edit]

In unsupervised learning, there are no labels for the training data. A machine learning algorithm tries to learn the underlying patterns or distributions that govern the data.

Unsupervised learning involves using data that doesn't have a label. One common task is called clustering. Clustering helps to determine if there are any naturally occurring groupings in the data.

Reinforcement Learning[edit]

In reinforcement learning, the algorithm figures out which actions to take in a situation to maximize a reward (in the form of a number) on the way to reaching a specific goal.

Machine Learning architectures used for music generation[edit]

ML is a generic problem solver. A model can solve many problems inclusding ones not dicovered until the model is in action. The Model is created from data, through an iterative process the model is 'fitted' to the edata. With the final model inferences are made.

  • Define the Problem
  • Build the Dataset
  • Train the M odel
  • Evaluate the Model
  • Use the Model

A task is supervised if you are using labeled data. We use the term labeled to refer to data that already contains the solutions, called labels. In supervised learning, there are two main identifiers you will see in machine learning:

   A categorical label has a discrete set of possible values. Furthermore, when you work with categorical labels, you often carry out classification tasks*, which are part of the supervised learning family.
   A continuous (regression) label does not have a discrete set of possible values, which often means you are working with numerical data. 
  1. Data Collection

Does the data you've collected match the machine learning task and problem you have defined?

  1. Data Inspection
  • Outliers
  • Missing or incomplete values
  • Data that needs to be transformed or preprocessed so it's in the correct format to be used by your model
  1. Summary Statistics
check that your data is in line with the underlying assumptions

With many statistical tools, you can calculate things like the mean, inner-quartile range (IQR), and standard deviation. These tools can give you insight into the scope, scale, and shape of the dataset.

  1. Data Visualisation

You can use data visualization to see outliers and trends in your dat


Splitting your dataset gives you two sets of data:

   Training dataset: The data on which the model will be trained. Most of your data will be here. Many developers estimate about 80%.
   Test dataset: The data withheld from the model during training, which is used to test how well your model will generalize to new data.

The model training algorithm iteratively updates a model's parameters to minimize some loss function.

Model parameters[edit]

Model parameters are settings or configurations the training algorithm can update to change how the model behaves, such as weights and biases. Weights, which are values that change as the model learns, are more specific to neural networks.

Loss function[edit]

A loss function is used to codify the model’s distance from this goal.


Linear models Tree-based models Deep learning models A short (but not complete!) list of noteworthy examples includes:

   FFNN: The most straightforward way of structuring a neural network, the Feed Forward Neural Network (FFNN) structures neurons in a series of layers, with each neuron in a layer containing weights to all neurons in the previous layer.
   CNN: Convolutional Neural Networks (CNN) represent nested filters over grid-organized data. They are by far the most commonly used type of model when processing images.
   RNN/LSTM: Recurrent Neural Networks (RNN) and the related Long Short-Term Memory (LSTM) model types are structured to effectively represent for loops in traditional computing, collecting state while iterating over some object. They can be used for processing sequences of data.
   Transformer: A more modern replacement for RNN/LSTMs, the transformer architecture enables training over larger datasets involving sequences of data.


Model Evaluation[edit]

Log loss seeks to calculate how uncertain your model is about the predictions it is generating.

Model Accuracy is the fraction of predictions a model gets right.

1. R Square/Adjusted R Square 2. Mean Square Error(MSE)/Root Mean Square Error(RMSE) 3. Mean Absolute Error(MAE) Things to think about

There are many different tools that can be used to evaluate a linear regression model. Here are a few examples:

   Mean absolute error (MAE): This is measured by taking the average of the absolute difference between the actual values and the predictions. Ideally, this difference is minimal.
   Root mean square error (RMSE): This is similar MAE, but takes a slightly modified approach so values with large error receive a higher penalty. RMSE takes the square root of the average squared difference between the prediction and the actual value.
   Coefficient of determination or R-squared (R^2): This measures how well-observed outcomes are actually predicted by the model, based on the proportion of total variation of outcomes.


Accuracy False positive rate Precision

Confusion matrix False negative rate Recall

F1 ScoreLog LossROC curve

Negative predictive value Specificity

Model Inference[edit]

   * Generating predictions.
   * Finding patterns in your data.
   * Using a trained model.
   * Testing your model on data it has not seen before.

Architectural Patterns[edit]

which could be applied to them)

• convolutional,

• conditioning,

• adversarial.


From this basic building block, we will describe in the following sections the main types of deep learning architectures used for music generation (as well as for other purposes):

• feedforward,

• autoencoder,

• restricted Boltzmann machine (RBM),

• recurrent (RNN).


Python[edit]

Librosa is used to analyse and manipulate audio

Tensorflow is used to train models

Keras High Level Library for Tensorflow

SkLearn statistical library with examples and tutorials

Tutorials[edit]

The Sound of AI[edit]

Valerio Velardo - The Sound of AI

Links[edit]

Audio Handling Basics: Process Audio Files In Command-Line or Python

https://benhayes.net/projects/nws/#audio-examples

Do Androids Dream of Electric Beats?
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
Intro to Audio Analysis: Recognizing Sounds Using Machine Learning
https://magenta.tensorflow.org/music-vae
https://musicalmetacreation.org/mume2018/proceedings/Sturm.pdf
https://ccrma.stanford.edu/~blackrse/algorithm.html
https://magenta.tensorflow.org/music-vae
https://mirg.city.ac.uk/codeapps/the-magnatagatune-dataset
https://docs.microsoft.com/en-us/cognitive-toolkit/
https://scikit-learn.org/stable/
https://pythonrepo.com/repo/nerdyrodent-VQGAN-CLIP-python-deep-learning

Terminology[edit]

Deep learning is a class of machine learning algorithms that[12](pp199–200) uses multiple layers to progressively extract higher-level features from the raw input.

Learning can be supervised, semi-supervised or unsupervised

Impute is a common term referring to different statistical tools which can be used to calculate missing values from your dataset. Outliers are data points that are significantly different from others in the same sample.

FFNN: The most straightforward way of structuring a neural network, the Feed Forward Neural Network (FFNN) structures neurons in a series of layers, with each neuron in a layer containing weights to all neurons in the previous layer.
CNN: Convolutional Neural Networks (CNN) represent nested filters over grid-organized data. They are by far the most commonly used type of model when processing images.
RNN/LSTM: Recurrent Neural Networks (RNN) and the related Long Short-Term Memory (LSTM) model types are structured to effectively represent for loops in traditional computing, collecting state while iterating over some object. They can be used for processing sequences of data.
Transformer: A more modern replacement for RNN/LSTMs, the transformer architecture enables training over larger datasets involving sequences of data.


Bag of words: A technique used to extract features from the text. It counts how many times a word appears in a document (corpus), and then transforms that information into a dataset.

A categorical label has a discrete set of possible values, such as "is a cat" and "is not a cat."

Clustering. Unsupervised learning task that helps to determine if there are any naturally occurring groupings in the data.

CNN: Convolutional Neural Networks (CNN) represent nested filters over grid-organized data. They are by far the most commonly used type of model when processing images.

A continuous (regression) label does not have a discrete set of possible values, which means possibly an unlimited number of possibilities.

Data vectorization: A process that converts non-numeric data into a numerical format so that it can be used by a machine learning model.

Discrete: A term taken from statistics referring to an outcome taking on only a finite number of values (such as days of the week).

FFNN: The most straightforward way of structuring a neural network, the Feed Forward Neural Network (FFNN) structures neurons in a series of layers, with each neuron in a layer containing weights to all neurons in the previous layer.

Hyperparameters are settings on the model which are not changed during training but can affect how quickly or how reliably the model trains, such as the number of clusters the model should identify.

Log loss is used to calculate how uncertain your model is about the predictions it is generating.

Hyperplane: A mathematical term for a surface that contains more than two planes.

Impute is a common term referring to different statistical tools which can be used to calculate missing values from your dataset.

label refers to data that already contains the solution.

loss function is used to codify the model’s distance from this goal

Machine learning, or ML, is a modern software development technique that enables computers to solve problems by using examples of real-world data.

Model accuracy is the fraction of predictions a model gets right. Discrete: A term taken from statistics referring to an outcome taking on only a finite number of values (such as days of the week). Continuous: Floating-point values with an infinite range of possible values. The opposite of categorical or discrete values, which take on a limited number of possible values.

Model inference is when the trained model is used to generate predictions.

model is an extremely generic program, made specific by the data used to train it.

Model parameters are settings or configurations the training algorithm can update to change how the model behaves.

Model training algorithms work through an interactive process where the current model iteration is analyzed to determine what changes can be made to get closer to the goal. Those changes are made and the iteration continues until the model is evaluated to meet the goals.

Neural networks: a collection of very simple models connected together. These simple models are called neurons. The connections between these models are trainable model parameters called weights.

Outliers are data points that are significantly different from others in the same sample.

Plane: A mathematical term for a flat surface (like a piece of paper) on which two points can be joined by a straight line.

Regression: A common task in supervised machine learning.

In reinforcement learning, the algorithm figures out which actions to take in a situation to maximize a reward (in the form of a number) on the way to reaching a specific goal.

RNN/LSTM: Recurrent Neural Networks (RNN) and the related Long Short-Term Memory (LSTM) model types are structured to effectively represent for loops in traditional computing, collecting state while iterating over some object. They can be used for processing sequences of data.

Silhouette coefficient: A score from -1 to 1 describing the clusters found during modeling. A score near zero indicates overlapping clusters, and scores less than zero indicate data points assigned to incorrect clusters. A

Stop words: A list of words removed by natural language processing tools when building your dataset. There is no single universal list of stop words used by all-natural language processing tools.

In supervised learning, every training sample from the dataset has a corresponding label or output value associated with it. As a result, the algorithm learns to predict labels or output values.

Test dataset: The data withheld from the model during training, which is used to test how well your model will generalize to new data.

Training dataset: The data on which the model will be trained. Most of your data will be here.

Transformer: A more modern replacement for RNN/LSTMs, the transformer architecture enables training over larger datasets involving sequences of data.

In unlabeled data, you don't need to provide the model with any kind of label or solution while the model is being trained.

In unsupervised learning, there are no labels for the training data. A machine learning algorithm tries to learn the underlying patterns or distributions that govern the data.

 Machine learning is synthesizing death metal. It might make your death metal radio DJ nervous – but it could also mean music software works with timbre and time in new ways. That news – plus some comical abuse of neural networks for writing genre-specific lyrics in genres like country – next.

Peter Kirn http://cdm.link/2019/04/now-ai-takes-on-writing-death-metal-country-music-hits-more/