PyPhi ↗
2014 – presentA Python library to calculate integrated information, the quantity that integrated information theory (IIT) identifies with consciousness
View on GitHub →consciousness · AI · scientific computing
A Python library to calculate integrated information, the quantity that integrated information theory (IIT) identifies with consciousness
View on GitHub →Integrated Information Theory: Theoretical Developments & Empirical Applications
A Python wrapper of a C++ implementation of the Earth Mover's Distance metric (Wasserstein metric), used in some ML libraries to compare probability distributions
View on GitHub →Analysis code accompanying the study I led in collaboration with the Allen Institute through their OpenScope program, which provides high-throughput two-photon calcium imaging in mice.
We systematically surveyed neurophysiological differentiation—a measure of the extent to which a population of neurons expresses a rich and varied repertoire of states, inspired by prior work on IIT—across layers and areas of mouse visual cortex in response to naturalistic movies and phase-scrambled controls.
The key finding was that naturalistic stimuli evoke more differentiated neural activity than scrambled stimuli, but only in specific populations: layer 2/3 excitatory neurons in the anterolateral and anteromedial visual areas. This effect was robustly modulated by arousal state: effect sizes showed strong correlations with locomotion and pupil diameter, suggesting that the difference in differentiation is more pronounced when animals are engaged.
Differentiation analysis represents an “inside-out” approach to neural activity, in the sense articulated by György Buzsáki (2019): rather than characterizing responses in terms of externally defined stimulus variables, it quantifies the intrinsic diversity of population dynamics. This contrasts with traditional “outside-in” methods such as decoding, which showed uniformly high performance across layers and areas and did not distinguish the specific populations highlighted by neurophysiological differentiation. In line with Romain Brette’s (2019) critique of the neural coding metaphor, these results underscore that decoding accuracy—defined relative to an experimenter’s variables and ideal observer assumptions—does not by itself establish functional or perceptual relevance. By characterizing population activity on its own dynamical terms, differentiation sidesteps these assumptions and may reveal which neural populations are signatures of functionally relevant dynamics—offering a new lens for understanding how neural activity relates to perception.
Python software for evolving small neural networks using genetic algorithms and investigating their dynamics and integrated-information-theoretic properties
View on GitHub →A web-based interface to PyPhi that allows nontechnical users to perform IIT calculations and visualize results [deprecated]
View on GitHub →Summer REU program on kernel methods at the Illinois Institute of Technology
Over the summer of 2012 I did some research in applied mathematics at the Illinois Institute of Technology. My research partner and I made a poster summarizing the results and presented it at a couple of conferences.
In my senior year of high school I built an interactive applet that lets you explore the Mandelbrot Set, a fascinating and beautiful mathematical object.
I first came across it when I read Chaos by James Gleick in 10th grade. Right after that, I read Hofstadter’s Gödel, Escher, Bach. This was my first glimpse of real mathematics. I had always thought I didn’t like math, but after seeing this I realized that I just didn’t like math class.
The Mandelbrot Set is the set of complex numbers for which the orbit of remains bounded under iteration of this simple equation:
Note: The original Java applet no longer works in modern browsers. A modern reimplementation would be a fun future project.