Nicholas Hoff

AI researcher & entrepreneur

picture of Nicholas Hoff

About Me

Hi, I'm Nicholas Hoff.

I've been excited about AI since I was in school, and I spend most of my time on AI research and entrepreneurship. I like to research hard problems and build useful things for real people.

Past Projects

Biologically-Inspired AI (PhD research)

In nature, large collections of simple individuals are sometimes capable of amazing feats. Ant colonies, for example, can build nests with complex pathways, thermal regulation, short and long term food storage, a morgue, etc. They can do this even though (1) nobody 'programmed' it do to that and (2) no individual could do it alone or even knows the whole plan. For my PhD research I began by studying ants, birds, and fish, then extracted the simple logic that the ants seem to follow, then programmed swarms of robots to do the same thing. "Given the simple logic of the individual, reproduce the colony behavior." Then I reversed it, asking the question "Given a desired collective behavior, what should the individuals do?" I essentially built a swarm compiler. If you want the collective to do complex thing X, tell the individuals to do simple thing Y. Determining Y from X is very difficult but also very powerful because you can scale the swarm up to bigger X's without changing Y.

As the robots or individuals get simpler and less capable, the swarm can get larger at constant cost. Does that make it more or less powerful? For many problems, the large size of the swarm outweighs the reduced capabilities of the individual. So then I asked "what's the simplest individual that has barely enough complexity to be a target of my compiler?" This lead me to some simple additions and multiplications with a single nonlinearity - basically a neuron. The nonlinearity gives it a little complexity and the the multiplications let you configure some simple responses but a swarm of them can still be scaled up massively using matrix algebra on GPUs. The results of this approach were surprisingly good.

Very large collections of simple individuals, combined with a way to translate desired overall behavior into low-level responses, turns out to be pretty powerful. I graduated at about this time and we all continued to explore with amazement what large collections of neurons can accomplish. Welcome to the AI boom.

SPHERES

Before coming to Harvard, I studied Aerospace Engineering and Physics at MIT, earning a Bachelor's degree in each. For my Master's degree, I built and programmed a swarm of small satellites called SPHERES which we then flew on the ISS. SPHERES consist of 3 free flying satellites on board the station that test a diverse range of hardware and software. SPHERES has been active for 10 years and continues to be one of the most popular NASA projects and a favorite of many astronauts who gotten to work with it.

Current Projects

AI Freelancing

I did my PhD in distributed AI and now I do similar work as a freelancer, mostly in data analysis and model training. For Société Générale, for example, I've built a fraud detector, an invoice classifier, and a system to predict asset depreciation. Usually clients bring me a lot of data and we have a conversation about what they could do with it, then I train a machine learning model to fit the business case. It's not just banking though - I worked with an indoor-farming startup to analyze the environmental conditions in their farm and optimize the growth plan, all the way from the soil pH to the overall business strategy.

3code

3code is an AI visual programming environment. Each component of your computation is simultaneously expressed as code, blocks, and English. Edit them using whichever expression is most natural, then connect them visually. Your code, builtin modules, external data, and results all show up as blocks on a unified zoomable interface. It's currently in closed beta.

AI Music

My current side project is in the area of AI music generation. I want to build a system that can train on a combination of unlabeled music and labeled synthetic data, automatically distinguish high-level attributes such as mood and intensity as well as key and instrumentation, then generate new samples. It should be controllable beyond just "generate me a song in the style of X." The use of synthetic data should enable significant self-supervision. Also, I doubt that transformer models are the right approach for this. The state of the art in controllable music generation is still pretty bad, so there's a lot of room for improvement.

Random Other Things

  • While playing around with GPT, I discovered that it can evaluate infinite loops.
  • I helped SG kickoff their Digital Transformation center.
  • Since people ask sometimes, here's an overview of my workspace setup.
  • I started my first little business at boarding school (writing software for the school to optimize table seating plan, then expanded to surrounding schools).

Interests

I read a lot. Here's a partial reading list of interesting books.

I earned my private pilot's license when I was 16 and I try to get in the air as much as possible, although with the demands of work (and my wallet), I don't always get to go as much as I'd like. I mostly fly Cessna 172s and Piper Cherokees.

I play guitar and sing (occasionally at the same time). In the past, I have sung with choirs at MIT and Harvard and around Boston and Berlin. Occasionally, my friends and I also form quartets or other small groups to sing interesting music we find.