What CYC has done wrong

306 views
Skip to first unread message

Linas Vepstas

unread,
Aug 16, 2016, 4:30:45 PM8/16/16
to opencog
The below is an old presentation, from 2009, but its the first I've seen of it.  Its long, I have not read it yet.   However, I suspect that it probably says good things (I hope; else that would be something else that CYC did wrong...)


Everyone working on opencog theory should probably read it and memorize it and apply those lessons to the things we do.  

Thanks to Lukasz Stafiniak for pointing this out.

--linas

Ben Goertzel

unread,
Aug 16, 2016, 4:38:10 PM8/16/16
to opencog
He's focusing on micro-level things they did wrong, but not
confronting the possibility that making a huge handcoded KB is just
the wrong thing to be doing...

For instance he notes they have had to add 75 kinds of "in" to handle
different sorts of "in" relationship ... but doesn't question whether
it might be smarter to have the system instead learn various shades of
"in", which could allow it to learn 1000s of context-specific senses
not just 75 ...

ben
> --
> You received this message because you are subscribed to the Google Groups
> "opencog" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to opencog+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/CAHrUA369vqLVG7xEx5vVS%2BASqtaKMNSVBc7S3rdxdU8gGgEFOQ%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.



--
Ben Goertzel, PhD
http://goertzel.org

Super-benevolent super-intelligence is the thought the Global Brain is
currently struggling to form...

Linas Vepstas

unread,
Aug 16, 2016, 5:12:32 PM8/16/16
to opencog
So,
... the final analysis of what it did wrong is something else that it did wrong?  Sigh.  

--linas



On Tue, Aug 16, 2016 at 3:38 PM, Ben Goertzel <b...@goertzel.org> wrote:
He's focusing on micro-level things they did wrong, but not
confronting the possibility that making a huge handcoded KB is just
the wrong thing to be doing...

For instance he notes they have had to add 75 kinds of "in" to handle
different sorts of "in" relationship ... but doesn't question whether
it might be smarter to have the system instead learn various shades of
"in", which could allow it to learn 1000s of context-specific senses
not just 75 ...

ben



On Tue, Aug 16, 2016 at 1:30 PM, Linas Vepstas <linasv...@gmail.com> wrote:
> The below is an old presentation, from 2009, but its the first I've seen of
> it.  Its long, I have not read it yet.   However, I suspect that it probably
> says good things (I hope; else that would be something else that CYC did
> wrong...)
>
> http://c4i.gmu.edu/oic09/papers/Mistakes%20Were%20Made%20OIC%202009%20keynote.pdf
>
> Everyone working on opencog theory should probably read it and memorize it
> and apply those lessons to the things we do.
>
> Thanks to Lukasz Stafiniak for pointing this out.
>
> --linas
>
> --
> You received this message because you are subscribed to the Google Groups
> "opencog" group.
> To unsubscribe from this group and stop receiving emails from it, send an

> To post to this group, send email to ope...@googlegroups.com.
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/CAHrUA369vqLVG7xEx5vVS%2BASqtaKMNSVBc7S3rdxdU8gGgEFOQ%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.



--
Ben Goertzel, PhD
http://goertzel.org

Super-benevolent super-intelligence is the thought the Global Brain is
currently struggling to form...

--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Andi

unread,
Aug 19, 2016, 8:47:14 AM8/19/16
to opencog, linasv...@gmail.com
ty, linas for this resource!

To me it looks like they do not have and never had an idea about how to do it right...

Seems they hoped that something intelligent could emerge form a knowledge base just if it is big enough. IMHO this is completely worng. The possibility of emergence exists just if the space in which this emergence occures contains  the ability of auto organisation (not self organisation, because at this stage there is no self that could do organisation).

> To post to this group, send email to ope...@googlegroups.com.
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/CAHrUA369vqLVG7xEx5vVS%2BASqtaKMNSVBc7S3rdxdU8gGgEFOQ%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.



--
Ben Goertzel, PhD
http://goertzel.org

Super-benevolent super-intelligence is the thought the Global Brain is
currently struggling to form...

--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+u...@googlegroups.com.

Linas Vepstas

unread,
Aug 20, 2016, 2:44:00 PM8/20/16
to Andi, opencog
Indeed. I just read through the slides now, and am quite surprised. He never actually identifies what Cyc did wrong, and thus is unable to make sugestions about what might work.  All of the issues that he mentions in the slides became quite apparent to me, after using OpenCyc for a month or so -- it was clear that it was very fragile, very inconsistent.  I concluded that:

-- Its impossible for human beings to assemble a large set of self-consistent statements that is bug-free.  There are simply too many things to know; the system has to be able to automatically extract/convert the needed relationships.

-- Essentially all common-sense logic cannot be converted into crisp-logic.  Here's a Zen koan from Firesign Theatre: "Ben Franklin was the only President of the United States who was *never* a President of the United States."  Any system that takes a shallow, superficial mapping of the words in that sentence will fail to understand the humor.  Cyc seemed to always try to be as superficial, as close to the surface as possible, and never attempted to encode deep knowledge. Without the ability to use probability and/or fuzzy reasoning, one can't get the joke.

Two-thirds of the way through the presentation, Lenat does start talking about pro-and-con reasoning, but somehow never quite takes the plunge into probability: its as if he thought that simply taking a democratic vote of pro and con statements is sufficient to determine truth -- but its not.

-- I do like a variation of the general concept of "micro-theories" that Cyc uses, in the sense that there is a domain or context which is active, in which all current thinking/speaking/deduction should happen in.   I also like a related idea: the idea of "parallel universes" or "interpretations" or "models(??)" or reality: during the course of a conversation (or during the course of reasoning), one develops differing possible interpretations of what is going on. These different interpretations will typically contradict each-other, but will otherwise be reasonably self-consistent.  As additional evidence rolls in, some interpretations become untenable, and must be discarded.  Other interpretations may simply become un-interesting, simply because the conversations, the topic, has moved on, and the given interpretation, although"true" and "self-consistent", does not offer any insight into the current topic.  Attention-allocation must shift way from such useless interpretations.

There is this sense of "contexts" both in Markov logic and in kripke semantics: the machinery of Markov logic, although imperfect, does provide a much more sophisticated way of combining pro vs. con evidence to determine a "most-likely" interpretation.  I keep mentioning these two things, rather than PLN, not because I beleive that they have better probability formulas, but rather, because they provide mechanisms to concurrently maintain multiple contradictory interpretations at once, and eventually eliminate most of them, leaving behind a few that are the "most likely".

I do believe that the above hint at how to avoid the mistakes of cyc -- some form of probabilistic reasoning and evidence is needed, and some way to automate learning and discovery of novelty is needed.

Whatever. Gotta run...

--linas

Jan Matusiewicz

unread,
Aug 22, 2016, 1:18:57 AM8/22/16
to opencog
General problem with AI is that it is too superficial, like mathematics. Mathematics is so powerful because it may abstract from details. We teach out children that if there are 10 objects in the box and you put one then there are 11 objects. No matter what the objects are. However, if the 10 objects are mice and another object is the cat then the question what would happens next is much more complicated. I guess CYC would simply answer that the cat eats mice, but when I imagine this situation I see many other possible outcomes depending on aggressiveness of the mice, hunger, age and size of the cat, etc. However, human uses imagination, not predicate calculus. Can AI imagine situations? Aren't _mouse_ and _cat_ is just some abstract atoms for it like numbers in arithmetic?  

Ed Pell

unread,
Aug 22, 2016, 9:01:05 PM8/22/16
to opencog

I like Pei Wang's NARS approach it allows many outcomes with varying probabilities. As a human reasoning about the cat and mice I think most likely cat eats one or more mice. Second most likely cat jumps out of box it was thrown in. Third cat attacks mice chaos ensues, the box is tipped over the mice flee the cat has a ball and may or may not eat one mouse.

Jan Matusiewicz

unread,
Aug 23, 2016, 12:33:53 AM8/23/16
to opencog
People could have a long discussion about the possible outcome. I wonder how would NARS, OpenCog or CYC respond if given such a riddle with 10 nice and a cat. Can anyone predict/easily check it?

On Tue, 23 Aug 2016 05:01 Ed Pell, <edp...@gmail.com> wrote:

I like Pei Wang's NARS approach it allows many outcomes with varying probabilities. As a human reasoning about the cat and mice I think most likely cat eats one or more mice. Second most likely cat jumps out of box it was thrown in. Third cat attacks mice chaos ensues, the box is tipped over the mice flee the cat has a ball and may or may not eat one mouse.

--
You received this message because you are subscribed to a topic in the Google Groups "opencog" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/opencog/y--WRlIxf3s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to opencog+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Ed Pell

unread,
Aug 23, 2016, 8:05:32 PM8/23/16
to opencog
All three of my answers did not come from inference. They came from a lifetime of experience with cats, boxes, and mice. It was 90% memory bases with maybe 10% logic/inference to gue the pieces together.

Noah Bliss

unread,
Aug 23, 2016, 8:20:55 PM8/23/16
to opencog
With enough data, Cogprime should be able to make at least one guess which accounted for variables such as the cats age, when it last ate, how many mice, etc. I am confident it could do so based on how critically engrained pattern matching is in its design. Given enough contextual data such as observing cats eat nice,, knowing cats are mammals, knowing mammals only need to eat until they are full, etc. drawing a reasonable conclusion should be no major stretch for the system. That recent embodiment example in Minecraft posted a few weeks ago (the one with multiple bots, keys, chests, and animals) demonstrated the system's ability to assume truths based on fuzzy but similar observations. Of course, the variables it accounts for in its prediction would have to be variables it knows may have impact. E.g. if it had never seen a cat eat a mouse, it may not assume that it would eat mice in this instance.


Tl;dr. I believe we have a solid contender so long as we stick to the basis of patterns and sufficiently educate our system both explicitly and through its own observations.

Patrick Hammer

unread,
Aug 24, 2016, 11:54:11 PM8/24/16
to opencog
"He's focusing on micro-level things they did wrong, but not 
confronting the possibility that making a huge handcoded KB is just 
the wrong thing to be doing..."

@Ben Goertzel:
I totally agree, couldn't be said better. 
And I think we are all pretty sure that this approach is not the way to go, which makes it a bit sad story also, as there was huge effort going into this project.

@Jan Matusiewicz: Interesting discussion you started here, I will try to capture the NARS-part here as this is the project I am involved in.
Your intiution about "imagination" is in line with mine, and it is very important for me personally that our project captures some of its intiutive characteristics.
As Ed Pell said, NARS would reason about multiple scenarios that are suggested by different combinations of evidence from its past experience, 
but not exhaustively, but as much as its current aviable resources allow: ("how much time do I have for my decision or answer, and to consider maybe only on the surface less appealing alternative scenarios?", "how much memory can I sacrifice to consider the relevant details of the different options?"):
If the system would have to make a decision that depends on different beliefs about outcomes of this experiment, then it would tend to consider its by experience highest supported beliefs, 
deciding in such a way that it will tend to strive to these outcomes that are most desired and most believed to be reachable.

@Noah Bliss: Nice, congratulations! I also saw the pattern mining demo Shujing Ke created, cool stuff!

Best regards,
Patrick

Linas Vepstas

unread,
Aug 25, 2016, 12:49:27 AM8/25/16
to opencog
Hi Jan,

On Mon, Aug 22, 2016 at 12:18 AM, Jan Matusiewicz <jan.mat...@gmail.com> wrote:
General problem with AI is that it is too superficial, like mathematics. Mathematics is so powerful because it may abstract from details. We teach out children that if there are 10 objects in the box and you put one then there are 11 objects. No matter what the objects are. However, if the 10 objects are mice and another object is the cat then the question what would happens next is much more complicated. I guess CYC would simply answer that the cat eats mice, but when I imagine this situation I see many other possible outcomes depending on aggressiveness of the mice, hunger, age and size of the cat, etc. However, human uses imagination, not predicate calculus. Can AI imagine situations? Aren't _mouse_ and _cat_ is just some abstract atoms for it like numbers in arithmetic? 

Nice example, nice questions. Taking this at face value, I'll say, "yes, AI can imagine situations", or at least, that is the goal.  Imagining a situation requires having a reasonably accurate model of a world with young and old cats, and knowing that young cats behave very differently than old ones.
 
How can an AI "imagine a situation"? Let me answer your second question first:  Yes, _cat_ is just some atom. Just a single ConceptNode, with the string "_cat_" in it.  The "common-sense", world-knowledge about cats is encoded in the various EvaluationLinks and PredicateNodes that encode things like "cats have claws", "cats kill small animals" "cats chase moving things" and "old fat cats are slow". The knowledge is encoded in this big messy graph, of which (ConceptNode "_cat_")  is just one vertex. The more accurate the world model, the bigger the tangle of inter-related facts.

Then "imagining a situation" would be an exploration of this tangle of inter-connected factoids.  The OpenCog AI is given a graph that encodes the statement "a box contains ten mice and one cat".  It then has to explore the network of inter-related facts, and determine if there are plausible connections between them -- e.g. "if the cat in the box is alive, and if cats kill small animals, and if mice are small animals and if the mice in the box are alive, then maybe the cat will kill a mouse" -- you can see this as a chain of inference.  Brain-storming, or imagining, is "just" a matter of chasing all these threads, ideas, and see where they lead to. 

You can also see how this goes wrong: a lack of imagination is the same as failing to explore the full network of factoids.  Perhaps it takes too much CPU time to explore it all; perhaps the exploration algorithm is flawed. Perhaps some important facts about the world are missing. 

But you also raise an interesting meta-problem: thought depends on context. If the context is "math exam", then the only right answer is "eleven", and all that thinking about cats is a distraction.  If the context is "we're drinking at a bar and you just posed a clever trick question", then being able to imagine cats is important.  Its still chaining though -- "if there are 11 objects in the box, and a nuclear bomb is an object, and nuclear bombs are radioactive, and cats are biological and bio organisms suffer from radiation poisoning, and ..." whatever -- a perhaps dizzy and useless chain of thoughts that leads nowhere, but its still an imaginative process that has to take place.

It would be fair to say that CYC was performing such chains of inference -- and so, indeed, CYC was "imagining a situation".  The problem with CYC was almost surely that it contained too many contradictory facts, that it had no way of managing contradiction, because it didn't do probability (the slides hint at "pro and con reasoning", which is a primitive kind of probabilistic reasoning).  CYC probably also had problems with inference control -- there is a combinatoric explosion of possibilities to explore during chaining.

--linas
  
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Linas Vepstas

unread,
Aug 25, 2016, 1:04:08 AM8/25/16
to opencog
On Mon, Aug 22, 2016 at 11:33 PM, Jan Matusiewicz <jan.mat...@gmail.com> wrote:
People could have a long discussion about the possible outcome. I wonder how would NARS, OpenCog or CYC respond if given such a riddle with 10 nice and a cat. Can anyone predict/easily check it?

There are multiple differences between these systems.

* CYC uses crisp boolean logic, and facts are entered by humans into its knowledge-base.

* NARS uses a certain kind of fuzzy, imprecise logic, combining float pt values using certain specific formulas.  I'm not sure how they build their knowledge base -- but I believe that facts are extracted by reading text.

* OpenCog uses a probabilistic logic, combining float pt values using certain specific formulas.  However, I designed the system so that it should be "easy" to play with different kinds of formulas -- i.e. you could implement the NARS formulas in the opencog framework, and this should be fairly easy to do.  Ben dislikes the NARS formulas, and perhaps he's right that the PLN formulas are better. I don't care, because the software allows these formulas to be tweaked, and they will be, in the upcoming years.

OpenCog builds its knowledge base by reading text, i.e. "by learning", although its ability to do so is still very primitive and crude and broken-ish.

CYC probably "knows" a lot about cats, because in the last 30 years, a bunch of humans have probably coded a lot of knowledge about cats into the CYC knowledge-base.   I doubt it can solve the box+cats+mice problem, though.

NARS -- no idea how much it knows about cats.

OpenCog -- we do not have any publicly available knowledgebase for OpenCog.  We've build a few, over the years, and there's probably something about cats in some of them, maybe.  We haven't focused on accumulating a knowledgebase, because we haven't had the infrastructure to do much with one.  I hope this will change "real soon now"....

--linas


 

On Tue, 23 Aug 2016 05:01 Ed Pell, <edp...@gmail.com> wrote:

I like Pei Wang's NARS approach it allows many outcomes with varying probabilities. As a human reasoning about the cat and mice I think most likely cat eats one or more mice. Second most likely cat jumps out of box it was thrown in. Third cat attacks mice chaos ensues, the box is tipped over the mice flee the cat has a ball and may or may not eat one mouse.

--
You received this message because you are subscribed to a topic in the Google Groups "opencog" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/opencog/y--WRlIxf3s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to opencog+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/1c51dff8-00bd-4a2a-8df8-3cf0642ef24f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Linas Vepstas

unread,
Aug 25, 2016, 1:08:35 AM8/25/16
to opencog
On Tue, Aug 23, 2016 at 7:05 PM, Ed Pell <edp...@gmail.com> wrote:
All three of my answers did not come from inference. They came from a lifetime of experience with cats, boxes, and mice. It was 90% memory bases with maybe 10% logic/inference to gue the pieces together.

I suppose. A lot of inference/deduction is subconscious.  The word "cat" evokes a huge number of mental images, in a human.  I sketched the computer equivalent of this in the other email -- "evoking an image" is actually an exploration of a connected graph of factoids. We can quibble about whether this is knowledge or memory or inference -- there are algorithmic trade-offs.

--linas

--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Linas Vepstas

unread,
Aug 25, 2016, 1:10:30 AM8/25/16
to opencog
On Tue, Aug 23, 2016 at 7:20 PM, Noah Bliss <l3vi...@gmail.com> wrote:
With enough data, Cogprime should be able to make at least one guess which accounted for variables such as the cats age, when it last ate, how many mice, etc. I am confident it could do so based on how critically engrained pattern matching is in its design. Given enough contextual data such as observing cats eat nice,, knowing cats are mammals, knowing mammals only need to eat until they are full, etc. drawing a reasonable conclusion should be no major stretch for the system. That recent embodiment example in Minecraft posted a few weeks ago (the one with multiple bots, keys, chests, and animals) demonstrated the system's ability to assume truths based on fuzzy but similar observations. Of course, the variables it accounts for in its prediction would have to be variables it knows may have impact. E.g. if it had never seen a cat eat a mouse, it may not assume that it would eat mice in this instance.


Tl;dr. I believe we have a solid contender so long as we stick to the basis of patterns and sufficiently educate our system both explicitly and through its own observations.

Thanks Noah!

--linas 

--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Jan Matusiewicz

unread,
Aug 25, 2016, 3:05:45 AM8/25/16
to opencog
Hi Linas,
Thank you for detailed explanations about evaluating graph of factoids. Surely it may reach some conclusion in this way. However, when I think about this example I create a simple model in which the cat's hunger is a variable which is constantly decreased by eating mice. When the cat is satiated it stops eating mice. It hunts later one mouse each time it is hungry. Can OpenCog create such models of situation with variables?

Imagination is also the ability to mentally put objects in space. Suppose a box has more complicated structure with some nooks and crannies inside. If I draw the scheme of a box with size and initial positions of mice and cat marked as well, a human could imagine(based on experience of watching Tom&Jerry :) ) where the mice will hide, will they be fast enough and if cat's legs are long enough to reach hidden mice. Can AI invent such simulations? 

--
You received this message because you are subscribed to a topic in the Google Groups "opencog" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/opencog/y--WRlIxf3s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to opencog+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Ed Pell

unread,
Aug 25, 2016, 9:43:16 PM8/25/16
to opencog, linasv...@gmail.com
Hi Linas, I believe we are basically in agreement. But I will comment anyway. I agree that inference and evoking an image give the same functional result. Inference by step by step traversing many serial nodes is slow. Evoking an image by broadcasting "cat" to the whole memory system and potentiating the "cat" related entries followed by broadcasting "mice" and super potentiating (or triggering) the relevant entries. The first can take thousands of time steps, the second takes about two time steps. Yes, additional steps to deal with the several memories thrown up.

I like "compute close to memory" solutions.

Ed 

Linas Vepstas

unread,
Aug 25, 2016, 11:14:50 PM8/25/16
to opencog
Csecz Jan,

On Thu, Aug 25, 2016 at 2:05 AM, Jan Matusiewicz <jan.mat...@gmail.com> wrote:
Hi Linas,
Thank you for detailed explanations about evaluating graph of factoids. Surely it may reach some conclusion in this way. However, when I think about this example I create a simple model in which the cat's hunger is a variable which is constantly decreased by eating mice. When the cat is satiated it stops eating mice. It hunts later one mouse each time it is hungry. Can OpenCog create such models of situation with variables?

In principle, yes; in practice, I don't think anyone has done so, not even as an example or demo. It actually would be a worth-while example -- i.e. create a very simple atomspace, representing a sequence of points-in-time vs. hunger, and have a "no longer hungry" state trigger some action.  Excellent task for someone trying to learn the system, as it will require some deeper understanding and some invention and possibly some bug fixes.

OpenCog does have a TimeServer. Its a bit raw, under-utilized, probably buggy, and certainly incomplete. The intent is that the TimeServer can speed-up and automate time-relative queries, such as "before", "after", "same time". 

There is no built-in system for automating or speeding up any "when the threshold of this drops below some level, trigger something".  We haven't advanced to needing something like this yet.

Re; below: we do have a SpaceServer, which currently can deal with "near", "far", "closer", "next to" type relationships.  There is no in-built system form modelling the interiors or rooms.

There is a proposal to extend the SpaceServer to handle OctTrees, which in principle would allow it to model walls, corridors, nooks, open sky, fences, etc. however, no one has used it for that purpose yet, not even in a demo or an example. This would be another good demo to write.

The space server does (or did??) interop with the MineCraft backend. Not sure how.

Note that neither the space server nor the time server are needed to represent space and time in opencog. They are there to optimize performance, only.  You can model space and time just fine with atoms. It just won't be very fast or efficient.   This whole area needs work.

--linas

Linas Vepstas

unread,
Aug 25, 2016, 11:27:06 PM8/25/16
to Ed Pell, opencog
Hi Ed,

Yeah, well, there is opencog (cog prime??) the abstract architecture, and opencog the actual code base. I presume that the abstract architecture can be mapped to various nifty algos. (e.g. scatter-gather map-reduce type broadcasting that you allude to)  although figuring out how to do this well is not easy (we've tried).  After that, how to get that into the current code-base is a rather different challenge.

--linas

Ben Goertzel

unread,
Aug 26, 2016, 8:01:59 AM8/26/16
to opencog
It's a side point in this discussion, but just FYI, the SpaceServer
and TimeServer have been integrated by Mandeep into the
TimeSpaceServer, which is implemented based on octrees ...

-- Ben G
>>>> an email to opencog+u...@googlegroups.com.
>>>> To post to this group, send email to ope...@googlegroups.com.
>>>> Visit this group at https://groups.google.com/group/opencog.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/opencog/b40a25d7-a3a9-4406-8ae8-ee54fb025462%40googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "opencog" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/opencog/y--WRlIxf3s/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> opencog+u...@googlegroups.com.
>>> To post to this group, send email to ope...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/opencog.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/opencog/CAHrUA35YO3gA7gtQ8XefhvqvM328JbWO8e8NviKAdbYV8Q%3D1ag%40mail.gmail.com.
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "opencog" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to opencog+u...@googlegroups.com.
>> To post to this group, send email to ope...@googlegroups.com.
>> Visit this group at https://groups.google.com/group/opencog.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/opencog/CA%2B2nBRv08AFbOw83RLG5eMANq%2B%2Bx%2B0ZOTrq%2B4BJEnAVwmAc9PQ%40mail.gmail.com.
>>
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "opencog" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to opencog+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/CAHrUA34B%3DzND5ijL-KrzOc9Bv4pNQi6ESpyKyiAGJe1w0ibC9w%40mail.gmail.com.
>
> For more options, visit https://groups.google.com/d/optout.



--

Ed Pell

unread,
Aug 26, 2016, 7:00:30 PM8/26/16
to opencog, edp...@gmail.com, linasv...@gmail.com
A company Deephi Techis offering a FPGA/memory chip on a board that could be used for fast searches of text based db. http://www.deephi.com/en/

Jan Matusiewicz

unread,
Aug 27, 2016, 2:34:25 AM8/27/16
to opencog, edp...@gmail.com, linasv...@gmail.com
Thank you very much for your explanations and interesting discussion. I understand that TimeSpaceServer could be potentially used for solving mice and cat problem with complex box structure. What bother me, however is that treatment of space is different than in human cognition, too much secondary. Small child would first create concept of cat or mouse and their behavior (running, playing) based on images and videos (both seen directly or on computer screen). Only later they may form it into predicates like "every mouse is a mammal". Predators also learn this way about classification and behavior of their victims. On the contrary OpenCog's knowledge base is filled by interpreting text, which is much more advanced human ability. It is more difficult for a human to learn about something he or she cannot imagine, like learning about files or directories if you have never used a computer. One could make a test: take a text about mice and cats suitable for OpenCog and replace every noun, verb and adjective with words from some exotic language. Then give the text to another person and ask it to reason about "how many 鼠 a would 吃". This would be a difficult task for a human and may show if there are limitation of symbolic approach.

On the contrary - image and video processing is a very complicated task itself. It is also much easier to encode rules of logic directly than teaching it to AI of the intelligence level of 3-years old child or a dog. And such intelligent AI hasn't been built yet as far as I know. I guess there are other approaches to AGI which consider imitating animal intelligence the first step for making human-level intelligence.

--Jan

--
You received this message because you are subscribed to a topic in the Google Groups "opencog" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/opencog/y--WRlIxf3s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to opencog+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Linas Vepstas

unread,
Aug 27, 2016, 6:15:36 PM8/27/16
to Jan Matusiewicz, opencog, Ed Pell
On Sat, Aug 27, 2016 at 1:33 AM, Jan Matusiewicz <jan.mat...@gmail.com> wrote:
Thank you very much for your explanations and interesting discussion. I understand that TimeSpaceServer could be potentially used for solving mice and cat problem with complex box structure. What bother me, however is that treatment of space is different than in human cognition, too much secondary. Small child would first create concept of cat or mouse and their behavior (running, playing) based on images and videos (both seen directly or on computer screen). Only later they may form it into predicates like "every mouse is a mammal". Predators also learn this way about classification and behavior of their victims. 

Yes. As you state, video and image processing is very complex.

Other emails did sketch a way of allowing video and audio to become first-class, in opencog.  The thought experiment goes something like this:

Suppose you had a single-bit visual sensor to the world, and a single-bit audio sensor: these returned only brightness, and loudness.  After observing the world with these, you might be able to deduce that sometimes, sudden changes in brightness and loudness are correlated.  The reason I picked this one-bit example is that its straight-forward to envision how to encode this input into opencog atoms, and how to use the pattern miner to discover correlations.

But of course, one bit is not enough.  Suppose instead, one had a visual field with thousands or millions of pixels, and an audio sensor with  good dynamic range and time resolution.  Imagine that, from somewhere (e.g. hand-coded, by a human) you had some filters: for example, a loudness filter that triggers whenever the sound volume changes by 10 decibels in 1/10th of a second.   Another filter that triggers only for high frequencies. A third filter the triggers only in a narrow band near 440 Hz. Imagine a decent collection of these.

Imagine also a similar set for video: a filter that triggers only if the left side of the screen is a lot brighter than the right side. A filter that triggers only if the upper half of the view is a lot bluer than the bottom half, and so on.

This collection of filters are each pumping out a set of atoms into the atomspace.  One can use pattern mining to search for correlations between events. For example, this could be done by having a genetic-programming process, such as the MOSES "knob-turning" tree-mutation generator, randomly combine these various inputs into some program tree:  e.g. "if the top half of the visual field is blue, and there is a sudden change in volume in a narrow band near 440 Hz, then trigger an event".  Clearly, this event will almost never trigger "in real life", and so we discard it (because the novelty scoring for the pattern miner says that this is a boring event).  However, there may be other events that do seem significant, that do trigger: e.g. a sudden change of brightness, coupled to the upper-half being blue, coupled to a change in audio volume.  This is an event that would trigger: we call it "walking out of a door in the daytime".

Because it triggered, it is subject to the reinforcement learning.  We want to keep this particular combination around.  In practice, there is a performance problem: Its highly inefficient to evaluate the moses tree that generates this input, and do so 10 times a second.  So once we decide to keep a particular pattern, we can (we should, we must) compile it down to some fairly efficient assembly that could run on some GPU. Technically challenging, but conceptually easy: the program tree already encodes everything we need to know for this stimulus, and so "compiling" really is the right word to describe what has to happen.

Once compiled, cpu resources are freed up to explore other combinations: what correlates well with going out of doors?  Perhaps the leg motors were turning when the moving-out-of-doors event happened??  Perhaps there is some annoying human being asking "hey what just happened just now?"

Clearly, this kind of random exploration of correlated sensory events requires absolutely huge and fantastic amounts of CPU time, and training time. Clearly, in my description above, I'm stealing ideas partly from genetic programming (i.e. moses) but also from neural nets (reinforcement)  Building something fast and efficient that can do the above would be a giant task, and when completed, it might not even work very well. It might work poorly.  

One reason that people are infatuated with deep-learning neural nets is that NN's provide a concrete, achievable architecture that is proven to work, and is closely described in thousands of papers and books, so any joe-blow programmer can sit down and start coding up the algorithms, and get some OK results. By contrast, what I describe above is unclear, hand-wavy, is missing specific formulas and adequate pseudo-code, so who the heck is smart enough to try coding that up, based on such a short sketch?  Add to that the risk that it might not even work every well, when partly-completed? Or that it might need to be re-designed?  Pfft. Yeah, so no one really wants to code anything like that, even though this, or 101 variations thereof that Ben could elaborate on, do seem like "the right thing to do". 

Re; your comments below, about language: one reason that langauge is interesting is because one needs far far far less cpu cycles to get the learning loop working. Written text has already gone through the audio-chunking of raw audio into sounds, echo cancellation, noise-suppression, chunking into phonemes, morphemes, words.  Most grammatical mistakes from spoken text are already fixed in written text.   So this huge, difficult audio-processing pipeline has been short-circuited, bypassed, and we're just skimming the cream off the top. 

--linas

Ed Pell

unread,
Aug 28, 2016, 3:30:03 PM8/28/16
to opencog, jan.mat...@gmail.com, edp...@gmail.com, linasv...@gmail.com
Linas, does it pump into the atomspace or into a working-memory-atomspace? It does not seem like information you want to retain for the long term.

Yes! Predefined filters. Biological neural networks have the advantage of preexisting filters discovered by evolution over hundreds of millions of years. Both NN and symbolic approaches will need preexisting filters. Maybe given enough time both could "evolve" the needed filters but I know we do not want to wait that long.

The filters can be software defined filters feeding into neural networks. They can be neural network filters feeding into software. And yes the other two combinations. 

Ed
To unsubscribe from this group and all its topics, send an email to opencog+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.

Linas Vepstas

unread,
Aug 28, 2016, 9:07:50 PM8/28/16
to Ed Pell, opencog, Jan Matusiewicz
On Sun, Aug 28, 2016 at 2:30 PM, Ed Pell <edp...@gmail.com> wrote:
Linas, does it pump into the atomspace or into a working-memory-atomspace? 
It does not seem like information you want to retain for the long term.

Right. We don't have any particularly clear-cut answer on this; it remains an issue to be further developed.  Atoms places in the space-time server do NOT go in the main atomspace, thus avoiding the overhead of indexing there. However, they are necessarily indexed in the octree, which incurs a different kind of overhead. 

In principle, one can run multiple atomspaces, and multiple cogservers; in practice, this is only infrequently done (with one notable exception: the pattern matcher creates working-memory-atomspaces which get created, used and discarded in fractions of a millisecond).


Yes! Predefined filters. Biological neural networks have the advantage of preexisting filters discovered by evolution over hundreds of millions of years. Both NN and symbolic approaches will need preexisting filters.

Anything that is predefined and hard-coded can be "easily" wrapped in an atom.  (for example, as a coding/implementation example, the ParallelLink creates threads, and JoinLink joins them. They're to itty bitty C++ classes that interact with the operating system to do things.)

Ben has long been excited about creating new atoms that (for example) wrap up TensorFlow and/or theano or other GPU-based fast solvers. Still would be a good project.

Perhaps screwing around with these could provide the kind of bandwidth needed for audio or video processing.
 
Maybe given enough time both could "evolve" the needed filters but I know we do not want to wait that long.

Well, how long is that?  As a bootstrapping problem? Clearly, it is important, in the long run, to make sure the system can abstract and learn on its own: we cannot possibly hard-code the contents of the system.   This goes back to the CYC's core mistake: the attempt to hard-code the knowledge-base by humans.

You will have another, different CYC-type failure, if you attempt to hand-code (by humans) the visual subsystem.  Automation is kind-of the whole point of deep learning, etc.

--linas 

Jan Matusiewicz

unread,
Aug 30, 2016, 2:23:15 AM8/30/16
to linasv...@gmail.com, Ed Pell, opencog

You will have another, different CYC-type failure, if you attempt to hand-code (by humans) the visual subsystem.  Automation is kind-of the whole point of deep learning, etc.

This would be great if the system could also learn how to interpret visual data without a need to hard code anything. However, I am afraid it would be more chalanging than anything else. Humans have built-in visual processing system. Imagine that someone presents you images in a form of sequence of color codes of consecutive pixels like #FF88AA#0F0F0F and expect to match images presenting the same object seen from different angle. This would be a very difficult task for human.

It is chalanging enough to make a system, which learn that cat ("C") chases and eats every mouse ("M") if the only input given is a time-based sequence of text screen-shots of the situation like
........................
....M...................
........................
................C.......
........................
....M..........M........
........................
Transforming character matrix representation into list of animals with their current position, finding that x, y of C approaches x, y of some M, etc. would not be easy. That's why testing OpenCog in Minecraft environment seems like a good first step.


>One reason that people are infatuated with deep-learning neural nets is >that NN's provide a concrete, achievable architecture that is proven to >work, and is closely described in thousands of papers and books, so any >joe-blow programmer can sit down and start coding up the algorithms, >and get some OK results
I also experienced that when I say Artificial Intelligence, people think: Neural Networks. Too few people try different approaches.

Linas Vepstas

unread,
Sep 1, 2016, 12:18:37 AM9/1/16
to Jan Matusiewicz, Ed Pell, opencog
Sure. Not sure what to say.  The human brain certainly has the ability to perform affine transformations at 60 frames per second.  Presumably, babies learn how to do this by moving their heads around, and seeing how the visual input changes. I'm not a physio-psychologist, but if i recall correctly, it takes 3 months or 1+ years for the child visual system to stabilize, and additional learning (hand-eye coordination) continues through the teens and young adulthood.  That represents -- lets see -- 30 frames per second x 3600 seconds/hour x 12 waking hours/day x 400 days = 500 million frames of training data. -- five-thousand hours of training data.

That's a lot of data.

--linas

Reply all
Reply to author
Forward
0 new messages