Portfolio
Collection of my projects, presentations, and publications.
Resume Chatbot: Harnessing Chatgpt for the job search
Highlighted Skills: Python, LangChain, LLM (ChatGPT), AWS SAM, DynamoDB, Heroku, Dashboards
A dashboard app for interacting with a customized chatbot agent, hosted on Heroku. The agent tools are retrieval-augmented generation (RAG) over provided documents, such as my resume, CV, publications, and more. The agent’s memory is limited to the browser session chat history to avoid confusion in the agent. The conversation is saved to an AWS DynamoDB database so any answer provided by the chat bot can be reviewed and correct if necessary. Corrections are given to the agent by updating the Q&A tool with a question and answer that informs the agent of the desired output.
UFC Investigation: First FIght of the Night
Highlighted Skills: Python, Pandas, Web Scraping, Jupyter Notebook
While watching mixed martial arts fights (and playing daily fantasy sports) I've noticed when that the first fight of the night on a UFC card usually ends in a finish (doesn't go to the judge's scorecards). Or, I've developed a negative bias, as I'm usually staring at my DraftKings lineup after the first fight wishing I had done research into the lesser-known fighters appearing in the first fight. I want to investigate this further, as I have not confirmed the finish rate is any different than any other fight position on the card.
My hypothesis: the fighters who fight first on a card are likely newcomers to the UFC (or relatively new). They have found success in smaller organizations that do not have the talent pool of the UFC. Thus, these fighters may have tremendous differences in skill level, resulting in a mismatch. Let's see if this hypothesis can be supported with the data.
Understanding my PhD research - The Search For King Turing’s Stolen Treasure
Highlighted Skills: Keynote, Non-Technical Presentation Style, Graphic Design
For the years I conducted doctoral research in theoretical physics, I spent considerable time analyzing research from outside of physics, as my contributions were parallel to the interdisciplinary field of computational complexity involving statistical mechanics, computer science, and theoretical mathematics. Quickly, I recognized that I could not expect others to have knowledge of all these topics, so I learned to carefully explain my results using language that was accessible to everyone. This video is an attempt to make the concepts behind my research accessible to everyone. Please let me know what you think in the YouTube comments.
Publication: Efficient solution of Boolean satisfiability problems with digital memcomputing
Highlighted Skills: MATLAB, Dynamical System Design, Technical Writing, Graphic Design
Boolean satisfiability is a propositional logic problem of interest in multiple fields, e.g., physics, mathematics, and computer science. Beyond a field of research, instances of the SAT problem, as it is known, require efficient solution methods in a variety of applications. It is the decision problem of determining whether a Boolean formula has a satisfying assignment, believed to require exponentially growing time for an algorithm to solve for the worst-case instances. Yet, the efficient solution of many classes of Boolean formulae eludes even the most successful algorithms, not only for the worst-case scenarios, but also for typical-case instances. Here, we introduce a memory-assisted physical system (a digital memcomputing machine) that, when its non-linear ordinary differential equations are integrated numerically, shows evidence for polynomially-bounded scalability while solving “hard” planted-solution instances of SAT, known to require exponential time to solve in the typical case for both complete and incomplete algorithms. Furthermore, we analytically demonstrate that the physical system can efficiently solve the SAT problem in continuous time, without the need to introduce chaos or an exponentially growing energy. The efficiency of the simulations is related to the collective dynamical properties of the original physical system that persist in the numerical integration to robustly guide the solution search even in the presence of numerical errors. We anticipate our results to broaden research directions in physics-inspired computing paradigms ranging from theory to application, from simulation to hardware implementation.
Dissertation Synopsis: UC President's Dissertation Year Fellowship
Highlighted Skills: Graphic Design, Non-Technical Writing Style
While many aspects of the human brain remain a mystery, researchers have made many attempts to theoretically model the networks of neurons found within the brain. Some researchers try to model the brain as it physically exists in the human body, while others try to utilize particular processes within the brain, such as memory. Our research group studies a new form of computation inspired by the way the brain uses memory to process information. We are physicists who look at the brain for motivation, but we do not study it. Instead, we design and simulate special circuits known as digital memcomputing machines, where “mem” stands for memory. Research of these circuits is also of interest to many other academic fields, including computer science, engineering, and mathematics.
Publication: Mode-assisted unsupervised learning of restricted Boltzmann machines
Highlighted Skills: Dynamical System Design, Machine Learning
Restricted Boltzmann machines (RBMs) are a powerful class of generative models, but their training requires computing a gradient that, unlike supervised backpropagation on typical loss functions, is notoriously difficult even to approximate. Here, we show that properly combining standard gradient updates with an off-gradient direction, constructed from samples of the RBM ground state (mode), improves training dramatically over traditional gradient methods. This approach, which we call ‘mode-assisted training’, promotes faster training and stability, in addition to lower converged relative entropy (KL divergence). We demonstrate its efficacy on synthetic datasets where we can compute KL divergences exactly, as well as on a larger machine learning standard (MNIST). The proposed mode-assisted training can be applied in conjunction with any given gradient method, and is easily extended to more general energy-based neural network structures such as deep, convolutional and unrestricted Boltzmann machines.
APS March Meeting 2020 Presentation - Critical Branching Behavior in Digital Memcomputing Machines
Highlighted Skills: Keynote, Technical Presentation Style, Graphic Design
I was scheduled to give a presentation on my research (published in Europhysics Letters) at the APS March Meeting in Denver, CO, on 3/6/2020. However, the conference was canceled due to concerns related to the spread of COVID-19. This video covers advanced topics of my research, as it was meant for an audience of physicists. If you find it to be too technical, please check out my non-technical video: The Search For King Turing’s Stolen Treasure.
Stochastic Resonance in Bistable and Excitable Systems
Highlighted Skills: Mathematica, Stochastic Methods
This report was submitted as a final project for a Stochastic Methods course during my graduate studies at UC San Diego. The simulations were performed in Mathematica, but check back soon for a Python implementation.
In detection theory, stochastic resonance refers to a class of randomness-enhanced phenomena concerning signal processing. Stochastic resonance was first proposed to explain the periodic ice ages of Earth. While originally defined in a narrow context, the usefulness of stochastic resonance to describe behavior observed in physical systems has led to an expansion of the definition. This report will consider the two systems extensively studied in the literature: bistable and excitable systems. Manifestations of stochastic resonance are observed in numerical simulations of these systems using Wolfram Mathematica 11.