Machine Learning

What is Machine Learning?

Artifical Intelligence (AI): A program that can sense, reason, and adapt.

Machine Learning:

  1. A type of AI where performance improves as they are exposed to more data.
  2. It uses a lot of data to find patterns.

Deep Learning:

  1. Type of machine learning where machines can basically do tasks that would usually require human intelligence.
  2. In deep learning, the machines learn by experience and gain skills without requiring any human involvement.
  3. The artificial neural networks, algorithms inspired by the human brain, learn from large amounts of data. It would perform tasks repeatedly, each time editing it a bit to improve the outcome so that it can be more accurate.

Difference Between Machine Learning and Deep Learning:

  1. In machine learning, you have to tell the algorithm what the defining features are.
  2. In deep learning, you can just give the neural network the data and it will figure out the defining features.
training

Computer Vision

Computer Vision is field of computer science that deals with how computers can gain understanding of images.
Computer Vision is useful for a wide range of problems, from self driving cars to an app that applies filters to your face.

Machine Learning and Computer Vision

We used a Convolutional Neural Network (a type of Machine Learning algroithm) to deal with images.
Machine Learning with images is a bit harder to do because of two properties of images. conv

1. Spatial information

If you looked at a bunch of pixels in a line, you probably wouldn't understand what the picture is of.
By looking at a 2d picture vs a line of pixels, we are able to see what it is a picture of.
In a Convolutional Neural Network, we use a Convolutional Layer which contains filters to preserve the spatial information.

2. Dealing with many values

In a image, there are a lot of values.
There are many, many pixels in a single image.
Not only that, but each pixel has three values (Red Green Blue Values)!
To deal with this, we use Pooling Layers which help us reduce the numbers of parameters and weights that we have to deal with in a network.

How Does This Apply to Our Project?

Our project is essentially the first part of the process of using convolutional neural networks to predict what ocean eddies will look like in the future. By analyzing the complicated patterns of vertical velocity in our large 20 year dataset, an algorithm can predict where these patterns will show up later on. This can clue scientists in to important ocean activity before it occurs, giving them a better chance to study it.

Our data can be used to train a computer vision algorithm. Training is putting lots of data through the algorithm to teach it how it should respond to new data. These are the steps for using training data on an algorithm:

  1. Give the network an input and hide the label
  2. Pass the input through the network using the activation function at each neuron
  3. The network makes an output, which is a guess
  4. Compare the guess to the label to compute the loss
  5. Find the values of the weights that minimize the loss (back propagation)

We have not done this with our dataset yet, but for this data, we would feed the algorithm multiple weeks worth of data, then have it predict how the data for the week after those would look. The algorithm’s guess (or output) would then be compared to the real data for that week (the label), so it can recalibrate the weights of the network to make future predictions more correct through back propagation. Here is an example of this process from our mentor Meera's work:

Meera's data