Belief based programming language

  • 23 Replies
  • 972 Views
*

WriterOfMinds

  • Trusty Member
  • ********
  • Replicant
  • *
  • 513
    • WriterOfMinds Blog
Re: Belief based programming language
« Reply #15 on: February 13, 2022, 06:41:47 pm »
I think the assumption of determinism in FSMs is fine. It may not be 100% true, given the existence of (for instance) radiation-induced errors, but it's true enough that we can probably act as if it were always true.

However, I don't think that means you can dispense with probabilities - because that would require the additional assumption that your AI mind can acquire absolute knowledge of all FSMs it has to interact with. And unless the AI's environment is very simple, that may not be possible. Probability in a piece of cause-and-effect knowledge is not just a measure of how likely A is to cause B, in an objective sense. It's also a measure of how confident we are that we know A causes B. Dealing with this is a key aspect of the NARS design and is, I think, one of the things it does well.

But you're creating a virtual world here, right? If you are planning to give your AI direct access to objective facts about its environment (i.e. it can just ask about a rule of the world and simply be told the rule), then you might be able to assume absolute knowledge as well. If you are planning to do inductive learning or anything like that, then you can't.

Acuitas' C&E database does not include probabilities yet - relationships there are absolute. But I consider this a simplifying approximation and a shortcoming, and I plan to introduce probabilities eventually, in some form.

*

ivan.moony

  • Trusty Member
  • ************
  • Bishop
  • *
  • 1645
    • contrast-zone
Re: Belief based programming language
« Reply #16 on: February 13, 2022, 07:21:51 pm »
It may be a case that only on/off rules hold. Either they hold, either not. Probability may be introduced within rules that hold, once that ruleset is extended by numbers from real numbers set. New rules that operate on these real numbers can be introduced, holding facts about probabilities.

But I assume dealing with it that way may introduce a bottleneck in valuable processor time.

I imagine a set of probability rules accelerated by some low-level code for efficiency. Something like you can program addition/subtraction/multiplication/division/... in a programming language just using strings, but it will be slower than using commands provided by the processor. On the other side, accelerated low-level commands are bounded by word size like 64 bit numbers, while string algorithm version would be bounded only by available memory.

In short, I believe probability can be simulated by rigid rules above the rule engine, in consciousness level, and they would probably be more flexible, but the execution would be faster to low-level code them beneath the consciousness level, right into the rule engine using native programming language benefits.

*

Zero

  • Eve
  • ***********
  • 1287
Re: Belief based programming language
« Reply #17 on: February 13, 2022, 09:39:17 pm »
I agree: if probabilities are used, they would be better and faster as "native" (built in the engine) rather than as entities in the emulation (upper) layer. Now the question is, are they needed in such a case?

The agent does not have direct access to the rules, it only makes observations: it perceives a part of the state of the world, nothing more.

The notion of confidence is exactly what I want to reduce, with the following scheme:

1) one observed occurence is enough to say "maybe it holds"
2) no matter how many additional occurences you observe, from a logical (absolute) perspective you can never get past "maybe it holds" (to some "I know it holds")
3) one observed counter-example is enough to say "I know it doesn't hold"

Point 2 is a consequence of point 3.

If we push the notion of confidence to its purest mathematical essence, absolute certainty is unreachable, unless the world is over and won't evolve anymore.

So, while probabilities certainly bring a rich ecosystem of valuable knowledge, can we imagine that an agent with only a discrete confidence system (unobserved / may hold / doesn't hold) would still be useful and capable of intelligence? Would it be able to learn anything it needs, in this deterministic LogicLand?

Edit:
Wait, since the world is deterministic, being more confident after 1000 occurences than after 10 would even be a fallacy, wouldn't it?
« Last Edit: February 13, 2022, 10:26:20 pm by Zero »

*

HS

  • Trusty Member
  • **********
  • Millennium Man
  • *
  • 1157
Re: Belief based programming language
« Reply #18 on: February 14, 2022, 01:44:32 am »
Wait, since the world is deterministic, being more confident after 1000 occurences than after 10 would even be a fallacy, wouldn't it?

If, like a block on an inclined slope, a system is simple enough so that the relevant initial conditions are preserved, then yes. With more complicated systems, I think a distant variable could affect the result once every 11 trials, or in an unpredictable pattern; then every occurrence should change your confidence.

*

WriterOfMinds

  • Trusty Member
  • ********
  • Replicant
  • *
  • 513
    • WriterOfMinds Blog
Re: Belief based programming language
« Reply #19 on: February 14, 2022, 02:34:45 am »
HS is right ... let me try an example.

Let's say your world contains the 100% deterministic relationship "(A and not B) always causes C." And let's suppose that B co-occurs with A on a periodic cycle, 1 out of every 100 times that A occurs. After the first observation of C following A, your agent would develop a belief that "A maybe causes C." It would need (on average, depending on where in the cycle it made its first observation) 50 observations to learn that this is false and to discover the correct relationship.

To complete the rationale for more observations yielding a higher confidence, I think you need an Occam's Razor-like assumption: relationships which take many observations to discover (due to complexity, separation in time and space, etc.) are less common than simple relationships.

*

MagnusWootton

  • Starship Trooper
  • *******
  • 496
Re: Belief based programming language
« Reply #20 on: February 15, 2022, 03:20:08 am »
I vote deterministic.

Not the chance of something happening, who cares about that, why is it fricken happening.  thats determined.

*

MikeB

  • Mechanical Turk
  • *****
  • 154
Re: Belief based programming language
« Reply #21 on: February 15, 2022, 05:20:35 am »
What good is an agent that only observes and guesses? Huge computing power used for an unreliable result...

The life of an insect is working with what you have for the best result for yourself then being generous to others in the tribe then other species... Almost no computing power used.

FSM/solid state machines are literally like an insect.... nothing to learn, only decisions to make based on the environment... IE. Everything is already known. Not the fate, but the directions only.

*

MagnusWootton

  • Starship Trooper
  • *******
  • 496
Re: Belief based programming language
« Reply #22 on: February 15, 2022, 06:13:16 am »
If only you could get the computer to program itself via brute force validation.   but its unfortunately going to take 2^synapses trials to find the result,   then that would be more than just some statistical observation->prediction machine, it literally develops the closest matching algorythm to its environment!!!!!

But I guess doing it that way isn't quite rocket science,   and ppl may actually show quite distaste for it when they see what u'r hiding under the carpet about the situation.   :)

Like maybe,  its not quite so genius. Since most bums on the street probably have heard about the man that walks in all directions from now and finds where the wine is. 

Its a simplistic thing to know,   but alot of very important truths in life are simply knowable, such as how to make cheese,    its a bit of conundrum working out WHY it happens, but u can fluke doing it with vinegar and milk together.   Another simple one is amalgamating chalk powder into solid chalk,  if u put it in water, vibrate it, heat it, put in enclosed vessel with small leak, apply pressure and make it acidic, it will become like glass after a few days,  its amazing, but there's nothing really that challenging about it, especially mentally, actually going through the practical to do it poses some engineering riddles/hurdles to overcome.

 But the strange thing about A.I.  is its not even really hard to know how/why it works, (brute force validation is a  fairly simple topic anyone can understand) its just we cant do it without a quantum computer, so thats the less exciting thing about something that would grant someone greedy power beyond,  so its best if we didn't have it anyway.

These kind of things are so banal you feel silly for even appreciating them at all, and u may as well just be a brickies labourer.

"Brute force" is a good way to explain something that doesn't have finesse',  like maybe mental arithmetic.  And the concept is simple.


*

Zero

  • Eve
  • ***********
  • 1287
Re: Belief based programming language
« Reply #23 on: February 15, 2022, 09:38:55 am »
I want to thank you for your help. I still cannot explain why, but I know that it is possible to build a Prolog-like tool that has full access to the 3 rungs of Judea Pearl's ladder of causation. I'll do my best to explore this, and report what I find!
« Last Edit: February 15, 2022, 10:32:28 am by Zero »