The Neuron – A Hackers Perspective

It’s not too often that you see handkerchiefs around anymore. Today, they’re largely viewed as unsanitary and well… just plain gross. You’ll be quite disappointed to learn that they have absolutely nothing to do with this article other than a couple of similarities they share when compared to your neocortex. If you were to pull the neocortex from your brain and stretch it out on a table, you most likely wouldn’t be able to see that not only is it roughly the size of a large handkerchief; it also shares the same thickness.

The neocortex, or cortex for short, is Latin for “new rind”, or “new bark”, and represents the most recent evolutionary change to the mammalian brain. It envelopes the “old brain” and has several ridges and valleys (called sulci and gyri) that formed from evolution’s mostly successful attempt to stuff as much cortex as possible into our skulls. It has taken on the duties of processing sensory inputs and storing memories, and rightfully so. Draw a one millimeter square on your handkerchief cortex, and it would contain around 100,000 neurons. It has been estimated that the typical human cortex contains some 30 billion total neurons. If we make the conservative guess that each neuron has 1,000 synapses, that would put the total synaptic connections in your cortex at 30 trillion — a number so large that it is literally beyond our ability to comprehend. And apparently enough to store all the memories of a lifetime.

In the theater of your mind, imagine a stretched-out handkerchief lying in front of you. It is… you. It contains everything about you. Every memory that you have is in there. Your best friend’s voice, the smell of your favorite food, the song you heard on the radio this morning, that feeling you get when your kids tell you they love you is all in there. Your cortex, that little insignificant looking handkerchief in front of you, is reading this article at this very moment.

What an amazing machine; a machine that is made possible with a special type of cell – a cell we call a neuron. In this article, we’re going to explore how a neuron works from an electrical vantage point. That is, how electrical signals move from neuron to neuron and create who we are.

A Basic Neuron

Neuron diagram via Enchanted Learning

Despite the amazing feats a human brain performs, the neuron is comparatively simple when observed by itself. Neurons are living cells, however, and have many of the same complexities as other cells – such as a nucleus, mitochondria, ribosomes, and so on. Each one of these cellular parts could be the subject of an entire book. Its simplicity arises from the basic job it does – which is outputting a voltage when the sum of its inputs reaches a certain threshold, which is roughly 55 mV.

Using the image above, let’s examine the three major components of a neuron.

Soma

The soma is the cell body and contains the nucleus and other components of a typical cell. There are different types of neurons whose differing characteristics come from the soma. Its size can range from 4 to over 100 micrometers.

Dendrites

Dendrites protrude from the soma and act as the inputs of the neuron. A typical neuron will have thousands of dendrites, with each connecting to an axon of another neuron. The connection is called a synapse but is not a physical one. There is a gap between the ends of the dendrite and axon called a synaptic cleft. Information is relayed through the gap via neural transmitters, which are chemicals such as dopamine and serotonin.

Axon

Each neuron has only a single axon that extends from the soma, and acts similar to an electrical wire. Each axon will terminate with terminal fibers, forming synapses with as many as 1,000 other neurons. Axons vary in length and can reach a few meters long. The longest axons in the human body run from the bottom of the foot to the spinal cord.

The basic electrical operation of a neuron is to output a voltage spike from its axon when the sum of its input voltages (via its dendrites) crosses a specific threshold. And since axons are connected to dendrites of other neurons, you end up with this vastly complicated neural network.

Since we’re all a bunch of electronic types here, you might be thinking of these ‘voltage spikes’ as a difference of potential. But that’s not how it works. Not in the brain anyway. Let’s take a closer look at how electricity flows from neuron to neuron.

Action Potentials – The Communication Protocol of the Brain

The axon is covered in a myelin sheet which acts as an insulator. There are small breaks in the sheet along the length of the axon which are named after its discoverer, called Nodes of Ranvier. It’s important to note that these nodes are ion channels. In the spaces just outside and inside of the axon membrane exists a concentration of potassium and sodium ions. The ion channels will open and close, creating a local difference in the concentration of sodium and potassium ions.

Diagram via Washington U.

We all should know that an ion is an atom with a charge. In a resting state, the sodium/potassium ion concentration creates a negative 70 mV difference of potential between the outside and inside of the axon membrane, with there being a higher concentration of sodium ions outside and a higher concentration of potassium ions inside. The soma will create an action potential when -55 mV is reached. When this happens, a sodium ion channel will open. This lets positive sodium ions from outside the axon membrane to leak inside, changing the sodium/potassium ion concentration inside the axon, which in turn changes the difference of potential from -55 mV to around +40 mV. This process in known as depolarization.

Graph via Washington U.

One by one, sodium ion channels open along the entire length of the axon. Each one opens only for a short time, and immediately afterward, potassium ion channels open, allowing positive potassium ions to move from inside the axon membrane to the outside. This changes the concentration of sodium/potassium ions and brings the difference of potential back to its resting place of -70 mV in a process known as repolarization. Fro start to finish, the process takes about five milliseconds to complete. The process causes a 110 mV voltage spike to ride down the length of the entire axon, and is called an action potential. This voltage spike will end up in the soma of another neuron. If that particular neuron gets enough of these spikes, it too will create an action potential. This is the basic process of how electrical patterns propagate throughout the cortex.

The mammalian brain, specifically the cortex, is an incredible machine and capable of far more than even our most powerful computers. Understanding how it works will give us a better insight into building intelligent machines. And now that you know the basic electrical properties of a neuron, you’re in a better position to understand artificial neural networks.

Sources

Action Potential in Neurons, via Youtube

On Intelligence, by Jeff Hawkins, ISDN 978-0805078534

Ohm? Don’t Forget Kirchhoff!

It is hard to get very far into electronics without knowing Ohm’s law. Named after [Georg Ohm] it describes current and voltage relationships in linear circuits. However, there are two laws that are even more basic that don’t get nearly the respect that Ohm’s law gets. Those are Kirchhoff’s laws.

In simple terms, Kirchhoff’s laws are really an expression of conservation of energy. Kirchhoff’s current law (KCL) says that the current going into a single point (a node) has to have exactly the same amount of current going out of it. If you are more mathematical, you can say that the sum of the current going in and the current going out will always be zero, since the current going out will have a negative sign compared to the current going in.

You know the current in a series circuit is always the same, right? For example, in a circuit with a battery, an LED, and a resistor, the LED and the resistor will have the same current in them. That’s KCL. The current going into the resistor better be the same as the current going out of it and into the LED.

This is mostly interesting when there are more than two wires going into one point. If a battery drives 3 magically-identical light bulbs, for instance, then each bulb will get one-third of the total current. The node where the battery’s wire joins with the leads to the 3 bulbs is the node. All the current coming in, has to equal all the current going out. Even if the bulbs are not identical, the totals will still be equal. So if you know any three values, you can compute the fourth.

If you want to play with it yourself, you can simulate the circuit below.

The current from the battery has to equal the current going into the battery. The two resistors at the extreme left and right have the same current through them (1.56 mA). Within rounding error of the simulator, each branch of the split has its share of the total (note the bottom leg has 3K total resistance and, thus, carries less current).

Continue reading “Ohm? Don’t Forget Kirchhoff!”

Stupid Git Tricks

My apologies if you speak the Queen’s English since that title probably has a whole different meaning to you than I intended. In fact, I’m talking about Git, the version control system. Last time I talked about how the program came to be and offered you a few tutorials. If you are a dyed-in-the-wool software developer, you probably don’t need to be convinced to use Git. But even if you aren’t, there are a lot of things you can do with Git that don’t fit the usual mold.

Continue reading “Stupid Git Tricks”

Wrap Your Mind Around Neural Networks

Artificial Intelligence is playing an ever increasing role in the lives of civilized nations, though most citizens probably don’t realize it. It’s now commonplace to speak with a computer when calling a business. Facebook is becoming scary accurate at recognizing faces in uploaded photos. Physical interaction with smart phones is becoming a thing of the past… with Apple’s Siri and Google Speech, it’s slowly but surely becoming easier to simply talk to your phone and tell it what to do than typing or touching an icon. Try this if you haven’t before — if you have an Android phone, say “OK Google”, followed by “Lumos”. It’s magic!

Advertisements for products we’re interested in pop up on our social media accounts as if something is reading our minds. Truth is, something is reading our minds… though it’s hard to pin down exactly what that something is. An advertisement might pop up for something that we want, even though we never realized we wanted it until we see it. This is not coincidental, but stems from an AI algorithm.

At the heart of many of these AI applications lies a process known as Deep Learning. There has been a lot of talk about Deep Learning lately, not only here on Hackaday, but all over the interwebs. And like most things related to AI, it can be a bit complicated and difficult to understand without a strong background in computer science.

If you’re familiar with my quantum theory articles, you’ll know that I like to take complicated subjects, strip away the complication the best I can and explain it in a way that anyone can understand. It is the goal of this article to apply a similar approach to this idea of Deep Learning. If neural networks make you cross-eyed and machine learning gives you nightmares, read on. You’ll see that “Deep Learning” sounds like a daunting subject, but is really just a $20 term used to describe something whose underpinnings are relatively simple.

Continue reading “Wrap Your Mind Around Neural Networks”

Don’t be a Code Tyrant, Be A Mentor

Hardware hacking is a way of life here at Hackaday. We celebrate projects every day with hot glue, duct tape, upcycled parts, and everything in between. It’s open season to hack hardware. Out in the world, for some reason software doesn’t receive the same laissez-faire treatment. “Too many lines in that file” “bad habits” “bad variable names” the comments often rain down. Even the unsafest silliest of projects isn’t safe. Building a robot to shine lasers into a person’s eyes? Better make sure you have less than 500 lines of code per file!

Why is this? What makes readers and commenters hold software to a higher standard than the hardware it happens to be running on? The reasons are many and varied, and it’s a trend I’d like to see stopped.

Software engineering is a relatively young and fast evolving science. Every few months there is a new hot language on the block, with forums, user groups, and articles galore. Even the way software engineers work is constantly changing. Waterfall to agile, V-Model, Spiral model. Even software design methodologies change — from pseudo code to UML to test driven development, the list goes on and on.

Terms like “clean code” get thrown around. It’s not good enough to have software that works. Software must be well commented, maintainable, elegant, and of course, follow the best coding practices. Most of these are good ideas… in the work environment. Work is what a lot of this boils down to. Software engineers have to stay up to date with new trends to be employable.

There is a certain amount of “born again” mentality among professional software developers. Coders generally hate having change forced upon them. But when they find a tool or system they like, they embrace it both professionally, and in their personal projects. Then they’re out spreading the word of this new method or tool; on Reddit, in forums, to anyone who will listen. The classic example of this is, of course, editors like the vi vs emacs debate.

Continue reading “Don’t be a Code Tyrant, Be A Mentor”

How a Hacker Remembers a PIN

If you have more than a few bank cards, door-entry keycodes, or other small numeric passwords to remember, it eventually gets to be a hassle. The worst, for me, is a bank card for a business account that I use once in a blue moon. I probably used it eight times in five years, and then they gave me a new card with a new PIN. Sigh.

Quick, What’s My PIN?

How would a normal person cope with a proliferation of PINs? They’d write down the numbers on a piece of paper and keep it in their wallet. We all know how that ends, right? A lost wallet and multiple empty bank accounts. How would a hacker handle it? Write each number down on the card itself, but encrypted, naturally, with the only unbreakable encryption scheme there is out there: the one-time pad (OTP).

The OTP is an odd duck among encryption methods. They’re meant to be decrypted in your head, but as long as the secret key remains safe, they’re rock solid. If you’ve ever tried to code up the s-boxes and all that adding, shifting, and mixing that goes on with a normal encryption method, OTPs are refreshingly simple. The tradeoff is a “long” key, but an OTP is absolutely perfect for encrypting your PINs.

The first part of this article appears to be the friendly “life-hack” pablum that you’ll get elsewhere, but don’t despair, it’s also a back-door introduction to the OTP. The second half dives into the one-time pad with some deep crypto intuition, some friendly math, and hopefully a convincing argument that writing down your encrypted PINs is the right thing to do. Along the way, I list the three things you can do wrong when implementing an OTP. (And none of them will shock you!) But in the end, my PIN encryption solution will break one of the three, and remain nonetheless sound. Curious yet? Read on.

Continue reading “How a Hacker Remembers a PIN”

A Brief History of Radioactivity

More than one hundred years ago, Henri Becquerel discovered that uranium emitted penetrating rays similar to those used by Wilhelm Röntgen to take the first X-ray image (of his wife’s hand), starting a new era of far-reaching applications. There are of course many dangers that come with the use of radioactivity, but there are also many beneficial uses for our society.

Continue reading “A Brief History of Radioactivity”