Novamente FAQ

From AGIRI.org

Jump to: navigation, search
Frequently Asked Questions about the Novamente Cognition Engine

Contents

When will Novamente be as intelligent as a human adult?

Human-level intelligence is estimated to be possible within 10 years, given the application of adequate resources.

What are the key algorithm types used in Novamente?

probabilistic reinforcement learning as data where available

  • statistical pattern mining based self-analysis to recognize emergent attractors in the overall system dynamics and embody these attractors as declarative knowledge

Why C++?

NCE performs probabilistic logical inference IN REAL TIME, for real time embodied agent control and is designed to run efficiently on SMP multiprocessor machines, using large amounts of RAM (as many gigabytes as the machine will support), and requiring complex and customized patterns of garbage collection. The automated GC supplied by languages like Java or C# will not suffice. C++ is the only language that has been intensively battle-tested under this kind of scenario. (In principle, C# could be used, with copious use of unsafe code blocks, but it has not been intensively tested in this kind of scenario.)

NCE requires rapid distributed processing, meaning that we need to rapidly get data out of complex data structures in memory and into serialized bit streams (and then back into complex data structures at the other end). This means we can't use languages in which object serialization is a slow process with limited customizability-for-efficiently.

C++ is a large language that can be used in many different ways. Early Novamente code was somewhat C-ish and is gradually being replaced. New Novamente code makes heavy use of STL, generic design patterns, and the Boost library, which is a more elegant C++ dialect. STL and Boost do a lot of the gruntwork for you too, although they're not as simple to use as Java or Python, of course.

C++ with heavy use of STL and Boost is a different language than the C++ we old-timers got used to back in the 90's. It's still a large and cumbersome language but it's quite possible to use it elegantly and intelligently. I am not such a whiz myself, but fortunately some of our team members are.

If there were a rip-roaring fast SMP Haskell implementation with an effective customizable garbage collector, Novamente would probably be written in Haskell. But, there is not, and so Novamente is written in C++.

NCE's "internal procedures" are autogenerated (by internal learning procedures) by the system in a language called Combo that has more in common with LISP or Haskell than C++ (it's purely functional).

Some NCE components have been prototyped in Ruby and other languages prior to reimplementation in C++.

How many lines of code?

Where do Bayesian Networks fit in?

Novamente is not a neural net architecture, however Novamente includes some similar ideas. In Novamente lingo, maps (aka strange transients), and the role of the Hebbian learning is played by explicit probabilistic term logic.

In the view of Ben Goertzel:

In the brain: lower-level Hebbian learning on bundles of links btw neuronal clusters, leads to implicit probabilistic inference on strange-transients representing concepts

In Novamente: explicit heuristic/probabilistic inference on links btw nodes in NM's hypergraph datastructure, lead to implicit probabilistic inference on strange-transients ("called maps") representing concepts

Novamente approach seeks to retain the creativity/fluidity-supportive emergence of the brain's approach, while still utilizing a form of probabilistic logic rather than neuron emulations on the lower level. This subtlety causes many people to misunderstand the Novamente architecture, because they only think about the lower level rather than the emergent, "map" level. In terms of our practical Novamente work we have not done much with the map level yet, but we know this is going to be the crux of the system's AGI capability

What safeguards are built-in?

What cognitive biases are built-in?

How does Knowledge Representation work?

"Regarding knowledge representation, we have chosen an intermediate-level atom network representation which somewhat resembles classic semantic networks but has dynamic aspects that are more similar to neural networks. This enables a breadth of cognitive dynamics, but in a way that utilizes drastically less memory and processing than a more low-level, neural network style approach. The details of the representation have been designed for compatibility with the system’s cognitive algorithms."

More: http://www.novamente.net/file/AAAI04.pdf

Personal tools