Sam Fok
Compilers: Neural Mapping

Personal Background

I was born in St. Louis, grew up in St. Louis, and attended Washington University in St. Louis. I entered my undergraduate career with a vague desire to understand how the brain works. After a brief stint in psychology, I realized that I subscribed to Richard Feynman’s “What I cannot create, I do not understand” litmus test, so I switched into engineering.

Engineering led me to research neuronal level visual and vestibular sensory integration and to develop an EEG-based brain-machine-interface (BMI) device for use in stroke rehabilitation. Seeking to further my engineering skills and to build a brain, or something like it, I joined the Stanford Electrical Engineering PhD program in fall of 2011 and subsequently the Brains in Silicon Lab at the beginning of 2012.

Research Goals

I have yet to beat a chess program on its most difficult setting, and I would have an impossible time beating Watson, IBM’s Jeopardy playing computer that already trounced the best human players in the world. However, like any other human, I can easily switch from playing a game of Jeopardy to, say, tying my shoe, and, like any other human brain, my brain does this on a power budget of just tens of watts. Watson, on the other hand, consumed tens of thousands of watts just playing Jeopardy.

From chess, to Jeopardy, to recommendation engines, the realm of tasks that we deem only humans can perform has been steadily shrinking, but the human brain still has much to offer when it comes to computing in a power-efficient manner. Computing power-efficiently as the brain does requires hardware that emulates the brain, known as neuromorphic hardware, and principled, systematic methods of compiling computations onto the neural networks supported by neuromorphic hardware.  These two requirements are fulfilled by the neuromorphic hardware developed in the Brains in Silicon Lab, namely Neurogrid, and by the Neural Engineering Framework (NEF), a theoretical, principled method of mapping algorithms onto a spiking neural network substrate.

My project is to adapt the NEF to the constraints of neuromorphic hardware and use it to map algorithms on to neuromorphic hardware for low power applications. Specifically, I am working on a BMI decoder for the brain’s motor cortex and a robot-arm controller.

The BMI decoder translates spikes recorded from the motor cortex of the brain into signals that control a robot or computer. Such a BMI system could restore limb control to those paralyzed due to injury or neurodegenerative disease. However, when implemented on conventional, digital computers, BMIs require too much power to be untethered from cables and implanted, which limits their clinical viability. By using neuromorphic hardware for high efficiency computation, we can construct new BMIs at power levels compatible with physiological constraints.

The robot-arm controller translates a user’s commands into control signals for the motors and actuators using Operational Space Control, a method for mapping between task space and joint space in an energy-optimal fashion. The robot controller combined with the motor cortex decoder would provide a full BMI system for limb prosthetics.

Project Status

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Controlling a robot with a spiking neural network. A three degree-of-freedom robot is controlled by a simulated spiking neural network (left); spike trains from a subset of neurons are shown (right). The network converts user-commanded forces (in xyz-space) to torque commands (in joint-space) while compensating for gravity.

One of my research goals is to study principles of neural computation without making prior assumptions of the neural code. Whether neurons encode information in their spike rates or times is a hotly debated issue in computational neuroscience. Under the influence of such debates, choosing an appropriate neural code became a prerequisite for theoretical treatments of neural computation. However, experimental results have demonstrated that biological neurons can operate with one or the other code depending on the brain areas they are from, suggesting that the spiking neuron as a computational unit does not fundamentally restrict neural networks to a single code. In fact, the spike rate and time codes may simply be the extremes of a continuous spectrum. Recent developments

Kalman filter on neuromorphic hardware, we demonstrated NEF's three principles (representation, computation, and dynamics) on Neurogrid. We are performing further analysis to determine how many neurons are required to achieve a given accuracy.

For the robot controller project, we have controlled robots with up to six degrees of freedom using simulated spiking neural networks engineered with NEF. We are currently mapping these simulated networks onto Neurogrid and validating their operation by controlling a real robot arm (Neuroarm) constructed in-house. To minimize the number of neurons required, we are exploring different algorithm decompositions and utilizing gain-modulated neurons.


ID Article Full Text
C50 S Fok and K Boahen, A Serial H-Tree Router for Two-Dimensional Arrays, 24th IEEE Symposium on Asynchronous Circuits and Systems, IEEE Press, 2018.
Full Text
S Menon, S Fok, A Neckar, O Khatib, and K Boahen, Controlling Articulated Robots in Task-Space with Spiking Silicon Neurons, IEEE International Conference on Biomedical Robotics and Biomechatronics (BioRob), IEEE Press, pp 181-186, 2014.

Full Text
C41 S Choudhary, S Sloan, S Fok, A Neckar, E Trautmann, P Gao, T Stewart, C Eliasmith, and K Boahen, Silicon Neurons that Compute, International Conference on Artificial Neural Networks, LNCS vol 7552, pp 121-128, Springer, Heidelberg, 2012.
Full Text


Fun Facts

In my free time, I like to ride my bike around the bay area, swim, and partake in hackathons.