<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Summer 2022 | Emory REU Computational Mathematics for Data Science</title><link>http://www.math.emory.edu/site/cmds-reuret/tag/summer-2022/</link><atom:link href="http://www.math.emory.edu/site/cmds-reuret/tag/summer-2022/index.xml" rel="self" type="application/rss+xml"/><description>Summer 2022</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Fri, 05 Aug 2022 00:00:00 +0000</lastBuildDate><image><url>http://www.math.emory.edu/site/cmds-reuret/media/icon_hu_95a4f94e52276402.png</url><title>Summer 2022</title><link>http://www.math.emory.edu/site/cmds-reuret/tag/summer-2022/</link></image><item><title>Comparing Reinforcement Learning to Optimal Control Methods on the Continuous Mountain Car Problem</title><link>http://www.math.emory.edu/site/cmds-reuret/projects/2022-rl-vs-oc/</link><pubDate>Fri, 05 Aug 2022 00:00:00 +0000</pubDate><guid>http://www.math.emory.edu/site/cmds-reuret/projects/2022-rl-vs-oc/</guid><description>&lt;h2 id="what-is-the-best-way-to-get-a-car-out-of-the-bottom-of-a-hill">What is the best way to get a car out of the bottom of a hill?&lt;/h2>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>This blog post was written by &lt;a href="https://www.linkedin.com/in/jacob-mantooth-7b262321b/" target="_blank" rel="noopener">Jacob Mantooth&lt;/a>,&lt;a href="https://dewanchowdhury.github.io/" target="_blank" rel="noopener">Dewan Chowdhury&lt;/a>, &lt;a href="https://www.linkedin.com/in/arjunso/" target="_blank" rel="noopener">Arjun Sethi-Olowin&lt;/a> and published with minor edits.The team was advised by Dr.Lars Ruthotto.In addition to this post, the team has also given a &lt;a href="content/2022_REU_RLvsOC_MidtermPresentation.pdf">midterm presentation&lt;/a>, filmed a &lt;a href="https://www.youtube.com/watch?v=i9g6mRNJEHA&amp;amp;feature=youtu.be" target="_blank" rel="noopener">poster blitz video&lt;/a>, created a &lt;a href="content/2022_REU_RLvsOC_Poster.pdf">poster&lt;/a>, published &lt;a href="https://github.com/EmoryMLIP/MountainCar-RLvsOC" target="_blank" rel="noopener">code&lt;/a>, and written a &lt;a href="">paper&lt;/a>.&lt;/p>
&lt;p>The word around town is that reinforcement learning is the top dog and has the answers to all our problems. We wanted to see if that really was the case, so this summer we took a trip to Emory University where we looked at the continuous mountain car problem to see if reinforcement learning really, was the best. The continuous mountain car problem is an example of an optimal control problem. In the image below you can see an example of what the continuous mountain car problem looks like.&lt;/p>
&lt;p align="center">
&lt;img src="img/mountaincar.png" width="50%" height="50%"/>
&lt;/p>
&lt;p>You may be asking yourself what is an optimal control problem? An optimal control problem is problem that consists of controlling a dynamical system to minimize (or maximize) a given objective function. In our case the continuous mountain can be modeled as a ODE where $u$ is some controllable function. In the continuous mountain car problem our control,$u$, is whether the car accelerates left or right. In an optimal control problem, we seek to optimize some objective function, in our case we will minimize the objective function. Our two objective functions are the running cost, which penalizes the car for acceleration. While our other objective function is the terminal cost which penalizes the car for not reaching the goal, the top of the hill, in time.&lt;/p>
&lt;h3 id="why-this-problem">Why This Problem?&lt;/h3>
&lt;p>You may be wondering why choose the Continuous Mountain Car Problem? Here are a couple of reasons why we picked this example,&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Established benchmark for RL models&lt;/p>
&lt;/li>
&lt;li>
&lt;p>2-D state-space allows for good plots and visualizations&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Both RL and optimal control problem&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Finite horizon (time)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Continuous state and motion&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The whole reason we are doing this is because we want to compare three different ways of solving the continuous mountain car problem and see which one really is the best. Our three approaches are&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Local solution using numerical ODE solvers and nonlinear optimization (baseline)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Reinforcement learning with actor-critic algorithm (data-based approach)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Optimal control using both model and data&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="our-three-approaches">Our Three Approaches&lt;/h2>
&lt;h3 id="a-local-method">A Local Method&lt;/h3>
&lt;p>Our first method that we looked at during this REU was the local method. We tried to find the optimal control $u_h$ by formulating an optimization problem.&lt;/p>
&lt;p>We first discretize the control, state and the Lagrangian.&lt;/p>
&lt;p>Setting $z_h^{(0)}=z_t$ and $\ell_h^{(0)}=0$, allows us to use a forward Euler scheme for some control $u$.&lt;/p>
&lt;p>We then approximate our objective function which yields the optimization problem&lt;/p>
&lt;p>To solve our optimization problem, we used gradient descent. By taking an initial guess for $u_h$ and repeatedly updating $u_h$ using the gradient of the objective function and step size $\alpha$&lt;/p>
&lt;div style="text-align: center">
&lt;p>$(u_h)_0 = \vec0$&lt;/p>
&lt;p>$\vdots$&lt;/p>
&lt;p>$(u_h)_6 = (u_h)_5 - \alpha( \nabla J((u_h)_5))$&lt;/p>
&lt;p>$\vdots$&lt;/p>
&lt;p>$(u_h)_* = (u_h)_19 - \alpha( \nabla J((u_h)_19))$&lt;/p>
&lt;/div>
&lt;p>Below is a nice visual example of what all this math means. When the tail reaches the dotted line, it means our car has reached the top of the hill.&lt;/p>
&lt;p align="center">
&lt;img width="460" height="300" src=img/pvsv_color_local.gif>
&lt;/p>
&lt;p>The graph shows us the position vs velocity of the car. In the graph the black dot represents t and the tail of the plot, when x-position is .45 is time T. In the graph we see the color change from red-blue, in our plot the blue color is when the car is accelerating, and control is positive but red otherwise.&lt;/p>
&lt;p>Our next goal was how do we create a nice visualization of what the actual solution looks like.&lt;/p>
&lt;p align="center">
&lt;img src="img/Localmethod.gif" >
&lt;/p>
&lt;p>We see in this video what our optimal local solution looks like. A couple of things that should be noted is, if we move the car to a new position then this local solution may no longer work. The same can be said if we slowed down/speed up a bit then this solution may not even let the car get to the top of the mountain. Another downside of the local is that it is a non-linear and non-convex problem which makes this method slow. This local solution will serve as a baseline so we can compare other methods to something to see which one is really the best.&lt;/p>
&lt;h2 id="global-methods">Global Methods&lt;/h2>
&lt;p>Now that we have established a baseline, we will discuss our other two methods. Our other two methods that we will be looking at are global methods, the first being reinforcement learning method and the other being optimal control method. You may be asking yourself what is the difference? Reinforcement learning is more of a data driven approach while the optimal control method is a hybrid approach, using both a model and data.&lt;/p>
&lt;h1 id="reinforcement-learning">Reinforcement Learning&lt;/h1>
&lt;p>Our first stop in exploring global methods is reinforcement learning. We will be using reinforcement learning with actor-critic algorithm. This approach is completely data-based approach. In reinforcement learning it has no knowledge of the model, it only considers the objective function. In reinforcement learning we would like to maximize a reward, so in our case we will maximize negative cost. Reinforcement learning is stochastic in two ways with initial position and action space which allows for exploration. In Reinforcement learning we are trying to estimate an optimal control policy. One of the big things that we have yet to discuss is, what is actor-critic algorithm ? The actor-critic (AC) architecture for RL is well-suited for a continuous action-space as in the continuous mountain car problem &lt;strong>&lt;a href="https://arxiv.org/abs/1509.02971" target="_blank" rel="noopener">1&lt;/a>&lt;/strong> . In the actor-critic algorithm the critic must learn about and critique whatever policy is currently being followed by the actor. We worked in the OpenAI gym mountain car environment, so we were able to find preexisting code for our project. We also were able to adapted the TD advantage actor-critic algorithm adapted from &lt;strong>&lt;a href="https://medium.com/@asteinbach/actor-critic-using-deep-rl-continuous-mountain-car-in-tensorflow-4c1fb2110f7c" target="_blank" rel="noopener">here&lt;/a>&lt;/strong>.
The thing is our preexisting code was not the same as our problem, so we had to modify it some. After some modification to the code, the following video is the results that we were able to get after many training cycles.&lt;/p>
&lt;p align="center">
&lt;img src="img/RLmethod.gif" >
&lt;/p>
&lt;p>In this video we see that RL gave us a sub optimal solution compared to the local solution. You may also notice that in the reinforcement learning method our car takes an extra swing backwards to get to the top of the hill. In our reinforcement learning method it took 1000&amp;rsquo;s episodes just to get the car to our goal. We saw that reinforcement learning is very fragile, a couple of changes saw our success rate go from 70% to barely making it all. The picture below is position vs velocity of the car.&lt;/p>
&lt;p align="center">
&lt;img src="img/pvsv_color_rl-1.png" width="50%" height="50%"/ >
&lt;/p>
&lt;p>as you can see compared to the local solution, we see that the RL solution is very sub optimal solution.&lt;/p>
&lt;h1 id="optimal-control-method">Optimal control method&lt;/h1>
&lt;p>Our last two methods were vastly different with reinforcement learning using a data driven approach and the local method using a model-based approach. We will now be looking at the optimal control method which combines both model and data driven approaches. In this approach, we aim to adhere to the method discussed &lt;strong>&lt;a href="https://arxiv.org/abs/2104.03270" target="_blank" rel="noopener">here&lt;/a>&lt;/strong>. We will estimate the corresponding value function with neural network approximators utilizing feedback from the Hamilton-Jacobi-Bellman equation and Hamiltonian.&lt;/p>
&lt;p>Using OC method we were able to produce the following&lt;/p>
&lt;p align="center">
&lt;img src="img/pvsv_color_oc-1.png" width="50%" height="50%"/ >
&lt;/p>
&lt;p>Once again, we created a position vs velocity of the car graph. As you can see this graph is a sub optimal solution compared to the local method. Compared to the RL method, we see how much better OC was for our problem. We see through testing of the RL method that there are some draw backs to forgetting the model and just being purely driven by data.&lt;/p>
&lt;h2 id="our-experiences">Our Experiences&lt;/h2>
&lt;h3 id="week-1">Week 1&lt;/h3>
&lt;p>In week one we decided to make a game plan for the following weeks. We would work on the local method for just a week since it was basically finished. For the other two methods we would spend two weeks on each method. Lastly, we would save the last week to wrap up all three methods and anything else that is left over. During the first week we wanted to look at the local method and explore it some.&lt;/p>
&lt;h3 id="week-2--3">Week 2 &amp;amp; 3&lt;/h3>
&lt;p>We decided to spend two weeks to look at reinforcement learning, during these two week we were able to produce a PowerPoint in beamer for our mid-week presentation. In week two and three we looked at our first global method. Dr.Ruthotto handed us some pre written code to play around with. A thing that should be noted is that this prewritten code only worked maybe 50% of the time. Looking deeper into the code we realized that we would have to mess around with the code to get it to match our problem. After we made these couple of changes in our code, we saw how fragile reinforcement learning is, instead of working 50% of the time our code barely worked at all. During this week we were also able to produce a rendering of both of our local and RL methods, adding a nice touch to our presentation that we gave.&lt;/p>
&lt;h3 id="week-4--5">Week 4 &amp;amp; 5&lt;/h3>
&lt;p>During week 4 and 5 we looked at optimal control method. During week 4 we were able to produce a rough draft of the website while also taking a deeper look into optimal control method. Week five we created a rough and final draft of our poster. While working on our poster we were able to produce a graph for OC so we can compare it to our other methods.&lt;/p>
&lt;h3 id="week-6">Week 6&lt;/h3>
&lt;p>We wrapped up any unfinished work including our paper, OC method and this website. After struggling with code for method three we finally found that our OC method had better results than RL. During week six we also gave a poster talk to the Emory staff and students. Our group ended up winning best poster and we each won some amazon gift cards. We will continue working on method three to try and get it to work for 150 steps, we also look to fine tune our code for method three and two.&lt;/p>
&lt;h2 id="more-about-our-team">More About Our Team&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://www.linkedin.com/in/jacob-mantooth-7b262321b/" target="_blank" rel="noopener">Jacob Mantooth&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://dewanchowdhury.github.io/" target="_blank" rel="noopener">Dewan Chowdhury&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://www.linkedin.com/in/arjunso/" target="_blank" rel="noopener">Arjun Sethi-Olowin&lt;/a>&lt;/strong>&lt;/li>
&lt;/ul>
&lt;h2 id="reference">Reference&lt;/h2>
&lt;p>U. M. Ascher and C. Greif. &amp;ldquo;Chapter 9 (Optimization).&amp;rdquo; A First Course on Numerical Methods. SIAM. SIAM,2011&lt;/p>
&lt;p>U. M. Ascher and C. Greif. &amp;ldquo;Chapter 14 (Numerical time integrators).&amp;rdquo; A First Course on Numerical Methods. SIAM. SIAM,2011&lt;/p></description></item><item><title>Data assimilation for Glacier Modeling</title><link>http://www.math.emory.edu/site/cmds-reuret/projects/2022-storm-surge/</link><pubDate>Mon, 27 Jun 2022 11:36:49 -0400</pubDate><guid>http://www.math.emory.edu/site/cmds-reuret/projects/2022-storm-surge/</guid><description>&lt;p>This post was written by &lt;a href="https://www.linkedin.com/in/emily-corcoran-816278186" target="_blank" rel="noopener">Emily Corcoran&lt;/a>, Hannah Park-Kaufmann, and &lt;a href="https://www.loganknudsen.com/" target="_blank" rel="noopener">Logan Knudsen&lt;/a>. The project was advised by Dr. Talea Mayo. Our team has also created a &lt;a href="img/data_assimilation_for_glacier_modeling.pdf">midterm presentation&lt;/a>, &lt;a href="https://www.youtube.com/watch?v=bGeOZ9G6IOc" target="_blank" rel="noopener">blitz video&lt;/a>, &lt;a href="img/REU_Poster.pdf">poster&lt;/a>, &lt;a href="https://arxiv.org/pdf/2210.02647.pdf" target="_blank" rel="noopener">paper&lt;/a>, and has &lt;a href="https://github.com/hakuupi/StormSurge" target="_blank" rel="noopener">published their code&lt;/a>.&lt;/p>
&lt;h2 id="glaciers">Glaciers&lt;/h2>
&lt;p>Research has shown that climate change will likely impact &lt;a href="https://doi.org/10.3389/fbuil.2020.588049" target="_blank" rel="noopener">storm surge inundation&lt;/a> and make modeling this process more difficult. Sea-level rise caused by climate change plays a part in this impact. To better model sea-level rise, glaciers can be modeled. Marine-Terminating Glaciers have a natural flow towards the ocean, which contributes to sea level rise. By the year 2300, the Antarctic ice sheet is projected to cause up to &lt;a href="https://go.gale.com/ps/i.do?id=GALE%7CA431965879&amp;amp;sid=googleScholar&amp;amp;v=2.1&amp;amp;it=r&amp;amp;linkaccess=abs&amp;amp;issn=00280836&amp;amp;p=HRCA&amp;amp;sw=w&amp;amp;userGroupName=anon%7Eed4bce0c" target="_blank" rel="noopener">3 meters of sea level rise&lt;/a> globally. Due to the severe impacts of glacial melting, modeling changes in ice sheets is an important task. There are challenges to modeling sea level rise, as ice sheet instability leads to significant &lt;a href="https://doi.org/10.1073/pnas.1904822116" target="_blank" rel="noopener">sea-level rise uncertainty&lt;/a>.&lt;/p>
&lt;p align="center">
&lt;img width="500" height="300" src="img/icebergphoto.jpeg">
&lt;/p>
&lt;p align="center">
Image by W. Bulach, used under &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-Share Alike 4.0 International License&lt;/a>
&lt;/p>
&lt;/p>
&lt;h2 id="modeling-glaciers">Modeling Glaciers&lt;/h2>
&lt;p>Our group is collaborating with &lt;a href="https://iceclimate.eas.gatech.edu/group/" target="_blank" rel="noopener">Dr. Robel&lt;/a>, a glaciologist, climate scientist, and applied mathematician from Georgia Tech, and working with the glacier model described in his &lt;a href="https://doi.org/10.1029/2018JF004709" target="_blank" rel="noopener">2018 paper&lt;/a>. This ice sheet model aims to describe the changes in ice mass of marine-terminating glaciers, which may be impacted over time by climate change.&lt;/p>
&lt;p align="center"> &lt;img width="500" height="300" src="img/glacierdiagram%20(1).png">&lt;/p>
&lt;p align="center">
Image used with permission from &lt;a href="https://doi.org/10.1029/2018JF004709">Dr. Alexander Robel&lt;/a>
&lt;/p>
A glacier can be represented with a simplified box model that has a length $L$, precipitation $P$, and height and flux at the grounding line $h_g$ and $Q_g$. This model is the best approximation for one variable and describes the dominant mode of the glacial system.
&lt;p align="center"> &lt;img width="500" height="300" src="img/boxmodel.png">
&lt;/p>
&lt;!--- Above is the diagram of a box model -->
The two-stage model that our group is using incorporates a nested box into the system. This new box has a thickness, $H$, and an interior flux, $Q$. The change in length and height of the glacier can be described with these differential equations: $$\ \dfrac{dH}{dt}=P-\dfrac{Q_g}{L}-\dfrac{H}{h_gL}(Q-Q_g)$$ $$\ \dfrac{dL}{dt}=\dfrac{1}{h_g}(Q-Q_g)$$
&lt;h2 id="sensitivity-analysis">Sensitivity Analysis&lt;/h2>
&lt;p>Sensitivity analyses study how various sources of uncertainty in a mathematical model contribute to the model&amp;rsquo;s overall uncertainty. This allows us to understand the model better.&lt;/p>
&lt;p>Why do we do this? Why do we care about the uncertainty of a model? And where do the uncertainties even come from?
In this ice sheet model, just like in any model, there are always going to be simplifications, and these lead to uncertainties. We need to have a good idea of which uncertainties matter the most, so that we better know the limits of where our model does a good job of simulating the real world. &lt;br>&lt;/p>
&lt;p>The basic idea is this: We check sensitivity by using different distributions for the input parameters. If the outputs vary significantly, then the output is sensitive to the specification of the input distributions. Hence these should be defined with particular care. We can also look at the sensitivity of the model parameters to inform which parameter we&amp;rsquo;re going to work with in the data assimilation. We want to be working with the most sensitive parameter, because it has the most promise for things we vary later on to matter, in questions like: &amp;ldquo;if your data is from billions of years ago does that matter? Is it important to have your data from the last 60 years?&amp;rdquo; or &amp;ldquo;how much will noise impact the predictions?&amp;rdquo; &lt;br>&lt;/p>
&lt;p>The uncertain model parameters we considered are: initial conditions, sill parameters, and SMB values. For consistency&amp;rsquo;s sake, we vary each parameter by +-10 percent of the nominal values originally given in our model code. Below you can see three graphs, one for each group of parameters varied, for each &amp;ldquo;time vs H(t)&amp;rdquo; (Height of the glacier at time) and &amp;ldquo;time vs L(t)&amp;rdquo; (Length of the glacier at time).&lt;/p>
&lt;p align="center">
&lt;img width="500" height="300" src="img/t_vs_H(t).png">
&lt;/p>
&lt;!--- Above are 3 sensitivity analysis graphs side by side for t vs H(t) -->
&lt;p align="center">
&lt;img width="500" height="300" src="img/t_vs_L(t).png">
&lt;/p>
&lt;!--- Above are 3 sensitivity analysis graphs side by side for t vs L(t) -->
&lt;p>Looking at the distributions, we see that varying initial conditions (Leftmost) seems to produce the greatest spread, but the slopes of the lines there are all very similar. Varying the sill parameters (Middle) produces a lesser spread than varying initial conditions, however there is a greater variation in the slope of the lines. Finally, when varying the smb data (Rightmost) the result actually doesn&amp;rsquo;t change that much and is quite stable. Thus, according to our analysis, the model is the least sensitive to SMB parameters, and between initial and sill parameters judgement varies depending on what you care about more - spread or slope.&lt;/p>
&lt;h2 id="data-assimilation">Data Assimilation&lt;/h2>
&lt;!---Data Assimilation-->
&lt;p>Data assimilation is a method to move models closer to reality using real world observations by readjusting the model state at specified times.&lt;/p>
&lt;p align="center">
&lt;img width="500" height="300" src="img/SEFig.png">
&lt;/p>
&lt;p align="center">
Image used with permission from Dr. Talea Mayo.
&lt;/p>
&lt;p>In this example we have used the ensemble Kalman filter method (ENKF) in order to perform our data assimilation. In basic terms, we initialize an ensemble( or a series of model runs with perturbed initial conditions) and performed data assimilation on each of the ensemble members, then to get our final analysis we took the mean of the ensemble.&lt;/p>
&lt;p align="center">
&lt;img width="500" height="300" src="img/kalmanExample.png">
&lt;/p>
&lt;!--- Above is the Kalman Filter Example -->
&lt;p>The program used to model the glacier behavior and assimilate the data begins with choosing a set of initial conditions. Once the initial conditions are input to the model, which after taking a step using a Runge-Kutta 4th Order Method, is plugged into a Data Assimilation Method. Our main method is ENKF as previously mdentioned. Finally, the analyzed data from the assimilation is output and plugged back into the model. It should be noted that at sometimes the forecast output for the model is the same as the analyzed data.&lt;/p>
&lt;p align="center">
&lt;img width="650" height="300" src="img/ScreenShot2022-07-07at17.21.17.png">
&lt;/p>
&lt;!--- Above is the Kalman Filter Diagram -->
&lt;!---Results-->
&lt;h3 id="square-difference">Square Difference&lt;/h3>
&lt;p>The error measure we use in the best ensemble size and observation scheme is the square difference, $d^2$, which we define $$\ d_t^2 = \left(x_t - x^a_t\right)^2 $$
where $x_t$ is the true state from the truth simulation at time $t$ and $x^a_t$ is the analysis state at time $t$.&lt;/p>
&lt;h3 id="ensemble-size">Ensemble Size&lt;/h3>
&lt;p>In the interest of lowering computational costs, we use the square difference in order to minimize ensemble size while also minimizing error. To do this, we choose an ensemble size, calculate the square difference at each $t$, and then calculated the mean of all these square differences. We ran this calculation for ensembles sizes from 2 up to 75, and found that ensembles of size 7-10 were ideal as they were at the point where the average square difference hovers around the same value.&lt;/p>
&lt;p align="center">
&lt;img width="500" height="400" src="img/Mean_Square_Difference_of_H.png">
&lt;/p>
&lt;p align="center">
&lt;img width="500" height="400" src="img/Mean_Square_Difference_of_L.png">
&lt;/p>
&lt;h3 id="observation-scheme">Observation Scheme&lt;/h3>
&lt;p>We ran the model for various observation schemes to find the best observation scheme, i.e. the times frames and frequencies which can produce a sufficiently small average square difference over the course of the model run. We applied this process to our model and found that for before 1900 the best observation frequency, while still using small number of observations, would be every 19 years for a total of 100 observations. Similarly, for the time frame of 1950-2300 we found that yearly observations for a total of 350 observations is the best frequency.&lt;/p>
&lt;p align="center">
&lt;img width="700" height="400" src="img/oldDates.png">
&lt;/p>
&lt;p align="center">
&lt;img width="700" height="400" src="img/newDates.png">
&lt;/p>
&lt;!---
#### Mean Square Difference 0-1900
|\# Observations | H | L |
|---|---|---|
| 200 | 0.0044054 | 0.0125222 |
| 100 | 0.0087286 | 0.0212535 |
| 50 | 0.0563252 | 0.0613737 |
| 25 | 0.0834296 | 0.0759587 |
| 10 | 0.0952199 | 0.1685447 |
#### Mean Square Difference 1950-2300
|\# Observations | H | L |
|---|---|---|
| 1400 | 0.0025464 | 0.0015147 |
| 700 | 0.0041299 | 0.0019446 |
| 350 | 0.0115712 | 0.0032547 |
| 175 | 0.0175867 | 0.0067435 |
| 88 | 0.0314155 | 0.0172441 |
| 44 | 0.0787454 | 0.0236401 |
| 22 | 0.2535894 | 0.0575641 |
-->
&lt;h3 id="model-runs">Model Runs&lt;/h3>
&lt;p>Using the facts we established in the previous two sections, we ran the model using EnKF for the time frame of 0-2022 in order to project $H$ and $L$ into the future up to the year 2300. The following plots show the results of this experiment, which we will use to help calculate $Q$ and $Q_g$ over time, and in turn use it to calculate sea level rise.&lt;/p>
&lt;p align="center">
&lt;img width="500" height="400" src="img/H(t)projections.png">
&lt;/p>
&lt;p align="center">
&lt;img width="500" height="400" src="img/L(t)projections.png">
&lt;/p>
&lt;h3 id="sea-level-rise">Sea Level Rise&lt;/h3>
&lt;p>Using the formulas for $Q$ and $Q_g$ we can calculate the volume lost across the grounding line
$$\ V_{gz} = W(Q-Q_g)t $$
We then used the to calculate the volume out at all times and add it up to get accumulated volume loss. We then assume that the width of the glacier is 50 km(at least in the case we show here). To convert this to sea level rise, note that 394.67 km$^3$ of ice is equivalent $1$ mm of sea level and get the following projection of sea level rise.&lt;/p>
&lt;p align="center">
&lt;img width="500" height="400" src="img/w50.0km_sea_level_projection.png">
&lt;/p>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>Using data assimilation can help to inform the glacier modelers and glaciologists who collect data about how to collect data in an efficient way. This can help researchers to more efficiently utilize funding and avoid unnecessarily expensive data collection that does not significantly improve glacier models. Data assimilation should be explored within more complicated glacier models, as the model used here is quite simplified. If more research is performed on this technique, it could greatly improve the practice of glacier modeling. Data assimilation can also be used for many geophysical modeling tasks, such as weather forcasting and hurricane storm surge modeling. Going forward, we plan to integrate the output of the glacier model into the ADCIRC hurricane storm surge model to predict the impact of glacier model on storm surge inundation.&lt;/p>
&lt;h2 id="references">References&lt;/h2>
&lt;p>&lt;a href="https://go.gale.com/ps/i.do?id=GALE%7CA431965879&amp;amp;sid=googleScholar&amp;amp;v=2.1&amp;amp;it=r&amp;amp;linkaccess=abs&amp;amp;issn=00280836&amp;amp;p=HRCA&amp;amp;sw=w&amp;amp;userGroupName=anon%7Eed4bce0c" target="_blank" rel="noopener">The long future of Antarctic melting&lt;/a> &lt;br>
&lt;a href="https://doi.org/10.1073/pnas.1904822116" target="_blank" rel="noopener">Marine ice sheet instability amplifies and skews uncertainty in projections of future sea-level rise&lt;/a> &lt;br>
&lt;a href="https://doi.org/10.3389/fbuil.2020.588049" target="_blank" rel="noopener">Projected climate change impacts on hurricane storm surge inundation in the coastal United States&lt;/a> &lt;br>
&lt;a href="https://doi.org/10.1029/2018JF004709" target="_blank" rel="noopener">Response of marine-terminating glaciers to forcing: time scales, sensitivities, instabilities, and stochastic dynamics&lt;/a>&lt;/p>
&lt;h2 id="about-the-team">About the Team&lt;/h2>
&lt;h3 id="emily-corcoran">Emily Corcoran&lt;/h3>
&lt;p>&lt;a href="https://www.linkedin.com/in/emily-corcoran-816278186" target="_blank" rel="noopener">Emily Corcoran&lt;/a> is a junior at New Jersey Institute of Technology, majoring in Mathematical Sciences with a concentration in Applied Statistics and Data Analysis. Before this REU, she has worked as a research assistant in her school&amp;rsquo;s Visual Perception Lab. She is a student in the Albert Dorman Honors College and is an active member of NJIT&amp;rsquo;s school yearbook and Knit &amp;rsquo;n Crochet club. When she is not in class, she can be found reading, listening to music, or attending a local play.&lt;/p>
&lt;h3 id="logan-knudsen">Logan Knudsen&lt;/h3>
&lt;p>&lt;a href="https://www.loganknudsen.com/" target="_blank" rel="noopener">Logan Knudsen&lt;/a> is a senior at Texas A&amp;amp;M University majoring in Mathematics with minors in Oceanography and Meteorology. Before this REU, he has worked doing research on Data Analysis using Benford&amp;rsquo;s Law and as a Teaching Assistant. Logan is currently the President of Texas A&amp;amp;M&amp;rsquo;s Math Club and a member of student radio, KANM. When not in class, he can be found reading, playing the guitar or playing video games with his friends.&lt;/p>
&lt;h3 id="hannah-park-kaufmann">Hannah Park-Kaufmann&lt;/h3>
&lt;p>Hannah Park-Kaufmann is a junior at Bard College and Conservatory, majoring in Mathematics and Piano Performance. Before this REU, she conducted research on Numerical Semigroups and Polyhedra, and on Identifying Universal Traits in Healthy Pianistic Posture using Depth Data. She tutors math in the Bard Prison Initiative (BPI). When not doing math, she can be found playing piano, reading scores, reading literature and/or eating.&lt;/p></description></item><item><title>Fast Training of Implicit Networks with Applications in Inverse Problems</title><link>http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/</link><pubDate>Mon, 27 Jun 2022 11:36:49 -0400</pubDate><guid>http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/</guid><description>&lt;p>This post was written by Linghai Liu, Shuaicheng Tong, and Lisa Zhao and published with minor edits. The team was advised by Dr. Samy Wu Fung. In addition to this post, the team has also given a &lt;a href="Midterm_Presentation_TeamJFB.pdf">midterm presentation&lt;/a>, filmed a &lt;a href="https://youtu.be/oIwL3E2yULg" target="_blank" rel="noopener">poster blitz video&lt;/a>, created a &lt;a href="REURET_Poster_Team_JFB.pdf">poster&lt;/a>, published &lt;a href="https://github.com/lliu58b/Jacobian-free-Backprop-Implicit-Networks" target="_blank" rel="noopener">code&lt;/a>, and written a &lt;a href="../../publications/liu-et-al-2022/">paper&lt;/a>.&lt;/p>
&lt;h2 id="what-are-inverse-problems">What are Inverse Problems?&lt;/h2>
&lt;p>Inverse problems consist of recovering a signal $x^\ast$ (e.g. an image, a parameter of a PDE, etc.) from indirect, noisy measurements $d$. These problems arise in many applications such as medical imaging, computer vision, geophysical imaging, etc.&lt;/p>
&lt;p>This measurement process is usually modeled as an operator $\mathcal{A}$, satisfying the following equation:
$$ d = \mathcal{A} x^\ast + \boldsymbol{\varepsilon}, $$
where $\mathcal{A}$ is a mapping from signal space $\mathbb{R}^n$ of original images to measurement space $\mathbb{R}^m$. Since our project deals with image deblurring, we have the following variables:&lt;/p>
&lt;ul>
&lt;li>$d \in \mathbb{R}^{n}$: blurred image with noise&lt;/li>
&lt;li>$x^\ast \in \mathbb{R}^{n}$: original image&lt;/li>
&lt;li>$\boldsymbol{\varepsilon} \in \mathbb{R}^{m}$: random &lt;strong>unknown&lt;/strong> noise&lt;/li>
&lt;/ul>
&lt;h2 id="solving-inverse-problems-from-a-classical-approach">Solving Inverse Problems from a Classical Approach&lt;/h2>
&lt;p>Using direct inverse we have:
$$ d = \mathcal{A} x^\ast + \boldsymbol{\varepsilon} \Longrightarrow x^\ast = \mathcal{A}^{-1} d - \mathcal{A}^{-1} \boldsymbol{\varepsilon} $$
However, since $\boldsymbol{\varepsilon}$ is unknown, directly inverting may end up amplifying this noise factor⁠. Because of this noise corruption, the reconstructed image ends up being unrecognizable.&lt;/p>
&lt;p>To better visulaize this, we have the following set of pictures:&lt;/p>
&lt;p>
&lt;figure id="figure-original-image">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Original Image" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/inverse1_hu_9a31eb4fd5e9a7ee.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse1_hu_b5b0cf880240cb01.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse1_hu_b55a9ada36ce7f14.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/inverse1_hu_9a31eb4fd5e9a7ee.webp"
width="231"
height="231"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Original Image
&lt;/figcaption>&lt;/figure>
&lt;figure id="figure-blurred-noisy-image">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Blurred Noisy Image" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/inverse2_hu_ebddb48c5044fed5.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse2_hu_3aec6aad3315a09f.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse2_hu_ace3300dd198ca2b.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/inverse2_hu_ebddb48c5044fed5.webp"
width="231"
height="231"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Blurred Noisy Image
&lt;/figcaption>&lt;/figure>
&lt;figure id="figure-direct-inverse">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Direct Inverse" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/inverse3_hu_7481675a2a9a075a.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse3_hu_ea7a24caefdcfb4e.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse3_hu_5c52c617251f33ce.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/inverse3_hu_7481675a2a9a075a.webp"
width="231"
height="231"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Direct Inverse
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;p>In order to minimize the noise factor, we want to formulate a regularized optimization problem.&lt;/p>
&lt;p>We essentially want to find the minimium distance between the reconstructed image and the observed blurred image, plus a regularizer $R(x)$.&lt;/p>
&lt;p>This regularizer is chosen based on prior knowledge of the data; this can often lead to inaccuracies—meaning the reconstructed image will be a bit blurry.&lt;/p>
&lt;p>For example, using a gradient descent scheme where we handpick a regularizer to help stabilize the reconstruction, we have the following set of pictures:&lt;/p>
&lt;p>
&lt;figure id="figure-original-image">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Original Image" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/inverse1_hu_9a31eb4fd5e9a7ee.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse1_hu_b5b0cf880240cb01.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse1_hu_b55a9ada36ce7f14.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/inverse1_hu_9a31eb4fd5e9a7ee.webp"
width="231"
height="231"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Original Image
&lt;/figcaption>&lt;/figure>
&lt;figure id="figure-blurred-noisy-image">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Blurred Noisy Image" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/inverse2_hu_ebddb48c5044fed5.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse2_hu_3aec6aad3315a09f.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/inverse2_hu_ace3300dd198ca2b.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/inverse2_hu_ebddb48c5044fed5.webp"
width="231"
height="231"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Blurred Noisy Image
&lt;/figcaption>&lt;/figure>
&lt;figure id="figure-gradient-descent">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Gradient Descent" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/gd4_hu_9b4381ba6a2098a.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/gd4_hu_728281e70438475b.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/gd4_hu_378e72fcb6750716.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/gd4_hu_9b4381ba6a2098a.webp"
width="231"
height="231"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Gradient Descent
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;p>We see that the reconstructed image using gradient descent is a huge improvement from direct inverse; however, there are still blurry areas we can improve on. In search of a better method, we turn towards implicit learning.&lt;/p>
&lt;h2 id="implicit-deep-learning">Implicit Deep Learning&lt;/h2>
&lt;p>The issue with the classical approach is that the regularizer is chosen heristically. To combat this, our approach now is to utilize data to &lt;strong>learn&lt;/strong> and &lt;strong>train&lt;/strong> the regularizer.&lt;/p>
&lt;p>To do this we mimic gradient descent, but replace the gradient of the regularizer, $\lambda \nabla_x R$, with a trainable network.&lt;/p>
&lt;p>However, this creates some problems concerning memory cost and the number of layers, $K$, in our neural network. The memory grows linearly as $K$—chosen heuristically—increases.&lt;/p>
&lt;p>With implicit deep learning we send $K \to \infty$ until we find a fixed point of a single layer $T_\Theta(\cdot)$.&lt;/p>
&lt;h2 id="implicit-backpropagation">Implicit Backpropagation&lt;/h2>
&lt;p>Suppose now we have found a fixed point $x^\ast$ for a single layer. Then, $$ x^\ast = T_\Theta (x^\ast) $$&lt;/p>
&lt;p>Using implicit differentiation on the equation above we have,&lt;/p>
&lt;p>$$\frac{d x^\ast}{d \Theta} = \left( I - \frac{d T_\Theta (x^\ast)}{d x^\ast}\right)^{-1} \frac{\partial T_\Theta (x^\ast)}{\partial \Theta}$$&lt;/p>
&lt;p>However, solving this is very expensive because of the inverse term.&lt;/p>
&lt;p>To circumvent this issue, we use a recently proposed method called &lt;a href="https://arxiv.org/abs/2103.12803" target="_blank" rel="noopener">Jacobian-Free Backpropagation&lt;/a>.&lt;/p>
&lt;h2 id="jacobian-free-backpropagation-jfb">Jacobian-Free Backpropagation (JFB)&lt;/h2>
&lt;p>The goal of JFB is to alleviate memory requirement and avoid high computational cost in implicit networks.&lt;/p>
&lt;p>The key idea is to replace the problematic Jacobian $$\left( I - \frac{d T_\Theta (x^\ast)}{d x^\ast}\right)$$ with the identity matrix $I$.&lt;/p>
&lt;p>For a comparison, if we were to calculate the true gradient using implicit networks we have the following equation:&lt;/p>
&lt;p>$$\nabla_\Theta \ell = \frac{d \ell}{d x^\ast} \left( I - \frac{d T_\Theta (x^\ast)}{d x^\ast}\right) ^{-1} \frac{\partial T_\Theta (x^\ast)}{\partial \Theta}$$&lt;/p>
&lt;p>Using JFB to approximate the gradient we only need to solve:
$$p_\Theta = \frac{d \ell}{d x^\ast} \frac{\partial T_\Theta (x^\ast)}{\partial \Theta}$$
which is a descent direction for the loss $\ell$.&lt;/p>
&lt;p>Utilizing JFB, we avoid computing the Jacobian term. As a result, implicit networks are trained faster and more easily implemented.&lt;/p>
&lt;p>Note: the JFB approach relies on a set of conditions to be true:&lt;/p>
&lt;ul>
&lt;li>$T_\Theta$ is contraction mapping with Lipschitz constant $\gamma$&lt;/li>
&lt;li>$T_\Theta$ is continuously differentiable w.r.t. $\Theta$&lt;/li>
&lt;li>$M := \frac{\partial T_\Theta}{\partial \Theta}$ has full column rank&lt;/li>
&lt;li>$M$ is well-conditioned, i.e., $\kappa (M^T M) &amp;lt; \frac{1}{\gamma}$&lt;/li>
&lt;/ul>
&lt;h2 id="numerical-experiments">Numerical Experiments&lt;/h2>
&lt;p>In our project we used the CelebA dataset, which consist of annotated celebrity faces. The images are categorized into various sections based on specific features that the celebrities have. For example, whether or not they have bangs, wear glasses, have a pointy nose, etc.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="CelebA" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/celebA_hu_47e6f403fa15e501.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/celebA_hu_cb15b8c9354af515.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/celebA_hu_fe3eec365473bd10.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/celebA_hu_47e6f403fa15e501.webp"
width="760"
height="517"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="results">Results&lt;/h2>
&lt;p>The results are as follows
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="loss plot" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/loss_plot-1_hu_cbed88ce59921863.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/loss_plot-1_hu_12c1d557739f59d6.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/loss_plot-1_hu_ac9e68c8c5c40697.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/loss_plot-1_hu_cbed88ce59921863.webp"
width="760"
height="545"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
From the graph we see that the loss is decreasing as the number of epochs increases. An epoch is one complete pass of the entire dataset through our algorithm.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="results" srcset="
/site/cmds-reuret/projects/2022-implicit/imgs/truth_36-1_hu_9d4791c3ac39e077.webp 400w,
/site/cmds-reuret/projects/2022-implicit/imgs/truth_36-1_hu_9c158a254c0fa600.webp 760w,
/site/cmds-reuret/projects/2022-implicit/imgs/truth_36-1_hu_d13e724c304ac897.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-implicit/imgs/truth_36-1_hu_9d4791c3ac39e077.webp"
width="760"
height="324"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
Note: Two metrics are commonly used for assessing the quality of reconstructed images: the peak-signal-to-noise ratio (PSNR, a positive number, best at $+\infty$) and the structural similarity index measure (SSIM, also positive, best at $1$).&lt;/p>
&lt;h2 id="acknowledgements">Acknowledgements&lt;/h2>
&lt;p>We sincerely thank the guidance of our mentor, Dr. Samy Wu Fung, and other mentors at Emory University for the opportunity.&lt;/p>
&lt;h2 id="more-about-the-team">More About the Team&lt;/h2>
&lt;p>&lt;strong>Linghai Liu&lt;/strong> is a rising senior at Brown University, double concentrating in applied mathematics - computer science and mathematics. His main interests lie at the intersection of statistical theory, machine learning, and optimization. Outside of work, he enjoys reading novels and watching animes.&lt;/p>
&lt;p>&lt;strong>Shuaicheng Tong&lt;/strong> is a rising junior at the University of California, Los Angeles, majoring in applied mathematics and minoring in statistics. He is interested in optimization and machine learning. He volunteers at the UCLA Statistics Club where he tutors mathematics and statistics. Outside of school, he enjoys working out, hiking, and watching Star Wars shows.&lt;/p>
&lt;p>&lt;strong>Lisa Zhao&lt;/strong> is a rising sophomore at the University of California, Berkeley, double majoring in statistics and economics. She is interested in learning about how statistics is used as a powerful tool in finance. Outside of work, she enjoys swimming, drawing, and watching TV shows.&lt;/p></description></item><item><title>Learning Ordinary Differential Equations from Data</title><link>http://www.math.emory.edu/site/cmds-reuret/projects/2022-learn-ode/</link><pubDate>Mon, 27 Jun 2022 11:36:49 -0400</pubDate><guid>http://www.math.emory.edu/site/cmds-reuret/projects/2022-learn-ode/</guid><description>&lt;!-- --- -->
&lt;!-- # Emory REU Learn ODE: -->
&lt;!--Starting new section-->
&lt;!-- --- -->
&lt;p>This post was written by &lt;a href="https://ehayes75.github.io/" target="_blank" rel="noopener">Emma Hayes&lt;/a>, &lt;a href="https://mathheider.github.io/" target="_blank" rel="noopener">Mathias Heider&lt;/a>, and &lt;a href="https://cvanty.github.io/" target="_blank" rel="noopener">Carrie Vanty&lt;/a> and published with minor edits. The team was advised by Dr. Deepanshu Verma.&lt;/p>
&lt;p>In addition to this post, the team has also created slides for a &lt;a href="pdfs/presentation.pdf">midterm presentation&lt;/a>, a &lt;a href="">poster blitz video&lt;/a>, and a &lt;a href="pdfs/poster.pdf">poster&lt;/a>.&lt;/p>
&lt;h2 id="project-overview">Project Overview:&lt;/h2>
&lt;p>Imagine a spring mass system (Figure 1). What if you wanted to find the location of the mass at any given time point? In order to find this information, you must first understand the dynamics of the system. A spring mass system is an example of simple harmonic motion where total energy is conserved. This means that you can model the dynamics using a Hamiltonian Ordinary Differential Equation, which has the quality of energy conservation. To solve our problem, we use neural networks utilizing Hamiltonians in the forward propagation to predict our coordinates.&lt;/p>
&lt;p align="center">
&lt;img src=images/Simple_harmonic_oscillator.gif>
&lt;p align = "center">
Figure 1 - Spring Mass by Oleg Alexandrov (public domain)
&lt;/p>
&lt;p>Our project aims to compute the value of the Hamiltonian for any given time and set of initial conditions using Hamiltonian Inspired neural networks. We will first introduce the mathematical background of our project and the novel technique we implemented for our forward propagation. Results will then be presented and analyzed. Lastly, we will discuss how our project expands upon both Ruthotto &lt;a href="https://arxiv.org/abs/1705.03341" target="_blank" rel="noopener">3&lt;/a> and Greydanus &lt;a href="https://arxiv.org/abs/1906.01563" target="_blank" rel="noopener">6&lt;/a> papers.&lt;/p>
&lt;h2 id="background">Background:&lt;/h2>
&lt;p>Often, neural networks are thought of as a black box, where the actual inner-workings are not the main focus. However, since we are mathematicians, we want to understand how the network functions in order to best optimize it. For this reason, we began by looking at why and how ODEs were first used in neural networks. Ordinary differential equations were first used in Residual Neural Networks due to the similarity between the forward propagation equation and discretization of an ordinary differential equation. The only difference is multiplication of the step size, which we denote as $\mathbf{h}$.
$$Y_{j+1} = Y_j + \mathbf{h}\sigma(Y_j K_j + b_j)$$
In the context of our residual neural network, the ODE as forward propagation means that for each layer of the network, we will move one time step forward in the discretization of our network ODE. The weights and biases, $K$ and $b$, may change in between the layers depending on the given values in the network ODE. The output of our network is the Hamiltonian value at the given time, and from that we are able to approximate position and velocity values for the mass.
When estimating coordinates of a Hamiltonian system, or the value of the Hamiltonian itself, the Hamiltonian relationships are important for forward propagation. Hamiltonians intrinsically conserve energy, meaning the network is better able to learn conservation laws and predict examples with energy conservation. Without considering these relationships, it would be much more difficult for the network to learn conservation, which can cause a buildup of error. In many studies (&lt;a href="https://arxiv.org/abs/1705.03341" target="_blank" rel="noopener">3&lt;/a>, &lt;a href="https://arxiv.org/abs/1906.01563" target="_blank" rel="noopener">6&lt;/a>), they have found that by using the Hamiltonian equations in Hamiltonian data sets, error has decreased. We plan to investigate this further and find which discretization methods and algorithms will perform the best.&lt;/p>
&lt;h2 id="learning-hamiltonians-from-data">Learning Hamiltonians from Data&lt;/h2>
&lt;p>To learn about Hamiltonian dynamics from data, we use neural networks. Specifically a modified version of the Residual Neural Network (RNN), which we call a Hamiltonian Inspired Neural Network (HINN) drawn from &lt;a href="https://arxiv.org/abs/1705.03341" target="_blank" rel="noopener">3&lt;/a>. To create this HINN, we primarily used 2 packages - PyTorch and hessQuik. The difference between our HINN, and the traditional RNN and Ruthotto \textit{et al}’ HINN, is in our forward propagation method and how we input values into our MSE loss function. The forward propagation uses the autograd feature to calculate both $\frac{\partial H_{\theta}}{\partial \mathbf{p}}$ and $\frac{\partial H_{\theta}}{\partial \mathbf{q}}$, where $\theta$ are the network parameters we wish to optimize and $H_{\theta}$ is our network output. We then use these values in discretizing $\mathbf{p_{\theta}}$ and $\mathbf{q_{\theta}}$.
$$\mathbf{p_{\theta+1}} = \mathbf{p_{\theta}} + h\frac{\partial H_{\theta}}{\partial \mathbf{q}} $$
$$\mathbf{q_{\theta+1}} = \mathbf{q_{\theta}} - h\frac{\partial H_{\theta}}{\partial \mathbf{p}}$$&lt;/p>
&lt;p>The new values are then plugged into our MSE loss function. Using these techniques we &lt;a href="https://github.com/mathheider/Learn-ODEs-HINNs" target="_blank" rel="noopener">created two HINNs&lt;/a> for two different examples, those being the Simple Spring Mass System and the Two Body Problem.&lt;/p>
&lt;p>Results:&lt;/p>
&lt;p align="center">
&lt;img src=images/findingNemo.png width = "800">
&lt;p align = "center">
Figure 2 - Spring Mass System 1. Training Loss Graph 2. Learned Position Values over True Position Values 3. Relationship of Learned p and q over ground truth
&lt;/p>
&lt;p align="center">
&lt;img src=images/2Body.png width = "800">
&lt;p align = "center">
Figure 3 - Two Body Problem 1. Training Loss Graph 2. Learned Trajectories Graph over True Trajectories 3. Learned Energy over True Energy 4. Learned Position over True Position.
&lt;/p>
&lt;h2 id="whats-next">What&amp;rsquo;s Next&lt;/h2>
&lt;p>Currently our results look promising as our learned values closely match the ground truth values. Moving foward, we would like to add more complexity to our current examples: instead of fixed time steps, we would like to attempt variable time steps. We would also like to take on the Three Body Problem, which unlike our current examples has no analytical solution.&lt;/p>
&lt;h2 id="information-about-us">Information about Us&lt;/h2>
&lt;p>Mathias Heider is a rising senior at the University of Delaware, majoring in Computer Science and Mathematics and Economics. His interest are in machine learning and data science specifically when it relates to dataset with bioinformatics applications. Outside of class, Mathias likes to ski, hangout with friends, and play video games&lt;/p>
&lt;p>Carrie Vanty is a rising senior at Middlebury College, majoring in mathematics. She loves working with ordinary differential equations in applied math. Outside of school, Carrie likes to ski, hike, and craft.&lt;/p>
&lt;p>Emma Hayes is a rising junior at Carnegie Mellon University, majoring in Computational and Applied Mathematics. She enjoys learning about new topics in mathematics and incorporating computer science into her work. Outside of class, Emma likes hiking, baking, and making art.&lt;/p>
&lt;h2 id="references">References&lt;/h2>
&lt;p>[1] &lt;a href="https://en.wikipedia.org/wiki/Effective_mass_%28spring%E2%80%93mass_system%29#/media/File:Simple_harmonic_oscillator.gif" target="_blank" rel="noopener">https://en.wikipedia.org/wiki/Effective_mass_(spring%E2%80%93mass_system)#/media/File:Simple_harmonic_oscillator.gif&lt;/a>&lt;/p>
&lt;p>[2] &lt;a href="https://arxiv.org/abs/1512.03385" target="_blank" rel="noopener">Kaiming He, X. Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 770–778, 2016.&lt;/a>&lt;/p>
&lt;p>[3] &lt;a href="https://arxiv.org/abs/1705.03341" target="_blank" rel="noopener">Eldad Haber and Lars Ruthotto. Stable architectures for deep neural networks. Inverse Problems, 34(1):014004, 22, 2018.&lt;/a>&lt;/p>
&lt;p>[4] &lt;a href="https://doi.org/10.21105/joss.02104" target="_blank" rel="noopener">Brian de Silva, Kathleen Champion, Markus Quade, Jean-Christophe Loiseau, J. Kutz, and Steven Brunton. Pysindy: A python package for the sparse identification of nonlinear dynamical systems from data. Journal of Open Source Software, 5(49):2104, 2020.&lt;/a>&lt;/p>
&lt;p>[5] &lt;a href="https://doi.org/10.21105/joss.03994" target="_blank" rel="noopener">Alan A. Kaptanoglu, Brian M. de Silva, Urban Fasel, Kadierdan Kaheman, Andy J. Goldschmidt, Jared Callaham, Charles B. Delahunt, Zachary G. Nicolaou, Kathleen Champion, Jean-Christophe Loiseau, J. Nathan Kutz, and Steven L. Brunton. Pysindy: A comprehensive python package for robust sparse system identification. Journal of Open Source Software, 7(69):3994, 2022.&lt;/a>&lt;/p>
&lt;p>[6] &lt;a href="https://arxiv.org/abs/1906.01563" target="_blank" rel="noopener">Sam Greydanus, Misko Dzamba, and Jason Yosinski. Hamiltonian neural networks. ArXiv, abs/1906.01563, 2019.&lt;/a>&lt;/p></description></item><item><title>Low-Precision Algorithms for Image Processing</title><link>http://www.math.emory.edu/site/cmds-reuret/projects/2022-mixed-precision/</link><pubDate>Mon, 27 Jun 2022 11:36:49 -0400</pubDate><guid>http://www.math.emory.edu/site/cmds-reuret/projects/2022-mixed-precision/</guid><description>&lt;p>This post was written by &lt;a href="https://github.com/kristinagxy" target="_blank" rel="noopener">Xiaoyun Gong&lt;/a>, &lt;a href="https://github.com/RileyCYZ" target="_blank" rel="noopener">Yizhou Chen&lt;/a>, and &lt;a href="https://github.com/zoejix" target="_blank" rel="noopener">Xiang Ji&lt;/a> and published with minor edits. The team was advised by Dr. &lt;a href="https://github.com/jnagy1" target="_blank" rel="noopener">James Nagy&lt;/a>. In addition to this post, the team has also created slides for a &lt;a href="REUmidterm_presentation.pdf">midterm presentation&lt;/a>, a &lt;a href="https://www.dropbox.com/s/139l0u7zi6eloao/mixed-precision.mp4?dl=0" target="_blank" rel="noopener">poster blitz&lt;/a> video, &lt;a href="https://github.com/kristinagxy/REU_code" target="_blank" rel="noopener">code&lt;/a>, and a &lt;a href="">paper&lt;/a>.&lt;/p>
&lt;h2 id="in-one-sentence">In One Sentence:&lt;/h2>
&lt;p>Our group works on experimenting with iterative methods for solving inverse problems at different precision levels.&lt;/p>
&lt;h2 id="background-why-low-precision">Background: Why Low Precision?&lt;/h2>
&lt;p>What is the most important aspect for an excellent gaming experience? A lot of people would answer real-time! Everyone wants their games to be fast, and it is always a bummer that the screen freezes during a critical combat. This is why we are investigating low precision arithmetic: to decrease the computation time and speed things up.&lt;/p>
&lt;p>Nowadays, most computer systems operate on double precision (64-bit) arithmetic. However, if we decrease the number of bits for each number to 16 bits or even lower, the processing time can be much significantly reduced, although the benefit comes at the cost of a loss of accuracy.&lt;/p>
&lt;p align="center">
&lt;img src="img/IEEE.png" alt="drawing" width="500"/>
&lt;/p>
&lt;p>
&lt;em>Using tensor cores for mixed-precision scientific computing.
Oct-2021. url: https://developer.nvidia.com/blog/tensor-cores-mixed-precision-scientific-computing/
&lt;/em>
&lt;/p >
&lt;h2 id="simulating-low-precision">Simulating Low Precision&lt;/h2>
&lt;h3 id="matlab-function-chop">Matlab function chop&lt;/h3>
&lt;p>To simulate low precision arithmetic on our 64-bit computers, we have imported a MATLAB package called &lt;a href="https://www.mathworks.com/matlabcentral/fileexchange/70651-chop?s_tid=mwa_osa_a" target="_blank" rel="noopener">chop&lt;/a>. The toolbox allows us to explore single precision, half precision, and other customized formats. Each input needs to be transformed, but the real work comes from chopping each operation. The code below is a toy example of how to calculate $x + y \times z$ in half precision with chop.&lt;/p>
&lt;p align="center">
&lt;img src="img/chop_overview.png" alt="drawing" width="300"/>
&lt;/p>
&lt;h3 id="blocking">Blocking&lt;/h3>
&lt;p>When the number is being chopped from double precision to half precision, a lot of bits are dropped (from 64 bits to 16 bits). This would certainly cause a level of inaccuracy, so in order to reduce the errors, a method called blocking is used. Blocking is the same as breaking a large operation into smaller chunks, where each is computed independently and the result is then summed.&lt;/p>
&lt;p>We compute the inner product for each precision and block size for 20 times and calculate the average. The errors are calculated as the differences between the result of using the chopped version of inner product function and the built-in function in matlab.&lt;/p>
&lt;p align="center">
&lt;img src="img/blocksize.png" alt="draw" width="700"/>
&lt;/p>
On the left-hand side of the graph where the size of the vector is 1000, the errors of half precision are the largest because it has the least bits. If we take a closer look at only half precision, we get the graph on the right with different vector sizes. The errors decrease sharply when the blocking method is introduced. However, larger block sizes do not necessarily mean lower errors, as the graph suggested: the errors increase again as the block size keeps growing. That is because when the block size is large, it's the same as doing no blocking at all. For example, for a size-500 vector, once the block size reaches 500, it just means putting the whole vector into the first block, the same as when blocking is not introduced. Therefore, the line becomes flat from 500. We use 256 as our default block size in our codes because the matrix dimension is rather large in our problem.
&lt;h2 id="inverse-problems-and-iterative-methods">Inverse Problems and Iterative Methods&lt;/h2>
&lt;p>Inverse problems are problems where our goal is to find the internal or hidden information (inputs) from outside measurements (results). The internal data can be approximated by iterative methods, a repeating implementation of the same system of equations, with variables getting updated each round, hoping the value generated can be closer to the true value we desire each term.&lt;/p>
&lt;h3 id="conjugate-gradient-method">Conjugate Gradient Method&lt;/h3>
&lt;p>The &lt;a href="https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf" target="_blank" rel="noopener">Conjugate Gradient algorithm&lt;/a> (CG) aims to solve the linear system Ax = b where A is SPD (symmetric and positive definite),transforming the problem of finding solution to an optimization problem where we want to minimize $\phi(x)=\frac{1}{2}x^{T}Ax-x^{T}b$. This can be easily seen from $\nabla \phi (x) = 0$ -&amp;gt; $Ax-b=0$.&lt;/p>
&lt;p>In each step, the method provides us with a search direction and a step-length so that the error of this iteration is A-orthogonal to the search direction of the previous iteration. Eventually, it will converge to the minimal point. The CGLS algorithm is the least-squares version of the CG method, applied to the normal equation A&lt;sup>T&lt;/sup>Ax = A&lt;sup>T&lt;/sup>b. However, CGLS requires computing inner products, which can overflow for large-scale problems in low precision.&lt;/p>
&lt;h3 id="chebyshev-semi-iterative-method">Chebyshev Semi-Iterative Method&lt;/h3>
&lt;p>The Chebyshev Semi-Iterative (CS) Method requires no inner product computation, which is great because inner products can cause overflow easily in low precision. But there is always the trade-off! The CS method requires the user to have an idea of the range of the matrix A&amp;rsquo;s eigenvalues. The result given by CS is a linear combination of all solutions in each iteration, and the weights are obtained from the Chebyshev polynomial, which has the favorable property to ensure that the result obtained in each iteration of CS is smaller than an upper bound.&lt;/p>
&lt;h2 id="experiment">Experiment&lt;/h2>
&lt;h3 id="ir-tools">IR Tools&lt;/h3>
&lt;p>We modify the CGLS method in the &lt;a href="https://github.com/jnagy1/IRtools.git" target="_blank" rel="noopener">IRtool&lt;/a> package in Matlab so that it can operate in lower precision, and we use two test problems in the same package to investigate how the method performs at lower precision, mainly half precision.&lt;/p>
&lt;h3 id="image-deblurring-using-cgls">Image Deblurring Using CGLS&lt;/h3>
&lt;p>First, we use our modified version of CGLS without regularization to solve the image deblurring problem. In this application, we solve Ax = b, where b is an observed blurred image, A is a matrix that models the blurring operation, and x is the desired clean image. We didn’t add any noise to b in the problem of Ax = b at the beginning, and the graphs are demonstrated below.&lt;/p>
&lt;p align="center">
&lt;img src="img/blur no noise.png" alt="draw" width="600"/>
&lt;/p>
&lt;p>We use our modified version of CGLS for single and half precision, and the graph in single precision is similar to the graph in double precision. However, for half precision, the background is not the same as that in the double-precision or single-precision graph; it contains more artifacts.&lt;/p>
&lt;p>We also plot the error norms of the solution at each iteration using different precision levels.&lt;/p>
&lt;p align="center">
&lt;img src="img/enrm blur no noise.png" alt="draw" width="600"/>
&lt;/p>
&lt;p>From the graph, all three error norms overlap from the beginning until around the 20th iteration, where the half-precision errors begin to deviate from those in single and double precision. The difference is due to the round-off errors of half precision, which add up and take over. Besides, the error norms for half precision terminates at the 28th iteration because overflow of inner products causes NaNs (Not a Number) to be computed during the iteration.&lt;/p>
&lt;p>After investigating the idealized situations where there is no noise in the observed image, we then apply our code to problems that contains additive random noise to see how it is likely to perform in real life. That is, we try to compute x from the observed image b = Ax + noise.&lt;/p>
&lt;p>For half precision, with 0.1% noise, the picture looks almost the same as the one that contains no noise. However, if the noise level is increased to 1%, the background has substantially more artifacts, while the middle object is still identifiable. Noise has taken over the black background but not the satellite yet. Eventually, the whole image is flushed with the noisy artifacts with 10% noise; the picture no longer contains any meaningful information. Notice that the results below are generated using x from the best iteration, that is the iteration with the smallest error norms, not from the last iteration.&lt;/p>
&lt;p align="center">
&lt;img src="img/Best cgls fp16 64 m noise.png" alt="draw" width="700"/>
&lt;/p>
&lt;p>Now we turn our attention to the error norm, the difference between the original image and the one our algorithm generates at each iteration. When 0.1% noise is added, as the number of iterations goes up, the error norm reduces significantly across all three formats. Intriguingly, for images with 1% or 10% noise, the best reconstruction is not the last iteration but somewhere along the middle (it’s around the 50th iteration for 1% and 10th for 10%). The reason behind the phenomenon is that while we are transforming the output image, b, the blended noise also gets inverted along each iteration. Eventually, the random data accumulate and dominate the solution at some point. We are showing the results where the error norm is the smallest to see what is the best possible solution we can compute. However, in reality the true x is not known, meaning we don&amp;rsquo;t know the error norms, so we can only show results from the last iteration, not from the best iteration.&lt;/p>
&lt;p align="center">
&lt;img src="img/3.png" alt="draw" width="700"/>
&lt;/p>
&lt;!--
### Tomography Reconstruction Using CGLS
Below is the result of CGLS on the tomography reconstruction test problem at different precision levels. For double and single precision, the reconstruction is doing well, yet for fp16, we start to get this completely blue picture from the first iteration caused by overflow of Inf/-Inf.
&lt;p align="center">
&lt;img src="img/tomo_plot.png" alt="draw" width="800"/>
&lt;/p>
Our solution to this issue is to rescale A and b by dividing both by 100. And we get the result below:
&lt;p align="center">
&lt;img src="img/tomo_rescale.png" alt="draw" width="300"/>
&lt;/p>
which is still blurry but at least the shape is visible :)
Then we add noise to the right-hand side b, and plot the error norms below:
&lt;p align="center">
&lt;img src="img/error_tomo.png" alt="draw" width="800"/>
&lt;/p>
As in the image deblurring problem, the error norms first decrease and then increase. In the cases with noise, this is mainly because noise starts to take over in the later part of the iteration. However, we still see the same behavior in the noise-free test problems at half precision, which is because the truncation errors accumulate as the iteration goes on.
-->
&lt;h3 id="image-deblurring-using-cs">Image Deblurring Using CS&lt;/h3>
&lt;p>In order to prevent the occurrence of overflow, we experiment with the CS algorithm (where no inner products are needed) and use chop for lower precision. Tikhonov regularization is applied to CS after we find out that the algorithm performs poorly due to the close-to-zero singular values of A when it&amp;rsquo;s ill-conditioned. Now we are solving:
$$\min_{x} {||Ax-b||_2^2+\lambda^2||x||_2^2}$$ where $\lambda$ is a parameter that needs to be chosen. Here we show experiments for the case with 10% noise, and we use $\lambda$ = 0.199.&lt;/p>
&lt;p>From the graph below, it is clear that even with 10% noise, the half-precision image looks very similar to that in double precision, better than what we have using CGLS (results from the last iteration).&lt;/p>
&lt;p align="center">
&lt;img src="img/cs_reg_0.1_blur.png" alt="draw" width="500"/>
&lt;/p>
For the image deblurring problem, we further comfirm the similarity by plotting the error norms.
&lt;p align="center">
&lt;img src="img/cs_reg_0.1_blur_Enrm.png" alt="draw" width="300"/>
&lt;/p>
We can see that the error norms of the three precision levels overlap, illustrating that the result in half precision is close to that in double precision.
&lt;!--
### Tomography Reconstruction Using CS
The result for the tomography reconstruction problem using CS is showed below.
&lt;p align="center">
&lt;img src="img/cs_reg_0.1_tomo.png" alt="draw" width="500"/>
&lt;/p>
Although there is no inner product in CS, we still have overflow in half precision, which is because the matrix A is too large. Therefore, we rescale A and b by diving both of by 100 again, and the algorithm successfully runs to the end without generating NaNs. The image in half precision is as good as its counterpart in double precision, displaying clear boundaries and backgrounds. The error norms also overlap among the three precision levels.
-->
&lt;h3 id="image-deblurring-using-cgls-with-regularization">Image Deblurring Using CGLS with regularization&lt;/h3>
&lt;p>To fairly compare CGLS and CS, we add Tikhonov regularization to CGLS and run the test problem again. The diagrams are listed below.&lt;/p>
&lt;p align="center">
&lt;img src="img/cg_reg_blur_64_0.1_m.png" alt="draw" width="500"/>
&lt;/p>
&lt;p align="center">
&lt;img src="img/cg_reg_m_0.1_blur_Enrm.png" alt="draw" width="300"/>
&lt;/p>
The diagram for half precision looks much better than that produced by CGLS without regularization. However, difference still presents between half and double precision in the background. At the end of the iteration for half precision, the error norms still increase again. If we zoom in the graph of the error norms for CS and CGLS with regularization, we can see that the error norms at half precision converge for CS but increases rapidly for CGLS, suggesting that for half precision, CS is a better choice, especially when the noise level is high. When the noise level is close to zero, CS becomes susceptible because of the accumulation of round-off errors. However, for double precision, the CGLS method with regularization is clearly more stable. Therefore, CGLS with regularization is more suitable for double precision.
&lt;p align="center">
&lt;img src="img/Zoom in of Enrm for cs and cg.png" alt="draw" width="500"/>
&lt;/p>
We performed similar experiments with an image reconstruction problem from tomography; see our paper for further details!
&lt;h2 id="more-about-us">More about us&lt;/h2>
&lt;h3 id="yizhou-chen">Yizhou Chen&lt;/h3>
&lt;p align="center">
&lt;img src="img/bioRiley.png" alt="draw" width="300"/>
&lt;/p>
Hi! My name is Yizhou, but I go by Riley as well. I'm a rising junior at Emory University, double majoring in Applied Math and Physics. My interest is in computational Math &amp; computational Physics. Outside work I enjoy watching sitcoms and my favourite one is Frasier! I am an animal person and I have a toy poodle who's nine years old. I also love cycling and hiking.
&lt;h3 id="xiaoyun-gong">Xiaoyun Gong&lt;/h3>
&lt;p align="center">
&lt;img src="img/gxy.jpeg" alt="drawing" width="300"/>
&lt;/p>
Hello I am Xiaoyun Gong. I am a rising senior majoring in Applied Mathematics and Statistics. I am interested in math and I also enjoy coding!! In my free time I like watching anime (most recent favorite is Made in Abyss) and drawing. I like sweet food and I am a cat person. 🐱
&lt;h3 id="xiang-ji">Xiang Ji&lt;/h3>
&lt;p align="center">
&lt;img src="img/Zoe_bio.png" alt="drawing" width="300"/>
&lt;/p>
Hi, I am Xiang Ji, but you can also call me Zoe. I am a rising junior at Emory University who is double majoring in applied mathematics and statistics and art history. My research interest is in computational mathematics and image processing. I enjoy going to art museums and watching movies. It's quite fun doing research this summer!</description></item><item><title>Model-based approaches to neuronal network firing and its subsequent validation with a previously recorded in-vivo dataset</title><link>http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/</link><pubDate>Mon, 27 Jun 2022 11:36:49 -0400</pubDate><guid>http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/</guid><description>&lt;p>The research featured in this blog post was performed by Carly Ferrell, Qile Jiang, and Olivia Leu, and the team was advised by Dr. Michael Caiola.
This blog post was written by Carly Ferrell and published with minor edits. In addition to this post, the team has also given a &lt;a href="https://mstate-my.sharepoint.com/:b:/g/personal/cgf115_msstate_edu/EXa7BOlzUEhOui75S-m7CDABtmi4HFTbWnezklPHVSGadA?e=4XxeOW">midterm presentation&lt;/a>, made a &lt;a href="https://www.youtube.com/watch?v=2uBVgNFRpqI">poster blitz video&lt;/a>, and created a &lt;a href="https://mstate-my.sharepoint.com/:b:/g/personal/cgf115_msstate_edu/ERy6qqUmC7NPg20btpNQ0acBQOcWI51R2BewUUZX9tmvDQ?e=CpfiyS">poster&lt;/a>. They are currently working on a paper with the aim to publish it in an academic journal.&lt;/p>
&lt;h1 id="mathematical-modeling-of-healthy-and-parkinsonian-firing-patterns-in-the-primate-thalamocortical-motor-circuit">Mathematical Modeling of Healthy and Parkinsonian Firing Patterns in the Primate Thalamocortical Motor Circuit&lt;/h1>
&lt;p>Parkinson&amp;rsquo;s disease (PD) is a slowly progressing neuro-degenerative disease featuring impaired motor symptoms such as bradykinesia, muscular rigidity, and resting tremors.&lt;sup>1&lt;/sup> In industrialized countries, PD affects 0.3% of all people and 1% of people over age 60.&lt;sup>6&lt;/sup> The basal ganglia, motor thalamus, and motor cortex are three main components of the brain&amp;rsquo;s motor circuit and are responsible for movement planning and execution; movement disorders such as PD can develop when the typical activity of this circuit is disrupted.&lt;sup>2,3&lt;/sup> Specifically, PD is associated with the loss of dopaminergic neurons and altered neuronal oscillations in the beta-band (13-30 Hz).&lt;sup>4&lt;/sup> Other projects, such as the &lt;a href="https://www.worldscientific.com/doi/epdf/10.1142/S0129065718500211">2019 paper by M. Caiola and M. Holmes&lt;/a>, have investigated the changes in the basal ganglia neuronal activity from a mathematical modeling perspective, but little research has been done on the parkinsonism-associated changes in the areas of the thalamus and cortex which are involved in the motor circuit.&lt;sup>5&lt;/sup> We employ a mathematical model to investigate network connection changes within the thalamocortical motor ciruit to better understand the transition from healthy to parkinsonian states in the brain.&lt;/p>
&lt;h1 id="firing-rate-model">Firing Rate Model&lt;/h1>
&lt;p>We choose to use a firing rate model to describe our system. This approach can successfully represent networks, since each unit in the model can represent a population of neurons receiving input (average firing rates) from other neuron populations.&lt;/p>
&lt;p>A simplified circuit diagram of the thalamocortical motor circuit network is shown below, and provides the neuroscience basis for our model. The rounded squares each represent a population of neurons, which are connected by either excitatory (arrow-tipped lines) or inhibitory (circle-tipped lines) synaptic weights. The green circle represents the interneuron population of the thalamus.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Thalamocortical Loop Model" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/Thalamocortical_hu_852d92d8dd0195e9.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/Thalamocortical_hu_7d1f0863fa6c1ff7.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/Thalamocortical_hu_9fa63b6c7eaf99ad.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/Thalamocortical_hu_852d92d8dd0195e9.webp"
width="476"
height="490"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;table>
&lt;tr>
&lt;td>GPi (&lt;em>y&lt;/em>&lt;sub>1&lt;/sub>)&lt;/td>
&lt;td>globus pallidus internal&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>TC (&lt;em>y&lt;/em>&lt;sub>2&lt;/sub>)&lt;/td>
&lt;td>thalamocortical neurons&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CT5 (&lt;em>y&lt;/em>&lt;sub>3&lt;/sub>)&lt;/td>
&lt;td>corticothalamic layer 5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CT6 (&lt;em>y&lt;/em>&lt;sub>4&lt;/sub>)&lt;/td>
&lt;td>corticothalamic layer 6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>RTN (&lt;em>y&lt;/em>&lt;sub>5&lt;/sub>)&lt;/td>
&lt;td>thalamic reticular nucleus&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>IN (&lt;em>&amp;gamma;&lt;/em>)&lt;/td>
&lt;td>thalamic interneuron population&lt;/td>
&lt;/tr>
&lt;/table>
&lt;p>Treating the interneuron population as a &amp;ldquo;relay,&amp;rdquo; &lt;em>γ&lt;/em>, we can establish the following system of equations:&lt;/p>
&lt;p>&lt;em>τ&lt;sub>1&lt;/sub>y&amp;rsquo;&lt;sub>1&lt;/sub>&lt;/em> = −&lt;em>y&lt;sub>1&lt;/sub>&lt;/em> + &lt;em>f&lt;sub>1&lt;/sub>&lt;/em>(&lt;em>β&lt;sub>1&lt;/sub>&lt;/em> + &lt;em>h&lt;/em>)&lt;/p>
&lt;p>&lt;em>τ&lt;sub>2&lt;/sub>y&amp;rsquo;&lt;sub>2&lt;/sub>&lt;/em> = −&lt;em>y&lt;sub>2&lt;/sub>&lt;/em> + &lt;em>f&lt;sub>2&lt;/sub>&lt;/em>(&lt;em>w&lt;sub>12&lt;/sub>y&lt;sub>1&lt;/sub>&lt;/em> + &lt;em>w&lt;sub>32&lt;/sub>y&lt;sub>3&lt;/sub>&lt;/em> + &lt;em>w&lt;sub>42&lt;/sub>y&lt;sub>4&lt;/sub>&lt;/em> − &lt;em>w&lt;sub>52&lt;/sub>y&lt;sub>5&lt;/sub>&lt;/em> + &lt;em>γ&lt;/em> + &lt;em>b&lt;sub>2&lt;/sub>&lt;/em>)&lt;/p>
&lt;p>&lt;em>τ&lt;sub>3&lt;/sub>y&amp;rsquo;&lt;sub>3&lt;/sub>&lt;/em> = −&lt;em>y&lt;sub>3&lt;/sub>&lt;/em> + &lt;em>f&lt;sub>3&lt;/sub>&lt;/em>(&lt;em>w&lt;sub>23&lt;/sub>y&lt;sub>2&lt;/sub>&lt;/em> + &lt;em>w&lt;sub>43&lt;/sub>y&lt;sub>4&lt;/sub>&lt;/em> + &lt;em>b&lt;sub>3&lt;/sub>&lt;/em>)&lt;/p>
&lt;p>&lt;em>τ&lt;sub>4&lt;/sub>y&amp;rsquo;&lt;sub>4&lt;/sub>&lt;/em> = −&lt;em>y&lt;sub>4&lt;/sub>&lt;/em> + &lt;em>f&lt;sub>4&lt;/sub>&lt;/em>(&lt;em>w&lt;sub>34&lt;/sub>y&lt;sub>3&lt;/sub>&lt;/em> + &lt;em>b&lt;sub>4&lt;/sub>&lt;/em>)&lt;/p>
&lt;p>&lt;em>τ&lt;sub>5&lt;/sub>y&amp;rsquo;&lt;sub>5&lt;/sub>&lt;/em> = −&lt;em>y&lt;sub>5&lt;/sub>&lt;/em> + &lt;em>f&lt;sub>5&lt;/sub>&lt;/em>(&lt;em>w&lt;sub>45&lt;/sub>y&lt;sub>4&lt;/sub>&lt;/em> + &lt;em>b&lt;sub>5&lt;/sub>&lt;/em>)&lt;/p>
&lt;p>γ = −&lt;em>w&lt;sub>62&lt;/sub>&lt;/em>(−&lt;em>w&lt;sub>16&lt;/sub>y&lt;sub>1&lt;/sub>&lt;/em> − &lt;em>w&lt;sub>56&lt;/sub>y&lt;sub>5&lt;/sub>&lt;/em> + &lt;em>w&lt;sub>46&lt;/sub>y&lt;sub>4&lt;/sub>&lt;/em> + &lt;em>b&lt;sub>6&lt;/sub>&lt;/em>)&lt;/p>
&lt;table>
&lt;tr>
&lt;td>&lt;em>y&lt;sub>i&lt;/sub>&lt;/em>&lt;/td>
&lt;td>average neuronal population firing rate&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;em>w&lt;sub>jk&lt;/sub>&lt;/em>&lt;/td>
&lt;td>weight of the connection between populations &lt;em>j&lt;/em> and &lt;em>k&lt;/em>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;em>h&lt;/em>&lt;/td>
&lt;td>constant basal ganglia input&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;em>&amp;tau;&lt;sub>i&lt;/sub>&lt;/em>&lt;/td>
&lt;td>membrane time constant&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;em>f&lt;sub>i&lt;/sub>&lt;/em>&lt;/td>
&lt;td>activation function&lt;/td>
&lt;/tr>
&lt;/table>
&lt;p>Note that &lt;em>w&lt;sub>23&lt;/sub>&lt;/em> represents the difference between the excitatory and inhibitory inputs from TC to CT5. Note also that &lt;em>w&lt;sub>jk&lt;/sub>&lt;/em> &amp;gt; 0 and τ&lt;sub>&lt;em>i&lt;/em>&lt;/sub> &amp;gt; 0.&lt;/p>
&lt;p>This can be represented with vectors and matrices as:&lt;/p>
&lt;p>&lt;em>T&lt;strong>y&amp;rsquo;&lt;/strong>&lt;/em> = −&lt;em>&lt;strong>y&lt;/strong>&lt;/em> + &lt;em>&lt;strong>F&lt;/strong>&lt;/em>(&lt;em>&lt;strong>x&lt;/strong>&lt;/em>) ⟹ &lt;em>T&lt;strong>y&amp;rsquo;&lt;/strong>&lt;/em> = &lt;em>A&lt;strong>y&lt;/strong>&lt;/em> + &lt;em>&lt;strong>B&lt;/strong>&lt;/em>&lt;/p>
&lt;h1 id="activation-function-selection">Activation Function Selection&lt;/h1>
&lt;p>Neurons traditionally respond to inputs sigmoidally.&lt;sup>7,8,9&lt;/sup> However, this model creates a nonlinear system of equations for which it is impossible to solve for eigenvalues analytically. In order to attain eigenvalues and be able to comment on the behavior of the model as a whole, we must establish a simpler activation function that still manages to approximate experimental neuron discharge behavior.&lt;sup>5&lt;/sup> A piecewise linear (PWL) activation function is ideal in our case, as it allows us to break down a complex system into linear pieces which can be solved and manipulated:&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Piecewise Linear Activation Function" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/pwl_act_func_hu_a2c7911e6f3567c3.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/pwl_act_func_hu_1977598ecdd8a66d.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/pwl_act_func_hu_896e0bf40d0274fc.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/pwl_act_func_hu_a2c7911e6f3567c3.webp"
width="560"
height="321"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>We can break down this system into 3&lt;sup>5&lt;/sup> = 243 distinct linear regions in space, each with its own steady state (fixed point in space which the solution tends to as time increases). Out of these 243 regions, only the region in which each activation function is between 0 spikes/sec and its maximum firing rate contains a physiologically realistic steady state, further denoted as the middle region (outlined in green in the diagram below).&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Accuracy of Piecewise Linear Activation Function to the Sigmoidal Activation Function" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/pws_sig_hu_e35ed553029b038d.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/pws_sig_hu_67cf72c45d9e8f70.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/pws_sig_hu_8780fcbee87505c8.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/pws_sig_hu_e35ed553029b038d.webp"
width="716"
height="585"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h1 id="data-matching">Data Matching&lt;/h1>
&lt;p>This semi-linear firing rate model has a number of constant values that we must locate in experimental data and incorporate, namely the baseline firing rates, maximum firing rates, and membrane time constants for each neuron population involved in our simplified motor circuit model. We were able to find values for these parameters through literature review, although some required that we make estimates informed by information from areas of the brain that behave similarly or data on these parameters from mice, rats, or cats. However, there does not seem to be data that documents the baseline firing rate for the thalamic interneuron population in the primate brain. Given our uncertainty about the true baseline firing rate value for the primate thalamic interneuron population, we decided to create two models, one with the low and one with the high baseline. The parameter values are shown in the table below:&lt;/p>
&lt;table>
&lt;tr>
&lt;td>Neuron Population&lt;/td>
&lt;td>&lt;em>b&lt;sub>i&lt;/sub>&lt;/em>&lt;/td>
&lt;td>&lt;em>M&lt;sub>i&lt;/sub>&lt;/em>&lt;/td>
&lt;td>&lt;em>&amp;tau;&lt;sub>i&lt;/sub>&lt;/em>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>GPi (&lt;em>y&lt;/em>&lt;sub>1&lt;/sub>)&lt;/td>
&lt;td>55 Hz&lt;sup>5,10,11,12,13&lt;/sup>&lt;/td>
&lt;td>200 Hz&lt;sup>14&lt;/sup>&lt;/td>
&lt;td>8 ms&lt;sup>11,15,16&lt;/sup>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>TC (&lt;em>y&lt;/em>&lt;sub>2&lt;/sub>)&lt;/td>
&lt;td>18.5 Hz&lt;sup>17&lt;/sup>&lt;/td>
&lt;td>300 Hz&lt;/td>
&lt;td>25 ms&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CT5 (&lt;em>y&lt;/em>&lt;sub>3&lt;/sub>)&lt;/td>
&lt;td>7.25 Hz&lt;sup>18&lt;/sup>&lt;/td>
&lt;td>200 Hz&lt;/td>
&lt;td>20 ms&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CT6 (&lt;em>y&lt;/em>&lt;sub>4&lt;/sub>)&lt;/td>
&lt;td>7.25 Hz&lt;sup>18&lt;/sup>&lt;/td>
&lt;td>200 Hz&lt;/td>
&lt;td>15 ms&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>RTN (&lt;em>y&lt;/em>&lt;sub>5&lt;/sub>)&lt;/td>
&lt;td>25 Hz&lt;sup>17&lt;/sup>&lt;/td>
&lt;td>500 Hz&lt;sup>17&lt;/sup>&lt;/td>
&lt;td>16.51 ms&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>IN (&lt;em>&amp;gamma;&lt;/em>)&lt;/td>
&lt;td>Low: 6 Hz&lt;sup>19&lt;/sup> &lt;br> High: 22.7 Hz&lt;sup>20&lt;/sup>&lt;/td>
&lt;td>N/A&lt;/td>
&lt;td>N/A&lt;/td>
&lt;/tr>
&lt;/table>
&lt;h1 id="stability-and-steady-state-conditions">Stability and Steady State Conditions&lt;/h1>
&lt;p>No matter the disease state of our model, the neurons should not be at a state of maximal firing or absent firing for an extended period of time. Additionally, in Parkinsonian solutions, we should expect oscillations of firing rates. Thus the following must hold:&lt;/p>
&lt;ol>
&lt;li>Middle region contains its own steady state, and trajectories must not stabilize in another region.&lt;/li>
&lt;li>&lt;strong>Healthy:&lt;/strong> Middle region is stable ⟶ trajectories are thus forced to stabilize in the middle region, making the system globally asymptotically stable. &lt;br> &lt;strong>Parkinsonian:&lt;/strong> Middle region is unstable ⟶ trajectories are thus forced to oscillate around the middle region, forming a globally stable limit cycle.&lt;/li>
&lt;/ol>
&lt;p>To determine stability, the PWL activation function allows us to solve for the eigenvalues of each of the 243 regions explicitly. We found 3 possible cases:&lt;/p>
&lt;ol>
&lt;li>The region is stable regardless of weights.&lt;/li>
&lt;li>The region&amp;rsquo;s stability is conditional on weight values.&lt;/li>
&lt;li>The region (including the middle region) has eigenvalues that cannot be solved for analytically. Therefore, we used the &lt;strong>Routh-Hurwitz Stability Criterion&lt;/strong> (RH) to derive 3 stability conditions.&lt;/li>
&lt;/ol>
&lt;h1 id="weight-search">Weight Search&lt;/h1>
&lt;p>The current literature does not specify the baseline firing rate for the interneuron population, &lt;em>b&lt;sub>6&lt;/sub>&lt;/em>, so we took two estimates: &lt;em>b&lt;sub>6&lt;/sub>&lt;/em> = 6 for the low estimate, and &lt;em>b&lt;sub>6&lt;/sub>&lt;/em> = 22.7 for the high estimate.&lt;/p>
&lt;p>Comparing our data to the predicted values our model outputted, we were able to minimize the sum of squared error between the two and find a healthy solution for both the low and the high estimates of &lt;em>b&lt;sub>6&lt;/sub>&lt;/em>. The outputs for the low &lt;em>b&lt;/em>&lt;sub>6&lt;/sub> are shown below:&lt;/p>
&lt;p>Healthy Solution:&lt;/p>
&lt;table>
&lt;tr>
&lt;td>&lt;em>w&lt;sub>12&lt;/sub>&lt;/em> = 1.520384442&lt;/td>
&lt;td>&lt;em>w&lt;sub>16&lt;/sub>&lt;/em> = 1.621278311&lt;/td>
&lt;td>&lt;em>w&lt;sub>23&lt;/sub>&lt;/em> = 0.4962387866&lt;/td>
&lt;td>&lt;em>w&lt;sub>32&lt;/sub>&lt;/em> = 1.117631687&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;em>w&lt;sub>34&lt;/sub>&lt;/em> = 0.1540248925&lt;/td>
&lt;td>&lt;em>w&lt;sub>42&lt;/sub>&lt;/em> = 1.217895798&lt;/td>
&lt;td>&lt;em>w&lt;sub>43&lt;/sub>&lt;/em> = 0.0672671083&lt;/td>
&lt;td>&lt;em>w&lt;sub>45&lt;/sub>&lt;/em> = 1.542582263&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;em>w&lt;sub>46&lt;/sub>&lt;/em> = 9.049109867&lt;/td>
&lt;td>&lt;em>w&lt;sub>52&lt;/sub>&lt;/em> = 4.5350845&lt;/td>
&lt;td>&lt;em>w&lt;sub>56&lt;/sub>&lt;/em> = 0.3330689302&lt;/td>
&lt;td>&lt;em>w&lt;sub>62&lt;/sub>&lt;/em> = 7.127373038&lt;/td>
&lt;/tr>
&lt;/table>
&lt;p>Below is shown the firing rate outputs using these weights.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Healthy Low FR" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/healthylow_FR_hu_4bc13fd989cccc01.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/healthylow_FR_hu_9a4ef69cf81db261.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/healthylow_FR_hu_5deb8fb18adfc778.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/healthylow_FR_hu_4bc13fd989cccc01.webp"
width="760"
height="570"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Here, all firing rates tend toward a specifc value as time increases, so they are stable solutions.&lt;/p>
&lt;p>Parkinsonian Solution:&lt;/p>
&lt;table>
&lt;tr>
&lt;td>&lt;em>w&lt;sub>12&lt;/sub>&lt;/em> = 1.520384442&lt;/td>
&lt;td>&lt;em>w&lt;sub>16&lt;/sub>&lt;/em> = 1.621278311&lt;/td>
&lt;td>&lt;em>w&lt;sub>23&lt;/sub>&lt;/em> = 0.8691494663&lt;/td>
&lt;td>&lt;em>w&lt;sub>32&lt;/sub>&lt;/em> = 0.5043792396&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;em>w&lt;sub>34&lt;/sub>&lt;/em> = 0.1540248925&lt;/td>
&lt;td>&lt;em>w&lt;sub>42&lt;/sub>&lt;/em> = 1.217895798&lt;/td>
&lt;td>&lt;em>w&lt;sub>43&lt;/sub>&lt;/em> = 0.0672671083&lt;/td>
&lt;td>&lt;em>w&lt;sub>45&lt;/sub>&lt;/em> = 1.542582263&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;em>w&lt;sub>46&lt;/sub>&lt;/em> = 9.049109867&lt;/td>
&lt;td>&lt;em>w&lt;sub>52&lt;/sub>&lt;/em> = 4.5350845&lt;/td>
&lt;td>&lt;em>w&lt;sub>56&lt;/sub>&lt;/em> = 0.3330689302&lt;/td>
&lt;td>&lt;em>w&lt;sub>62&lt;/sub>&lt;/em> = 7.127373038&lt;/td>
&lt;/tr>
&lt;/table>
&lt;p>Below is shown the firing rate outputs using these weights.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="PD Low FR" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/PDlow_FR_hu_3901f5742cad9208.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/PDlow_FR_hu_324d3694a6af1a2b.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/PDlow_FR_hu_b6e2149b70181679.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/PDlow_FR_hu_3901f5742cad9208.webp"
width="760"
height="570"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Here, several firing rates oscillate, indicating a limit cycle solution.&lt;/p>
&lt;h1 id="weight-space">Weight Space&lt;/h1>
&lt;p>We were interested in the role of the thalamus in parkinsonian dysfunction, so we explored the relationship between &lt;em>w&lt;/em>&lt;sub>23&lt;/sub> and &lt;em>w&lt;/em>&lt;sub>32&lt;/sub>, which represent the excitatory and inhibitory connections between TC and CT5. Forcing all correlating weights to be equal in healthy and parkinsonian solutions except &lt;em>w&lt;/em>&lt;sub>23&lt;/sub> and &lt;em>w&lt;/em>&lt;sub>32&lt;/sub>, we found a healthy solution that could be forced into a parkinsonian state by only altering &lt;em>w&lt;/em>&lt;sub>23&lt;/sub> and &lt;em>w&lt;/em>&lt;sub>32&lt;/sub>. In a parkinsonian solution, at least one of the Routh-Hurwitz stability conditions must be broken. We examined which condition or combination of conditions is broken when the system moves from a healthy to a parkinsonian state for different values of &lt;em>w&lt;/em>&lt;sub>23&lt;/sub> and &lt;em>w&lt;/em>&lt;sub>32&lt;/sub>. The region plot for the low &lt;em>b&lt;/em>&lt;sub>6&lt;/sub> is shown below.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Region Plot Low b6" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/regplot_web_hu_2797a3b0d82b8c27.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/regplot_web_hu_fd8e16e665bbcac5.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/regplot_web_hu_f14f74bcda396b03.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/regplot_web_hu_2797a3b0d82b8c27.webp"
width="760"
height="522"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h1 id="conclusions-and-future-directions">Conclusions and Future Directions&lt;/h1>
&lt;ul>
&lt;li>Our model can represent the average firing rates of healthy and parkinsonian states in the thalamocortical motor circuit.&lt;/li>
&lt;li>We established stability and steady state conditions for the system to be healthy or parkinsonian.&lt;/li>
&lt;li>We have found multiple sets of weights that both satisfy the conditions and match the neuronal firing patterns in our &lt;em>in-vivo&lt;/em> primate dataset.&lt;/li>
&lt;li>We discovered that changing only the connection strength between TC and CT5 can force the system from a healthy to a parkinsonian state.&lt;/li>
&lt;li>&lt;strong>Next steps:&lt;/strong>&lt;/li> &lt;ul>
&lt;li>Examine the transition from both healthy to parkinsonian and parkinsonian to healthy.&lt;/li>
&lt;li>Explore methods of biologically validating our model by pharmacologically manipulating the weights of motor circuit network connections.&lt;/li> &lt;/ul>
&lt;/ul>
&lt;h1 id="more-about-the-team">More About the Team&lt;/h1>
&lt;ol>
&lt;li>&lt;strong>Carly Ferrell&lt;/strong> is a rising senior at Mississippi State University majoring in mathematics and minoring in statistics and music with a concentration in voice. She is interested in utilizing her skills in applied mathematics and statistcs to research music, specifically music theory and sight singing. Outside class, she enjoys reading, dancing, singing, and composing music.&lt;/li>
&lt;/ol>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Carly Picture" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/carly_pic_hu_6fa205f5d60d588f.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/carly_pic_hu_cc34f20642edab50.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/carly_pic_hu_d1bb65a9596bb3c0.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/carly_pic_hu_6fa205f5d60d588f.webp"
width="760"
height="507"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ol start="2">
&lt;li>&lt;strong> Qile Jiang&lt;/strong> is a rising junior at Brown University majoring in Applied Mathematics. His primary research area is in applied dynamical systems, but he also has a keen interest in pure math topics such as algebra. Outside of school, he spends his time training boxing, painting, and going to operas and classical concerts.&lt;/li>
&lt;/ol>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Qile Picture" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/qile_pic_hu_159de25a42f1d826.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/qile_pic_hu_b6942e985028bfab.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/qile_pic_hu_b836125051211188.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/qile_pic_hu_159de25a42f1d826.webp"
width="722"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ol start="3">
&lt;li>&lt;strong>Margaret Olivia Leu&lt;/strong> is a junior at Pomona College double majoring in mathematics and politics. She is interested in working on ways to use mathematics as a tool in the fields of politics and social justice work, and hopes to pursue a career that combines these two interests. Outside academics, she enjoys crocheting, cooking, and listening to music.&lt;/li>
&lt;/ol>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Olivia Picture" srcset="
/site/cmds-reuret/projects/2022-neural-net-firing/olivia_pic_hu_9a673c612e6a4861.webp 400w,
/site/cmds-reuret/projects/2022-neural-net-firing/olivia_pic_hu_9c7f236ce7ba2a57.webp 760w,
/site/cmds-reuret/projects/2022-neural-net-firing/olivia_pic_hu_e6dadbd87978971d.webp 1200w"
src="http://www.math.emory.edu/site/cmds-reuret/projects/2022-neural-net-firing/olivia_pic_hu_9a673c612e6a4861.webp"
width="754"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h1 id="references">References&lt;/h1>
&lt;ol>
&lt;li>Sveinbjornsdottir, S. (2016).The clinical symptoms of Parkinson&amp;rsquo;s disease. &lt;em>Journal of Neurochemistry, 139&lt;/em>(1), 318-324. &lt;a href="https://doi.org/10.1111/jnc.13691" target="_blank" rel="noopener">https://doi.org/10.1111/jnc.13691&lt;/a>.&lt;/li>
&lt;li>DeLong, M. R., &amp;amp; Wichmann, T. (2007). Circuits and circuit disorders of the basal ganglia. &lt;em>Archives of Neurology, 64&lt;/em>(1), 20–24. &lt;a href="https://doi.org/10.1001/archneur.64.1.20" target="_blank" rel="noopener">https://doi.org/10.1001/archneur.64.1.20&lt;/a>.&lt;/li>
&lt;li>Alexander, G. E., DeLong, M.R., &amp;amp; Strick, P.L. (1986). Parallel Organization of functionally segregated circuits linking basal ganglia and cortex. &lt;em>Annual Review of Neuroscience, 9&lt;/em>(1), 357-381. &lt;a href="https://doi.org/10.1146/annurev.ne.09.030186.002041" target="_blank" rel="noopener">https://doi.org/10.1146/annurev.ne.09.030186.002041&lt;/a>&lt;/li>
&lt;li>Galvan, A., Devergnas, A., &amp;amp; Wichmann, T. (2015). Alterations in neuronal activity in basal ganglia-thalamocortical circuits in the parkinsonian state. &lt;em>Frontiers in Neuroanatomy, 9&lt;/em>, 5. &lt;a href="https://doi.org/10.3389/fnana.2015.00005" target="_blank" rel="noopener">https://doi.org/10.3389/fnana.2015.00005&lt;/a>.&lt;/li>
&lt;li>Caiola, M., &amp;amp; Holmes, M. H. (2019). Model and analysis for the onset of parkinsonian firing patterns in a simplified basal ganglia. &lt;em>International Journal of Neural Systems, 29&lt;/em>(1). &lt;a href="https://doi.org/10.1142/S0129065718500211" target="_blank" rel="noopener">https://doi.org/10.1142/S0129065718500211&lt;/a>.&lt;/li>
&lt;li>de Lau, L. M. L., &amp;amp; Breteler, M. M. B. (2006). Epidemiology of Parkinson&amp;rsquo;s disease. &lt;em>The Lancet Neurology, 5&lt;/em>(6), 525-535. &lt;a href="https://doi.org/10.1016/S1474-4422%2806%2970471-9" target="_blank" rel="noopener">https://doi.org/10.1016/S1474-4422(06)70471-9&lt;/a>.&lt;/li>
&lt;li>Rall, W. (1955). Experimental monosynaptic input-output relations in the mammalian spinal cord. &lt;em>Journal of Cellular and Comparative Physiology, 46&lt;/em>(3), 413–437. &lt;a href="https://doi.org/10.1002/jcp.1030460303" target="_blank" rel="noopener">https://doi.org/10.1002/jcp.1030460303&lt;/a>&lt;/li>
&lt;li>Wilson, C. J., &amp;amp; Bevan, M. D. (2011). Intrinsic dynamics and synaptic inputs control the activity patterns of subthalamic nucleus neurons in health and in Parkinson’s disease. &lt;em>Neuroscience, 198&lt;/em>, 54–68. &lt;a href="https://doi.org/10.1016/j.neuroscience.2011.06.049" target="_blank" rel="noopener">https://doi.org/10.1016/j.neuroscience.2011.06.049&lt;/a>&lt;/li>
&lt;li>Nambu, A., &amp;amp; Llinaś, R. (1994). Electrophysiology of globus pallidus neurons in vitro. &lt;em>Journal of Neurophysiology, 72&lt;/em>(3), 1127–1139. &lt;a href="https://doi.org/10.1152/jn.1994.72.3.1127" target="_blank" rel="noopener">https://doi.org/10.1152/jn.1994.72.3.1127&lt;/a>&lt;/li>
&lt;li>Kita, H., Tachibana, Y., Nambu, A., &amp;amp; Chiken, S. (2005). Balance of Monosynaptic Excitatory and Disynaptic Inhibitory Responses of the Globus Pallidus Induced after Stimulation of the Subthalamic Nucleus in the Monkey. &lt;em>Journal of Neuroscience, 25&lt;/em>(38), 8611–8619. &lt;a href="https://doi.org/10.1523/JNEUROSCI.1719-05.2005" target="_blank" rel="noopener">https://doi.org/10.1523/JNEUROSCI.1719-05.2005&lt;/a>&lt;/li>
&lt;li>Hikosaka, O. (2007). GABAergic output of the basal ganglia. &lt;em>Progress in Brain Research, 160&lt;/em>, 209–226. &lt;a href="https://doi.org/10.1016/S0079-6123%2806%2960012-5" target="_blank" rel="noopener">https://doi.org/10.1016/S0079-6123(06)60012-5&lt;/a>&lt;/li>
&lt;li>Wichmann, T., Bergman, H., Starr, P. A., Subramanian, T., Watts, R. L., &amp;amp; DeLong, M. R. (1999). Comparison of MPTP-induced changes in spontaneous neuronal discharge in the internal pallidal segment and in the substantia nigra pars reticulata in primates. &lt;em>Experimental Brain Research, 125&lt;/em>(4), 397–409. &lt;a href="https://doi.org/10.1007/s002210050696" target="_blank" rel="noopener">https://doi.org/10.1007/s002210050696&lt;/a>&lt;/li>
&lt;li>Bergman, H., Wichmann, T., Karmon, B., &amp;amp; DeLong, M. R. (1994). The primate subthalamic nucleus. II. Neuronal activity in the MPTP model of parkinsonism. &lt;em>Journal of Neurophysiology, 72&lt;/em>(2), 507–520. &lt;a href="https://doi.org/10.1152/jn.1994.72.2.507" target="_blank" rel="noopener">https://doi.org/10.1152/jn.1994.72.2.507&lt;/a>&lt;/li>
&lt;li>Hashimoto, T., Elder, C. M., Okun, M. S., Patrick, S. K., &amp;amp; Vitek, J. L. (2003). Stimulation of the Subthalamic Nucleus Changes the Firing Pattern of Pallidal Neurons. &lt;em>The Journal of Neuroscience, 23&lt;/em>(5), 1916–1923. &lt;a href="https://doi.org/10.1523/JNEUROSCI.23-05-01916.2003" target="_blank" rel="noopener">https://doi.org/10.1523/JNEUROSCI.23-05-01916.2003&lt;/a>&lt;/li>
&lt;li>Nakanishi, H., Tamura, A., Kawai, K., &amp;amp; Yamamoto, K. (1997). Electrophysiological studies of rat substantia nigra neurons in an in vitro slice preparation after middle cerebral artery occlusion. &lt;em>Neuroscience, 77&lt;/em>(4), 1021–1028. &lt;a href="https://doi.org/10.1016/s0306-4522%2896%2900555-6" target="_blank" rel="noopener">https://doi.org/10.1016/s0306-4522(96)00555-6&lt;/a>&lt;/li>
&lt;li>Nambu, A. (2007). Globus pallidus internal segment. &lt;em>Progress in Brain Research, 160&lt;/em>, 135–150. &lt;a href="https://doi.org/10.1016/S0079-6123%2806%2960008-3" target="_blank" rel="noopener">https://doi.org/10.1016/S0079-6123(06)60008-3&lt;/a>&lt;/li>
&lt;li>van Albada, S. J., &amp;amp; Robinson, P. A. (2009). Mean-field modeling of the basal ganglia-thalamocortical system. I Firing rates in healthy and parkinsonian states. &lt;em>Journal of Theoretical Biology, 257&lt;/em>(4), 642–663. &lt;a href="https://doi.org/10.1016/j.jtbi.2008.12.018" target="_blank" rel="noopener">https://doi.org/10.1016/j.jtbi.2008.12.018&lt;/a>&lt;/li>
&lt;li>Opris, I., Hampson, R. E., Stanford, T. R., Gerhardt, G. A., &amp;amp; Deadwyler, S. A. (2011). Neural Activity in Frontal Cortical Cell Layers: Evidence for Columnar Sensorimotor Processing. &lt;em>Journal of Cognitive Neuroscience, 23&lt;/em>(6), 1507–1521. &lt;a href="https://doi.org/10.1162/jocn.2010.21534" target="_blank" rel="noopener">https://doi.org/10.1162/jocn.2010.21534&lt;/a>&lt;/li>
&lt;li>Ison, M. J., Mormann, F., Cerf, M., Koch, C., Fried, I., &amp;amp; Quiroga, R. Q. (2011). Selectivity of pyramidal cells and interneurons in the human medial temporal lobe. &lt;em>Journal of Neurophysiology, 106&lt;/em>(4), 1713–1721. &lt;a href="https://doi.org/10.1152/jn.00576.2010" target="_blank" rel="noopener">https://doi.org/10.1152/jn.00576.2010&lt;/a>&lt;/li>
&lt;li>Putrino, D. F., Chen, Z., Ghosh, S., &amp;amp; Brown, E. N. (2011). Motor Cortical Networks for Skilled Movements Have Dynamic Properties That Are Related to Accurate Reaching. &lt;em>Neural Plasticity, 2011&lt;/em>, 1–15. &lt;a href="https://doi.org/10.1155/2011/413543" target="_blank" rel="noopener">https://doi.org/10.1155/2011/413543&lt;/a>&lt;/li>
&lt;/ol></description></item><item><title>Shallow vs. Deep Brain Network Models for Mental Disorder Analysis</title><link>http://www.math.emory.edu/site/cmds-reuret/projects/2022-brain-nets/</link><pubDate>Mon, 27 Jun 2022 11:36:49 -0400</pubDate><guid>http://www.math.emory.edu/site/cmds-reuret/projects/2022-brain-nets/</guid><description>&lt;p>This post was written by Erica Choi, Sally Smith, and Ethan Young and published with minor edits. The team was advised by Professor Carl Yang.
In addition to this post and the &lt;a href="https://www.cs.emory.edu/~jyang71/files/reu2022.pdf" target="_blank" rel="noopener">paper&lt;/a>, the team has also created slides for a &lt;a href="REU_Midterm_Presentation.pdf">midterm presentation&lt;/a>, a &lt;a href="https://youtu.be/DLs1PkO8iJo" target="_blank" rel="noopener">poster blitz video&lt;/a>, and a &lt;a href="REU_Poster.pdf">poster&lt;/a>. This work was accepted at the BrainNN workshop at &lt;a href="Choi-Smith-Young-IEEEBrainNN.pdf">IEEE BigData 2022&lt;/a> and slides are available here.&lt;/p>
&lt;h1 id="comparing-shallow-vs-deep-brain-network-models">Comparing Shallow vs. Deep Brain Network Models&lt;/h1>
&lt;p>Our shallow models use graph kernels to compare structural similarity of brain network data. Plugging those kernels into support vector machines allows us to classify patients&amp;rsquo; brain scans. These kernel methods are called &amp;ldquo;shallow&amp;rdquo; because they do not require many layers of computation, unlike their &amp;ldquo;deep&amp;rdquo; model counterparts. Our deep models are graph neural networks, machine learning (ML) models that can exploit the local information of nodes in graph data to perform classification. In this project, our models are classifying brain scans as either diseased or healthy. We are comparing the two types of models, shallow and deep, to further determine which might be more useful in analyzing neuroimaging data, as well as working on using the models in conjunction with one another to leverage the strengths of both.&lt;/p>
&lt;p>For useful background and definitions refer to &lt;a href="#preliminaries">Preliminaries&lt;/a>.&lt;/p>
&lt;h1 id="datasets">Datasets&lt;/h1>
&lt;p>We are working with 2 datasets, one documenting human immunodeficiency virus (HIV) patients and one documenting bipolar disorder (BP) patients. Each dataset consists of functional magnetic resonance imaging (fMRI) scans, diffusion tensor imaging (DTI) scans, and classification labels in the form of integers, where 1 indicates a healthy patient and -1 indicates an unhealthy patient. Both datasets have been processed for us, as detailed in &lt;a href="https://arxiv.org/abs/2204.07054" target="_blank" rel="noopener">Section 3&lt;/a> of the paper authored by Cui et al.&lt;/p>
&lt;h1 id="problem-formulation">Problem Formulation&lt;/h1>
&lt;p>The DTI and fMRI brain scans of each patient $i$ are represented as weighted adjacency matrices $\mathbf{W}_i \in \mathbb{R}^{M \times M}$. The adjacency matrix is constructed from the brain scan and is a natural way of mathematically representing graph data. Nodes in the brain network represent regions of interest (ROIs), and edge links between nodes indicate the strength of the connection between the two regions. In general, fMRI scans are considered to be more robust than DTI scans; specifically, fMRI scans are less affected by noise caused by data collection. Thus, our experiments prioritize working with the fMRI scans.&lt;/p>
&lt;h2 id="classification-task">Classification Task&lt;/h2>
&lt;p>The standard graph classification task considers the problem of classifying graphs into two or more categories. The goal is to learn a model that maps graphs in the set of graphs $G$ to a set of labels $Y$. In this project, our set of graphs $G$ is the set of brain scans from patients and our set of labels $Y$ consists of two labels: diseased and healthy. The goal of our models is to classify brain scans accurately and improve model interpretability.&lt;/p>
&lt;h2 id="implementation">Implementation&lt;/h2>
&lt;p>For implementation of support vector machines (SVM) with graph kernels, we utilized threshold rounding to remove edge weights and sparsify the adjacency matrices. This means that values in the adjacency matrices were rounded to make the matrices simpler. While this results in information loss, it preserves the overall structure of the adjacency matrices and makes them usable for this particular method. It also makes the computation less expensive. Further manipulation creates a list of graph objects that are compatible with the Python package &lt;a href="https://ysig.github.io/GraKeL/0.1a8/" target="_blank" rel="noopener">GraKel&lt;/a>.&lt;/p>
&lt;p>For implementation of graph convolutional networks (GCNs), we followed &lt;a href="https://github.com/HennyJie/BrainGB" target="_blank" rel="noopener">BrainGB&lt;/a>&amp;rsquo;s code to create a data type that can be used with the Python package &lt;a href="https://pytorch-geometric.readthedocs.io/en/latest/" target="_blank" rel="noopener">PyG&lt;/a>.&lt;/p>
&lt;p>For implementation of kernel graph neural networks (i.e., KerGNN), we followed &lt;a href="https://www.aaai.org/AAAI22Papers/AAAI-6564.FengA.pdf" target="_blank" rel="noopener">KerGNN&lt;/a>&amp;rsquo;s code and implemented threshold rounding to run experiments. The motivation for threshold rounding is the same as for implementing SVM.&lt;/p>
&lt;h1 id="methods">Methods&lt;/h1>
&lt;h2 id="1-graph-kernels">1. Graph Kernels&lt;/h2>
&lt;img src="img/SVC.png" alt="SVC" width="1000"/>
&lt;figcaption align = "center">&lt;b>Fig.1 - Support Vector Machines with Kernels&lt;/b>&lt;/figcaption>
&lt;br/>
&lt;p>We computed three kernels to plug into SVM: Weisfeiler-Lehman (WL), Weisfeiler-Lehman Optimal Assignment (WLOA), and propagation (Prop). The choice of these kernels is motivated by exploiting structural information (i.e., subgraphs) in the brain networks. We tested these graph kernels to find which ones were most effective. On average, the propagation kernel classified HIV best and the WLOA kernel classified bipolar disorder best.&lt;/p>
&lt;h2 id="2-graph-convolutional-networks-gcns">2. Graph Convolutional Networks (GCNs)&lt;/h2>
&lt;img src="img/BrainGB.png" alt="BrainGB" width="1000"/>
&lt;figcaption align = "center">&lt;b>Fig.2 - BrainGB Framework &lt;/b>&lt;/figcaption>
&lt;br/>
&lt;p>The deep model that we experimented with in this project is graph convolutional networks (GCNs). This is a &amp;ldquo;deep&amp;rdquo; model because GCNs are under the umbrella of &amp;ldquo;deep learning&amp;rdquo;. GCNs are modern ML algorithms that pass information through several layers and do more extensive computations than shallow models. Note that our GCNs (and GNNs in general) are shallow in the sense that the models have few layers. Machine learning is still a very active field of research, and recent interest in graph data has led to major strides in graph-based ML.&lt;/p>
&lt;p>We implement message passing GNNs (MPGNN)—a type of GCN—using the BrainGB Python package,
which is built on the Pytorch and Pytorch Geometric libraries. MPGNNs involve what are called message passing schemes to aggregate information from a node&amp;rsquo;s neighbors. Figure 2, adapted from &lt;a href="https://arxiv.org/abs/2204.07054" target="_blank" rel="noopener">Cui et al.&lt;/a>, visualizes the MPGNN architecture.&lt;/p>
&lt;h2 id="3-merging-graph-kernels-and-gnns">3. Merging Graph Kernels and GNNs&lt;/h2>
&lt;p>To leverage the higher order structural information given by graph kernels and local information given by GCNs, we implement GNNs that incorporate various graph kernels (WL, WLOA, etc.) and benchmark their performance on our dataset. The frameworks of particular interest to us are:&lt;/p>
&lt;ul>
&lt;li>the graph convolution layer (GKC) proposed by &lt;a href="https://arxiv.org/abs/2112.07436" target="_blank" rel="noopener">Cosmo et al.&lt;/a>, visualized in Figure 3, and&lt;/li>
&lt;li>the kernel graph neural network (KerGNN) proposed by &lt;a href="https://www.aaai.org/AAAI22Papers/AAAI-6564.FengA.pdf" target="_blank" rel="noopener">Feng et al.&lt;/a>, visualized in Figure 5.&lt;/li>
&lt;/ul>
&lt;img src="img/GKNN.png" alt="Graph Kernel GNN" width="1000"/>
&lt;figcaption align = "center">&lt;b>Fig.3 - GKNN Framework&lt;/b>&lt;/figcaption>
&lt;br/>
&lt;img src="img/KerGNN.png" alt="Graph Kernel GNN" width="1000"/>
&lt;figcaption align = "center">&lt;b>Fig.5 - KerGNN Framework&lt;/b>&lt;/figcaption>
&lt;br/>
&lt;h1 id="results">Results&lt;/h1>
&lt;p>Our most successful model was a graph attention network (GAT) model that used a node concatenation message passing scheme. This model was able to classify HIV patients as healthy or diseased with 81% accuracy on average. In general, our highest performing models were classifying HIV data, particularly using deep models.&lt;/p>
&lt;p>Our highest performing model for bipolar disorder prediction used support vector classifiers (SVCs) with propagation WLOA kernels and had average accuracy of 63%. The differences in performance are minor; furthermore, all kernels&amp;rsquo; mean performance had high standard deviation.&lt;/p>
&lt;p>Our preliminary results from using a combination of kernel methods and GNNs are not outperforming our HIV-GAT(node) model, but we are seeing some improvements in classifying bipolar disorder with the hybrid model, particularly with KerGNN.&lt;/p>
&lt;h1 id="discussion">Discussion&lt;/h1>
&lt;p>In general, we found that our models were better able to classify HIV patients than BP patients. &lt;a href="https://arxiv.org/abs/2204.07054" target="_blank" rel="noopener">Cui et al.&lt;/a> observes that HIV affects both the visual network (VN) and default mode network (DMN), while bipolar disorder mainly affects the bilateral limbic network (BLN). It is possible that HIV was easier to model because it significantly affected multiple networks in the brain, while BP was more elusive with only one major network significantly affected.&lt;/p>
&lt;p>For more details and discussion of our results, see our manuscript (coming soon).&lt;/p>
&lt;h2 id="limitations">Limitations&lt;/h2>
&lt;p>Due to our datasets consisting of less than 100 patients each, our results may not generalize well beyond our specific dataset. If this study were to be replicated, a larger dataset would be ideal, but the expensive nature of brain imaging data and its processing requirements will pose some degree of limitation to any study that uses it. Additionally, brain imaging data is a highly protected data type due to the right to privacy of the patients whose brain scans are used in these experiments. This means that much of the information about the patients is kept private, so it can be challenging to find confounding variables or alternative explanations for statistical results from this data.&lt;/p>
&lt;p>Another notable limitation is that of structure of the brain networks themselves. Specifically, it remains unclear what subgraphs and higher-order information are relevant in classifying brain scans as belonging to diseased or healthy individuals. GNNs also have limitations. For example, GNNs are prone to overfitting, especially with datasets as small as our own. This is an issue that could potentially be alleviated with access to a larger dataset.&lt;/p>
&lt;h2 id="future-work">Future Work&lt;/h2>
&lt;p>There are many avenues with which we may take future research in brain network classification. There are many ways of incorporating graph kernels into GNNs that improve the interpretability of the model, which in turn gives insights into the key underlying structures that help to classify brain networks.&lt;/p>
&lt;h1 id="preliminaries">Preliminaries&lt;/h1>
&lt;p>For technical details of implementing support vector classifiers (SVC) using the Python package &lt;a href="https://scikit-learn.org/stable/" target="_blank" rel="noopener">sklearn&lt;/a>, see this &lt;a href="https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html" target="_blank" rel="noopener">link&lt;/a>.&lt;/p>
&lt;p>For the mathematical theory underlying SVC, see this &lt;a href="https://towardsdatascience.com/support-vector-machine-introduction-to-machine-learning-algorithms-934a444fca47" target="_blank" rel="noopener">blog post&lt;/a>.&lt;/p>
&lt;p>For a survey of graph kernels, see this &lt;a href="https://arxiv.org/abs/1903.11835" target="_blank" rel="noopener">paper&lt;/a>.&lt;/p>
&lt;p>For an introduction to graph neural networks (GNNs), see this &lt;a href="https://distill.pub/2021/gnn-intro/" target="_blank" rel="noopener">blog post&lt;/a>.&lt;/p>
&lt;h1 id="references">References&lt;/h1>
&lt;p>&lt;a href="https://arxiv.org/abs/2204.07054" target="_blank" rel="noopener">BrainGB: A Benchmark for Brain Network Analysis with Graph Neural Networks&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://arxiv.org/abs/2107.05097" target="_blank" rel="noopener">BrainNNExplainer: An Interpretable Graph Neural Network Framework for Brain Network based Disease Analysis&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://dl.acm.org/doi/abs/10.1145/2783258.2783417" target="_blank" rel="noopener">Deep Graph Kernels&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://arxiv.org/abs/2112.07436" target="_blank" rel="noopener">Graph Kernel Neural Networks&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://www.aaai.org/AAAI22Papers/AAAI-6564.FengA.pdf" target="_blank" rel="noopener">KerGNNs: Interpretable Graph Neural Networks with Graph Kernels&lt;/a>&lt;/p></description></item></channel></rss>