Artificial neural network(s) and Computational neuroscience

In summary, the conversation discusses the differences between computational neuroscience and artificial neural networks, and their respective roles in understanding the brain. Computational neuroscience seeks to mimic how the brain works, while artificial neural networks are used in problems where an algorithm is unknown and decisions are made based on data. They have different approaches to learning and require different knowledge in mathematics and cybernetics. For computational neuroscience, knowledge in physics and modeling is also important. For artificial neural networks, programming languages such as Python and Julia are commonly used.
  • #1
Eagle9
238
10
Hello guys :oldeyes:

I need your help in order to clarify the following issue :oldsmile:

I am PhD student in neuroscience and I am dealing with brain’s neuroanatomy and physiology in case of Autism. But I am more interested in Computational neuroscience, Artificial neural network(s), the problem of consciousness and things like them. To my mind, this is the most complex, a bit mysterious and intriguing topic to be explored. I want to study these sciences.

But I do not exactly know what is the essential difference between Computational neuroscience and Artificial neural network(s). Do they explore the same things? Or similar things? Do they (at least partly) overlap each other? Which one is more close to the problem of consciousness? Do they equally need the knowledge in Mathematics? Cybernetics? Which of them should I choose (University/Faculty/Program)?
:oldshy:
 
Last edited by a moderator:
Physics news on Phys.org
  • #2
I would say they are very different topics. ANN's are used in problems where you don't know an algorithm to make a decision and so you use lots of data to train the ANN to discriminate between conditions and select the best appropriate answer.

Watch this sequence of videos to understand ANN usage and how they work their magic:



In contrast computational neuroscience seeks to mimic how the brain actually works.

You could liken the two approaches to astrology vs astronomy where ANNs arrive at their conclusion being like astrology using anecdotal data to arrive at a conclusion (which we don't know how it came up with its conclusion) whereas computational neuroscience is more like astronomy using what we know about the brain's engineering and function to accurately model how the brain works.

ANN's sometimes give the wrong answer and when that happens you have to go back and train it some more. Sometimes, you might overtrain the ANN but this is just part of how you tune ANNs for problem you're trying to solve.
 
  • Like
Likes jim mcnamara
  • #3
jedishrfu said:
Watch this sequence of videos to understand ANN usage and how they work their magic:
I watched the first video, so it is perceptron, right? I am aware about its history and usage. So, if I understood correctly the Artificial neural network(s) is/are based on this concept? :oldeyes:

jedishrfu said:
ANN's are used in problems where you don't know an algorithm to make a decision

And the solution is found by the method of “Trial and error”?

jedishrfu said:
In contrast computational neuroscience seeks to mimic how the brain actually works.
And therefore in order to understand how the (natural/human) brain works the Computational neuroscience is needed and not Artificial neural network(s), right?

jedishrfu said:
You could liken the two approaches to astrology vs astronomy where ANNs arrive at their conclusion being like astrology using anecdotal data to arrive at a conclusion (which we don't know how it came up with its conclusion) whereas computational neuroscience is more like astronomy using what we know about the brain's engineering and function to accurately model how the brain works.
So, please tell me what kind of knowledge in Mathematics/Cybernetics is needed for these two different fields :oldshy:
 
  • #4
For ANN programming, statistics, linear algebra, machine learning

For brain simulations you would need additionally physics, modeling of physical systems, differential equations
 
  • #5
jedishrfu said:
additionally physics, modeling of physical systems, differential equations
At a very profound level or at moderate one? :oldeyes:
 
  • #6
Eagle9 said:
And therefore in order to understand how the (natural/human) brain works the Computational neuroscience is needed and not Artificial neural network(s), right?

An understanding of artificial neural networks is important for understanding biological brains. The main feature in which they diverge is how they learn. ANNs are trained by backpropagation, which is not biologically plausible.

However, another aspect of machine learning does show up in biology - the temporal difference error describes how dopamine neurons behave under some circumstances.
 
  • #7
Please tell me which programming language is more suitable for Computational neuroscience? C++ or Python? Or maybe others?
 
  • #8
Machine learning and deep learning tend to use python or Matlab. However Julia is beginning to make inroads in these areas because of its speed of execution and ease of use. Julia is similar enough to Matlab that programmers of Matlab can move to it easier than those in python. It also has interoperability with python and R allowing fo mixed language solutions or leveraging legacy code in current development.
 
  • #9
Eagle9 said:
Hello guys :oldeyes:

I need your help in order to clarify the following issue :oldsmile:

I am PhD student in neuroscience and I am dealing with brain’s neuroanatomy and physiology in case of Autism. But I am more interested in Computational neuroscience, Artificial neural network(s), the problem of consciousness and things like them. To my mind, this is the most complex, a bit mysterious and intriguing topic to be explored. I want to study these sciences.

But I do not exactly know what is the essential difference between Computational neuroscience and Artificial neural network(s). Do they explore the same things? Or similar things? Do they (at least partly) overlap each other? Which one is more close to the problem of consciousness? Do they equally need the knowledge in Mathematics? Cybernetics? Which of them should I choose (University/Faculty/Program)?
:oldshy:

I don't have too much experience with computational neuroscience, but I do know quite a bit about ANNs and other types of machine learning, so I guess I'll chime in there.

Artificial neural networks are modeled after the brain, but to be honest, it seems quite far-fetched to really call them a model of the brain. What they are are specific mathematical models for transforming given (numerical) inputs to some (numerical) outputs. These days, the popular neural networks are either the "feed forward" variety (multi-layer perceptrons or convolutional neural networks) or of the "recurrent" variety (Recurrent neural networks). These types of neural networks are often used to perform what is known as "supervised learning". I.e. you feed these neural networks a set of inputs and desired outputs and these neural networks learn (via back propagation as jedishrfu said) to replicate the outputs given inputs. The hope is that given enough input-output pairs, the network will learn to generalize and be able to learn appropriate outputs for a wide variety of inputs (inputs which aren't labeled with desired outputs before hand). An example of such a problem is image classification where if you feed a neural network (generally a convolutional one) a bunch of images (of cats, and dogs, say) and tell it the expected outputs (are they cats or dogs?) then given enough samples (of cat/dog picture to label pairs) hopefully the neural network will learn to classify images as cats or dogs without you providing the appropriate answer beforehand. Viewed from this perspective, these ANN's are really nothing more than fancy function approximators (some way to map a given input X to a given output Y: ##f:X\rightarrow Y##.

There are other ways in which an artificial neural network can be made though and those might be of more academic interest. This includes the (2-way) Restricted Boltzmann Machines or the (any different way) Hopfield nets. These are "unsupervised learning" and they basically take some input and produce an output without you specifying a desired output to train it. They are not used nearly as much as the previously mentioned varieties of ANN's though.

The general gist though is that ANN's are a specific technique to model inputs and outputs. They are inspired by the brain, but don't necessarily correspond to actual brain functions.

Lastly, atyy mentioned in his post the temporal difference error - this is an error which shows up in reinforcement learning (the third type of machine learning - it's partially supervised and partially unsupervised) - specifically in the subclass of temporal difference learning algorithms (e.g. Q-learning or SARSA). It has nothing a priori to do with neural networks - it is a method to help assign rewards and punishments to reinforcement learning agents.
 
  • #10
jedishrfu said:
Machine learning and deep learning tend to use python or Matlab. However Julia is beginning to make inroads in these areas because of its speed of execution and ease of use. Julia is similar enough to Matlab that programmers of Matlab can move to it easier than those in python. It also has interoperability with python and R allowing fo mixed language solutions or leveraging legacy code in current development.
I am planning to learn Python (I am not absolutely aware about programming, but others advised me this program. They told me that it is relatively easy (much easier than C++) program, that it is widely used in science and etc.), will it be useful in Computational neuroscience (after reading the answers in this thread I am more interested in this field rather than in Artificial neural network(s))? I hope yes :oldsmile:

Matterwave
Well, thanks for such big and thorough, detailed answer. One of the previous posts said:
In contrast computational neuroscience seeks to mimic how the brain actually works.
So, my interests shifted to Computational neuroscience, therefore I want to know what kind of knowledge should I have for this field. I am learning now Calculus and Physics (some basic one, for Biologists) and I want to learn at least one programming language, therefore I am finding out which language should I learn :oldeyes:
 
  • #11
Glad I could help. :)

I don't know much about computational neuroscience so I can't really provide too much insights there. I would imagine calculus, linear algebra and differential equations would be very important. As for programming languages, I think Python is a good starting choice. It is easy to get started in but it also has a huge community of open source programmers who have written a ton of libraries and packages to let you do essentially everything you could want to do. The general complaint I hear with regards to python is that since it's an interpreted language, it's going to be slower than a compiled one like C++. However, for heavy numerical computations, the developers at numpy have written a lot of optimized code to take care of all that kind of stuff. In fact, a lot of numpy's backend is written in C++ for pure speed considerations, but you are only exposed to the python API for convenience.

If you want to do python for scientific computing, I suggest getting the anaconda distribution - it comes with a ton of scientific computing packages preinstalled (numpy, scipy, pandas, sci-kit learn, etc.) so you have access to all of them without having to install them all one by one yourself. If you have a problem you want solved but there isn't a preinstalled package to do it, you can still look into the Anaconda library, the Conda-forge library or just PyPi to find it.
 
  • #12
If you are learning python, after downloading the anaconda distribution as Matterwave suggests, you can try out http://briansimulator.org/. It's not the fastest, but it is a good place to start learning.

If you learn C++, you can try http://www.nest-simulator.org/ (I've never used it, but many people do, especially those who need speed).

For mathematics, you need differential equations, and probability (and statistics). Linear algebra is also useful, as it is applicable to both differential equations (eg. solving a linear differential equation), and to probability (eg. principal components analysis).
 
Last edited:
  • #14
Matterwave
atyy
jedishrfu

Thanks a lot :oldsmile:
Matterwave said:
I suggest getting the anaconda distribution
atyy said:
after downloading the anaconda distribution
I do not completely understand - anaconda distribution is the part of Python language? :oldeyes:
 
  • #15
Eagle9 said:
Matterwave
atyy
jedishrfu

Thanks a lot :oldsmile:I do not completely understand - anaconda distribution is the part of Python language? :oldeyes:

It's a distribution of Python...Python is the actual computing language. Anaconda will come with a command prompt to run Python scripts as well as a bunch of different python packages pre-installed. See here: https://www.anaconda.com/download/
 
  • #16
You can use the conda command to search or to get additional python packages. It takes up a fair amount of space on your disk. It’s great for development but not necessarily for production deployment.
 

1. What is an Artificial Neural Network (ANN)?

An Artificial Neural Network (ANN) is a computational model inspired by the biological neural networks found in the human brain. It is a machine learning algorithm that is designed to recognize patterns and solve complex problems by simulating the way the human brain processes information.

2. How does an Artificial Neural Network work?

An Artificial Neural Network works by taking in a set of input data, processing it through multiple interconnected layers of artificial neurons, and producing an output. Each neuron in the network is responsible for processing a specific set of input data and passing it on to the next layer. The connections between neurons are weighted and adjusted through a learning process, allowing the network to learn and improve its performance over time.

3. What is the difference between a feedforward and a recurrent neural network?

A feedforward neural network is a type of artificial neural network where the information flows in only one direction, from input to output. On the other hand, a recurrent neural network has connections that allow for feedback loops, allowing the network to process sequential data and make decisions based on previous inputs. Recurrent neural networks are commonly used for tasks such as speech recognition and language translation.

4. What is Computational Neuroscience?

Computational Neuroscience is an interdisciplinary field of study that combines principles and techniques from neuroscience, computer science, and mathematics to study the brain and its functions. It involves the use of computer models and simulations to understand how the brain processes information and how neural networks give rise to cognitive processes and behaviors.

5. How are Artificial Neural Networks used in real-world applications?

Artificial Neural Networks have a wide range of applications in various fields, including image and speech recognition, natural language processing, forecasting, and data analysis. They are also used in industries such as finance, healthcare, and transportation to make predictions, classify data, and automate decision-making processes. Neural networks continue to be an active area of research and are constantly being developed and improved for new and innovative applications.

Similar threads

  • STEM Academic Advising
Replies
1
Views
1K
Replies
1
Views
1K
  • STEM Academic Advising
Replies
3
Views
861
  • Computing and Technology
Replies
4
Views
1K
  • Science and Math Textbooks
Replies
2
Views
918
  • STEM Academic Advising
Replies
2
Views
2K
Replies
2
Views
87
  • STEM Career Guidance
Replies
10
Views
3K
  • STEM Academic Advising
Replies
4
Views
2K
  • STEM Academic Advising
Replies
4
Views
1K
Back
Top