Unpacking black-box models | MIT News | Massachusetts Institute of ...

red information

DISCLAIMER: This blog is fully automated, unmonitored, and does not reflect the views of Garett MacGowan. The ML model may produce content that is offensive to some readers.

blue information

This blog post was generated with a (potentially) real article title as the only prompt. A link to the original article is below.

blog header

Photo by Donald Giannatti on Unsplash

Generated: 5/23/2022
Unpacking black-box models | MIT News | Massachusetts Institute of ...<

Unpacking black-box models

MIT News

Friday, February 17, 2002

MIT News - Researchers Unpack the Black Box of Neural Networks

MIT researchers unpack the black box of neural networksMIT News: Friday Feb. 17, 2002

When most people talk about neural networks, they're describing how our brains are wired up for information processing. But a new group of researchers at MIT has taken a closer look at the process by which the brain comes up with neural networks.

"While we don't know for certain, it seems likely that the same process could work for the brain," says Gabor Csurka, an assistant professor of neural computation at MIT.

Csurka and colleagues from the Computer Science and Artificial Intelligence Laboratory have developed a simulation model of neural networks, based on the biology of the hippocampus. The hippocampus is a region of the brain that was discovered to develop new neurons in response to learning. In fact, in early experiments it appeared to be more adept at this than neurons in many other parts of the brain.

"It's thought that when you learn a computer program, the brain is creating new neurons," Csurka says. "So just as with programming, it's a much more efficient way to create new neural network structure."

With their model, the researchers have been able to "unpack" those neurons, looking at the way they connect with other neurons and how they encode information.

The researchers have posted their results on an MIT server, where they're available for anyone to download and examine. And they're open to further ideas and suggestions.

"I think it's a great idea, because no one has seen how these neural network components are put together. We want to be careful about our approach," says Randal Schwartz, a member of MIT's new Center for Neural Computation, which houses both the CSAIL and the new center's labs.

"In the current study, we're interested not so much in how neural networks are actually formed, but rather in how they can operate," he says.

Looking Forward

And what are the implications of this work, in terms of the brain? The model only works to a degree, Csurga admits, because there are many biological processes that it doesn't take into account.

"Obviously the biology of the brain is far more complicated than any of these computer model," he says. "We're not even sure to what degree our model includes all of the components of the real brain. But it's reasonable that if you try to model the brain in great detail, you need to put in components that, for all we know, may play a role in neural network structuring. But without this model, I don't think we'd know which to include."

Csurka notes that this kind of modeling isn't restricted to neuroscience; you could do the same thing with the creation of software.

"This is a natural problem for machine learning," Csurka says. "It's a great example of how researchers in two separate fields are coming together."

So even as you're learning to play a computer game, you could be learning how to structure a neural network that will allow you to play those games better. "Neurology is a little different," Csurka admits, "in that what they're looking at is the workings of the brain as an information processor. But there's a lot of parallels in thinking about how you encode information, and it's something that neural network researchers should be aware of."

There's an ongoing debate about the usefulness of unlearning bad programming habits. One school holds that if you want to become a programmer you need to unlearn some deeply ingrained bad habits. If you start programming with a new set of rules it will be very hard to unlearn those long-standing programming assumptions. In this vein, a new paper by MIT Professor Gabor Csurka in the journal Artificial Life presents a method to teach children the programming language C++ when they start.

Csurka presents the "C++ for All" programming language as a model how to teach C++ to people who learn at a slower pace, perhaps in order to help them unlearn their old way of doing things.

"It's something that a lot of students have trouble with, and I felt that there was this gap between learning programming and doing programming," Csurka says. "C++ is a very good example of how to do this."

Programmers need to unlearn bad habits to become more productive programmers, says Csurka. When they start programming with a new style of thinking about programming, they have to relearn a completely new way of thinking.

Csurka's approach is to present the programmer with a new version of the C++ programming language, with fewer restrictions and more features than the original, un-unified version. The user is still given the syntax for the new language, and the example programs, but is shown examples of ways to do it that are more flexible and closer to the original language.

The programming environment used in this study was Visual C# Express Edition. The environment allowed Csurka to program with both a C++ and C# dialect of C++. Programmers could run C# code from a command line using the C++/C# mix compiler, which converts C# code into C++ code. Alternatively, programmers could use the C++ compiler to compile C++ and C# code together.

A programmer writes one simple program for the compiler to execute. With the program, the compiler creates a new version of the programming language in which a number of restrictions have been lifted. For example, many C# keywords are now allowed in statements in C++ programs. In addition, a few C# keywords have been modified slightly to make them more compatible with C++. An example is using the "::" operator after a member declaration, which gives more flexibility to the C++ compiler.

When the user runs the program, it creates a new C++ file with the compiler's version of the language. The user is then presented with a set of examples, based on the original program, which show them how the language is supposed to be used. The compiler automatically creates code that is appropriate for the C++ version of the language. The goal is to make learning the language fun and challenging, but at the end, the user is presented with the true version of C++.

In his work, Csurka found that programmers like the program, saying it improves their productivity. And there's also a significant increase in the percentage of programmers who continue on in the language after learning it.

"This seems to be an excellent program for teaching students at an introductory level about programming and what programming is," says Csurka, "I find that students really like learning a new language this way and that it has a big effect on the rate at which they learn new programming languages."

Csurka also found that it is possible to teach the new language, rather than simply learning by mistake the bad habits of writing code that was already in place.

"Students have a really hard time getting their head around the idea of putting together code from a mix of different languages," Csurka says. "This is an environment where it's easy to see."

Learning how to program in a different paradigm from the traditional way is a difficult task, in particular for the C/C++ programmer, says Csurka. He notes that the program teaches new programmers how to program without those old restrictions.

The program can be run with only a few minutes of additional work on a programmer's part. Csurka says he expects the program to be expanded with the addition of new features, such as integration with the Microsoft Visual Studio development environment. "If I get the chance to add new features, I'd like to be able to add some more features to the compiler," Csurka says. "For example, I'd like to include more of Microsoft's compiler features."

The research is part of a growing trend at MIT of incorporating the biological findings and models of neural networks into other fields. Just last week, several members of MIT's Computer Science and AI Laboratory, including Csurka, announced the formation of a new center at the school, called the Center for Neural Computation, to bring people from AI and neural networks together to further the field's understanding.

While all of this new work could lead to new developments in artificial intelligence, it could also bring to light some intriguing links between the field of computers and the biology of the brain; it may be possible in the future to "unpack" the models of the brain, to unpack its software and unpack the neurons, and learn how the brain really works.

How to Teach
Young people to program

The C++ for All program, by Gabor Csurka

This paper and software are available for downloading online

Research Group and Department: Artificial Intelligence Laboratory

Paper title: "C++ for All: Learning the Basic Programming Languages by Example"

Abstract: As programs become more complex, writing the basic parts of a new program becomes difficult for many users. This results in users having to rely on information and help from people who are not familiar with the software.

Our aim is to allow beginners to discover programming concepts and to become familiar with the different programming languages. Our approach is to implement programming languages for teaching beginners the basics.

This approach allows us to easily teach any type of language. We start with a simple language and then show how to combine this simple language with other concepts in the standard C++ language. We start with only the basic language and then gradually allow the user to make more complicated programs.

Garett MacGowan

© Copyright 2023 Garett MacGowan. Design Inspiration