Numenta Platform for Intelligent Computing

12 Mar 2014

Introducing Season of NuPIC

Unfortunately, NuPIC was unable to participate in Google’s Summer of Code this year, but some of our community members suggested that we go ahead and host our own GSoC-like event, much like the KDE community does with their Season of KDE. And here it is!

Season of NuPIC 2014 logo

Here’s how it works.

Our community comes up with an idea list of projects that potential SoN students might work on. Each idea must have a mentor assigned to it before it is approved, but unapproved issues are still kept around so students may base their proposals on them as well. Student proposals based on approved ideas with pre-assigned mentors have a better chance of being accepted.

Once the idea list is ready, student registration is opened up so interested parties can submit their proposals. They may be based on the ideas in the official idea list, or students may come up with their own ideas for proposals.

After the student registration is over, the SoN team reviews the applications and assigns approved proposals to mentors within the NuPIC community. Approved proposals and students are announced, and a “community bonding” period begins before any code is written. During this period, we welcome new students into the NuPIC community and encourage them to introduce themselves and talk about their proposals on our mailing list and IRC.

The coding period is roughly three months, which includes a mid-term report submitted by the student-mentor team to the SoN Staff. This is a way for us to gauge student progress and provide additional resources if necessary.

Once the coding period is complete, each student will submit a final report of the progress he/she made on the proposal, and the mentor will weigh in with his/her feedback on how the student did on the project. We will publish a final report of the progress made during the Season, including each student report and a summary of all the code submissions that made it back into NuPIC projects.

After the Season is over, successful students will receive an official certificate of participation from Numenta, as well as a Season of NuPIC 2014 t-shirt. Not to mention the camaraderie and satisfaction of participating in an open source project on the bleeding edge of machine learning and cortical simulation.

I’m looking forward to meeting new people and introducing them to our great community of collaborators, scientists, and dreamers. If you are interested in participating in NuPIC, but you don’t know where to start, please take a look through the Season of NuPIC 2014 Idea List and submit your proposal today!

Student registration ends April 1!

Matt Taylor
Open Source Community Flag-Bearer
Numenta, Inc.

Comments on Reddit


16 Dec 2013

NuPIC Commercial Licenses

We created the NuPIC open source environment with the desire to build a broad community to work on these algorithms, to advance the science, and to build applications that can integrate the technology into people’s lives. We imagined academic work as well as commercial work, both open source and proprietary. We chose the GPLv3 license as a way to achieve these goals. In our GPLv3 license, you do not have to pay any license fee to get started. If you create something that you’d like to distribute, then you are required to make this source code available. This is a great option for academics and members of the open source community, but in some cases will not be appropriate for a commercial application. In the cases where a developer has created something that they would like to keep proprietary, we are willing to enter into a commercial license at that time. The good news is that one can start on the GPLv3 license, then transition to a commercial license later.

So, here is how our licensing impacts you if your goal is commercial deployment:

I realize you might want to know the terms of that commercial license now, rather than wait. But, the truth is, we don’t have such a commercial license today. We are committed to creating one, but it must be driven by the needs of the developers, rather than created as an abstract thought process. Once we have a real deployment to consider, then we can craft a license that is appropriate.

You might ask, but can’t we just require something unreasonable at that time? How can you trust us? Well, all I can say about this is that it is in our best interests to negotiate a reasonable license. It does us no good to license people who fail. We want to license people who succeed. As such, our interests are entirely aligned. Once you know what product you’re creating, the target market, the price point, the potential volumes, etc., we can work with you to put together a license that makes sense for both of us.

I feel this structure can work well for the independent developer. You have no out-of-pocket up-front costs or commitments, so you can work on your ideas with little risk. Once you have something that you think is exciting, you have the freedom to explore multiple business models. If at that point, the proprietary business model is best for your goals, you will have enough info to share with us so that together we can create an appropriate license.

Donna Dubinsky

Comments on Reddit


11 Nov 2013

CLA Quiz Office Hour

Tomorrow at 4PM Pacific, we’re holding an Office Hour for anyone interested to join in and talk about the Cortical Learning Algorithms, as implemented by Numenta within NuPIC. Jeff Hawkins and Numenta VP of Engineering Subutai Ahmad will be at this event to go through the CLA Quiz, a serious of challenging questions about how NuPIC algorithms work. These questions were originally created for new employees and interns to research in order to better understand the CLA. Tomorrow, we’re going to be asking you!

If you’re interested in taking part, or just joining in to listen, please use your Google account and request an RSVP to our Office Hour. We’ll be happy to invite you. If you can’t make it, the video will be posted on YouTube.

The CLA Quiz

  1. Is an untrained CLA spatial pooler just a “random hash” (random mapping from input to output vector)? Why or why not? What happens to the output of the spatial pooler if you randomly change one bit in the input.

  2. Can you do spatial pooling with small numbers? For example, is it reasonable to have an SP with 20 columns? If not, why are large numbers important in SDR's?

    1. What's the difference between picking "5 columns out of 50" vs "50 out of 500"? Both have 10% sparsity.

    2. What's the difference between picking "50 out of 100" vs "50 out of 1000"? Both will output 50 1's.

  3. Suppose the input vector (input to the SP) is 10,000 bits long, with 5% sparsity. What is the right value of coincInputPoolPct? How do you figure this out?

  4. How does the SDR representation of input A in isolation, and input B in isolation, compare with the SDR representation of input A overlapped with B? Alternatively, how does the representation of a horizontal line and the representation of a vertical line compare with the representation of a cross?

  5. Suppose we have an input vector that is 10,000 bits long. Suppose the spatial pooler has 500 columns, of which 50 are active at any time.

    1. Can we distinguish many patterns, or a small number? Which patterns are likely to be confused?

    2. What happens to the SDR representation if we add noise to the patterns?

    3. What happens if we add occlusions?

  6. What are disadvantages of SDR's?

  7. How does online learning happen in the SP?

Whoa! that’s deep

These questions a bit over your head? Looking for a primer on these technologies before you attend? Here are some resources:

Matt Taylor
Open Source Community Flag-Bearer
Numenta, Inc.

Comments on Reddit