Mike Izbicki's Research Page

last updated on Oct 27th, 2017

About me

I'm currently a postdoc at the Data Science Center at UC Riverside. I research the statistical side of machine learning. In particular, I like using high dimensional techniques to make machine learning algorithms faster. Most of my work is theoretical, but I've also done more applied work on powergrid fault detection. Outside of the machine learning realm, I do a lot of work with Haskell and open source software.

You can contact me at mike@izbicki.me. You can download my full cv here.

My Projects


Distributed Learning

I'm interested in map-reduce style distributed learning algorithms. These algorithms are easy to implement, fast, and can provide privacy guarantees. My latest work introduces a new algorithm that improves accuracy without losing speed. My previous work shows that map-reduce style algorithms come with cross-validation performance estimates essentially for free.

Papers:

My disseration contains an expanded description of this work.

Faster Cover Trees

The cover tree data structure is used to speed up nearest neighbor queries. I simplified the definition of the cover tree and proposed a number of modifications that improve the data structure's real world performance. I'm currently working on ways to further improve the theoretical bounds.

Papers:

You can find code for experiments available on the project's github page.

Protecting the Power Grid

Modern smartgrids can be damaged by malicious loads. Identifying these malicious loads in large power networks is a difficult challenge. I helped design a new algorithm for identifying malicious loads that is more scalable than previous algorithms. The method uses a low rank modification to the unscented kalman filter.

Papers:

Haskell Projects

I like exploring the ways that functional programming can make writing numerical code (and especially machine learning code) easier. Some of my open source projects are:

  1. HerbiePlugin automatically rewrites mathematical expressions in Haskell code to be numerically stable.
  2. Subhask is an alternative standard library for Haskell. It provides type safe linear algebra operations, and the interface is considerably more flexible than standard tools like Matlab and NumPy.
  3. HLearn is a machine learning library for Haskell. Unfortunately, Haskell's existing type system is too limited for some of the features I need, so this project is on temporary hiatus. Once Haskell gets proper dependent types, I hope to resume working on this project. An old version of the project is described in this paper presented at TFP2013, but the library has advanced considerably since then and the paper is now out of date.

I also have a number of projects that explore the limits of the Haskell type system:

  1. homoiconic automatically constructs FAlgebras that are isomorphic to a type class. The FAlgebras can then be manipulated as ordinary Haskell objects. The end result is the addition of a Lisp-like homoiconicity feature for Haskell.
  2. ifcxt proposes an extension to Haskell's type system to allow constraints to include if statements. This lets us write faster, more generic code.
  3. typeparams provides "lenses" at the type level to facilitate working with complex types.
  4. parsed is a rewrite of the classic Haskell parsec library in bash. See also the associated SIGBOVIK paper Bashing Haskell.

Improving Contributions to Open Source Software

At UC Riverside, I designed and taught a course on open source software construction. The course won 3rd place in the 2015 SIGCSE Student Research Competition. I also presented the course at the ICOPUST conference in the DPRK (North Korea). I helped DPR Korean students create the first open source contributions from their country.

Papers:

Some open source projects I've helped undergrads start: