How are artificial neural networks different from normal computer programs (or software)?
3 Answers
ANNs learn and adapt to the patterns inside inputs, however, general PCs don't. PCs take the process as input and provide results based on user preferences, but never adapt i.e., always depends on users what to do with the data, meanwhile, ANNs are customized for specific tasks like forecasting, function approximations etc.
Well, a computer consists of the hardware (CPU, GPU, memory, etc.), the operational system (OS) and software/programs (OS is also a software, but it is a very special software).
A neural network is simply a program that runs on a computer. Like a calculator app. In fact, the most simple NNs are indeed just some sort of a calculator that performs matrix multiplications.
-
1$\begingroup$ Please also add the difference to a "traditional"program (like a calculator app) $\endgroup$ Nov 12, 2018 at 6:02
Personal Computers are hardware, whereas artificial neural networks are software. (There are also neuromorphic chips, but that is a different story.)
A traditional computer program receives some input, calculates stuff based on predefined rules / flow diagrams and generates the output and side effects (such as changed files). The complexity often lies in the number of rules: What is the most reasonable part to adjust, given a change of requirements / a bug? How can I be sure I didn't forget an important edge case? Do I have off-by-one errors? Null-Pointer references? Overflows?
An artificial neural network is just one machine learning model.
Machine learning programs are also software, but they take data and an optimization criterion to infer the desired rules. There is no machine learning without data. The side effect of a machine learning programs training algorithm is the trained model, which usually is a big binary file. The complexity often lies in the data/the model: Is the training data representative for my real task? Did the model learn something reasonable? When / how often do I have to retrain? How can we maintain this?
To be more precise, here is Tom Mitchells definition of machine learning:
A computer program is said to learn from experience E with respect to some task T and some performance measure P if its performance on T, as measured by P, improves with experience E.
-
$\begingroup$ Machine Learning is also a computer program that follows rules..The only difference is we don't know/care about the numbers involved, so I don't think you made a valid difference between program and ML program. $\endgroup$– user9947Nov 12, 2018 at 6:21
-
$\begingroup$ A ml programs are a subset of all programs. $\endgroup$ Nov 12, 2018 at 6:33
-
$\begingroup$ Yes but they don't infer any rule, they just like other programs follow rules. $\endgroup$– user9947Nov 12, 2018 at 6:40
-
$\begingroup$ I gave an accurate and well-known definition of ML by Tom Mitchell. If you have a clear question, please ask it directly. Otherwise, I don't know how to help you. $\endgroup$ Nov 12, 2018 at 6:50
-
1$\begingroup$ I don't know any better definition but under this definition I think many algorithms which are not ML algo can be brought under the pruview of this defn...Since as far as I know there are many analytical methods to say approximate a curve which also infer some rules (your definition) based on some calculations. $\endgroup$– user9947Nov 12, 2018 at 7:19