We had a great hackathon event this past weekend. This was our third hackathon, and it resulted in the most hackers, the most hacks, and the most productive environment yet. Even if you could not attend, I hope the videos and photographs below help you to understand NuPIC better by example.
Below, you’ll find the following:
Big thanks to Pinger, who graciously donated their space to us for the event!
The hackathon brought in attendees from all over the world. We started at 10AM on Saturday with a kickoff presentation, helped people get NuPIC installed, then held several informational sessions throughout the day. Breakfast, lunch, and dinner were served.
Everyone seemed to have a great time, and most people stuck around through the event (sans some sleep time!) to see the demos at the end.
"Another outstanding event! Thanks Numenta!"
"Learned a ton, great people, great numenta staff, matt++ :)"
"It was great to meet the community and to exchange ideas"
"Comparing with the Fall 2013: 1. More people with serious interest in the NuPIC/Theory, 2. More hacks worked on and presented, 3. Previous "hacks" extended (CEPT!), 4. Theory has made progress towards deeper understanding of brain. Great to see the people from Numenta, the previous event, and new people with practical interest !"
"Really great, even better than in the Fall. Thanks to everyone who worked really hard to make the hackathon go so smoothly, and to all who took part. It was a real pleasure to meet so many smart people, all interested in furthering Machine Intelligence."
Where hackers are welcomed to the hackathon, protocol is reviewed, and ideas are brainstormed.
A detailed introduction to the components of NuPIC. Includes encoders, the spatial pooler, and swarming. Contains live code running in an iPython Notebook, which is included as a reference.
Subutai talks about how anomaly detection works in NuPIC, as well as how Grok processes NuPIC's anomaly scores to provide better "anomaly likelihood" values.
Jeff sits down for an up-close-and-personal discussion about his ideas about temporal pooling. Attendees ask him questions as he describes his theories on the whiteboard.
Numenta engineer Chetan Surpur goes into great detail about the implementations of the spatial and temporal poolers in NuPIC.
Matt talks about how far we've come as an open source project in the past year, the current state of NuPIC, and plans for the future.
We had a lot of demos at this hackathon! In addition to the full playlist of all our hackathon demonstrations, I’ve broken out each hack below with further information about the participants and source code (if available).
An attempt to get NuPIC to report anomalies when the characteristics of audio input changes.
Steve incorporated NuPIC into the TuxPuck program to help control a player against an AI adversary.
An attempt to configure NuPIC to predict the orbit of a satellite.
Craig trains NuPIC to play a first person shooter.
A platform for showing visualizations of a CLA model, which includes a 3D display of both spatial pooler and sequence memory components.
An easy point-and-click solution to deploying NuPIC within AWS.
Julie hooks up NuPIC to analyze web browser history to predict which website domain you'll be navigating to next.
Explores the space of how NuPIC might help analyze events streams in client-based software. In this case he analyzes events coming from Internet Explorer.
The goal was to mix different types of data about the same concept (words) and feed them into the CLA.
Analyzing speech data (TIMIT), trying different experiments to try to use NuPIC to predict male vs female speakers. Also explored different representations of the audio signal to see what works best with NuPIC.
Trying to teach NuPIC to understand complex word associations with CEPT word SDRs.
Wade uses NuPIC to try help with authentication not only by the password entered, but also the characteristics of the keystrokes entered.
An interesting hack using NuPIC to identify anomalous behavior using Facebook check-ins.
This was our most successful hackathon yet. Thanks to everyone who participating in the event, helped out with the planning and execution, and even for those of you watching the videos now. I hope you’ll considering attending our next hackathon!
Open Source Community Flag-Bearer
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!
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!
Open Source Community Flag-Bearer
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:
You can get going today at no cost. You can experiment all you want. You can create an application.
As you get ready to launch your application, you will have two choices. First, you can distribute it under the GPL, which requires that you release source code. This option can work for commercial deployments if you have other value-added products or services that you can charge for, such as support or integration services, or product modules that are not based on the open source. Alternatively, you can request a commercial license from us, which would allow you to create a proprietary product.
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.