Before the advent of neural architectures, many AI domains (e.g. speech recognition and computer vision) used algorithms that consisted of a series of hand-crafted transformations for feature extraction.

  • In speech recognition everything to do with spectrograms or cepstra is done based on the mathematical theory of (discrete) Fourier transforms.
  • In computer vision, edge detectors like Sobel/Canny or feature descriptors like SIFT are all convolution-based.

You can implement all of these with everyday procedural programs. All the intelligence of these methods is embedded within the steps of the program, and not in its parameters.

One thing I have been wondering about is what you would call such algorithms that work "out of the box". My inclination is to call them deterministic, but this is clearly wrong considering most neural networks (not including e.g. VAEs) are deterministic functions of their input too.

Perhaps some might call them dumb, but that's also not right, because these algorithms are very sophisticated and purposefully made. They're not naive like naive Bayes is naive. It's not because they aren't trained that they aren't artificially intelligent.

Traditional or classical is too vague, because neural nets have existed for more than half a century and could be considered that too. The same goes for algorithmic and procedural.

Is there standard terminology to delimit the set of such artificially-intelligent-but-not-data-driven algorithms?


2 Answers 2


The word "Artificial intelligence" refers to machines being able to have intelligence that of humans/animals. The meaning of the word was even discussed on this site. So it's up to your interpretation what is human/animal like performance - you could even argue the examples you provide are human like performance.

There is this well known Venn diagram showing the difference.


But personally I wouldn't call these example you mention artificially-intelligent. The algorithms you mention are just a set of complex instructions.

All the intelligence of these methods is embedded within the steps of the program, and not in its parameters.

While intelligent authors made the algorithms, that's not what the word "artificially-intelligent" refers to.

It's not because they aren't trained that they aren't artificially intelligent.

Again it's up to you what you perceive as intelligence that of humans/animals. But if an algorithm has trainable weights, then it's classified as Machine Learning. A Machine learning agent can still be so useless such that no one would classify it as "Artificial intelligence".

I would just call the algorithms you refer to a "complex algorithm" or a "non-ML method".

  • $\begingroup$ Some problems cannot be machine learned to get the accuracy of a handcrafted solution. For example, classifying numbers into negative and non-negative classes. The machine learning "intelligent" threshold would get smaller accuracy than the handcrafted 0 boundary. $\endgroup$ Mar 22, 2023 at 15:10
  • $\begingroup$ Constructions like "non-AI method" seem like the right way to go -- this is, focusing on specifically what's meant. For example, if a speaker means that a particular technique wasn't used, then ""non-"+[technique]". $\endgroup$
    – Nat
    Mar 22, 2023 at 20:35

How about handcrafted -as you mentioned-? In the following question it is opposed to learned.


  • 2
    $\begingroup$ I agree with the term. Handcrafted, hand-designed features, etc. are used for processing steps that require human expertise, as mentioned in the Deep Learning book. $\endgroup$ Mar 22, 2023 at 13:35
  • 1
    $\begingroup$ I'd be concerned about using "handcrafted" vs. "learned" as though they were mutually-exclusive alternatives. Terminology like that seems reasonable enough in simpler cases, but it may not work well in more complex scenarios. $\endgroup$
    – Nat
    Mar 22, 2023 at 20:36
  • $\begingroup$ The questions asks for a "standard terminology". Handcrafted vs Learned are only used when speaking of features. It's debatable wherever it's a good idea to also use that terminology on distinguishing algorithms, but it's not standard terminology $\endgroup$
    – nammerkage
    Mar 22, 2023 at 20:43
  • $\begingroup$ "engineered" also comes to mind $\endgroup$ Mar 22, 2023 at 21:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .