Prospect: Using Multiple Models to
Understand Data [
ijcai,
video]
A human's ability to diagnose
errors, gather data, and generate features in order to build
better models is largely untapped. We hypothesize that analyzing
results from multiple models can help people diagnose errors by
understanding relationships among data, features, and
algorithms. These relationships might otherwise be
masked by the bias inherent to any individual model.
We demonstrate this approach in our Prospect system, show how
multiple models can be used to detect label noise and aid in
generating new features, and validate our methods in a pair of
experiments.
Gestalt: An IDE for Machine Learning [
uist,
video]
We present Gestalt, a development
environment designed to support the process of applying machine
learning. While traditional programming environments focus on
source code, we explicitly support both code and data. Gestalt
allows developers to implement a classification pipeline,
analyze data as it moves through that pipeline, and easily
transition between implementation and analysis. An experiment
shows this significantly improves the ability of developers to
find and fix bugs in machine learning systems. Our discussion of
Gestalt and our experimental observations provide new insight
into general-purpose support for the machine learning process.
Examining Difficulties in the Adoption of
Machine Learning [
chi,
aaai]
As statistical machine learning
algorithms and techniques continue to mature, many researchers
and developers see statistical machine learning not only as a
topic of expert study, but also as a tool for software
development. Extensive prior work has studied software
development, but little prior work has studied software
developers applying statistical machine learning. This work
presents two studies that provide important new insight into
difficulties faced by developers and the need for development
tools that better support the application of statistical machine
learning.
In an earlier life, I was a Masters student at Stanford
University focusing on Artificial Intelligence. While at Stanford,
I worked in the Robot Learning Lab, the Virtual Human Interaction
Lab, and with the Natural Language Group. I worked on projects
dealing with sensor actuation, error visualization, turing tests,
learning in virtual reality, structure from motion, and hypernym
induction. I also assisted in teaching the graduate artificial
intelligence course and taught a robot to play the piano.
Before Stanford, I was an undergraduate at Carnegie Mellon
University double-majoring in Computer Science and Human Computer
Interaction. I spent summers in the Speech Lab building and
testing speech interfaces for wearable computers. As part of my
senior project, I researched digital tools for online note-taking.