WEBVTT
00:20.020 --> 00:27.020
The topic for today is visual motor coordination
using quantum clustering. Last class we discussed
00:28.030 --> 00:33.500
visual motor coordination using a different
technique that is the Kohonen SOM (Self Organizing
00:33.500 --> 00:40.500
Map). Today we will present a different approach,
little more introspective. It may be a little
00:40.800 --> 00:47.800
bit difficult for you to follow, but when
you go through the class, you may be interested
00:51.690 --> 00:58.690
to do something in this area if you have a
liking for it. This is the eighth lecture
00:58.800 --> 01:05.800
on this component neural control, which is
module 3 of our course on intelligent control
01:06.850 --> 01:12.070
- Visual motor coordination using quantum
clustering.
01:12.070 --> 01:19.070
Presentation outline: We will be talking about
Quantum Clustering. Earlier, we did the clustering
01:21.640 --> 01:28.640
using Kohonen self organizing map. We have
also discussed what the meaning of clustering
01:29.410 --> 01:35.830
in general notion of clustering is. We will
now be talking about quantum clustering, the
01:35.830 --> 01:41.250
motivation, the algorithm and then general
results.
01:41.250 --> 01:46.030
We will apply this quantum clustering to visual
motor coordination which we have already discussed
01:46.030 --> 01:52.530
in the last class. The problem of visual motor
coordination, using quantum clustering, training
01:52.530 --> 01:58.000
algorithm and comparison with Kohonen SOM
based algorithm.
01:58.000 --> 02:04.280
Quantum clustering and overview: those who
want further information about quantum clustering
02:04.280 --> 02:11.280
I would suggest you read the paper published
by David Horn and Assaf Gottlieb - The Method
02:15.040 --> 02:22.040
of Quantum Clustering, 2001. This particular
quantum clustering algorithm is motivated
02:22.310 --> 02:29.000
by scale space algorithm using a Parzen window
estimator. The scale space probability distribution
02:29.000 --> 02:34.170
is the solution of this Schrödinger wave
equation with a potential function V( x) that
02:34.170 --> 02:40.350
has a similarity to the cost function.
02:40.350 --> 02:47.350
When we do any kind of clustering, the cluster
center and the data point should always minimize
02:52.240 --> 02:59.240
the cost function. We always try to minimize
the cost function. Let us see the 2-dimensional
03:01.150 --> 03:08.150
work space having some data points here and
there, some sparsely there and lot of data
03:12.940 --> 03:19.940
point again here. Obviously what I would do
is find one cluster point here; another cluster
03:20.930 --> 03:27.930
point here; another cluster point here and
may be another cluster point here. The objective
03:28.470 --> 03:35.470
xj c is the cluster point and this j would
vary from 1 to 4 and xi here represents all
03:37.880 --> 03:44.430
the data points. We would try to find out
how far are these various data points from
03:44.430 --> 03:51.430
these cluster points and the objective of
clustering is to minimize this distance (xj
03:54.950 --> 04:01.950
c minus xi). xi represents all the data points
in the data space and xj c are the few clusters
04:08.620 --> 04:15.620
we have selected. In this case j is 1, 2,
3, 4 and so 4 clusters. The clusters must
04:17.829 --> 04:24.829
be selected in such a way that this particular
cost function is minimized. The meaning of
04:26.210 --> 04:33.210
the potential function V(x) describes the
cluster centers. In Kohonen network model
04:37.919 --> 04:44.919
that given a work space, and a data space
with innumerable data, we try to represent
04:49.319 --> 04:56.319
those data with minimal representatives and
the whole purpose of a clustering is to how
04:57.870 --> 05:03.749
to find these cluster points and that we have
seen how to solve that problem using Kohonen
05:03.749 --> 05:10.689
self organizing maps. Scale space clustering,
you can refer to the papers by Robert published
05:10.689 --> 05:12.689
in 1997.
05:12.689 --> 05:18.550
Given a set of observations from the set S
over a d-dimensional space, S is defined as
05:18.550 --> 05:25.529
x1, x2, until xN. A non-parametric estimate
of the probability density function of x belonging
05:25.529 --> 05:32.499
to S as the weighted combination of a set
of basis functions fi or kernels evaluated
05:32.499 --> 05:39.499
at each observation xi, the probability is
given as wifi (x). When we look at the data
05:56.340 --> 06:03.340
space, what is the probability that this data
is likely to be at a specific point in the
06:07.990 --> 06:09.710
data space?
06:09.710 --> 06:15.460
Considering the Parzen window’s approach,
where the weight wi is independent of the
06:15.460 --> 06:22.460
position and then modulating the above function
with an optimal filter with scale s, ks (x),
06:22.909 --> 06:29.909
we get the following. This is the probability
distribution function for scale space clustering.
06:33.849 --> 06:39.819
For the estimate to be a valid probability
density function, the function (psi)i x must
06:39.819 --> 06:46.819
be a positive symmetric function and a popular
choice of this is Gaussian filter.
06:47.180 --> 06:54.180
What is normally done is that the given the
cluster points –
how do I find when datas are everywhere? Find
07:06.460 --> 07:13.460
out a cluster point that represents the data,
we have a Gaussian function e to the power
07:14.559 --> 07:21.559
minus xj c minus x whole square by 2 sigma
square. This is the normal Gaussian function
07:29.830 --> 07:36.830
and what we would like to do is that we should
maximize, because when this is minimum, this
07:45.789 --> 07:52.789
exponential function to the power is negative.
Obviously, that has to be maximum and if this
07:53.809 --> 08:00.809
is minimum, ideally this should be 0, then
e to the power minus 0 is 1 and that is the
08:01.210 --> 08:03.210
maximum value.
08:03.210 --> 08:08.449
So in quantum clustering algorithm, a time
independent Schrödinger equation is defined
08:08.449 --> 08:15.449
as H psi (H is Hamiltonian) minus sigma square
upon 2, gradient square plus V (x) psi (x)
08:19.689 --> 08:26.689
is E psi (x) where psi (x) is the Eigen function
and E is the Eigen value. Given V (x) the
08:29.930 --> 08:36.930
potential function, Schrödinger equation
finds the psi (x) of the Eigen function. In
08:40.430 --> 08:47.430
quantum clustering, psi (x) is assumed and
V (x) is found out. Normally in Schrödinger
08:48.670 --> 08:55.670
equation, we supply the potential function
and see what is psi(x). But here given psi
09:00.130 --> 09:07.130
(x), V (x) is to be found and Q C is an inverse
process. Considering Robert’s probability
09:08.930 --> 09:15.740
distribution as a wave function psi, we have
the following and we assume our weight packets-
09:15.740 --> 09:22.740
to half Gaussian nature. So following scale
space clustering approach, the maxima of the
09:24.920 --> 09:31.090
above wave function gives the location of
the cluster centers. That is, the ground state
09:31.090 --> 09:38.090
of Schrödinger potential gives the cluster
centers. The maximum of this is the cluster
09:39.450 --> 09:46.450
center. In the same way the minimum of this
is also the cluster centre.
09:46.700 --> 09:52.970
A potential function can be discussed as follows.
IRIS flower problem is a 3-class problem with
09:52.970 --> 09:59.970
four variables. The three classes are shown
in three colors: red, blue and green. The
10:01.370 --> 10:08.370
potential function is plotted for every instance
or data point; where IRIS setosa is linearly
10:08.640 --> 10:15.640
separable and the other two classes are non-separable
to each other. In this case, the setosa is
10:20.500 --> 10:27.500
the red one and I can place a line by which
it is separable from the other two classes.
10:34.330 --> 10:41.330
But I cannot actually put a line because it
is a potential I have plotted for each data
10:50.950 --> 10:57.950
point and the potential function V (x). With
some raw data, I
map them in such a way that each class of
11:09.930 --> 11:16.930
data can be separated and so that they occupy
different zones. The raw data are all mixed
11:21.050 --> 11:28.050
and by doing some kind of operation on them,
can I separate those classes? This is the
11:30.020 --> 11:34.010
point of clustering.
11:34.010 --> 11:41.010
Potential versus wave function: As we said,
normal approach is to find out the Gaussian
11:43.630 --> 11:50.630
mixture model of the data points. While trying
to find out the cluster points, we maximize
11:58.150 --> 12:05.150
the Gaussian mixture model while deriving
the cluster centers. We showed that it is
12:05.190 --> 12:12.190
the same as finding the minima of the potential
function. The plot of potential function is
12:12.930 --> 12:17.990
a wave function source and that maxima of
the wave function are not so clearly defined.
12:17.990 --> 12:23.850
The minima of the potential function which
can be found in every cluster is actually
12:23.850 --> 12:30.850
the minimum and these are the maximum points
of the same IRIS data and you can easily see
12:36.140 --> 12:43.140
that the maximums here over various data points.
If I put a threshold here, these maximas will
12:50.150 --> 12:57.150
appear. In this case, if I put a threshold
here, I am getting all these cluster points;
12:58.420 --> 13:05.420
because they represent the minimum values.
Similarly if I go on, you have to compromise
13:07.040 --> 13:14.040
a lot to find some cluster points that means
I have to put a threshold in this level. So
13:16.100 --> 13:22.070
while putting threshold in this level, you
are compromising that means all data remain
13:22.070 --> 13:29.070
under the cluster point. So what you are doing
is that if I put a more reasonable threshold,
13:35.410 --> 13:42.410
using this wave equation and a potential,
the cluster points for every data point we
13:46.180 --> 13:53.180
are computing, what is the potential function
using the formula?
13:55.800 --> 14:02.800
We are finding out the Gaussian mixture model
function, we compute that for each data point
14:04.130 --> 14:10.360
we plot that and there is a fluctuation. How
do I find a cluster point? I find that as
14:10.360 --> 14:17.360
a cluster point for which the potential function
is minimum here and in this case the wave
14:17.600 --> 14:20.990
function or the Gaussian function is maximum.
14:20.990 --> 14:27.990
I put a threshold for this wave function here
and threshold for the potential function
over the entire range of the data, I have
14:39.680 --> 14:46.680
cluster centers. Here there is 1 cluster,
3 clusters, 2 clusters and multiple clusters,
14:49.900 --> 14:56.900
whereas if I look at the wave function side,
I have only clusters in this zone. I have
14:56.970 --> 15:03.970
no clusters in this zone and this entire zone
is unrepresented.
15:05.240 --> 15:12.240
In Quantum clustering, given psi the potential
function V is given by V x is E, which is
15:14.850 --> 15:21.850
the Eigen value and sigma square upon 2 into
gradient square into psi upon psi. If V is
15:22.840 --> 15:29.550
0, then the minimum is 0. If we have E equal
to minus min sigma square upon 2 into grade
15:29.550 --> 15:36.550
square psi upon psi. Since psi has no node,
E is the ground state energy of V, V being
15:39.540 --> 15:46.540
a non-negative function and E must be positive.
This gives E between 0 and d by 2; where E
15:48.210 --> 15:54.870
is equal to d by 2 which is the lowest Eigen
value of H determined by Harmonic oscillator
15:54.870 --> 15:57.630
problem.
15:57.630 --> 16:03.990
Quantum clustering implementation: This is
a wave function, Gaussian function; where
16:03.990 --> 16:10.279
q is 1 upon 2 sigma square, because this gives
the width. The initial estimate of the potential
16:10.279 --> 16:17.279
function V (x) is evaluated as minus d by
2 plus 1 upon 2 sigma square psi sigma i x
16:19.320 --> 16:26.140
minus xi whole square and this function e
to the power minus x minus xi whole square
16:26.140 --> 16:33.140
by 2 sigma square where d is the dimensionality
of the space. Evaluate E equal to negative
16:34.570 --> 16:41.430
of minimum of V(x). Transform V(x) to V(x)
plus E. The data points that are minima of
16:41.430 --> 16:48.430
the potential function V(x) which is equal
to 0 denotes the cluster centers. So we add
16:51.550 --> 16:55.490
this E to find out the cluster centers.
16:55.490 --> 17:02.490
In essence, the minima of the potential function
V is the same as the maxima of the wave function
17:03.420 --> 17:10.420
and based on that, cluster centers are decided
in quantum clustering using the minima of
17:10.779 --> 17:17.470
the potential function. E sets the scale on
which the minima or the cluster centers are
17:17.470 --> 17:24.470
observed; where to put the threshold is selected
by E. From earlier concept it determines where
17:32.059 --> 17:36.640
to put the thresholds, here or here.
17:36.640 --> 17:43.010
If I am putting the threshold at the low value,
I have fewer clusters and the moment I increase
17:43.010 --> 17:50.010
more and more, I have the number of clusters
more. This is adaptive. Depending on E, our
17:54.800 --> 18:01.800
cluster centers will change and E will depend
on 1 upon 2 sigma square. The only parameter
18:02.100 --> 18:09.100
which needs to vary is the width of the parameter
and q is 1 upon 2 sigma square. Higher q value
18:10.110 --> 18:17.110
gives more number of clusters. So if we want
more number of clusters, we increase the value
18:17.520 --> 18:18.720
of q.
18:18.720 --> 18:25.720
Here is an example: If you look at here the
IRIS data set, first two principle components
18:27.510 --> 18:34.510
you plot and you have these 3 different classes.
We find one class is completely separable
18:35.090 --> 18:42.090
from the other class, but these two class
are all mixed. So we have to create a method
18:43.040 --> 18:48.780
by which we can linearly separate the green
from the blue. The IRIS problem is a 3-class
18:48.780 --> 18:54.110
problem with 4 dimensions considering the
first two principle components, a distribution
18:54.110 --> 19:00.180
as shown above is obtained.
19:00.180 --> 19:07.180
By mapping these data points, by transforming
them through their potential function and
19:10.840 --> 19:17.840
the threshold E; V is the potential function
and this is V by E; where E decides the threshold,
19:24.350 --> 19:31.350
we have a a line here that separates this
class from these two classes. Similarly we
19:35.140 --> 19:42.140
put another line that separates the green
from blue and red thereby the three classes
19:45.820 --> 19:52.820
are now distinctly separable. The three classes
are very well separated in V E space. On clustering
19:55.370 --> 20:02.160
in normalized 4-dimensional input space, note
that classes virginica and versicolor are
20:02.160 --> 20:08.640
totally non-separable classes but are very
well separated here like the red and green.
20:08.640 --> 20:15.640
If we look at the previous color red and blue,
they are inseparable and now the red and blue
20:15.840 --> 20:22.840
are completely separable. We can put a line
by which they can be separated.With this idea
20:24.770 --> 20:31.770
on quantum clustering, we apply it on visual
motor coordination. We have introduced some
20:31.800 --> 20:36.330
new concepts also to this visual motor coordination.
20:36.330 --> 20:43.330
As discussed earlier, the visual motor coordination
has a robot manipulator and this robot manipulator
20:46.740 --> 20:53.740
whose end-effector is being observed by two
cameras, camera one and camera two. If you
20:57.510 --> 21:03.580
have a target point and if this end-effector
wants to reach that point, the target point
21:03.580 --> 21:10.580
is also in the camera focus and also the end-effector.
The objective is how to reach this target
21:14.620 --> 21:21.620
point through learning. Imagine I am holding
a pen here and the other hand wants to reach
21:24.850 --> 21:31.850
that point. This is a visually guided motion.
In this visual guided motion. I am not aware
21:33.540 --> 21:40.540
of the arm dynamics and I do not take into
account any kind of dynamics from my hand;
21:44.980 --> 21:51.980
rather the mechanism is such that it is like
a learning mechanism that guides my hand to
21:58.890 --> 22:05.890
a target point. If you see a child, he learns
as he grows by various trial and error methods.
22:11.350 --> 22:18.350
Similarly, in this situation by hand eye coordination,
we do many things dexterously.
22:23.470 --> 22:30.470
Here is the manipulator in detail dynamics:
We have three joints; one is the base ,this
22:34.820 --> 22:40.970
is the joint for the first link and then another
here, the joint for the second link. So the
22:40.970 --> 22:47.970
base, first link and second link comprise
a 3-link manipulator. The three joint angles
22:48.690 --> 22:55.690
of the manipulator are to be determined for
a given end-effector position u; where the
22:55.740 --> 23:02.740
coordination principle is, camera finds the
end-effector position. When you take a photograph
23:06.710 --> 23:13.710
of a 3 D point, camera which has only 2 D
point, as u1 u2 and camera 1 and camera 2
23:16.380 --> 23:23.380
is u3 and u4. You have this 4-dimensional
input vector for a given target, a given end-effector
23:25.790 --> 23:32.790
point. Given a target, the objective is that
the control algorithm should find theta1,
23:34.020 --> 23:41.020
the base angle and theta2 which is the joint
angle one, two, theta2 and theta3 such that
23:45.150 --> 23:50.210
by orienting theta1 theta2 and theta3 properly,
this end-effector will exactly reach this
23:50.210 --> 23:57.210
target point.
23:58.320 --> 24:05.320
What we are trying to
map u, theta is f of u. We would find out
theta given u through learning and one can
24:25.610 --> 24:32.610
use easily the inverse kinematics of this
manipulator and can find out that. This principle
24:34.049 --> 24:41.049
is different; we need not go to the manipulator
inverse kinematics and simply learn to find
24:44.070 --> 24:49.780
out what is theta equal to f(u). The objective
is that this is just a curiosity that how
24:49.780 --> 24:55.530
learning can be so powerful and we can ignore
the inverse kinematics of the actual model
24:55.530 --> 25:02.530
and still we can reach any point in the robot
work space. What we do is that this
function of u can be linearized around a specific
25:27.350 --> 25:34.350
formula which is in a local zone. If I know
thetas for response to do, this point in the
25:41.370 --> 25:48.370
Cartesian space point corresponds to thetas.
So then any point near to this Cartesian point
25:58.320 --> 26:05.320
will be very close to thetas. Thus we can
find this expression and the relationship
26:08.380 --> 26:15.380
by simply linearizing this non-linear function
around thetas. This is linearized around thetas
26:17.280 --> 26:24.280
plus a Jacobian matrix which is obviously
3 by 4 matrix and u is
the input vector and actually input is not
26:38.500 --> 26:45.500
x y z, this is u1, u2, u3, u4 and u represents
Cartesian space, but this is actually the
26:51.070 --> 26:54.160
input coming from the camera.
26:54.160 --> 27:01.160
This is 3 by 4 and u is the actual input that
is the actual data point around the thick
27:09.320 --> 27:16.320
dot and ws is the neuronal center that is
when I localize or discretize this entire
27:20.170 --> 27:27.170
work space as we did in the Kohonen SOM algorithm.
When I create a discrete cell, each cell is
27:28.200 --> 27:35.200
assumed to be represented by a neuron, so
that neuron is associated with a specific
27:36.710 --> 27:43.710
ws and the meaning of that is, this ws actually
corresponds to this thetas. If given any other
27:51.679 --> 27:58.679
point u very close to ws, how do I represent
the exact theta? This is my actual theta and
28:04.980 --> 28:11.980
so my actual theta is a local zone in which
I have a special point in the 3D coordinate
28:30.820 --> 28:37.820
and corresponding to this coordinate, I have
thetas as the actual joint position theta1,
28:39.000 --> 28:46.000
theta2, theta3. They take this end-effector
to this point which is the representative
28:50.809 --> 28:57.809
in the camera coordinate which is ws. We can
write at a given point which is very close
29:01.450 --> 29:08.450
to this point in the Cartesian space, the
joint space theta can be written as thetas
29:10.669 --> 29:17.669
plus As u minus ws. So, u represents a new
data point around the old point which is ws.
29:22.640 --> 29:29.640
This is the meaning of linearization around
a small work space.
29:30.580 --> 29:37.410
What we are now doing is that we have an input
space and an output space; input space is
29:37.410 --> 29:44.240
4-dimensional and we can make the dimension
3. In a two camera coordinate system, we get
29:44.240 --> 29:51.240
4 points and the Cartesian dimension is 3,
but we get 4 points, Output space is theta1,
29:54.190 --> 30:01.190
theta2, and theta3. If we create a joint called
joint input and output space, it is u transpose,
30:16.190 --> 30:23.190
theta transpose, transpose, a 6-dimensional
vector.
30:24.169 --> 30:31.169
A new space is obtained by concentrating the
input and output space. On working in the
30:32.130 --> 30:39.130
6-dimensional space determined by vector g
and cluster space, we created a cluster only
30:39.840 --> 30:46.840
in the input space and now we are creating
cluster both in input and output space. Now
30:47.340 --> 30:54.340
we created a cluster and have a work space
and in the work space, the input-output space
30:54.890 --> 30:59.450
is divided into small cells.
30:59.450 --> 31:05.320
The clusters in the 6-dimensional space are
made up of position and joint angle values.
31:05.320 --> 31:12.320
Corresponding to each special position w,
we have a specific w theta and these clusters
31:20.750 --> 31:27.539
are obtained using quantum clustering technique
rather than the Kohonen self organizing map.
31:27.539 --> 31:33.970
The cluster centers are obtained using quantum
clustering and are combination of neuron centers
31:33.970 --> 31:36.200
and the 0 order term.
31:36.200 --> 31:43.200
The idea is to discretize the workspace u
into non-overlapping regions Fs and each one
31:45.720 --> 31:52.720
of these are all small discrete cells belonging
to Fs. ws belonging to Fs, which is the reference
31:58.410 --> 32:03.809
or weight vector for each discrete cell. This
is your reference vector associated with the
32:03.809 --> 32:10.809
each discrete cell. Present methods use only
the input space discretization and no output
32:11.980 --> 32:18.980
space information and the Kohonen self organizing
map can also be incorporated and this is independent
32:24.030 --> 32:29.160
of the other. You do quantum clustering or
Kohonen SOM; this is not a defect of Kohonen
32:29.160 --> 32:36.030
SOM. It is just that we are utilizing that
feature. In our approach, we have used the
32:36.030 --> 32:41.880
joint input-output space partitioning scheme.
32:41.880 --> 32:48.880
This is 3D work space in which the robot is
working in this and any random point in the
32:50.510 --> 32:57.510
work space, the robot manipulator can reach
and corresponding to each point in joint space,
32:59.480 --> 33:06.480
we have a specific theta1, theta2, theta3,
but if we look at the output space, they are
33:11.720 --> 33:18.720
not uniformly distributed. The output space
is well separated; it means it is natural
33:19.490 --> 33:26.490
because not all joint angle values are allowed.
When I manipulate my hand, I cannot probably
33:31.760 --> 33:38.760
create certain angles like a robot manipulator.
Thus, a partitioning scheme with information
33:44.870 --> 33:50.980
from input and output space would work best.
33:50.980 --> 33:57.030
The first part is performing quantum clustering
on the 6-dimensional space formed by combining
33:57.030 --> 34:03.130
the end-effector position and the joint angles.
This gives a set of cluster centers, each
34:03.130 --> 34:08.129
cluster denotes the receptive field of a neuron
and these cluster centers are then separated
34:08.129 --> 34:14.770
into the neuron centers and 0 order term end
initialized to the neuron.
34:14.770 --> 34:19.000
The initial parameters are not random and
this speeds up the learning space process
34:19.000 --> 34:24.579
.The neuron centers and 0 order term need
only a fine tuning and the Jacobian matrix
34:24.579 --> 34:31.579
needs to be determined. A collective training
scheme is adopted which means we create a
34:34.590 --> 34:41.590
cluster. Through clustering, we find out ws
as well as thetas. Now thetas and ws are given
34:46.359 --> 34:53.359
and with new input u, how do I learn this
s? How do I also refine the relation between
34:57.490 --> 35:03.119
thetas and ws? This is key question being
asked.
35:03.119 --> 35:10.119
The objective of this training scheme can
be explained. For example, this is my robot
35:11.240 --> 35:17.160
manipulator; this is one link; this is another
link and this is another link. For example,
35:17.160 --> 35:24.160
we have to come to this target point and what
happens is that this algorithm gives some
35:29.650 --> 35:36.650
random variables, theta1, theta2, theta3 -in
the beginning, when it was not learnt to various
35:44.340 --> 35:51.340
links and then the end-effector goes to some
point. The learning principle is, how I can
35:53.690 --> 36:00.690
with some minimal steps bring this end-effector?
36:02.340 --> 36:09.340
I can bring from this point to this point
through training and what is happening here
36:14.980 --> 36:21.980
is that you see that I have many neurons in
the workspace and these neurons are actually
36:29.220 --> 36:34.050
a 3D lattice. In the case of Kohonen network,
it is a 3D lattice, but in the case of quantum
36:34.050 --> 36:41.050
clustering, we do not create a lattice kind
of thing. But each neuron represents a specific
36:48.500 --> 36:55.500
discrete zone of the input, output space and
while clustering you have already the coordinates
36:57.349 --> 37:04.349
associated with this neuron which is ws and
thetas. Once clustering is done and for each
37:14.390 --> 37:21.390
neuron As is defined, then obviously given
u, each neuron output would be thetas plus
37:28.010 --> 37:35.010
As u minus ws by each neuron. But instead
of allying only one neuron to take a decision,
37:45.300 --> 37:52.300
we allow a group of neurons to take decision
which is collective averaged output.
37:53.020 --> 38:00.020
The collective averaged output is that k represents
each neuron and this is within a specific
38:03.940 --> 38:10.940
neighborhood and this H is the distance that
is given input as specific neuron is the winner
38:21.369 --> 38:28.369
according to cluster. The winning neuron will
have a maximum role
to contribute to the decision making process
38:36.900 --> 38:43.900
and others will have less and less say. Each
neuron is associated with three parameters
38:44.330 --> 38:51.330
and the output of each neuron is this. If
this is the winning neuron, then
the maximum contribution comes from the winning
38:58.450 --> 39:05.450
neuron and lesser and lesser contribution.
The neurons are away from winning neuron and
39:05.480 --> 39:12.480
their ability to contribute to the decision
making process dies down that is, their participation
39:16.550 --> 39:23.550
is to the degree how close to the winner.
So the collected averaged output in a given
39:30.090 --> 39:37.090
input utarget and this is the distance M u
is the winner and k is the specific neuron
39:45.820 --> 39:52.520
what is the distance between them and so we
also put this neurons in a lattice and find
39:52.520 --> 39:59.520
out the end-effector to a position v0, needing
a correcting action determined by this theta1
40:03.010 --> 40:09.970
out is theta0 out which is the initial plus
this is the correcting that is instead of
40:09.970 --> 40:16.970
wk we now put it here v0. Now the end-effector
is at a position V1 and we do not wish to
40:19.580 --> 40:26.580
give further correction to it; because, if
this takes it to V1, then we do not need it.
40:29.140 --> 40:36.140
The learning scheme is actually the gradient
distance. Delta V is V1 minus Vnaught. I discussed
40:43.109 --> 40:50.109
all these things in the last class; theta
out is theta1 out minus theta0 out. Theta0
40:50.790 --> 40:57.790
out minus thetak out; because, this is a kth
iteration minus Ak V0 minus wk. This is the
41:05.109 --> 41:12.109
update law for the Jacobian matrix which is
a norm delta V square this delta theta out.
41:13.450 --> 41:20.450
You can actually derive this algorithm from
using gradient descent. Finally, each weight
41:24.150 --> 41:31.150
of the neuron is updated as wk using clustering
algorithm -just like we did in the Kohonen
41:37.780 --> 41:44.780
clustering algorithm; where wk is wk plus
epsilon hµ k utarget wk, thetak is thetak
41:45.490 --> 41:52.490
plus epsilon dash hµ k dash delta thetak.
My new weight associated with a neuron k is
41:57.080 --> 42:03.000
the old weight associated with neuron k plus
epsilon is the learning rate. This is the
42:03.000 --> 42:10.000
distance factor; how far is kth the neuron
from the winning neuron and utarget minus
42:10.480 --> 42:17.480
wk? This is a normal learning that is done
in clustering. Similarly for thetak the old
42:22.270 --> 42:29.270
thetak plus the learning rate and another
distance function and delta thetak .Similarly
42:33.290 --> 42:40.290
for the Jacobian, we train with old Jacobian.
In the beginning, the beauty of this entire
42:43.260 --> 42:49.810
learning process is that we start from absolutely
no idea. Our neural network possesses no knowledge
42:49.810 --> 42:56.810
of the workspace and everything is initially,
randomly initialized without taking any consideration,
42:59.570 --> 43:06.570
the workspace size -nothing is taken into
consideration. The moment you give the data,
43:10.550 --> 43:17.550
the neural network is associated or excited
by the data the learning starts and then beautifully
43:20.280 --> 43:27.280
the mapping of the topology of actual work
space gets mapped to the neuronal structure
43:30.180 --> 43:37.180
and nice mapping results. This is a distance
measure; Mu denotes the winning neuron, the
43:39.310 --> 43:41.550
neuron which is closest- to the target.
43:41.550 --> 43:47.690
The parameters epsilon, epsilon dash, sigma,
sigma dash and may vary during the training
43:47.690 --> 43:54.260
time depending on the current iteration using
general expression Eta is Etainitial Etafinal
43:54.260 --> 44:01.260
upon Etainitial l by lmax, this is the iteration
. When I have not started the iteration, then
44:03.359 --> 44:10.359
this is 0. Eta is Eta initial; because this
to the power 0 is 1. When this l is lmax,
44:17.010 --> 44:24.010
this is 1; so this becomes Etafinal by Etainitial
cancels out, Eta is Etafinal. Eta in the beginning
44:26.650 --> 44:33.650
is Etainitial and Eta is Etafinal at l equal
to lmax and this is 1 equal to 0. The neurons
44:47.349 --> 44:52.660
are indexed by normalizing their weights and
in general are not integers. Indexing scheme
44:52.660 --> 44:59.510
uses the information of actual position rather
than simply associating an integer.
44:59.510 --> 45:06.510
Now we would compare our results today to
the last class. Last class we talked about
45:07.830 --> 45:13.849
Kohonen self-organizing-map-based methodology
where we had a fixed topology in the beginning.
45:13.849 --> 45:19.480
We fixed the neurons and fixed topology has
to be pre-specified for the workspace. Thus
45:19.480 --> 45:25.060
the number of neurons must be decided priori
and this leaves very little flexibility. One
45:25.060 --> 45:31.140
has to begin with random parameters, thus
making the process slow and does not use the
45:31.140 --> 45:38.140
joint angle space information when partitioning
the workspace. But this is not confined to
45:39.550 --> 45:46.550
Kohonen sum; it is an additional theme because
we can also do this for Kohonen.
45:49.310 --> 45:55.099
What we learned is that a flexible topology
of the workspace is adopted as the width parameter
45:55.099 --> 46:00.500
in quantum clustering is changed and a number
of clusters changed, quantum clustering helps
46:00.500 --> 46:06.920
in designing the workspace topology and no
random initializations are done using joint
46:06.920 --> 46:11.380
angle space information when partitioning
the workspace. Again this is not exclusive
46:11.380 --> 46:18.380
to quantum clustering and this can also be
in the quantum clustering.
46:21.990 --> 46:28.990
Our workspace size was 20 centimeters into
30 centimeters into 20 centimeters. The initial
46:30.830 --> 46:37.830
parameters were taken like this: In the beginning,
q is1 upon 2 sigma square; this was fixed
46:41.730 --> 46:48.730
as 0 point 12 and then 164 for clusters or
neurons are obtained .These are very few as
46:49.030 --> 46:56.030
compared to K SOM based method where 336 neurons
are considered. In a Kohonen cluster 7 into
47:01.480 --> 47:08.480
12 into 4 many neurons were considered. Here,
it is only 164 clusters, a mean square error
47:14.160 --> 47:21.160
of 0 point 18 mm is achieved using 164 neurons
when 200 random points are evaluated in space
47:21.170 --> 47:28.170
.This is significantly small as compared to
1 point 18 mm using K SOM based approach where
47:28.330 --> 47:34.920
336 neurons were used. This is the result
we achieved in the last class using Kohonen
47:34.920 --> 47:37.940
quantum clustering algorithm.
47:37.940 --> 47:44.940
Here it is the average error and number of
iterations, so what you are seeing is that
47:48.030 --> 47:55.030
the errors are almost in 200 samples iterations;
whereas normally in Kohonen clustering it
48:02.240 --> 48:09.240
takes 5000 iterations. In this quantum clustering,
I have put this as the average error and the
48:11.270 --> 48:18.270
number of neurons. This is an adaptive and
flexible topology in the case of quantum clustering
48:18.530 --> 48:23.030
and the number of neurons are not fixed in
the beginning; that means how many discrete
48:23.030 --> 48:30.030
cells the original workspace should be consisting
of, we decide in Kohonen’s self organizing
48:31.339 --> 48:38.339
map But in quantum clustering, these can be
varied by varying the q; which is 1 upon 2
48:39.079 --> 48:46.079
sigma square. If I increase the number of
neurons naturally the average error decreases
48:46.760 --> 48:52.849
and this is the profile. You increase the
number of neurons, (average error) decreases.
48:52.849 --> 48:59.849
This is another interesting piece of result
where we find the number of iterations we
49:01.910 --> 49:08.910
require for training and the number of neurons.
If you increase the number of neurons more
49:10.180 --> 49:17.180
and more, the number of iterations required
is in large numbers and the price for making
49:19.280 --> 49:26.280
this is high. In such a situation, if the
number of neurons is small, less number of
49:29.359 --> 49:34.760
iterations is required. Increasing the number
of neurons also needs more time.
49:34.760 --> 49:41.760
What you are seeing here is that we commanded
the end-effector of a robot to track a circle,
49:43.339 --> 49:50.339
we find that the star positions, the points
along which the robot have moved. The average
49:51.660 --> 49:58.660
error in tracing a circle of radius 50 mm
is 0 point 0907 mm using 164 neurons. The
49:59.770 --> 50:06.770
star is the track trajectory and the broken
line is the actual trajectory. A circle is
50:07.320 --> 50:14.320
tracked with an average error of 0 point 09
mm in the workspace using 164 neurons.
50:16.030 --> 50:23.030
This is a sphere where the actual position
is the red point and the blue point in the
50:23.530 --> 50:30.530
track position. We have placed the red point
in the first and if we are able to see the
50:33.859 --> 50:40.020
blue point, we say the tracking is perfect.
Whereas if the red is there and then the tracking
50:40.020 --> 50:47.020
is not good, a sphere is constructed with
an average error of 0 point 116 mm in the
50:48.380 --> 50:53.849
workspace. That means our end-effector is
able to reach all this points in the sphere
50:53.849 --> 51:00.849
with an error of 0 point 1116 mm after 5000
training steps.
51:04.460 --> 51:11.460
Finally, we have presented a method of visual
motor coordination using quantum clustering
51:12.930 --> 51:18.030
in which the flexible topologies where the
number of neurons can be increased or decreased
51:18.030 --> 51:25.030
depending on the accuracy you want with time.
If you want more accuracy, the number of iteration
51:26.070 --> 51:33.070
increases vigorously and the reduced number
of neurons can give you equivalent and much
51:35.770 --> 51:42.770
better results when compared to fixed Kohonen
SOM and joint learning scheme. It is proposed
51:45.849 --> 51:52.849
that let the clustering be done in joint input-output
space instead of only input space. In this
51:57.980 --> 52:04.980
lecture, I have given you some dynamic model
in the beginning and we discussed some control
52:05.230 --> 52:12.230
mechanisms. We discussed different application
of learning methods to control the dynamic
52:16.250 --> 52:23.250
control. But as you know, a robot moving to
any point, we are interested to know how the
52:24.380 --> 52:31.380
robot can go to any point through visual guidance.
This is a little different aspect of control
52:33.089 --> 52:40.089
and we will start again some of these direct
adaptive control schemes for robot manipulators
52:42.310 --> 52:49.310
as well as, we will introduce a nice experimental
setup that we have in our lab which is an
52:50.480 --> 52:57.480
inertial wheel pendulum in our discussion.
Thank you.
347