Neural coding
Neural coding is the transduction of environmental signals and internal signals of the body into neural activity patterns as representations forming a model of reality suitable for purposeful actions and adaptation, preserving the integrity and normal functioning of the body. Deciphering the neural code is a large-scale task in terms of its complexity and significance. It is difficult to overestimate the prospects that the ability to read and write neural code would open to us. They concern the treatment of not only mental and neurological disorders, but also all diseases of the body, from the main three  (cardiovascular, cancer and diabetes) to the less significant ones, but still affecting the quality of life. And last but not least, it will give a new perspective for the development of artificial intelligence technologies and their integration with natural technologies of the brain. Overview. Neurons are remarkable among the cells of the body in their ability to process signals (i.e., light, sound, taste, smell, touch, and others) rapidly and transmit information about them over large distances and among vast neural populations. The brain is the highest achievement in the evolution of natural information technologies in terms of speed and efficiency . It follows that, of all coding schemes, the most likely candidate for neural code is the one that produces information (code patterns) most efficiently. Neurons generate voltage oscillations called action potentials. All models consider the action potential as a fundamental element of the brain's language. However, the critical issue is the approach to this phenomenon. Physically action potentials are continuous oscillatory processes that differ in duration, amplitude and shape. Neurons demonstrate graded potentials that can provide high capacity and efficiency of the code. Nevertheless, most models regard neural activity as identical discrete events (spikes). If the internal parameters of  an action potential are ignored, a spike train can be characterised simply by a series of all-or-none point events in time. The lengths of interspike intervals can also vary. But they are usually ignored in the currently prevailing models of the neural code. Such theories assume that the information is contained in the number of spikes in a particular time window (rate code) or their precise timing (temporal code). Whether neurons use rate coding or temporal coding is a topic of intense debate within the neuroscience community, even though there is no clear definition of what these terms  mean. Anyway, all these theories are variations of a spiking neuron model. Statistical methods and methods of probability theory and stochastic point processes are widely applied to describe and analyse neuronal firing. Some studies claim that they cracked the neural code and there are several large-scale brain decoding projects. But the actual reading and writing of the neural code remain a challenge facing neuroscience. Encoding and decoding. The standard approach for studying the neural code is to look for the correlation between the incoming signal and the neuronal response and the reverse process of recovering the signal from the  observed neuronal activity. However, without a code model, such analysis is like trying to read or write a text without knowing grammar. It is a kind of vicious circle: to read the code, we need to know it, but to cognise it, we need to read it. However, any process of deciphering an unknown code is based on searching for specific patterns and identifying their correlation with the encoded message. In other words, to read the neural code, we need to find the correspondence between patterns of signal parameters and neural activity. Any signal of the environment is an oscillatory  energy process with a certain amplitude, frequency and development of phases in time. These are the two main axes of signal measurement: spatial and temporal. Accordingly, the neural code must also have spatial and temporal characteristics that create a model of the encoded signal. They may be locked to an external stimulus or be generated intrinsically by the neural circuitry. As we move along the hierarchy of the technological chain of the nervous system from sensors at the periphery to the integrative structures of the cerebral cortex, the neural activity is less and less directly associated with the original signal . It is natural since neurons do not reflect signals but encode them, i.e., create representations. Consciousness is not a mirror of reality but a model of reality. However, a representation should still contain all the same axes of parameters measurement. Thus, the neural code has to be a complex multidimensional structure. At the same time, information density should combine with efficiency and speed. Do the proposed coding models reflect these requirements? This question should be a "litmus test" for their adequacy to actual processes in the nervous system. Hypothesized coding schemes. Spiking neuron models. Rate coding. The rate coding model  hypothesizes that information about a signal is contained in the spike firing rate. It is sometimes called frequency coding though strictly speaking rate of discrete events is not a frequency but a tempo. Thus, calling this model a tempo code would be physically correct. It appeared after experiments by ED Adrian and Y Zotterman in 1926. In this simple experiment, different weights were hung from a muscle. As the weight of the stimulus increased, the number of spikes recorded from sensory nerves innervating the muscle also increased. The authors concluded that action potentials were discrete events and that their tempo , rather than individual parameters, was the basis of neural communication. In the following decades, the measurement of firing rates became a standard tool for describing the properties of all types of neurons, partly due to the relative ease of measuring rates experimentally. However, this approach neglects all the information possibly contained in the exact timing of the spikes and interspike intervals and the internal parameters of each action potential. In recent years, more and more experimental evidence has suggested that a straightforward firing rate concept based on temporal averaging may be too simplistic to describe brain activity. Even at the  peripheral level (sensors and effectors), the firing rate increases non-linearly with increasing stimulus intensity, and there is no direct connection between the spike rate and the signal. In addition, the sequence of action potentials generated by a given stimulus varies from trial to trial, so neuronal responses are typically treated statistically or probabilistically. Even the term "firing rate" has various definitions, which refer to different averaging procedures, such as an average over time or an average over several repetitions of an experiment. Spike-count rate (average over time). The spike-count rate, also referred to as temporal average, is  obtained by counting the number of spikes that appear during a trial and dividing by the duration of trial. The length T of the time window is set by the experimenter and depends on the type of neuron recorded from and to the stimulus. In practice, to get sensible averages, several spikes should occur within the time window. Typical values are T = 100 ms or T = 500 ms, but the duration may also be longer or shorter.(Chapter 1.5 in the textbook 'Spiking Neuron Models' ) This procedure stems from the assumption that neurons average their rates. If we accept  this hypothesis, we must understand that neurons compute this average relative to the time window that has a meaning for them, not for an experimenter. If we analyse an activity that repeats with strict periodicity, it is not difficult to determine its period and calculate the average value. But neurons do not exhibit monotonous spiking. So, we do not know whether the neural code is actually average rate, and it is difficult to confirm or refute it without knowing the system clock of the brain. Additional theory and biological evidence is needed in order to support this hypothesis of neural  coding. The spike-count rate can be determined from a single trial, but at the expense of losing all temporal resolution about variations in neural response during the course of the trial. Temporal averaging can work well in cases where the stimulus is constant or slowly varying and does not require a fast reaction of the organism — and this is the situation usually encountered in experimental protocols. Real-world input, however, is hardly stationary, but often changing on a fast time scale. For example, even when viewing a static image, humans perform saccades, rapid changes of the direction of gaze . The image projected onto the retinal photoreceptors changes therefore every few hundred milliseconds (Chapter 1.5 in ). More generally, whenever a rapid response of an organism is required a firing rate defined as a spike-count over a few hundred milliseconds is simply too slow. Time-dependent firing rate (averaging over several trials). The time-dependent firing rate is defined as the average number of spikes (averaged over trials) appearing during a short interval between times t and t+Δt, divided by the duration of the interval. It works for stationary as well as for time-dependent stimuli. To experimentally measure the  time-dependent firing rate, the experimenter records from a neuron while stimulating with some input sequence. The same stimulation sequence is repeated several times and the neuronal response is reported in a Peri-Stimulus-Time Histogram (PSTH). The time t is measured with respect to the start of the stimulation sequence. The Δt must be large enough (typically in the range of one or a few milliseconds) so that there is a sufficient number of spikes within the interval to obtain a reliable estimate of the average. The number of occurrences of spikes n(t;t+Δt) summed over all repetitions of the  experiment divided by the number K of repetitions is a measure of the typical activity of the neuron between time t and t+Δt. A further division by the interval length Δt yields time-dependent firing rate r(t) of the neuron, which is equivalent to the spike density of PSTH (Chapter 1.5 in ). For sufficiently small Δt, r(t)Δt is the average number of spikes occurring between times t and t+Δt over multiple trials. If Δt is small, there will never be more than one spike within the interval between t and t+Δt on any given trial. This means that r(t)Δt is  also the fraction of trials on which a spike occurred between those times. Equivalently, r(t)Δt is the probability that a spike occurs during this time interval. As an experimental procedure, the time-dependent firing rate measure is a useful method to evaluate neuronal activity, in particular in the case of time-dependent stimuli. The obvious problem with this approach is that it can not be the coding scheme used by neurons in the brain. Neurons can not wait for the stimuli to repeatedly present in an exactly same manner before generating a response. Moreover, the dynamics of many environmental signals  are measured in milliseconds, and during these milliseconds, neurons can only fire once or twice. With such a number of spikes, it is impossible to encode the signal by their average rate. But there are also faster signals. For example, a bat is capable of echolocation with a resolution of microseconds. Thus, the signal measurement time window is within one spike. This is completely contrary to the average rate paradigm. Can a code consisting of identical spikes provide the nervous system's observable information density, speed, and efficiency? Unfortunately for the adherents of the rate code paradigm, the answer to  this question is negative. Such code is ineffective in all respects. Tempo variation does not carry enough information to represent a complex multi-parameter signal. It requires the creation of many spikes to encode simple parameters. Thus, it is too slow and energetically expensive. That is why it does not correspond to the reality of the brain. However, this model is still widely used not only in experiments but also in neural networks models. As a result, over the past decades, a vast amount of data has accumulated, but it has not brought us any closer to deciphering the meaning  of the code. Temporal coding. Temporal code models assume that precise timing of spikes and interspike intervals carries information. There is a growing body of evidence supporting this hypothesis. Rate coding models suggest that the irregularities of neuronal firing are noise and average them. Temporal coding supplies an alternate explanation for the “noise," suggesting that it actually encodes information and affects neural processing. To model this idea, binary symbols can be used to mark the spikes: 1 for a spike, 0 for no spike. Temporal coding allows the sequence 000111000111 to mean something different from 001100110011, even though the mean  firing rate is the same for both sequences. Thus, the model can be called the digital code. Until recently, scientists had put the most emphasis on rate encoding as an explanation for post-synaptic potential patterns. However, functions of the brain are more temporally precise than the rate encoding allows. In addition, responses to the similar stimuli are different enough to suggest that the distinct patterns of spikes contain a higher volume of information than is possible to include in a rate code. The temporal structure of a spike train evoked by a stimulus is determined both by the dynamics  of the stimulus and by the nature of the neural encoding process. Stimuli that change rapidly tend to generate precisely timed spikes. Temporal codes (also called spike codes ), employ those features of the spiking activity that cannot be described by the firing rate. For example, time-to-first-spike after the stimulus onset, phase-of-firing with respect to background oscillations, characteristics based on the second and higher statistical moments of the ISI probability distribution, spike randomness, or precisely timed groups of spikes (temporal patterns) are candidates for temporal codes. As there is no absolute time reference in the  nervous system, the information is carried either in terms of the relative timing of spikes in a population of neurons (temporal patterns) or with respect to an ongoing brain oscillation (phase of firing). One of the possible mechanisms of the temporal code is that spikes occurring at specific phases of an oscillatory cycle are more effective in depolarizing the post-synaptic neuron. In temporal coding, learning can be explained by activity-dependent synaptic delay modifications. The modifications can themselves depend on spike timing patterns (temporal coding), i.e., can be a special case of spike-timing-dependent plasticity. For very brief  stimuli, a neuron's maximum firing rate may not be fast enough to produce more than a single spike. Due to the density of information contained in this single spike, it would seem that the timing of the spike itself would have to convey more information than simply the average rate of action potentials over a given period of time. This model is especially important for sound localization, which occurs within the brain on the order of milliseconds. The brain must obtain a large quantity of information based on a relatively short neural response. Additionally, if low firing rates on  the order of ten spikes per second must be distinguished from arbitrarily close rate coding for different stimuli, then a neuron trying to discriminate these two stimuli may need to wait for a second or more to accumulate enough information. This is not consistent with numerous organisms which are able to discriminate between stimuli in the time frame of milliseconds or less. To account for the fast encoding of visual stimuli, it has been suggested that neurons of the retina encode visual information in the latency time between stimulus onset and first action potential, also called latency to first spike  or time-to-first-spike. This type of temporal coding has been shown also in the auditory and somato-sensory system. The main drawback of such a coding scheme is its sensitivity to intrinsic neuronal fluctuations. In the primary visual cortex of macaques, the timing of the first spike relative to the start of the stimulus was found to provide more information than the interval between spikes. However, the interspike interval could be used to encode additional information, which is especially important when the spike rate reaches its limit, as in high-contrast situations. For this reason, temporal coding may  play a part in coding defined edges rather than gradual transitions. As with the visual system, in mitral/tufted cells in the olfactory bulb of mice, first-spike latency relative to the start of a sniffing action seemed to encode much of the information about an odor. This strategy of using spike latency allows for rapid identification of and reaction to an odorant. In addition, some mitral/tufted cells have specific firing patterns for given odorants. Along the same lines, experiments done with the olfactory system of rabbits showed distinct patterns which correlated with different subsets of odorants, and a  similar result was obtained in experiments with the locust olfactory system. The mammalian gustatory system is useful for studying temporal coding because of its fairly distinct stimuli and the easily discernible responses of the organism. Temporally encoded information may help an organism discriminate between different tastants of the same category (sweet, bitter, sour, salty, umami) that elicit very similar responses in terms of spike count. The temporal component of the pattern elicited by each tastant may be used to determine its identity (e.g., the difference between two bitter tastants, such as quinine and denatonium). In this way, both rate coding  and temporal coding may be used in the gustatory system – rate for basic tastant type, temporal for more specific differentiation. Research on mammalian gustatory system has shown that there is an abundance of information present in temporal patterns across populations of neurons, and this information is different from that which is determined by rate coding schemes. In studies dealing with the front cortical portion of the brain in primates, precise patterns with short time scales only a few milliseconds in length were found across small populations of neurons which correlated with certain behaviors. However, little information could be determined from  the patterns. One of the explanations is that the activity of cortical neurons does not correspond linearly to the dynamics of the incoming signal parameters as the technological chain consists of primary signal converters (sensors), modulators (subcortical structures), and integrators (cortical populations) that do not 'reflect' the signal but transduce it and create representations. The assumption that the neural code is binary (spikes and interspike intervals as 1 and 0) significantly increases the capacity of the code and makes the model more plausible. But the same question arises of correlating the information capacity of the code and the real speed  of the brain, which manages to encode a complex multi-parameter signal within one or two spikes. The brain does not have time to build a long binary chain that could contain all the information. In this it is fundamentally different from artificial digital systems. For all the tremendous speed of their processors, which are orders of magnitude higher than the frequencies of the brain, they cannot match it in performance, speed and energy efficiency. The problem is they need to handle long binary code chains. The brain must be using some additional capacity in its code. In addition , the question of the system clock arises again. Two zeros of the code is a pause twice as long as one zero. But how can we determine that the interspike pause means two zeros or one if we do not know the time scale of the system under study? Measuring the pause by an external clock gives a lot of data, but says nothing about how many zeros are in that particular pause and how they relate to the spike units. In other words, we cannot determine if neuron activity means 0001 or 001. For a real qualitative analysis , it is necessary to normalize the system data by its own time. Then we can express our analysis in any unit of measurement. Finding this fundamental frequency as a basis for normalisation is probably of paramount importance when trying to decipher the brain code no matter which code model we are testing, since the time parameter remains anyway. Phase-of-firing code. Phase-of-firing code is a neural coding scheme that combines the spike count code with a time reference based on oscillations. This type of code takes into account a time label for each spike according to a  time reference based on phase of local ongoing oscillations at low or high frequencies. It has been shown that neurons in some cortical sensory areas encode complex natural signals in terms of their spike times relative to the phase of ongoing network oscillatory fluctuations, rather than only in terms of their spike count. The phase-of-firing code is often categorised as a temporal code although the time label used for spikes (i.e. the network oscillation phase) is a low-resolution (coarse-grained) reference for time. As a result, often only four discrete values for the phase are enough to  represent all the information content in this kind of code with respect to the phase of oscillations in low frequencies. Phase-of-firing code is loosely based on the phase precession phenomena observed in place cells of the hippocampus. Another feature of this code is that neurons adhere to a preferred order of spiking between a group of sensory neurons, resulting in firing sequence. Phase code has been shown in visual cortex to involve also high-frequency oscillations. Within a cycle of gamma oscillation, each neuron has its own preferred relative firing time. As a result, an entire population of  neurons generates a firing sequence that has a duration of up to about 15 ms. This version of the code aims to overcome the limitations of the previous models. It shows that spike counting requires a frame of reference and suggests searching for it in the frequencies of the brain. But this model continues to consider actions potentials to be similar impulses and looks for information only in the rhythmic structure of neuronal activation. Thus, it faces the same question: how can neurons encode signals that change within the time frame of a single spike? Placing a discrete event on  the exact timescale is an essential part of the encoding process. Still, it is not enough to represent all the parameters of a signal within tight temporal limits that the natural environment sets for the brain. Population coding. Population coding is a method to represent signals by the joint activities of a number of neurons. In population coding, each neuron has a distribution of responses over some set of inputs, and the responses of many neurons may be combined to determine the value about the inputs. For example, in the area of visual medial temporal lobe (MT), neurons are tuned  to the moving direction. Individual neurons in such a population typically have different but overlapping selectivities, so that many neurons, but not necessarily all, respond to a given stimulus. Place-time population codes, termed the averaged-localized-synchronized-response (ALSR) code, have been derived for neural representation of auditory acoustic stimuli. This exploits both the place or tuning within the auditory nerve, as well as the phase-locking within each nerve fiber auditory nerve. The first ALSR representation was for steady-state vowels; ALSR representations of pitch and formant frequencies in complex, non-steady state stimuli were later demonstrated for  voiced-pitch, and formant representations in consonant-vowel syllables. In general, the population version of the code simply indicates that signal representations are the result of the activity of many neurons. It cannot be called a separate coding model as the question of how individual neurons encode their part of the signal representation remains. Some models try to surpass this difficulty by claiming that the individual activity does not contain any information and the meaning should be sought in the combined patterns. In such models, neurons are considered to fire in random order with a Poisson distribution, and such  chaos creates order in the form of a population code. This hypothesis can be called a reaction to the fact that decades of attempts to decipher the neural code by counting spikes and searching for meaning in the rate or temporal structure of their sequences have not led to a meaningful result. But such population models do not say anything about the mechanism of operation and the rules of such a code. Moreover, they contradict the reality of neural activity. Subtle measurement methods using implantable electrodes and a detailed study of the temporal structure of the spikes and interspike intervals  show that it does not have the character of a Poisson distribution, and each of the stimulus attributes changes not only the absolute number of spikes but also their temporal pattern. Despite the enormous variability in neuronal activity, the spike sequences are very accurate. This accuracy is essential for the transmission of information using high-resolution code. Each neuron has its place in forming meanings and specialisation as a filter processing specific signal parameters. However, the question arises of how the patterns of each neuron activity integrate into a general representation of a signal with all parameters and how representations  of individual signals merge into a single and coherent model of reality while maintaining their individuality. In neuroscience, this is called a "binding problem." Some population code models describe this process mathematically as the sum of the vectors of all neurons involved in encoding a given signal. This particular population code is referred to as population vector coding and is an example of simple averaging. A more sophisticated mathematical technique for performing such a reconstruction is the method of maximum likelihood based on a multivariate distribution of the neuronal responses. These models can assume independence, second order correlations, or even  more detailed dependencies such as higher order maximum entropy models, or copulas. However, a common problem with such mathematical models is the lack of an explanation of the physical mechanism that could implement the observed unity of the model of reality created by the brain while preserving the individuality of signal representations. Correlation coding. The correlation coding model of neuronal firing claims that correlations between action potentials, or "spikes", within a spike train may carry additional information above and beyond the simple timing of the spikes. Early work suggested that correlation between spike trains can only reduce, and never increase , the total mutual information present in the two spike trains about a stimulus feature. However, this was later demonstrated to be incorrect. Correlation structure can increase information content if noise and signal correlations are of opposite sign. Correlations can also carry information not present in the average firing rate of two pairs of neurons. A good example of this exists in the pentobarbital-anesthetized marmoset auditory cortex, in which a pure tone causes an increase in the number of correlated spikes, but not an increase in the mean firing rate, of pairs of neurons. The idea about correlations between action  potentials can be called a movement from the average rate code towards an adequate model, which speaks of the information density of the spatial-temporal patterns of neuronal activity. However, it cannot be called a neural code per se. Independent-spike coding. The independent-spike coding model of neuronal firing claims that each individual action potential, or "spike", is independent of each other spike within the spike train. Position coding. A typical population code involves neurons with a Gaussian tuning curve whose means vary linearly with the stimulus intensity, meaning that the neuron responds most strongly (in terms of  spikes per second) to a stimulus near the mean. The actual intensity could be recovered as the stimulus level corresponding to the mean of the neuron with the greatest response. For a population of unimodal tuning curves, i.e. with a single peak, the precision typically scales linearly with the number of neurons. Hence, for half the precision, half as many neurons are required. In contrast, when the tuning curves have multiple peaks, as in grid cells that represent space, the precision of the population can scale exponentially with the number of neurons. This greatly reduces the number of neurons required  for the same precision. This coding scheme tries to overcome the problems of rate coding model by stating that if any individual neuron is too noisy to faithfully encode the variable using rate coding, an entire population ensures greater fidelity and precision as the maximum likelihood estimation function is more accurate. It remains to answer the question: if individual neurons are too slow to encode the signals, how can the population be fast enough? We are back to the issue of the neural code essence. Sparse coding. Code sparseness may refer to the temporal sparseness ("a relatively small number of  time periods are active") or to the sparseness in an activated population of neurons. In this latter case, this may be defined in one time period as the number of activated neurons relative to the total number of neurons in the population. For each item to be encoded, this is a different subset of all available neurons. This seems to be a hallmark of neural computations since compared to traditional computers, information is massively distributed across neurons. Sparse coding of natural images produces wavelet-like oriented filters that resemble the receptive fields of simple cells in the visual cortex. The  capacity of sparse codes may be increased by simultaneous use of temporal coding, as found in the locust olfactory system. Code sparseness may also refer to a small number of basic patterns used to encode the signals. Given a potentially large set of input patterns, sparse coding algorithms (e.g. sparse autoencoder) use a small number of representative patterns which, when combined in the right proportions, reproduce the original input patterns. The sparse coding for the input then consists of those representative patterns. For example, the very large set of English sentences can be encoded by a small number of symbols  (i.e. letters, numbers, punctuation, and spaces) combined in a particular order for a particular sentence, and so a sparse coding for English would be those symbols. Mathematical modelling. Most models of sparse coding are based on the linear generative model. In this model, the symbols are combined in a linear fashion to approximate the input. More formally, given a k-dimensional set of real-numbered input vectors formula_1, the goal of sparse coding is to determine n k-dimensional basis vectors formula_2 along with a sparse n-dimensional vector of weights or coefficients formula_3 for each input vector, so that  a linear combination of the basis vectors with proportions given by the coefficients results in a close approximation to the input vector: formula_4. The codings generated by algorithms implementing a linear generative model can be classified into codings with "soft sparseness" and those with "hard sparseness". These refer to the distribution of basis vector coefficients for typical inputs. A coding with soft sparseness has a smooth Gaussian-like distribution, but peakier than Gaussian, with many zero values, some small absolute values, fewer larger absolute values, and very few very large absolute values. Thus, many of the basis vectors are active . Hard sparseness, on the other hand, indicates that there are many zero values, "no" or "hardly any" small absolute values, fewer larger absolute values, and very few very large absolute values, and thus few of the basis vectors are active. This is appealing from a metabolic perspective: less energy is used when fewer neurons are firing. Another measure of coding is whether it is "critically complete" or "overcomplete". If the number of basis vectors n is equal to the dimensionality k of the input set, the coding is said to be critically complete. In this case, smooth changes in the  input vector result in abrupt changes in the coefficients, and the coding is not able to gracefully handle small scalings, small translations, or noise in the inputs. If, however, the number of basis vectors is larger than the dimensionality of the input set, the coding is "overcomplete". Overcomplete codings smoothly interpolate between input vectors and are robust under input noise. The human primary visual cortex is estimated to be overcomplete by a factor of 500, so that, for example, a 14 x 14 patch of input (a 196-dimensional space) is coded by roughly 100,000 neurons. Other models are based  on matching pursuit, a sparse approximation algorithm which finds the "best matching" projections of multidimensional data, and dictionary learning, a representation learning method which aims to find a sparse matrix representation of the input data in the form of a linear combination of basic elements as well as those basic elements themselves. Overall, despite rigorous mathematical descriptions, the above models stumble when it comes to describing the physical mechanism that can perform such algorithms. Biological evidence. Sparse coding may be a general strategy of neural systems to augment memory capacity. To adapt to their environments, animals must learn which stimuli  are associated with rewards or punishments and distinguish these reinforced stimuli from similar but irrelevant ones. Such tasks require implementing stimulus-specific associative memories in which only a few neurons out of a population respond to any given stimulus and each neuron responds to only a few stimuli out of all possible stimuli. Theoretical work on sparse distributed memory has suggested that sparse coding increases the capacity of associative memory by reducing overlap between representations. Experimentally, sparse representations of sensory information have been observed in many systems, including vision, audition, touch, and olfaction. In the "Drosophila" olfactory system, sparse odor  coding by the Kenyon cells of the mushroom body is thought to generate a large number of precisely addressable locations for the storage of odor-specific memories. Sparseness is controlled by a negative feedback circuit between Kenyon cells and GABAergic anterior paired lateral (APL) neurons. Systematic activation and blockade of each leg of this feedback circuit shows that Kenyon cells activate APL neurons and APL neurons inhibit Kenyon cells. Disrupting the Kenyon cell–APL feedback loop decreases the sparseness of Kenyon cell odor responses, increases inter-odor correlations, and prevents flies from learning to discriminate similar, but not dissimilar, odors . These results suggest that feedback inhibition suppresses Kenyon cell activity to maintain sparse, decorrelated odor coding and thus the odor-specificity of memories. However, despite the accumulating evidence for widespread sparse coding and theoretical arguments for its importance, a demonstration that sparse coding improves the stimulus-specificity of associative memory has been difficult to obtain. Implications of spiking neuron models. What are the tasks of neurons when processing signals from the external and internal environment? First, neurons must create information-efficient code. Second, neurons must create energy-efficient code. These requirements lead to code sparseness in the sense of a  small number of elements in a fast time window and a small set of basic code units that can encode complex information in their combinations. It follows that each component should be information-rich. In other words, the neural code must combine sparseness and richness. These are not mutually exclusive but complementary requirements. The question arises: can a neuron spike be information-rich if it is a discrete event that does not have internal characteristics? In this formulation, the question becomes rhetorical, and the answer is negative. Unfortunately, all of the above models are based on the assumption that the  action potentials of the neurons are the same. But is it really so? Moreover, the question arises: are the action potentials spikes? It may sound strange as most studies use the words as synonyms. The reason is that there is an old tradition to portrait action potentials as sharp points distributed along the time axis with varying density: Maybe the action potentials are actually sharp points? Not really. They are simplified this way to make them convenient for the model. "The spike is added manually for aesthetic purposes and to fool the reader into believing that this is a spiking  neuron …All spikes are implicitly assumed to be identical in size and duration … Despite all these drawbacks, the integrate-and-fire model is an acceptable sacrifice for a mathematician who wants to prove theorems and derive analytical expressions. However, using the model might be a waste of time." To understand whether any spiking neuron model reflects reality or not, we must turn to the temporal level of the neuron itself. If we increase the resolution along the time axis, the picture changes dramatically and shows that neurons do not fire with sharp spikes but vibrate with soft waves. After decades  of looking at discrete units where there are actually are waves, we come back to the question: "What is the structure of a neural code that allows such high rates of information transmission? ... Nature has built computing machinery of surprising precision and adaptability ... Our story began, more or less, with Adrian’s discovery that spikes are the units out of which our perceptions must be built. We end with the idea that each of these units makes a definite and measurable contribution to those perceptions. The individual spike, so often averaged in with its neighbors, deserves more respect." Symphonic Neural  Code. The symphonic neural code hypothesis assumes that the neural code is not digital but analog-digital, meaning that each action potential being a discrete unit of code contains internal parameters as a continuous phenomenon. This model uses an analogy with a musical code (musical notation). In this sense, each action potential is a note of the music of the brain, i.e. has individual characteristics of the waveform (period, amplitude, phase). These notes form a pattern of the activity of a given neuron with a precise spatial-temporal organisation, which allows it to be part of the overall brain symphony  with its melodies (frequency patterns), rhythms (phase patterns) and harmonies (the simultaneous existence of different patterns). The information density of each note (action potential) and each pause (resting potential) is very high. Thus, complex information can be encoded in a short activation/pause sequence and even within a single action potential. Due to this, the system as a whole has tremendous computing power, efficiency and speed. In some sense, this model combines many previous hypotheses. It shows that firing rate has a place in the overall code structure. But, as in music, tempo does not have an independent meaning. The  model stresses the importance of the temporal (rhythmic) structure that carries heavy information load. It is certainly a phase-of-firing model as the dynamics of activation/deactivation and the internal structure of each action potential phase portrait allow to encode signals even within the time window of phase shift within one activation cycle. It is a population code model that considers neurons as not senseless or noisy components of the system that can produce order out of chaos by some magic, but as members of the brain orchestra consisting of billions of musicians that play a unified symphony where  each part has its own meaning. It is certainly a correlation coding as each part has a position within the context of the whole structure. And it is a sparse coding model, since a symphony can consist of potentially endless combinations of a small set of base notes (code elements), and a small number of musicians (neurons) can take part in creating a complex combination. At the same time, it is dense coding model since each note has high informational content. The use of musical terminology is not a metaphor but a physical analogy. The physics of the neural coding  process is based on oscillatory and wave phenomena, the same as the creation of sounds, which we call music. A cardinal paradigm shift is that a neuron is viewed not as a producer of identical shots but as an oscillator with a complex phase portrait. Each action potential is paid due respect. All the fine logistics of organisation and kinetics of processes at the intracellular and intercellular levels are there for creating the parameters of neural oscillations. The model provides a detailed physical, mathematical and technological description of the neural coding process that elucidates the brain's informational, temporal and  energy efficiency. Moreover, the approach to the coding process as to the interaction of oscillators with different parameters allows the model to look at the binding problem in a completely different way and show the an actual physical mechanism of frequency and phase coupling, which creates a symphony of the mind as a harmonic structure while preserving the individual characteristics of each representation. It also allows us to look at the pathologies that are currently considered enigmatic "mental disorders" (for example, autism and schizophrenia) as the specific disturbances of encoding the world's signals and creating a coherent reality model . Traditional instruments (for example, EEG, MEG, fMRI) are not suited for deciphering the symphonic code as they currently do not possess the necessary spatial-temporal resolution and do not measure the neural activity directly. Other technologies (for example, microelectrode arrays, patch clamp technique) are better suited for the task but have their own drawbacks. Some new technologies like optogenetics allow measuring and even controlling individual neuron activity. The technologies will follow if the theoretical paradigm pays due respect to the individual action potential and to all delicate dynamics of spatial-temporal patterns of neural activity, which constitute the essence of  the coding process.