Skip to Main Content

MAPS_GSTH_part_II

June 18, 2024
  • 00:00Today is the second lecture,
  • 00:03second presentation in our series and
  • 00:06I'm very excited to introduce Rahul Sai.
  • 00:12Rahul is an expert in advanced
  • 00:15statistical method including graph theory,
  • 00:18network analysis,
  • 00:19neural network signal processing
  • 00:22and many other impressive terms.
  • 00:25He received the PhD in machine
  • 00:29learning in Georgia Institute of
  • 00:31Technology and now he is a post
  • 00:34doctoral researcher in Wosai Institute.
  • 00:39And I'm not going to take
  • 00:41any more time from you.
  • 00:43Please, it's all yours.
  • 00:46Thank you, Helen. Hello everyone.
  • 00:49I'm Rahul Singh, welcome to the
  • 00:53second lecture of this workshop.
  • 00:56And today I'm going to talk
  • 00:59about graph signal processing.
  • 01:01It's like extending the classical
  • 01:04signal processing techniques
  • 01:05over manifolds or graphs.
  • 01:11A little bit about me,
  • 01:12I started my academic journey back
  • 01:17in India where I studied the signal
  • 01:21processing from Indian Institute
  • 01:23of Space Science and Technology.
  • 01:26And then I went to Iowa State University,
  • 01:29where I got my master's
  • 01:31degree in image processing.
  • 01:33And then I went on for my
  • 01:35doctoral studies at Georgia Tech,
  • 01:37where I got my PhD in machine learning.
  • 01:40And here my most along the line,
  • 01:43my research was in signal processing,
  • 01:46extending the signal processing
  • 01:48techniques to graphs and especially
  • 01:50using the structure in the data and how
  • 01:53we can process the data that that has
  • 01:57some intrinsic structure behind it.
  • 01:59And here I am a post doctor fellow
  • 02:02at Woosa Institute and I'm doing,
  • 02:05I'm applying this machine learning
  • 02:07and signal processing methods
  • 02:09in computational neuroscience.
  • 02:11And my mentors are Smita Krishnaswami
  • 02:15from computer science and Joy
  • 02:18Hirsch from neuroscience.
  • 02:23Moving on to our main toolbox that we
  • 02:28are in the process to learn geometric
  • 02:33scattering trajective homology.
  • 02:36So as Tenanje last week has
  • 02:41given an introduction about it,
  • 02:44there are four steps here.
  • 02:46So any data that is residing on a
  • 02:49manifold or if you have just the data,
  • 02:51the first step to create the manifold
  • 02:54or the graph that this graph creation.
  • 02:57And then we apply this graph signal
  • 03:01processing tools to represent
  • 03:03the data lying on this graph.
  • 03:06And then we do some non,
  • 03:08some dimensionality reduction techniques
  • 03:10to visualize these trajectories
  • 03:13of the data that evolve over time.
  • 03:16And we analyze these trajectories
  • 03:19using topological data analysis that
  • 03:22Tananjay talked about last week.
  • 03:24So step four we covered last week.
  • 03:27Today we are going to cover step two,
  • 03:29that is how to process the data
  • 03:32lying on a graph.
  • 03:34And once after today's lecture
  • 03:37in the third series,
  • 03:40Dhananjay and Brian are going to
  • 03:43combine these two techniques to give
  • 03:46you a overall picture of this geometric
  • 03:50scattering trajectory homology.
  • 03:53So let's move on to the second Step,
  • 03:542, graph signal processing.
  • 03:56So what is this graph signal
  • 03:58processing about?
  • 04:02Mostly we in general we have seen
  • 04:05there are many tools and concepts
  • 04:08that have been developed in classical
  • 04:10signal processing domain where we deal
  • 04:13with data that is in form of a time
  • 04:17series for example, speech, music,
  • 04:20e.g, FM, RI, whatever
  • 04:24or we also
  • 04:25deal with images.
  • 04:27So these are the signals or the data.
  • 04:32For example, this here is a speech
  • 04:34signal and this is speech signal is
  • 04:36for some let's say for 10 seconds.
  • 04:38And we can see that once we
  • 04:42sample this data digitally,
  • 04:44then this is nothing but some
  • 04:47values at each time point.
  • 04:50And if you look at these values and look
  • 04:53at the structure behind these values,
  • 04:55it is just a very linear looking structure.
  • 04:59So T1 time T1 is related to T2T2
  • 05:04is related to TT three because when
  • 05:07you speak it's related with time.
  • 05:10And in images,
  • 05:11the data or the signal that constitute
  • 05:14this image is nothing but this
  • 05:17RGB values at lying on this grid.
  • 05:21So each pixel of this image is a data
  • 05:24value lying on this particular blue node.
  • 05:27And once we kind of arrange these
  • 05:30intensity values of each pixels,
  • 05:33it takes a form of an image.
  • 05:36So in classical signal processing,
  • 05:38we deal with this kind of regular data.
  • 05:40Regular in the sense the structure
  • 05:42behind the data is very regular.
  • 05:45Regular means if you see this
  • 05:48graph here or little structure
  • 05:50that is behind this data is just
  • 05:54one-dimensional path graph and the
  • 05:58image of image values are lying
  • 06:00on this two-dimensional grid.
  • 06:04And in classical signal processing
  • 06:06there are other concepts like our
  • 06:08tools like modulation and translation,
  • 06:13frequency analysis and all.
  • 06:15For example. Why do we need this?
  • 06:17What is this modulation?
  • 06:19If you connect your thoughts to your radio
  • 06:24or even the cable TV or even cell phones,
  • 06:27they are working on different
  • 06:30frequencies and the data is around like
  • 06:33it's it's in the air it it has it is
  • 06:37being sent in form of electromagnetic
  • 06:40waves through multiple antennas.
  • 06:42But all the data,
  • 06:43like if you look at if you're sitting
  • 06:45in your room there you have Wi-Fi data,
  • 06:47your phone data, or even FM,
  • 06:52A FM radio, whatever.
  • 06:53But now you need to kind of
  • 06:56select what you want to receive.
  • 06:58And in order to select that,
  • 07:00there is a concept called modulation.
  • 07:02So you kind of modulate
  • 07:05your voice band frequencies.
  • 07:06For example, somebody's talking,
  • 07:08the frequencies are just
  • 07:10within like 3.2 kilohertz,
  • 07:12but you kind of
  • 07:16shift this frequency to higher frequency
  • 07:18so that it becomes easy to transmit the
  • 07:22data because the antenna size is always
  • 07:28proportional to the wavelength.
  • 07:30So modulating to high frequencies
  • 07:33makes the antenna sizes smaller.
  • 07:35Another concept very familiar is filtering.
  • 07:38Let's say you have some data in the air
  • 07:41and you want to denoise the data because
  • 07:43the data when you send from an antenna,
  • 07:46it gets very noisy from very
  • 07:50from many other signals around.
  • 07:52And with the process the
  • 07:54concept is filtering.
  • 07:55You want to remove the noise or
  • 07:58or kind of smoothen the data,
  • 08:00then you need this filtering operation.
  • 08:03So these are basic operations that
  • 08:06we do in classical signal processing.
  • 08:09But what if the data that we
  • 08:12are dealing with is very lying
  • 08:14on a very irregular setting?
  • 08:17Like for example,
  • 08:18here consider a graph or a
  • 08:22where the each node,
  • 08:24so each blue circle here we can we
  • 08:27call it as a node and each red link
  • 08:30here is we call it as an edge or a link.
  • 08:35And these edges are representing the
  • 08:38relationship or the proximity or the
  • 08:41connectedness of these two nodes or
  • 08:44entities or these two spatial points.
  • 08:47These can these nodes can
  • 08:49be different brain regions.
  • 08:51It can be a person in a social
  • 08:55network and all we will see another
  • 08:57some many examples of this later.
  • 09:01Yeah. So for example here in a brain region,
  • 09:06let's say you are recording F nears or fMRI,
  • 09:11then what it does at the end is
  • 09:14different brain regions have a
  • 09:17time series associated with it.
  • 09:20And today we are not going to take this
  • 09:25time domain information into into account.
  • 09:28What we are going to do is at one
  • 09:31time point we have data collected
  • 09:34from each of the region of the brain
  • 09:37and we want to analyse that data,
  • 09:40develop some tools existing in
  • 09:42classical signal processing to
  • 09:44this irregular structure.
  • 09:45Because brain is like,
  • 09:47it's not like a 2D grade.
  • 09:48It's like in A33 dimensional
  • 09:51space where there are different
  • 09:53structural regions that talk,
  • 09:55talk with each other or send
  • 09:58information from one region to another.
  • 10:01How do we capture that information
  • 10:04in the data and kind of get
  • 10:08better representation?
  • 10:09Some other examples include
  • 10:13some other examples of this graph.
  • 10:15Signals are like some temperature
  • 10:17or pressures recorded at
  • 10:20different geographical locations.
  • 10:22Or it can be a social network
  • 10:24created by Facebook, Twitter,
  • 10:25or it can be a transportation network.
  • 10:28For example, here this is a map of,
  • 10:30I believe Minnesota and and at
  • 10:35each node it can be like a traffic
  • 10:38junction where the signal can be the
  • 10:43kind of how many cars are passing
  • 10:46through that traffic and all.
  • 10:48And it can be traffic at traffic at each
  • 10:51computer node in a computer network.
  • 10:54So whenever you can,
  • 10:55we you see this connectivity
  • 10:58information around you.
  • 10:59There are features associated with
  • 11:01each entity or each node here.
  • 11:04And we want to process such data.
  • 11:08So what are the difficulties
  • 11:10that rise when we talk about this data
  • 11:13lying on a very complex structure?
  • 11:16So if it is A1 dimensional time series,
  • 11:19you can easily shift the signal,
  • 11:20translate the signal.
  • 11:21But then when we talk about in
  • 11:24graph signal processing settings
  • 11:25where the data is very irregular,
  • 11:28then how do we translate or how
  • 11:30we move from one node to another?
  • 11:33Because there are so many nodes
  • 11:35around you that are connected
  • 11:36to you and there is no kind,
  • 11:38there is no concept of moving from one
  • 11:41point to another in a systematic way.
  • 11:45So how, how do we like what,
  • 11:49what kind of tools that can help
  • 11:51to analyze this data properly?
  • 11:53In order to motivate that,
  • 11:56let's look at any time series data
  • 11:591st and then we will relate this to
  • 12:02graph signal processing settings.
  • 12:04So for example,
  • 12:05let's say you have this time series
  • 12:08with you which is a combination of
  • 12:10some some sinusoids or it can be
  • 12:13some combination of many sinusoids.
  • 12:15So here this X is a combination of
  • 12:18these three sinusoids with amplitude
  • 12:21B1B2 and B3 and different frequencies
  • 12:25Omega 1, Omega two and omega-3.
  • 12:28So these frequencies.
  • 12:29So if the frequency is higher,
  • 12:31that means your signal is changing
  • 12:34very rapidly rapidly.
  • 12:35So this omega-3 is higher than
  • 12:37Omega two and Omega one.
  • 12:39So signal is changing very rapidly
  • 12:42and this Omega one is a small so the
  • 12:46signal is very smooth changing very slowly.
  • 12:50So in order to represent this data
  • 12:55either you can save this whole time
  • 12:57series and process this process and do
  • 13:00your processing on this time series
  • 13:03directly or what you can do is you
  • 13:05can convert this data in a different
  • 13:08domain called frequency domain where
  • 13:11this Fourier transform comes handy.
  • 13:14So Fourier transform is nothing but
  • 13:16decomposing any time series in terms
  • 13:21of different frequency sinusoids.
  • 13:24So here if you just take the
  • 13:27Fourier transform of the signal XT,
  • 13:29you will see that there are
  • 13:31only three frequency components
  • 13:33present with different amplitude
  • 13:35or different weights Omega 1,
  • 13:37Omega two and omega-3.
  • 13:40So to represent this signal XT
  • 13:43the same amount of the the same
  • 13:46information can be represented
  • 13:48in this different domain called
  • 13:51Fourier domain or frequency domain.
  • 13:54And here in frequency domain,
  • 13:57as you can see,
  • 13:58you just need three need to save
  • 14:01only Omega 1, Omega two,
  • 14:03omega-3 and corresponding amplitudes.
  • 14:06But in order to save this XT in a machine,
  • 14:08you have to save a lot of values
  • 14:10and it doesn't provide that very
  • 14:12nice frequency intuition as well.
  • 14:15And converting this data to
  • 14:17another domain has some advantages.
  • 14:20It,
  • 14:20it is used in filtering operations
  • 14:23and it and the information and also
  • 14:26all the communication systems are
  • 14:29built around this frequency concept.
  • 14:32So we want to extend the same kind
  • 14:35of frequency interpretation of this
  • 14:37time series data to graph signals.
  • 14:44So how do we do that? So first, let's
  • 14:50talk about some notations here
  • 14:51that I'm going to be using.
  • 14:56And before that, if you have any
  • 14:58questions, feel free to stop me.
  • 15:01And Helen also, if you will see
  • 15:03something in chat, please let me know.
  • 15:06Yes, I'm, I'm watching the questions. Yes.
  • 15:11So notation. So we have a graph here.
  • 15:13We have like 5 node graph
  • 15:1812345. It can be five
  • 15:20different brain regions.
  • 15:22It can be five different geographical
  • 15:25locations in a sensor network.
  • 15:28It can be in a tissue if you if
  • 15:31you can image the cells and all,
  • 15:34it can be each cell and this red,
  • 15:37red lines here are edges or links.
  • 15:41So four is connected to five,
  • 15:43which can be for example in a brain network,
  • 15:45let's say your frontal region connected
  • 15:50to the this temporal parietal
  • 15:53junction or any other you can imagine,
  • 15:56whichever is like in proximity or
  • 15:58there is any other relationship,
  • 16:00we find an edge.
  • 16:02So in order to create a graph,
  • 16:04you can always kind of take
  • 16:06the proximity into account and
  • 16:08create and create these edges.
  • 16:10And then each edge also has
  • 16:13a feature associated with it.
  • 16:15For example, at time point T1,
  • 16:19each of the brain regions will
  • 16:21have some value associated with it
  • 16:24recorded by EGF nears or or F MRI.
  • 16:26It doesn't matter.
  • 16:28And we are just looking at 1:00
  • 16:31time slice of this whole brain
  • 16:34region recording and we are calling
  • 16:36it as a graph signal.
  • 16:38And in order to store this graph
  • 16:40signal information in the machine,
  • 16:42we need to store the graph,
  • 16:45the connectivity and we need to store
  • 16:49this signal values associated with each node.
  • 16:53So when we talk when we talk about
  • 16:56storing this graph in the machine,
  • 16:58we can just store this weight matrix.
  • 17:01What is this weight matrix?
  • 17:03Weight matrix is a is a matrix that is
  • 17:08telling you the relationship between
  • 17:10different nodes or different regions.
  • 17:13So for example here if you see node
  • 17:15two is connected to node three,
  • 17:18node one and node 5.
  • 17:21So if you look at the 2nd row
  • 17:23of this weight matrix 2.
  • 17:25If you look at the 2nd row and
  • 17:28the first column, it is one.
  • 17:30That means this is representing
  • 17:32connection between node two and node one.
  • 17:35Then this diagonal entry is
  • 17:370 because there is.
  • 17:39This is like a self loop two to two.
  • 17:41There is nothing there.
  • 17:43Then the 2nd row and 3rd column
  • 17:45has entry one.
  • 17:47That means node two is connected to node 3,
  • 17:51then fourth entry as well
  • 17:53as fifth entry are one.
  • 17:54That means two is also connected
  • 17:56to four as well as five.
  • 17:58So this connectivity information
  • 18:00you can store in this weight matrix
  • 18:04and then the features associated
  • 18:07with each node we can store
  • 18:11using this vector or signal F.
  • 18:15And then based on this weight matrix,
  • 18:16there are some other matrices defined like
  • 18:19some degree matrix and Laplacian matrix.
  • 18:22What is this degree matrix?
  • 18:24So degree matrix is the
  • 18:26strength of edges in each node.
  • 18:29So for example in node three,
  • 18:31it is connected to three neighbors.
  • 18:35So if if you look at the
  • 18:37third entry here it is 3.
  • 18:40If you look at node 5 then it
  • 18:43is connected to two of the
  • 18:45nodes node two and node four.
  • 18:48So the 5th entry here is 2.
  • 18:51So it is saying you how many.
  • 18:53It is telling you how many edges
  • 18:55are connect, are in are incident
  • 18:57incidenting on a particular node.
  • 18:59It's a diagonal matrix.
  • 19:01And then there is another matrix
  • 19:04called Laplacian matrix which is
  • 19:08nothing but the difference between the
  • 19:11degree matrix and the weight matrix.
  • 19:16So this Laplacian is a very important
  • 19:19matrix for us because as we'll
  • 19:22further see that this Laplacian of
  • 19:25this graph is going to tell us a lot
  • 19:29about the variations in the signals of
  • 19:31variations in the data across the space.
  • 19:35So we are representing graph as G and
  • 19:37this V is nothing but a set of vertices.
  • 19:41So we have like 5 vertices or nodes here
  • 19:4512345 here West is the weight matrix.
  • 19:48So let's go further and look at
  • 19:51the graph Laplacian again closely.
  • 19:56So we have this particular graph here.
  • 19:58This is our graph Laplacian.
  • 20:00As you can see,
  • 20:02it is symmetric because there is no
  • 20:05directionality information or anything.
  • 20:07It is a symmetric matrix and if you look
  • 20:10at the off diagonal entries which are
  • 20:16sorry the diagonal entries which are
  • 20:18nothing but the D the degree values.
  • 20:21And if you look at the off diagonal
  • 20:23entries that are some non positive
  • 20:27or negative values there because it
  • 20:30is coming from this D minus West.
  • 20:33And also if you see the rows are
  • 20:37summing to zero 2 -, 1 -, 1 is 0.
  • 20:41Similarly any other row and it's also
  • 20:45positive positive semi definite matrix.
  • 20:48So if you are not familiar with semi
  • 20:51definite so it is a matrix whose
  • 20:54eigen values are always non negative.
  • 20:58We will talk about this more
  • 21:00and later slides
  • 21:04then what this Laplacian gives us.
  • 21:08Let's oh, before that,
  • 21:11let's talk a little bit about what
  • 21:14is eigen values and eigenvectors
  • 21:15of a matrix R So let's say you have
  • 21:19a matrix like just an N cross.
  • 21:21And for example, here,
  • 21:22this is just a matrix of four entries
  • 21:27and the eigenvectors are those vectors.
  • 21:32If you operate this matrix on,
  • 21:35the direction is not going to change either.
  • 21:38It's going to be scaled,
  • 21:40but the direction is not going to change.
  • 21:42For example, here if you see so AU,
  • 21:46if U is an eigenvector of a matrix A,
  • 21:50then it is just scaled by a factor Lambda,
  • 21:54which is a scalar value called eigenvalue.
  • 21:59So in this first figure here,
  • 22:00if you see the vector 10,
  • 22:04if you just multiply matrix
  • 22:07A and this vector 10,
  • 22:09you can see that you can write it as
  • 22:13scaled version of this vector itself.
  • 22:16This is the eigen value here 2.
  • 22:19So it is it is just scaled from
  • 22:211:00 to 2:00 here and similarly
  • 22:23another eigen value which is -1 here.
  • 22:27So if you look at this vector one and -3,
  • 22:32then if you just multiply A to this vector,
  • 22:37it is going to be stretching
  • 22:39in the other direction,
  • 22:40but the direction is not going to change.
  • 22:45Then given a matrix squared matrix,
  • 22:48of course there are we are we are
  • 22:52introducing these two quantities,
  • 22:54eigen values and eigen vectors.
  • 22:57So eigen values are scalars.
  • 22:59So if A is a N cross N matrix then
  • 23:03you will have N number of eigenvalues
  • 23:06and N number of eigenvectors as well.
  • 23:10So let's do Then what is the use of this
  • 23:14eigenvalues and eigenvectors in our context?
  • 23:18In our context, when we want to
  • 23:21analyze the data lying on a graph,
  • 23:24these eigenvalues and eigenvectors provide
  • 23:27us the intuition of frequency in graph
  • 23:30domain as we will see in next slides.
  • 23:33So given a graph we use a term called
  • 23:39spectrum or sometimes frequency.
  • 23:41So eigenvalues of the Laplacian matrix,
  • 23:44we call it as graph spectrum and eigen.
  • 23:49And these eigenvectors that
  • 23:52we just arrange in columns.
  • 23:55So we have these four nodes here.
  • 24:03Actually there is a little mistake here.
  • 24:07This particular graph,
  • 24:07this Laplacian is not corresponding
  • 24:09to this particular graph.
  • 24:11But I'll, I'll, I'll clarify it later.
  • 24:14So using these eigenvalues and eigenvectors,
  • 24:19how do we define this Fourier transform?
  • 24:22So if you look at the
  • 24:24classical Fourier transform,
  • 24:25we have a time series XT.
  • 24:27If you if we want to define
  • 24:29the Fourier transform of this,
  • 24:30we just use this complex exponentials
  • 24:34or sinusoids because you can
  • 24:37always decompose this complex
  • 24:39exponential into sines and cosines.
  • 24:41And this is the frequency here Omega.
  • 24:44So usually when you see in FM
  • 24:47it's like megahertz or in you
  • 24:49in your in your voice signal,
  • 24:52it is in kilohertz and all and you
  • 24:57are decomposing the signal XT in
  • 24:59terms of this frequency coefficients.
  • 25:02Similarly, in our graph settings,
  • 25:05what we can do is we can decompose
  • 25:08our signal,
  • 25:09a graph signal which is lying on the
  • 25:12vertices or the nodes of the graph
  • 25:14using these eigenvectors of the Laplacian.
  • 25:18So you just compute the eigenvectors
  • 25:20of the Laplacian and then use them to
  • 25:25compute this graph Fourier transform.
  • 25:30So any given graph you have a feature
  • 25:34associated with each vertex vertex.
  • 25:36You apply graph Fourier transform on
  • 25:40this and you get to represent the same
  • 25:45information that is contained in the
  • 25:48data lying on a graph in this graph
  • 25:51frequency domain where this lambdas
  • 25:54are nothing but the eigenvalues of
  • 25:57the graph Laplacian that you can
  • 25:59think it of as just frequencies.
  • 26:01The the like the omegas in classical domain
  • 26:09like cosines, whatever Omegas
  • 26:10that is related that is the
  • 26:12analogous to the graph frequencies
  • 26:14that we are talking about here.
  • 26:16And for each frequency there will
  • 26:19be an associated number called graph
  • 26:23Fourier transform coefficient.
  • 26:25So it is saying that in this
  • 26:28signal or in this data you have
  • 26:31some content of frequency 1,
  • 26:33Omega some or Lambda some content
  • 26:36of frequency 2-3 and so on.
  • 26:41And I'm going to skip
  • 26:43this frequency ordering,
  • 26:45but let let's look at a closer
  • 26:48look into this graph in this
  • 26:51eigenvectors of this Laplacian.
  • 26:53So this is a six node graph.
  • 26:54So I have plotted this six
  • 26:57eigenvectors on top of this.
  • 26:58So if you look at the very first eigenvector,
  • 27:01use zero, which is corresponding
  • 27:04to the lowest eigenvalue.
  • 27:06So sometimes we call this eigenvectors as
  • 27:09harmonics or like you can relate it to
  • 27:13sinusoids in classical signal processing.
  • 27:15So if you look at U0, there's no change.
  • 27:18It's like a constant signal across the graph.
  • 27:21So if you move from node one to three to six,
  • 27:25there's no change.
  • 27:26It's like a constant signal.
  • 27:27There's no change at all if you look at U1.
  • 27:32So if you move from node one to two,
  • 27:35you can see it's like positive to negative.
  • 27:37So you can see a little something
  • 27:39like sine wave occurring here if
  • 27:41you move from one node to another.
  • 27:44So if you move from node 2 to one 2-3,
  • 27:47you can see that it's going
  • 27:49from negative values,
  • 27:51it's going to positive values.
  • 27:52So it's like change,
  • 27:54it is the changing change
  • 27:57across the space is increasing.
  • 27:59And if you look at the eigen vector
  • 28:03corresponding to the largest eigen value,
  • 28:07the change is even like larger.
  • 28:09So if you look at this node,
  • 28:12two to five positive, negative,
  • 28:14then five to four positive, negative.
  • 28:16So the changes are very rapid here.
  • 28:19So the if you look at from U0 to U5,
  • 28:23the change in the signal or change
  • 28:25in this data lying on this,
  • 28:27each node is increasing.
  • 28:30That means these are the harmonics.
  • 28:33We can treat this as a harmonic
  • 28:36like sine waves.
  • 28:37So here there's no change,
  • 28:39a little bit change,
  • 28:40very smoothly varying signal towards
  • 28:43very rapidly changing signal.
  • 28:45And we want to represent our data in terms
  • 28:48of these eigenvectors or graph harmonics.
  • 28:54Do we have any questions at this point? I
  • 29:03just want to follow up and make
  • 29:06sure they understand correctly.
  • 29:08So essentially I can various
  • 29:15just weights on certain ordinate functions.
  • 29:20For instance, if we had the
  • 29:22simple 3 dimensional space,
  • 29:24right, linear, linear, linear,
  • 29:26then we have coordinates in each
  • 29:29space and we have a vector and we
  • 29:32can define this vector much easier.
  • 29:34And here it is pretty much the
  • 29:37same but more complex basis.
  • 29:39So you have this
  • 29:44different types of changes and you
  • 29:49effectively decompose your signal
  • 29:51which can have any kind of shape
  • 29:56and form in the weighted sum of
  • 30:00this more simple type of signals.
  • 30:05Yes, exactly. And it is also providing
  • 30:08the intuition of variations,
  • 30:09how quickly it is changing,
  • 30:11how slowly it is changing accordingly.
  • 30:14Yeah. So you started with this sinusoid,
  • 30:17which was more complicated than
  • 30:21just a simple axis, Jakarta's axis.
  • 30:25And this is more complex than sinusoid
  • 30:28because you have more complex, Yes.
  • 30:30So in sinusoids we had just one dimension
  • 30:33time it was changing across that.
  • 30:35But here we have like very
  • 30:37irregular dimension here.
  • 30:38So it's like non Euclidean
  • 30:40space and still the changes are
  • 30:43according to the connectivity.
  • 30:44So if we move from one node,
  • 30:46the nearby nodes,
  • 30:47how smoothly or how rapidly
  • 30:50my information is varying,
  • 30:51that is kind of provides a sense
  • 30:55of frequency or variability
  • 30:57in this irregular graph.
  • 31:03OK, so let's move on.
  • 31:06So another important thing to notice
  • 31:10here is that we have numbered this,
  • 31:14we have numbered this graph like the we
  • 31:19have assigned #1 to this particular node.
  • 31:21We have assigned #4 to this particular node.
  • 31:24What what if we kind of scramble these
  • 31:28numbers like we can like change node
  • 31:32three to node one and accordingly
  • 31:37the the structure is not changing,
  • 31:40but the representation might change.
  • 31:42So for example, let's look at this.
  • 31:45What the effect of this vertex
  • 31:47indexing or node indexing,
  • 31:49how it changes the graph harmonics
  • 31:52or signal representations.
  • 31:53So we start with again a very simple,
  • 31:57very small graph.
  • 32:00We have this graph here,
  • 32:02we have this weight matrix here.
  • 32:04So here sometimes
  • 32:08it is beneficial to assign a
  • 32:12scalar value to each of the edges
  • 32:15as well or each of the links.
  • 32:18So when we assign a scalar value here,
  • 32:21that means how well connected
  • 32:24node two and node three are.
  • 32:27So if you compare in this particular
  • 32:29figure here node two and node 3,
  • 32:31the connectivity strength is .2 as
  • 32:34compared to node three and four where
  • 32:37the connectivity strength can be .7.
  • 32:39So this can be for example
  • 32:42in your computer networks,
  • 32:44sometimes it can reflect the bandwidth
  • 32:46how much of data one link can carry.
  • 32:50So you can assign weights accordingly.
  • 32:56And in a social network,
  • 32:57sometimes you can say, OK,
  • 33:00this is my best friend versus
  • 33:02friend versus just acquaintances.
  • 33:03So they're the, even though you,
  • 33:05you are friend with you are
  • 33:07friends on social network,
  • 33:09but it's still there are some kind
  • 33:12of weights are associated with your
  • 33:15relationship with your relationship with
  • 33:18other people in the social network as well.
  • 33:21So this weight matrix here
  • 33:23instead of the 011 entries,
  • 33:26there are weights associated here.
  • 33:28So for example the 1st
  • 33:30row and the second column,
  • 33:31the entries .3 that means
  • 33:34node one and node 2.
  • 33:36The connection strength is .3.
  • 33:39And accordingly you can fill in
  • 33:41this matrix and then you can compute
  • 33:44this Laplacian matrix using this
  • 33:47degree minus W which turns out to be
  • 33:49this and then you can compute these
  • 33:52eigen values and eigen vectors.
  • 33:54So let us look at a very nice property
  • 33:57of this Laplacian matrix here.
  • 33:59As you will see the first eigen value
  • 34:03is always going to be 0 always and
  • 34:08the other eigen values are going to
  • 34:11be like non negative eigen values.
  • 34:16That is why it is called positive
  • 34:18semi definite matrix and why this
  • 34:21first eigenvalue is 0 because
  • 34:23this rows are summing to zero.
  • 34:26And also if you look at the first
  • 34:29eigenvector which is the first
  • 34:31column in this big matrix U,
  • 34:33it is just point 5.5.
  • 34:35It's like not changing.
  • 34:36So that's what I was showing here.
  • 34:38There's no change that is U0.
  • 34:41So this is an eigenvector corresponding
  • 34:44to this eigenvalue zero in the
  • 34:47second column here is the eigenvector
  • 34:49corresponding to the eigenvalue
  • 34:52here and the third eigenvector
  • 34:56corresponding this eigenvalue 4th
  • 34:581 corresponding to this eigenvalue.
  • 35:00So the information in the data
  • 35:03in the graph we have represented
  • 35:05the information in terms of these
  • 35:09eigenvalues and eigenvectors.
  • 35:11Once we have these eigenvalues and
  • 35:15eigenvectors and always remember that
  • 35:17this eigenvalues are nothing but the
  • 35:20frequencies and this U's are nothing.
  • 35:23They are analogous to the sinusoids
  • 35:26of different frequencies.
  • 35:27And once we have that we can do some
  • 35:31frequency analysis on this graphs.
  • 35:34So if you look at this vertex
  • 35:39ordering here again.
  • 35:41So this is just first case.
  • 35:42Here I have just plotted all
  • 35:44the four eigen vectors here.
  • 35:46The first one is of course constant.
  • 35:49But if what if?
  • 35:54What if We want to represent this signal.
  • 35:57So we have at node 1A value of five,
  • 36:02at node 2A value of two node 3A value of 6,
  • 36:06at node four we have a value of nine.
  • 36:09And we want to represent this
  • 36:11signal as a combination of these
  • 36:14harmonics or the eigen vectors.
  • 36:16So this signal F1 which is a vector here
  • 36:21can be represented as a linear combination
  • 36:24of these eigen vectors of this laplacian.
  • 36:28And these coefficients are nothing but
  • 36:31the graph Fourier transform coefficients.
  • 36:34So I need 11 worth of weight of
  • 36:39first eigen vector negative point
  • 36:421.83 weighted second eigenvector and
  • 36:44accordingly this is the weight of the
  • 36:47third eigenvector and I can represent
  • 36:50the signal and so I have decomposed
  • 36:53the signal in these four frequency in
  • 36:56terms of these four frequency harmonics.
  • 36:58So it is saying that I have as
  • 37:04compared to the low frequencies.
  • 37:05I have high frequency information
  • 37:08as well here.
  • 37:10And if I change the vertex ordering here,
  • 37:15so here this one became four and
  • 37:19what if I just represent 11 here?
  • 37:22So if you write down the Laplacian,
  • 37:25it is going to change.
  • 37:26So it is going to be a permuted.
  • 37:28So in the second, in the second-half,
  • 37:30when we change the order ordering here,
  • 37:33this Laplacian is going to be a permuted
  • 37:37version of this Laplacian on the left.
  • 37:39But the representation here changed.
  • 37:43And if I compute,
  • 37:45but if I compute these eigenvalues,
  • 37:47as you can see,
  • 37:49just write down the Laplacian,
  • 37:50compute the eigenvalues,
  • 37:52it's going to be similar in exactly
  • 37:55the same in both the cases.
  • 37:56It doesn't matter how you order
  • 37:59these vertices.
  • 38:00And if you look at these eigenvectors,
  • 38:03first one is constant.
  • 38:04If you look at the 2nd eigenvector,
  • 38:06it's just a permutation.
  • 38:08So node one became node 4.
  • 38:12So if you look at the 4th,
  • 38:16the 1st value here,
  • 38:18it went to the 4th value here.
  • 38:20So it just permuted accordingly.
  • 38:22So in this case,
  • 38:24we don't have to worry about
  • 38:26the ordering of these vertices.
  • 38:30So again, if I plot these,
  • 38:33all the eigenvectors,
  • 38:34you can see first one is constant
  • 38:37node ordering orderings are
  • 38:39different in these two cases.
  • 38:41But you see the association here the the
  • 38:46eigenvectors are also permuting accordingly.
  • 38:49So what does that tell us?
  • 38:51So it tells us that no matter
  • 38:54what how you order the vertices,
  • 38:58your representation in the frequency
  • 39:01domain is not going to change at all.
  • 39:04So if you look at the signal here,
  • 39:07so 5269.
  • 39:07So why is five in the first entry here?
  • 39:11Because node one or this particular
  • 39:15region in the brain has a value of five.
  • 39:18That's why 5 here.
  • 39:19And these are the corresponding
  • 39:21eigen vectors.
  • 39:22These are the Fourier coefficients
  • 39:24as you can see see in both cases
  • 39:27F1 and F2 which are exactly the
  • 39:29same information but with different
  • 39:31vertex ordering or node ordering.
  • 39:33But there's no change in the
  • 39:36Fourier domain as.
  • 39:37So it doesn't matter which ordering you use.
  • 39:41Again, I think this is a repetition
  • 39:43of the same concept here.
  • 39:44Again, this another case,
  • 39:47there's no change in the in the signal
  • 39:51representation frequency domain.
  • 39:52So the message here is that
  • 39:55when we order the vertices 1234,
  • 39:59it doesn't matter.
  • 40:00We can just take the, take the,
  • 40:03we can just write down the Laplacian
  • 40:06and compute the eigenvalues and
  • 40:09eigenvectors that will correspond
  • 40:11to the graph frequencies and graph
  • 40:14harmonics or graph sinus or as you can
  • 40:18call it and and there's no change in
  • 40:20the frequency domain representation.
  • 40:25Now once we have this sort of frequency
  • 40:32interpretation of our data lying on a graph,
  • 40:38we want to define some other concepts
  • 40:41like convolution, modulation,
  • 40:42translation that are very basic operations
  • 40:45in classical segment processing.
  • 40:48But how do we do, how do we define
  • 40:51these kind of concepts in graph domain?
  • 40:54So all the all the all these concepts
  • 40:57are defined in the graph domain with
  • 41:00the help of graph Fourier transform.
  • 41:03All of it is based on the
  • 41:05graph Fourier transform.
  • 41:05So the basic building block is going
  • 41:07to be the Fourier transform here.
  • 41:09So again we have a graph here and
  • 41:12we have Laplacian and its eigen
  • 41:14values and eigen vectors shown here.
  • 41:17And let's say I had two different
  • 41:21signals or two different data points
  • 41:24lying on this this same graph.
  • 41:28How do I convolve these two graph signals?
  • 41:32So the way it is done is what we do
  • 41:37is first compute the graph Fourier
  • 41:40transform of the 1st signal F here,
  • 41:42then compute the graph Fourier
  • 41:45transform of the 2nd signal G here,
  • 41:48do point wise multiplication and
  • 41:51then take the inverse transform that
  • 41:54is define that is going to be your
  • 41:58convolve signal H so F convolve.
  • 42:02So F convolve with G gives us this
  • 42:06H signal here and this convolution
  • 42:10operation in classical signal processing,
  • 42:12this convolution operation is also
  • 42:14called like filtering operation where
  • 42:16this can be your original signal and
  • 42:18this can be your filter or a kernel.
  • 42:20How are we you going to come
  • 42:23compute this convolved product?
  • 42:24That is how you do it in graph domain.
  • 42:28And another side information here is
  • 42:31that this basic operation of graph
  • 42:35convolution which is started from the
  • 42:38intuition of this with graph Fourier
  • 42:40transform was the base is the basic
  • 42:43building block of graph neural networks.
  • 42:45If you've heard of that graph
  • 42:47neural networks and there are
  • 42:50many other architectures proposed,
  • 42:53simplified architectures proposed based on
  • 42:55the same concept here the graph convolution.
  • 43:02So why are we defining these concepts?
  • 43:04So because these concepts are going to help
  • 43:07us to represent the signal that we have
  • 43:12at each time point.
  • 43:14That's why we are discussing
  • 43:15this these concepts and this
  • 43:18is another graph translation.
  • 43:20How are we going to define
  • 43:22the graph translation?
  • 43:23I believe we can skip it.
  • 43:25It's not that important here in our context.
  • 43:28But the message here is that if you
  • 43:31want to define these classical signal
  • 43:34processing concepts in graph domain,
  • 43:38graph Fourier transform is the way
  • 43:40that helps us to theoretically
  • 43:42define these concepts.
  • 43:44Otherwise because of this irregular
  • 43:47structure is irregular structure of
  • 43:49this this graph that prohibits us to
  • 43:52kind of extend the concepts directly.
  • 43:55But then graph Fourier transform
  • 43:57comes into picture and eases our
  • 44:00theoretical understanding of
  • 44:01this data lying on this complex
  • 44:04network irregular structures.
  • 44:11So this is a table which is
  • 44:13comparing the the signal processing
  • 44:16concept side by side here.
  • 44:18So this is Fourier transform.
  • 44:21In Fourier transform sinusoids
  • 44:23or complex exponentials are our
  • 44:26basis and we kind of represent our
  • 44:29signal as a linear combination
  • 44:32of these sinusoids and same.
  • 44:35Similarly the graph in graph signal
  • 44:40processing we represent our signal F as A
  • 44:46as a linear combination of the
  • 44:48eigenvectors of the graph Laplacian
  • 44:50and convolution sum we defined
  • 44:54through graph Fourier transform.
  • 44:56Then similar. Similarly you can
  • 44:58define translation and modulation
  • 45:01using this graph Fourier transform.
  • 45:05SO question, I think this table
  • 45:09really helps me to understand
  • 45:11what question I have because you
  • 45:13kind of put everything together.
  • 45:19What I assume, and I need you to
  • 45:22correct me if I'm right or wrong,
  • 45:25is that graph signal processing
  • 45:29gives us better approximation of
  • 45:32complex signals because it has richer
  • 45:38like basic function,
  • 45:40richer set of basic function.
  • 45:42Or is there any other advantage if
  • 45:44you compare this classical signal
  • 45:46processing with graph signal processing,
  • 45:48What is the key advantage here?
  • 45:51Yeah. So first of all,
  • 45:53these concepts here,
  • 45:54you cannot define in the
  • 45:57graph domain directly.
  • 45:59So whatever we see in the first,
  • 46:01in the second column here,
  • 46:02the classical signal,
  • 46:04these concepts are not applicable
  • 46:05directly in graph domain.
  • 46:07You can't define it because of the
  • 46:09irregular structure of the graph.
  • 46:11So you're talking about pretty much
  • 46:14behaviour of signal in one node versus
  • 46:17behaviour or signal multiple nodes.
  • 46:19That's the biggest difference.
  • 46:21Oh, yes, exactly. OK, OK, thank
  • 46:23you. Yeah, yeah.
  • 46:25And in classical signal crossing,
  • 46:27the graph is always the same.
  • 46:29It's like T1T2T3T4,
  • 46:31it's arranged by time. It's not.
  • 46:34Images are arranged by a
  • 46:36very nicely spatial location.
  • 46:37You look at the images like from X to Y,
  • 46:40it's very nicely arranged.
  • 46:42But here if you change the graph,
  • 46:45everything changes.
  • 46:46If you change the graphic structure,
  • 46:48everything changes.
  • 46:49So it's like behaviour,
  • 46:52the time behaviour at one node
  • 46:54versus time behaviour if you want
  • 46:56to combine the all the different
  • 46:58regions together and if you want to
  • 47:00consider the information coming from
  • 47:02my neighbours in the brain regions.
  • 47:04So I have to take this into
  • 47:06account using this graph
  • 47:08signal processing techniques.
  • 47:10So basically dimensionality component,
  • 47:13right? So not necessarily complexity,
  • 47:15but it's more about how much
  • 47:18information you can describe.
  • 47:20Yeah, this is space can be another dimension
  • 47:23if you can look at it. Yeah, thank you.
  • 47:33OK,
  • 47:35so this is a very interesting example
  • 47:39of graph Fourier transform how it
  • 47:43can be helpful and it can give us the
  • 47:47information lying in the data directly
  • 47:50like with a just very little effort,
  • 47:54you can find the find some of the
  • 47:58structure in the data easily.
  • 48:00So this is a sensor net sensor network.
  • 48:02So this is a map of United States,
  • 48:05Florida, we are somewhere here.
  • 48:08So this is just each node is
  • 48:14representing geographical location
  • 48:17and the connectivity of the nodes
  • 48:19is based on the the geography
  • 48:22like the the nodes are connected,
  • 48:26the two geographical locations
  • 48:28are connected by these links if
  • 48:30they are close to each other like
  • 48:33for example this California is
  • 48:34not connected to the East Coast.
  • 48:36So only this California regions
  • 48:39based on the distance between
  • 48:41the geographical locations,
  • 48:44you can connect these nodes.
  • 48:46And once you have this nodes and
  • 48:50connectivity information and you
  • 48:52have this temperature readings
  • 48:54at at one time point you have
  • 48:58temperature readings of all the these
  • 49:02sensors distributed across the US.
  • 49:06As you can see S is little
  • 49:08hotter than the north.
  • 49:09But this is just one time slice.
  • 49:13And let's say some sensors
  • 49:16are malfunctioning,
  • 49:17they are not giving you the correct reading.
  • 49:19So by the nature of the data here,
  • 49:22it is smooth data.
  • 49:23What what does this smooth means here?
  • 49:26If you move from 1 geographical location
  • 49:29to a nearby geographical location,
  • 49:32the temperature change
  • 49:33is not going to be much.
  • 49:35So temperature in New York is more or
  • 49:37less going to be temperature in New Haven,
  • 49:39but it is going to it can be very
  • 49:42different from the temperature
  • 49:44in Texas or Florida or Arizona.
  • 49:46But let's say some sensors
  • 49:49are men malfunctioning.
  • 49:51So if it is malfunctioning,
  • 49:54it is going to destroy this
  • 49:55smoothness structure in the data.
  • 49:57So if you just,
  • 49:59if let's say the sensor network is perfect,
  • 50:03if you take the Fourier graph,
  • 50:05Fourier transform of the data here
  • 50:08you will see all the you will see low
  • 50:12frequency components are dominant here.
  • 50:15There are no high frequency components.
  • 50:17Why?
  • 50:17The same reason the temperature is
  • 50:19not going to change rapidly if you
  • 50:21move from 11 geographical location to other.
  • 50:24But if the sensor is malfunctioning,
  • 50:26then what you will see is there
  • 50:29will be like a spike in high
  • 50:32frequency where you will you can
  • 50:35tell that the temperature changed
  • 50:37by a significant amount if I move
  • 50:40from New Haven to Hartford,
  • 50:42which is usually not the case.
  • 50:44So if you just take the Fourier
  • 50:47transform of one time point and if
  • 50:49you get a high frequency spikes,
  • 50:51you can tell there are some sensors
  • 50:53in this sensor network that are not
  • 50:56performing well that are malfunctioning.
  • 50:58But can we pinpoint which which
  • 51:03sensor is not is is malfunctioning?
  • 51:15Do we have any answers?
  • 51:17You can think of it a little bit
  • 51:26not based on this, based on this
  • 51:30graph, just looking at this graph,
  • 51:32yeah. So if one sensor is malfunctioning,
  • 51:35can we tell like not based on the in general.
  • 51:39I have a one slice of temperature
  • 51:41readings all over the US and I
  • 51:44take the graph Fourier transform.
  • 51:45I see a high frequency spike here.
  • 51:50Then that tells me that there is an issue.
  • 51:53There is an issue in in the network,
  • 51:55but this doesn't tell me
  • 51:57where exactly the issue is.
  • 52:00So this graph Fourier transform
  • 52:02is a global transform.
  • 52:04Global in the sense it captures the frequency
  • 52:08information globally lying on the graph.
  • 52:10It cannot pinpoint where exactly the
  • 52:14those graph frequencies are changing,
  • 52:17where exactly in the space that is going on.
  • 52:19It just tells you there is a change.
  • 52:21I don't know where there is a change.
  • 52:23There is this high frequency or low
  • 52:25frequency information in the graph,
  • 52:26but I don't know where in the space.
  • 52:29So that is kind of a limitation
  • 52:31of this Fourier transform,
  • 52:32but it's still
  • 52:33is it, is it, is it something you can,
  • 52:35for instance, answer by iteratively
  • 52:38dropping one of the notes and
  • 52:41see if your spike disappears.
  • 52:44That can be one strategy if that
  • 52:47is the if that is the goal. But
  • 52:49but but overall, generally we just
  • 52:51know the system doesn't work. Well,
  • 52:53yeah, that is that can be one strategy.
  • 52:55But then we have some advanced tools that
  • 52:58can tell us that can help us tell pinpoint
  • 53:02exact sensor which is malfunctioning.
  • 53:05So for that we need this,
  • 53:08we need to combine the this idea of
  • 53:11the space as well as this idea of
  • 53:14frequency and we want to localize
  • 53:16it in space as well as frequency.
  • 53:19Then there the wavelets come into fake
  • 53:22picture or the graph is scattering
  • 53:24comes into the picture. So yeah.
  • 53:29So to motivate that here again,
  • 53:33if we look at so in the previous slides,
  • 53:36it is slide, it was about this
  • 53:38temperature recordings on the graph.
  • 53:40But if you just look at a very
  • 53:43classical one-dimensional chirp signal,
  • 53:45so let's say it's like starting,
  • 53:47starting at time zero,
  • 53:50it is a slowly varying signal,
  • 53:52low frequency.
  • 53:53Then as the time passes it's it is
  • 53:56varying rapidly and that is chirp up.
  • 53:59So frequency is going up.
  • 54:01And if you look at the just take the
  • 54:04Fourier transform of this signal,
  • 54:06you will see that
  • 54:10OK, just and just reverse the signal now.
  • 54:14So in the time T, time T is equal to 0.
  • 54:18The signal is changing rapidly
  • 54:19and then as the time progresses,
  • 54:22the frequency goes down.
  • 54:24These two are very different signals.
  • 54:29But if you take the Fourier transform,
  • 54:31it's going to look exactly the same.
  • 54:33It cannot.
  • 54:34So that that's the message here.
  • 54:36The Fourier transform cannot point out
  • 54:39where exactly the changes are happening.
  • 54:41It can tell you what changes are happening,
  • 54:43but it cannot tell you where exactly
  • 54:46the thing these changes are happening.
  • 54:48So in order to solve this problem
  • 54:50or in order to discriminate or
  • 54:53localize discriminate such issues
  • 54:55or in order to localize the this
  • 54:59time and frequency together, we
  • 55:05we study the concept called wavelet.
  • 55:10So what are these wavelets?
  • 55:12Wavelets are just nothing but a small wave.
  • 55:15And in, in in literature you can find
  • 55:19there are many different wavelet
  • 55:22shapes that people have studied.
  • 55:25Some of the very popular ones are this
  • 55:29R wavelets and this debash wavelets.
  • 55:32Also this Mexican hat,
  • 55:34So these are the small waves that you
  • 55:37just want to use in order to show in
  • 55:40order to represent your data or represent
  • 55:44your signal that is localized in time
  • 55:47as well as in frequency together.
  • 55:49And we will see how to do that exactly.
  • 55:55So what this wavelet does
  • 55:58is it takes shifts of this.
  • 56:00So this is a very small kind
  • 56:03of a wave and you want to
  • 56:05analyse this time domain signal.
  • 56:07So what you can do is just align
  • 56:10this wavelet at this time window
  • 56:14and compute the correlation between
  • 56:16the signal and this wavelet and
  • 56:19see how correlated they are.
  • 56:21Then shift the same wavelet to
  • 56:23another time window and compute some
  • 56:25correlation coefficients or inner product,
  • 56:28whatever you call it.
  • 56:31And then and then save those numbers,
  • 56:35save those numbers and then you kind
  • 56:38of stretch the wavelet like scale the
  • 56:40wavelet so the changes are not as rapid.
  • 56:43So if you look at this wavelet at the bottom,
  • 56:46it is a,
  • 56:47it is like a stretched version
  • 56:49of this first wavelet here.
  • 56:51So this is called scaling.
  • 56:53So you can scale your wavelet to
  • 56:56like either stretch it or compress it.
  • 57:00And based on that you can you
  • 57:03can capture the high or low
  • 57:06frequency variations in the signal.
  • 57:08So that's how this wavelet wavelets work with
  • 57:12different shifts and scales in time domain.
  • 57:15And this is a very nice example here.
  • 57:17If you look at this,
  • 57:19the chirped up signal where in the beginning
  • 57:23slowly varying signal and then as the
  • 57:26time progresses the frequency is increasing.
  • 57:29Then if you look at this
  • 57:31wavelet coefficients here,
  • 57:34so this vertical axis here is the
  • 57:38frequency and the horizontal axis here
  • 57:40is time and these are the coefficients.
  • 57:42So if you can see this frequency
  • 57:44is increasing slowly in time.
  • 57:46So this transform is not only giving
  • 57:49us information about what frequency
  • 57:52components are present in your
  • 57:54data and but it is also telling
  • 57:56us that at what time windows these
  • 57:59frequency components are present.
  • 58:01And these coefficients are just
  • 58:03computed by just aligning these
  • 58:05we have list to the time window,
  • 58:06computing these inner product or
  • 58:09correlations and just plotting
  • 58:11it here together.
  • 58:12And if you plot this same
  • 58:15coefficients with chirp down signal,
  • 58:17it's going to look exactly the
  • 58:20opposite and you can identify
  • 58:22the OR discriminate between the
  • 58:24two different kind of signals.
  • 58:28Any questions here?
  • 58:31Then we move to the last part.
  • 58:46OK,
  • 58:52so now we have a little bit idea
  • 58:54about what these wavelets are.
  • 58:55So why we came to this wavelet?
  • 58:58Because this Fourier transform
  • 59:01doesn't tell us where exactly in
  • 59:03time and that that can be very
  • 59:05important information sometime you
  • 59:08don't want to miss out on that,
  • 59:09where exactly it is present.
  • 59:10So wavelets give you more kind of
  • 59:14more powerful representation of the
  • 59:16signal in time domain as well as now
  • 59:20how do we kind of extend these this
  • 59:23wavelet concept to graph domain?
  • 59:26Can we do it?
  • 59:32So I'm not going to talk much
  • 59:35about this mathematics here,
  • 59:37not to scare you, but it is just a
  • 59:42little bit that this is just a shifting.
  • 59:45So there is a mother wavelet, sigh.
  • 59:48And this mother wavelet can be
  • 59:51hare debash or Mexican head.
  • 59:54This is a mother wavelet.
  • 59:56And then you kind of shift those wavelets,
  • 59:59stretch those wavelets and compress
  • 01:00:01those wavelets and and then kind
  • 01:00:04of save those wavelets at different
  • 01:00:06scales and different translations
  • 01:00:08of different shifts.
  • 01:00:11So these shifts, yes,
  • 01:00:13we have a question.
  • 01:00:14So again, just to clarify,
  • 01:00:16basically we're doing the same stuff.
  • 01:00:18We are coming up with a
  • 01:00:22set of base functions.
  • 01:00:24So then we can decompose our complex
  • 01:00:27signal into all these base functions.
  • 01:00:30And the whole creativity here is
  • 01:00:34that we are trying to not just
  • 01:00:38stay in one-dimensional signal,
  • 01:00:41but we want to have higher
  • 01:00:44sensitivity to spatial structure,
  • 01:00:46we want to have higher sensitivity
  • 01:00:48to temporal structure.
  • 01:00:49And that's why we're coming up
  • 01:00:52with more complex combination
  • 01:00:53set of base functions, right.
  • 01:00:56So that's the story here.
  • 01:00:58OK,
  • 01:00:59that's a, that's a very good point. Yeah. And
  • 01:01:05yeah, so this similar basically we
  • 01:01:07are trying to get the represent the
  • 01:01:10signal using this different set
  • 01:01:12of basis functions or harmonics
  • 01:01:14or whatever if you can call it.
  • 01:01:16And this side is our mother wavelet
  • 01:01:20and this S acts as a scaling operation.
  • 01:01:24So if you put S as like two or four,
  • 01:01:28so usually people use dyadic wavelets
  • 01:01:31like usually this is scaling factor
  • 01:01:33is in powers of two because you
  • 01:01:35cannot like it's in continuous form.
  • 01:01:37So you cannot like store infinite
  • 01:01:41number of wavelets.
  • 01:01:42You can store or analyze only a finite
  • 01:01:45number of wavelets in in your computer.
  • 01:01:48So you kind of discretize your scales
  • 01:01:51and you discretize your translating
  • 01:01:53to different time windows and
  • 01:01:55you fix those numbers.
  • 01:01:56And once you have fixed those bases,
  • 01:01:59you can compute the coefficients
  • 01:02:01corresponding to the corresponding
  • 01:02:03to different wavelets at
  • 01:02:04different scales and shifts.
  • 01:02:08Then similarly, is there any limit on
  • 01:02:12the the how much data you need to
  • 01:02:16have for what is the relationship?
  • 01:02:18Just intuitively, again,
  • 01:02:20when we are thinking about more
  • 01:02:22simple analysis, we also have to
  • 01:02:24think in terms of power, right?
  • 01:02:26So this is how sensitive we are to
  • 01:02:29changes versus how large our sample is.
  • 01:02:32This seems to be a very
  • 01:02:35different in terms of intuition,
  • 01:02:38but are there any basic rules
  • 01:02:41like how many functions can you
  • 01:02:43incorporate versus how much data you
  • 01:02:45need to have like anything at all?
  • 01:02:47Very, very,
  • 01:02:49very good, very good question here.
  • 01:02:51So it's up to the user,
  • 01:02:55researcher, whatever you call it,
  • 01:02:59to kind of find this by intuition
  • 01:03:02or kind of learn it by applying this
  • 01:03:06wavelets to multiple data sets.
  • 01:03:08So once you have some kind
  • 01:03:10of sense of the data set,
  • 01:03:12what kind of data it is,
  • 01:03:14you can always use.
  • 01:03:16You can start with like two
  • 01:03:19or three different scales and
  • 01:03:21like at different time shifts,
  • 01:03:24like a very few time shifts in a time
  • 01:03:27window depending on how long is the
  • 01:03:29recording versus how much variation.
  • 01:03:32So it is up to the user
  • 01:03:34to kind of determine it.
  • 01:03:36But if you have like if your
  • 01:03:38complexity is increased,
  • 01:03:39because if you take more and more wavelets,
  • 01:03:41your resolution is going to increase and
  • 01:03:43that puts a computational burden on you.
  • 01:03:46So you have to like kind of
  • 01:03:48compromise between the computational
  • 01:03:49burden versus the data set that
  • 01:03:51you are that you have in hand.
  • 01:03:54So there is no hard and fast rule.
  • 01:03:56How many scales or how many
  • 01:03:57shifts you have to use here.
  • 01:03:59It comes from just from the application.
  • 01:04:02Yeah,
  • 01:04:05OK.
  • 01:04:08So this is the wavelet.
  • 01:04:10So in classical domain again this way
  • 01:04:12you can define this wavelet coefficients
  • 01:04:17and then using this intuition
  • 01:04:20of this because this complex.
  • 01:04:22So whenever you see exponential of
  • 01:04:24J Omega that is going to be our
  • 01:04:29eigenvector Laplacian eigenvector.
  • 01:04:30So or even if you see sine sine
  • 01:04:33wave or sine Omega Omega X or cosine
  • 01:04:36Omega X that is literally analogous
  • 01:04:40to our Laplacian eigenvectors.
  • 01:04:43And if you have so here,
  • 01:04:45if you have this A a means the shift.
  • 01:04:48So that is nothing.
  • 01:04:53Oh, this Phi dash, sorry, this side side
  • 01:04:57hat is nothing but this filter here.
  • 01:05:00So I don't want to get into the details here,
  • 01:05:03but the point here is that we
  • 01:05:06want to decompose our signal in
  • 01:05:08in terms of different scales and
  • 01:05:11different shifts in the space.
  • 01:05:14So what exactly is happening here?
  • 01:05:16So we define some kernels for this wavelet.
  • 01:05:21So we don't have to worry about that.
  • 01:05:23If you put it in the toolbox,
  • 01:05:25it just you just need to decide the scales,
  • 01:05:29how many scales you want in the graph
  • 01:05:33and at each node it is computed.
  • 01:05:36So here this is just a ring graph.
  • 01:05:38Here if you look at wavelet at at
  • 01:05:41a scale T is equal to 19 or 20.
  • 01:05:44So if you so high scale means low frequency
  • 01:05:49and low scale means high frequency.
  • 01:05:56So if you look at here the
  • 01:05:59changes are going to be rapid
  • 01:06:02in case of wavelet as low scales and high
  • 01:06:07scales the changes are going to be slow.
  • 01:06:10But let's not get into mathematics,
  • 01:06:14but just intuition wise.
  • 01:06:16High scale is low frequency,
  • 01:06:18low scale is high frequency information. And
  • 01:06:25now
  • 01:06:29in a word,
  • 01:06:33in this workshop, we are
  • 01:06:34remember that we, we were, we are
  • 01:06:38developing the concepts required for this
  • 01:06:42geometric scattering trajectory homology.
  • 01:06:44So it involves these four steps,
  • 01:06:48graph creation.
  • 01:06:49And once you have a graph,
  • 01:06:51you, you want to represent
  • 01:06:54this graph signal somehow.
  • 01:06:56And this is scattering.
  • 01:06:58This particular figure is
  • 01:07:00for a **** graph scattering.
  • 01:07:03And in the next,
  • 01:07:05in the next lecture,
  • 01:07:07Dhananjay and Brian are going to
  • 01:07:10talk about how to use these graph
  • 01:07:14wavelets in order to define exactly
  • 01:07:17this graph scattering transform.
  • 01:07:20So we have, once we have this graph
  • 01:07:24scattering transform defined,
  • 01:07:25it goes to the dimensionality reduction.
  • 01:07:28And then we do some kind of a
  • 01:07:31topological data analysis to find
  • 01:07:34the find the shapes that that
  • 01:07:37come come across from this data.
  • 01:07:39And in the first in last week,
  • 01:07:41in the first lecture,
  • 01:07:42Dhananjay has talked about this,
  • 01:07:44how to deal with these shapes.
  • 01:07:46Today in this step two,
  • 01:07:48we have learned the concepts
  • 01:07:51of frequency in graphs,
  • 01:07:54frequency in in this irregular
  • 01:07:57structure and we have we have
  • 01:08:01gone through Fourier transform
  • 01:08:05and its extension to graphs.
  • 01:08:07And we also introduced concepts
  • 01:08:10of wavelet a little bit.
  • 01:08:12And this representations now are
  • 01:08:15going to be based on this graph
  • 01:08:18wavelets so that we get a richer
  • 01:08:21representation of this data once
  • 01:08:24we have the representation of
  • 01:08:26the data at each time point.
  • 01:08:29So we after we have this
  • 01:08:31representation at each time point,
  • 01:08:33we do this dimensionality reduction
  • 01:08:35and we get a nice trajectory and
  • 01:08:38then we kind of analyze the shape
  • 01:08:41of that trajectory using this TDA.
  • 01:08:48So, OK,
  • 01:08:51so I'm going to just remind again what
  • 01:08:53we have covered and then in my lecture
  • 01:08:55here and if we have any more questions,
  • 01:08:57we can go go through that.
  • 01:08:59So we today we introduced graph signal
  • 01:09:03processing where we and also we kind of,
  • 01:09:07we made an analogy from classical signal
  • 01:09:10processing and how to extend the,
  • 01:09:13the important tools in graph domain.
  • 01:09:16And we found that this Laplacian
  • 01:09:19eigenvalues and eigenvectors are
  • 01:09:20the basic building blocks of all
  • 01:09:23the concepts in graph domain.
  • 01:09:24Most of the conference,
  • 01:09:26most of the concepts in graph domain.
  • 01:09:28And we also introduced what is
  • 01:09:30the use of the wavelet.
  • 01:09:32And next is how do we use this graph
  • 01:09:35wavelets to define graph scattering?
  • 01:09:37And that that's not that's going to be
  • 01:09:42presented by the Ranjay in next week lecture.
  • 01:09:46And then we're going to combine these Step 2,
  • 01:09:52all these steps together in the next
  • 01:09:56lecture to give a picture of geometric
  • 01:09:58scattering, scattering homology.
  • 01:10:03Thank you. That ends my lecture
  • 01:10:05today. Thanks for listening.
  • 01:10:07Thank you, thank you, Rahul.
  • 01:10:09So I want to give an opportunity
  • 01:10:11to our our other participants.
  • 01:10:14If you guys have any questions,
  • 01:10:16I can see that you're sticking around
  • 01:10:19through all this advanced stuff.
  • 01:10:23Any any comments,
  • 01:10:25any questions before I will jump in.
  • 01:10:34So for me, for me it's
  • 01:10:36the same kind of question.
  • 01:10:39My understanding from today,
  • 01:10:40I was I was really curious
  • 01:10:43about this approach and I was
  • 01:10:45wondering what is the backbone.
  • 01:10:48And again, the way I understand
  • 01:10:51that is that we are after some
  • 01:10:56functional and practical decomposition
  • 01:11:00of very complex phenomena into
  • 01:11:04something that we can manage,
  • 01:11:07something we understand.
  • 01:11:10And we just going from say
  • 01:11:13Taylor to Fourier to graph based
  • 01:11:18decomposition and then aiding
  • 01:11:21this temporal component.
  • 01:11:23So we just generating more
  • 01:11:27complex base functions.
  • 01:11:32This is new to me, but in my
  • 01:11:34intuition comes from this,
  • 01:11:36you know, single dimensional story.
  • 01:11:40What is the danger with overheating?
  • 01:11:44Does it exist? Overheating like can be
  • 01:11:49overheat because that would be concerned
  • 01:11:52with more simple decompositions, right?
  • 01:11:57You do understand correctly that all
  • 01:12:00data is treated as signal or are there
  • 01:12:04any components to denoise the process,
  • 01:12:07right, to separate noisy components?
  • 01:12:10Like for instance,
  • 01:12:11you just assume that something of
  • 01:12:13higher frequencies and noise, I don't know.
  • 01:12:16So again, this is me just trying
  • 01:12:18to digest this new material.
  • 01:12:20Like what is the signal?
  • 01:12:21What is noise?
  • 01:12:23Are there any criteria?
  • 01:12:25And what is the danger
  • 01:12:27of overheating generally?
  • 01:12:29Yeah. So talking about frequency first,
  • 01:12:31a high frequencies are not always the noise
  • 01:12:34exactly. Yeah, right. But in
  • 01:12:36most of the cases, most of the cases
  • 01:12:40usually you don't need high frequency
  • 01:12:42because in general the date the in the
  • 01:12:46natural data is smooth in nature seizure.
  • 01:12:51Yeah, Yeah. So the best one is not,
  • 01:12:52not, not all the time,
  • 01:12:55Yeah, not all the time,
  • 01:12:56but they're important sometimes.
  • 01:12:58And over fitting is like sometimes you
  • 01:13:01can kind of take so many scales here
  • 01:13:05and so many kind of so many levels
  • 01:13:09of decomposition and that kind of
  • 01:13:13that that can like create issues.
  • 01:13:16If you kind of take more and more
  • 01:13:18scales and make it more complicated
  • 01:13:21representation in this particular part here.
  • 01:13:23Then again that that has
  • 01:13:25another kind of a set.
  • 01:13:26It can the set back can happen again.
  • 01:13:29But but The thing is,
  • 01:13:30if you're not able to kind of find out
  • 01:13:33the nice patterns and all in the data,
  • 01:13:35if you take two computationally
  • 01:13:38complex methodology here,
  • 01:13:40then you can always reduce it.
  • 01:13:44Still let me yeah, let me try
  • 01:13:46ask this question different way.
  • 01:13:48So if I do something basic as principle
  • 01:13:52component analysis on imaging data,
  • 01:13:54I will always expect that first
  • 01:13:59largest components, maybe three or
  • 01:14:02four are going to be noise, right?
  • 01:14:05So this is my approach to denoising
  • 01:14:08my data and I'm just curious if
  • 01:14:15there is any built in intuitional
  • 01:14:18logic except for high frequencies
  • 01:14:21typically noise to denoising,
  • 01:14:23we are dealing with incredibly noisy
  • 01:14:26data when we do for instance fMRI.
  • 01:14:29So we know that noise is there.
  • 01:14:31So how do you so sometimes noise in
  • 01:14:35this scattering transforms.
  • 01:14:36There are some learnable parameters
  • 01:14:38also they have people have introduced,
  • 01:14:41I think Dhananjay was one of the
  • 01:14:43contributors in the, in those,
  • 01:14:45in those in that work where you
  • 01:14:47can kind of learn from the data,
  • 01:14:49how much of high frequency
  • 01:14:50component I'm going to use,
  • 01:14:51how much of low frequency
  • 01:14:52component I'm going to use.
  • 01:14:54So it's not a hard for hard and
  • 01:14:56fast deterministic set of values or
  • 01:14:58deterministic set of frequency windows.
  • 01:15:00But you can make it learnable
  • 01:15:02as well based on the data.
  • 01:15:05So it can be data-driven
  • 01:15:06learnable representation as well.
  • 01:15:10Maybe I can add a little bit to that.
  • 01:15:12So the denoising is built into all the
  • 01:15:16steps really in the pipeline, right.
  • 01:15:18So the, the way first step has to do
  • 01:15:20with how we construct the graph and how
  • 01:15:23we define like a signal on the graph.
  • 01:15:25So you denoise at that level,
  • 01:15:27there is denoising built into that
  • 01:15:29level in the sense for example in this
  • 01:15:32in this picture when we build a graph,
  • 01:15:34we are our our nodes ourselves
  • 01:15:36and our edges are cells that
  • 01:15:38are adjacent to each other.
  • 01:15:40And so when we define the time
  • 01:15:41lapse signal on the graph,
  • 01:15:42we are averaging the signal over each
  • 01:15:45cell like the segmentation of the cell.
  • 01:15:47When we build a graph from brain,
  • 01:15:50then we consider a parcellation of
  • 01:15:53the brain based off of some Atlas.
  • 01:15:55And so to define a time lapse
  • 01:15:57signal on that graph,
  • 01:15:58we are averaging within each parcel.
  • 01:16:00So there's some averaging happening
  • 01:16:02in the walk cells belonging to each
  • 01:16:05parcel and that has some small amount of
  • 01:16:08denoising built into that averaging process.
  • 01:16:11And then in the graph signal processing here,
  • 01:16:14the wavelets that we are using
  • 01:16:16to kind of capture the signal at
  • 01:16:18different scales on the graph,
  • 01:16:20the shape of the wavelet and,
  • 01:16:22and how that wavelet is being applied to
  • 01:16:25the data that does some amount of denoising.
  • 01:16:28And so that,
  • 01:16:29that's, that's what I was wondering actually.
  • 01:16:30I was wondering if you have some
  • 01:16:33wavelets that typically more more
  • 01:16:35commonly represent noise that
  • 01:16:37because of their shape or not.
  • 01:16:38Like I have my toolbox and I know
  • 01:16:41that in this corner I have noisier
  • 01:16:45base functions like is it or,
  • 01:16:47or it doesn't work like that.
  • 01:16:49So when you pick a wavelet scale that's very,
  • 01:16:51very small, then the frequency of
  • 01:16:54the wavelet is much higher and,
  • 01:16:57and that will correspond to very noisy.
  • 01:17:01That's going to capture noise in,
  • 01:17:03in the, in the data set on the graph.
  • 01:17:06Again, depends on what what scale becomes
  • 01:17:10noise versus what scale is still like,
  • 01:17:13you know, an epileptic seizure,
  • 01:17:15which is, you know,
  • 01:17:16going to be rapidly wading across the brain.
  • 01:17:19So, so there's denoising kind of
  • 01:17:21in the spatial domain that's built
  • 01:17:23into step one and Step 2 through
  • 01:17:26averaging in step one and through
  • 01:17:28the scales of the wavelets in Step 2.
  • 01:17:31But that doesn't address
  • 01:17:33denoising in the temporal domain.
  • 01:17:35And so the denoising in the temporal
  • 01:17:37domain is built into step three has to
  • 01:17:40do with how that trajectory itself gets
  • 01:17:42computed from all of these numerical
  • 01:17:44features that are derived in Step 2.
  • 01:17:46So the temporal denoising happens there.
  • 01:17:49And then there's another denoising
  • 01:17:50step in Step 4 where when we
  • 01:17:52compute the topological signatures,
  • 01:17:54we ignore topology,
  • 01:17:55topology close to the diagonal.
  • 01:17:57And so we are those are kind of
  • 01:17:59the smaller topological features
  • 01:18:01that are not as persistent.
  • 01:18:03So there's again denoising
  • 01:18:04happening at that level,
  • 01:18:06but yeah,
  • 01:18:07there's multiple levels of denoising.
  • 01:18:09I'd say in step one and Step 2,
  • 01:18:11the denoising operates on the spatial
  • 01:18:13axis and step three and step four it
  • 01:18:15operates on the temporal axis of the data.
  • 01:18:19Thank you.
  • 01:18:21Very exciting. Looking
  • 01:18:22forward to the next talk.
  • 01:18:24Yeah, thanks. Wanted to thank also
  • 01:18:26the audience for sticking around.
  • 01:18:28I know it was quite technical today,
  • 01:18:29but it has really built in some
  • 01:18:32vocabulary and some tools that
  • 01:18:33would be very helpful in kind
  • 01:18:35of bringing this all together.
  • 01:18:37In our next workshop,
  • 01:18:39we'll bring it all together,
  • 01:18:40but we'll also show you lots and
  • 01:18:42lots of examples of applying this
  • 01:18:44technique to real data and build
  • 01:18:46even more intuition around what
  • 01:18:48kind of dynamics GSTH is capturing.
  • 01:18:52And then we'll give you access
  • 01:18:54to the tool and have you work on
  • 01:18:55some data sets yourself in the
  • 01:18:57final workshop in the series.
  • 01:18:58So thanks for coming.
  • 01:18:59Thanks for sticking around.
  • 01:19:01Thank you so much.
  • 01:19:03Yes, thank you. See you next week.