Slashdot Mirror


Ask Slashdot: DIY Computational Neuroscience?

An anonymous reader writes "Over the last couple years, I have taught myself the basic concepts behind Computational Neuroscience, mainly from the book by Abbott and Dayan. I am not currently affiliated with any academic Neuroscience program. I would like to take a DIY approach and work on some real world problems of Computational Neuroscience. My questions: (1) What are some interesting computational neuroscience simulation problems that an individual with a workstation class PC can work on? (2) Is it easy for a non-academic to get the required data? (3) I am familiar with (but not used extensively) simulators like Neuron, Genesis etc. Other than these and Matlab, what other software should I get? (4) Where online or offline, can I network with other DIY Computational Neuroscience enthusiasts? My own interest is in simulation of Epileptogenic neural networks, music cognition networks, and perhaps a bit more ambitiously, to create a simulation on which the various Models of Consciousness can be comparatively tested."

12 of 90 comments (clear)

  1. Check out NEST by somepunk · · Score: 3, Informative

    It's open source, and integrates with Python and the whole SciPy suite. I'm not a neuroscientist, but I work in one's lab. I haven't used the software extensively, but it's installed on a Linux VM wasiting for some love while we work on other things. http://www.nest-initiative.org/

    --
    Those people who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)
  2. Re:Study and practice this in private. by Travis+Mansbridge · · Score: 5, Insightful

    It sounds like the "professional" is sick of his job.

  3. Good start, now.... by Improv · · Score: 3, Insightful

    Good start, now go do some formal study and get a degree. There's too great a risk, with self-taught people, for them to only expose themselves to the ideas that are appealing to them. Academic fields recognise this; you're not going to be ready to contribute to the cutting edge unless you put your ideas in the field up for reshaping by people who know more than you do, and that's a good thing.

    --
    For every problem, there is at least one solution that is simple, neat, and wrong.
  4. Re:Study and practice this in private. by Smallpond · · Score: 3, Insightful

    Ignore the naysayers. Do what you love. As for programming, professionals have created more security nightmares than amateurs.

    Model of Consciousness seems a bit ambitious. Something easy to measure and readily available is how to hit a baseball. A fastball is moving faster than your eyes can track it, so you have to create an internal model of where it's going and swing a mechanical system (your arm and the bat) at the right time and place to knock it into the stands. It would be interesting to determine what inputs the brain uses and model the control system.

  5. Re:Study and practice this in private. by khallow · · Score: 3, Interesting

    It's very noble to want to learn and to further educate yourself. But for the sake of the professionals in the field, I do encourage you to engage in your study and practice of this field in private.

    I have a better idea. Completely ignore the above, terrible advise. While there is considerable value in doing your own work privately for a time, you need to communicate with others, if you want to improve your game. That means not just dumping code or whatever on the internet, but actually reading and listening to who else is already doing this sort of stuff. Keep in mind that most of your communication should be input - learning from others.

    Months or years later, a disaster of some sort happens (a security breach, data loss, and so on), and a professional gets dragged in to try to solve the problems. This wastes the professional's time, which is often very expensive. It also angers them, because it's a problem that would have been unavoidable had the amateurs just kept to themselves.

    Sounds like the "pro's" time isn't being wasted, if he's getting paid. And if you or anyone actually are "angry" over something this trivial, maybe you ought to find a different line of work.

    So unless you're aiming to become a professional in this field, rather than just an amateur or a hobbyist

    The only difference between a professional and an amateur/hobbyist is that the professional gets paid and tends to be a bit more knowledgeable. And that's the source of this friction between professional and amateur. The amateur is doing some of the professional's work for far cheaper. It's screwing with the professional's business model Keep that in mind when you read of professionals complaining about the amateurs.

  6. Re:Study and practice this in private. by bondsbw · · Score: 3, Interesting

    Not affiliated at all with Coursera, but I noticed this free course the other day. Starts in January.

    --
    All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
  7. Getting better access to information by ODBOL · · Score: 3, Interesting

    (2) Is it easy for a non-academic to get the required data?

    I am not familiar with this particular academic community, but generally it is not easy for an academic to get data. The most useful resource is probably the co-operation of those who have gathered the data, and in order to get that you have to find out who they are. The inclination to be helpful varies immensely across disciplines and people within disciplines, but all you lose by trying to make contact is possible embarassment. Step 2 in the list below will give you a tag to use when introducing yourself, which may make you feel less awkward and therefore may improve co-operation.

    I suggest 3 steps, in increasing cost, that are likely to help:

    1. 1. Get a community membership in the nearest university library. This should be cheap enough to be a no-brainer. It doesn't matter too much which university, because a lot of materials will be online through their Web catalogue, and there will be interlibrary loan. I'm not sure whether small 4-year colleges and community colleges have similar arrangements, but it's worth checking if one of those is much more convenient than a research university.
    2. 2. Join a professional society, and/or the special interest group of a professional society, interested in your topic. Costs vary wildly, order of magnitude $100 to $1,000 per year. The Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers (IEEE) probably have interest groups, and there are almost surely such groups within some cognitive science societies, but I am not familiar with those.
    3. 3. Attend a conference sponsored by a group from step 2. This is likely to cost $1,000s when you add up travel, hotel, registration. If you have the time, and get lucky on location, you can save a bunch on travel. Saving by staying far from the conference hotel is usually a mistake. The value of the conference is less in attending talks than in meeting people, and having breakfast in the same hotel with everybody else can make a big difference. The success of unsolicited introductions will vary immensely across the people you try to meet, but you lose nothing but embarassment by trying. The main thing you can do to improve success is to avoid the Charybdis & Scylla of diffident awkwardness and bluff. Let on that you're an outsider, but don't downgrade whatever insight/ability/motivation you have. You'll probably have the greatest success meeting people who are networked in, but are not famous stars. That includes grad students and postdocs. It may be nice and polite to hang out with other outsiders, but probably not productive for your mutual goals.
    --
    Mike O'Donnell http://people.cs.uchicago.edu/~odonnell/
  8. Some answers by Okian+Warrior · · Score: 3, Informative

    I research hard AI. In my view thinking through and tackling example problems is the best way to explore a topic. If you require your system to mirror our current understanding of neuroscience, then you're essentially researching the algorithms of the brain.

    If you're specifically looking into epilepsy and related, consider checking out William Calvin's website. He's an experimental neuroscientist from University of Washington, who wrote many books that explain the neurological foundations of the brain in readable form with good detail.

    (1) What are some interesting computational neuroscience simulation problems

    Pretty much anything AI falls under that category. Go over to Kaggle.com and check out some of their competitions, including their past competitions. Check out the Google AI lab and see what they're doing, and check out recent publications to see what people are trying to solve. Ask yourself: Are humans better than the computer, and can it be done better?

    Here's a video of a system that uses neuron simulation (of a sort) to recognize hand-written digits. A hand-written digits dataset is in the UCI archive below.

    (2) Is it easy for a non-academic to get the required data?

    Generally, yes. UCI has a repository of machine-learning datasets. The researchers supporting Kaggle competitions frequently release their data.

    I've found that researchers are generally approachable, and will give away copies of their data (I have 4 datasets from researchers). As a personal anecdote, last week a researcher from this very forum sent me his dataset of Mars altitude images - I'm trying to come up with an algorithm to recognize craters.

    (3) I am familiar with (but not used extensively) simulators like Neuron, Genesis etc. Other than these and Matlab, what other software should I get?

    In my view, pick a computer language that has a wide support network of libraries, and code things from scratch.Something like Perl or R. At some point you will want to break open the box and see what's actually happening inside, and familiarity with the system (having constructed it) is key. You will want to insert trace statements, print out intermediate results, and so on. Most of the pre-built systems don't have what you will ultimately want, and building simulation objects isn't terribly hard.

    (4) Where online or offline, can I network with other DIY Computational Neuroscience enthusiasts?

    Please let me know if you find any (by posting a response).

    I've found that most AI enthusiasts are really "big data" enthusiasts, and most of them are all about business rather than AI. The IRC AI chatrooms are all but dead, and most of what is there are students asking for help with their homework. (Although to be fair, the lurkers there know everything about AI and can answer questions and make suggestions if you're stuck.)

    The NEAI meetup in Cambridge is mostly spectators - people who want to find out about AI or how to use AI ("how can I use AI to improve the performance of my financial company?"). I hear there's an AI meetup out on the West coast that's pretty good.

    See if there's a meetup in your area for something related, or start one and see if anyone shows up.

  9. Systematicity, and Fodor & Pylyshyn by upontheturtlesback · · Score: 5, Informative

    I have a recent PhD in neural computation, though from a functional cognitive and language modeling perspective, and not a neuroanotomical modeling perspective -- so it may be a different area than you're interested in. From a high-level perspective, neural computation has moved a lot in terms of scale in the past two decades (simulations can have millions of nodes), and it has moved a lot in terms of modeling the processes of individual neurons and neurochemistry. Very high-level functional mapping work has also moved a good deal with fMRI, EEG, and MEG becoming relatively inexpensive and very common techniques in cognitive experiments. One area that, in my opinion, has moved very little in the past 20 years is the ability for neural networks to learn non-trivial domain-general representations and processes, and to generalize from those representations and processes to novel (untrained) instances. In the late 80s, after connectionism had made return with Rummelhart and McClelland's popularization of the backpropagation algorithm and demonstration of its utility in a number of tasks earlier in the decade, a good deal of the literature demonstrated very basic limitations and failures of these systems to generalize to untrained instances, or to move away from toy problems. Fodor and Pylyshyn's "Connectionism and Cognitive Architecture" is a classic paper from that era, and Pinker wrote a lot language-specific criticisms as well. Stefan Frank has the most recent long-standing research program in this area that I'm aware of, and his earlier papers have good literature reviews that can further help guide ones background reading. There have been some limited demonstrations of systematicity with different architectures (like echo state networks), and comparatively little work on storing representations and processes simultaneously in a network, but so far these are long-standing and fundamental issues that need revitalization. When convincing demonstrations do arise, they'll likely not need more than a desktop to run, as it will be demonstrations in learning algorithms and architectures, not scale. For non-neural folks, classical neural network architectures are essentially very good at pattern matching and classification (e.g. being trained on handwriting, and trying to classify each letter as one of a set of known letters (A-Z) that it's seen many hundreds of instances of before), or things that involve a large set of specific rules (if X then Y). They're much less good at things that involve domain-general computation, that involve learning both representations and processes and storing them in the same system (i.e. let's read this paragraph and summarize it, or answer a question, or let's write a sentence describing a simple scene that I'm seeing). That's not to say that you couldn't make a neural system that did this -- you could sit down and hard-code an architecture that looked something like a von-neumann CPU architecture and program it to play chess or be a word processor, if you really wanted, but the idea is developing a learning algorithm that, by virtue of exposure to the world, will craft the architecture as such. The idea being that, after years of exposure, the world will progressively "program" the computational/representational substrate that is the brain to recognize objects, concepts, words, put them together into simple event representations, and do simple reasoning with them, much like an infant. I hope that helps. Of course all of this is written by someone interested in developmental knowledge representation and language processing, so it may be a completely different question than you'd wanted answered. best wishes.

  10. Re:Computational neuro is more than simulations by tylikcat · · Score: 4, Interesting

    +1

    That all being said, going out and playing with some of the established tools, and reimplementing some classic models (or building models off of wet lab papers, or whatever) is going to build you up a great skill set, and make it a lot easier to find a lab position if you want to go that directon (either a paid one or a volunteer one, each has advantages).

    I'm personally enough of a biologist to feel compelled to point out that a lot of what has been done in larger networks has diverged from biology in critical ways - some of it might be interesting in its own right, but it's not really neuroscience in any meaningful way.

    Get a solid grounding in Neuroscience. (Kandell, Jessel and Schwartz, Principles of Neuronal Science, is the standard text, it's excellent, and highly torrented.) Please, please, please take some time to understand the variety and complexity of single neurons - they are way more complicated than many of the people who model systems with high numbers of neurons let on. Having a system with 100 billion simulated neurons means an awful lot less if the neurons themselves are shit.

    Re-implement some classic systems from scratch. Yeah, I mean start with Hodgkin and Huxley, and build up from there. You will learn things from doing that yourself that you'll miss by just diving in with established tools. (And a lot of the established tools have issues.) Itzikevitch, Wilson, and Trautenburg are all favorites of mine off the top of my head. Strogatz is great as an introduction to dynamical systems.

  11. Re:Study and practice this in private. by Anonymous Coward · · Score: 3, Insightful

    That would be nice if all applied to "professional" meaning someone paid and "amateurs" as people not paid for their work. But it only really applies if you redefine it or pull some no true Scotsman stuff, and define professional as being those that create high quality stuff and amateurs as those that take shortcuts or fall short of high standards for whatever reason. Then you are stuck with something quite trite, "Keep it to yourself if it fails the arbitrary/ill-defined/conflicting standards of other random people on the internet."

  12. Re:Study and practice this in private. by sumdumass · · Score: 3, Insightful

    I would suggest professionals decide not to use the code from well-meaning but undertrained amateurs then. I mean the only way it would impact them is if the code is taken up and used. Outside of that, they are getting paid to do something specific and doing what you are hired to do was as far as I know, a hallmark of professionalism.