Hacker News new | ask | show | jobs
by rtkaratekid 2220 days ago
I moved into programming from Neuroscience. The first thing programmers do when they learn this is talk to me about how their neural network does xyz.

I don’t know if it’s ignorance, naïveté, or hubris, but it’s amazing to me that these programmers think the world/universe/reality is a complex problem that could be easily understood eventually. When working with “wet” scientists I found that attitude was almost non existent. The complexity is just so high and there are so many unknowns that many of them are very comfortable saying “I don’t know” or “we may never know.”

One of my favorite examples to give is when I was still in undergrad, endocannabinoid research was getting hot in the Neuroscience field because it challenged the mental model that neurons communicate in a “linear” or “feed forward” fashion. Are neural networks going to implement that? Probably not, and it’s probably not worth it because at this point it introduces unneeded complexity. Try replicating the biochem of an entire cell for each cell in a NN and you _might_ be half way to achieving the complexity of the human brain.

I’m not saying this is impossible, all I’m saying that I find it remarkable how quickly programmers seem to think of themselves as “expert” on outside fields as if they’re the smartest people in the world. I will say, crusty old systems programmers tend to have more of the familiar characteristics of when I was in life sciences (Neuroscience and Genetics).

2 comments

As someone who has/does dabble in genetic algorithms and neural networks, it's always wise to keep in the back of ones mind that these systems are inspired by biology, and not generally an attempt to replicate it[0]. It's also often useful to go back to biology with an eye for ideas to steal, but rarely are they are useful model to inform biology or biological understanding.

As an anecdote, I once had a summer project between the neuroscience and computer science departments at my university. They had data from rat brains that they'd potentiated parts of (basically, zapped some neurons so they connection weights (in NN terms) got messed up and were sending too-strong signals to their neighbours), and how that potentiation decayed over time. They got me to attempt to reproduce it in a neural network. So, I build an NN system with the ability to have neurons zapped and managed to reproduce their results. But NNs being a very abstract model of a set of neurons, there are a lot of parameters that can be twiddled. By making fairly small changes to those parameters, I managed to get the exact inverse of their results also.

[0] this applies both to computer scientists building them, and also to biologists looking at them and going "that's a really poor attempt to be a brain, look at all the things it's missing."

As usual theres a relevant xkcd: https://xkcd.com/1831/.

I think the level of control programmers have over their domain naturally gives rise to that sort of overconfidence. You need to remember that computer systems are built on human made abstractions to human standards and follow human defined logic. DNA is not code, it's just a molecule that reacts with stuff, as are all the other molecules. They exist as they are and are their own system that needs to be understood, we did not create that system. Chemistry and probability and time did.

"DNA is not code, it's just a molecule that reacts with stuff, as are all other molecules."

This sentence exemplifies the perspective to which I referred.