Last week we discussed Machine Learning and I promised to
talk about ways to improve machine learning techniques. The latest of these is through the
application of Quantum Computing to machine learning algorithms. I know what you are thinking, “This article
is about new technologies.”, but you would be wrong.
Machine learning was first invented before the modern
computer. It was invented in 1949 by
Donald Hebb and based on interactions within the human brain. Hebb wrote, “When one
cell repeatedly assists in firing another, the axon of the first cell develops
synaptic knobs (or enlarges them if they already exist) in contact with the
soma of the second cell.” Translating Hebb’s concept to machines we narrow it
down to a weighting mechanism between artificial neurons and their relationship
with each other.
In neural networks today we base the learning outcome on a
scoring mechanism where the score determines the decision. For example, in a
self-driving car, a high score might mean, “hit the brakes there is a child in
the road.”, and a low score means, “keep moving everything is fine.” We base
this scoring on a series of artificial neurons that add together all the
various inputs of the system to arrive at a score.
The neural network is trained by adjusting the weights of the
links between the neurons through feeding in a known set of training data and
adjusting the weights until the expected score for the training set is output
correctly for every item in the training set. The training requires adjusting
every neural link many times and processing the entire training set after each
change, as a result the training can take weeks. This is where quantum computing comes in to
play.
Quantum Computing, which is also not so new, first
conceptualized in the early 1980s by Paul Benioff and very shortly after
Richard Feynman and Yuri Manin suggested that a quantum mechanical computer
like Benioff proposed could perform calculations that are out of reach for
classical computers. This comes about
because of their ability to examine the results of multiple input scenarios
simultaneously.
Quantum computers can be used to determine the weighting of
the links between the artificial neurons in a fraction of the time because of
their ability to test all weights simultaneously, or all input simultaneously
depending on the exact learning method employed. The first method is to use the quantum bits
(qubits) to represent the neuron weights, allowing you to test all the input
data in sequence and pick the best weights for the training data. The second
method is to represent the data with the qubits and test all the possible
weights in sequence. The fastest method
depends on the size of the neural network and training data. If your quantum
system is the large enough you want to represent the larger of the two using
qubits.
To make it a little easier to understand let us think about
a very simple test case with four neurons and a training data set with 32
values. This would require you to check weights of four links requiring 16
total tests, for each of the 32 input values for a total of 512 tests using
classic machine learning. Because the
qubits can set all possible values at once if we represent the four weights
with four qubits we run all weights at once and only perform 32 tests. If we represent the training data with the
qubits we can run all inputs at once and only need to run 16 tests. If we bring these values into current
training model sizes you begin to see the power. Modern quantum computers are
limited to 52 qubits which allows for two the 52 power weights that can be
tested simultaneously, which will reduce the total number of steps for training
a 52 neuron network by roughly the number of atoms in the universe.
No comments:
Post a Comment