Jeff,
After a drawing an inheritance network with the terms in your example,
I see the problem is not what I thought --- actually it is not a
"bug", but a "feature" --- remember: one important feature of NARS is
to make "reasonable mistakes". ;-)
Let's first see a (conceptually) simpler version: replace
"(|,canary,penguin)" in the example by "bird", and add the following
two premises:
<canary --> bird>. %1.0000;0.9999%
<penguin --> bird>. %1.0000;0.9999%
Then you should be able to get the same conclusion with a very
slightly lower confidence, that is
<{p2} --> penguin>.
<penguin --> bird>.
---------------------------
<{p2} --> bird>. %deduction%
<{p2} --> bird>.
<{p2} --> nofly>.
---------------------------
<bird --> nofly>. %induction%
<bird --> nofly>.
<canary --> bird>.
---------------------------
<canary --> nofly>. %deduction%
The conclusion is wrong, but remain valid given the information.
Furthermore, if more penguins are observed, the conclusion will become
more and more confident, as you observed, but the problem is not
caused by "a wrong logic", but by "biased data" --- this is exactly
where things like stereotype and superstition come from. The solution
is "diversified data", of course, which will revise the previous
conclusions.
Now how about (|,canary,penguin)? The only difference is the implicit beliefs
<canary --> (|,canary,penguin)>. %1.0000;1.0000%
<penguin --> (|,canary,penguin)>. %1.0000;1.0000%
So the inference can be "justified" in the same way --- wrong
conclusion (to us), but valid process.
Please note that "canary" is not really arbitrarily introduced:
(|,canary,penguin) is formed only when the system recognized some
common instance/property of "canary" and "penguin". If this turns out
to be a big problem, we can add the discount factor to all rules
introducing new terms into conclusion, but I'm afraid that will be an
overreaction.
Given the above consideration, I'd rather not to change anything, and
see if this issue can appear in more serious form. However, before
(temporarily) closing the issue, I'd like to know if the above
explanation makes sense.
Pei
On Sun, Sep 20, 2009 at 1:35 PM, Jeff Thompson <
jef...@gmail.com> wrote:
>
> Pei Wang wrote:
>> On Sat, Sep 19, 2009 at 4:20 PM, Jeff Thompson <
jef...@gmail.com> wrote:
>>
>>> I'm still seeing derivations like the following which infer from <{p2}
>>> --> penguin> and <{p2} --> nofly> to <canary --> nofly>. It does this by
>>> introducing "canary" into <{p2} --> (|,canary,penguin)> "for free" with
>>> the same truth value. Should this be discounted also, since canary and
>>> penguin don't correlate well?
>>>
>>> <canary --> nofly>. %1.0000;0.4475% {128125: 8;7}
>>> <(|,canary,penguin) --> nofly>. %1.0000;0.4475% {82778: 8;7}
>>> <{p2} --> nofly>. %1.0000;0.9000% {0: 8}
>>> <{p2} --> (|,canary,penguin)>. %1.0000;0.9000% {2870: 7}
>>> <{p2} --> penguin>. %1.0000;0.9000% {0: 7}
>>>
>>
>> My current plan is to apply the discount factor whenever a compound is
>> formed, but not when it is used (which may be too much). The rule in
>> structuralCompose1 is the latter case --- the conclusion <{p2} -->
>> (|,canary,penguin)> is derived from <{p2} --> penguin> plus the
>> information that "penguin is a component of an existing compound
>> (|,canary,penguin)" (which doesn't show up in the derivation tree).
>> When (|,canary,penguin) was formed earlier, the discount factor should
>> have been applied, which influence the priority of the concept, so if
>> the correlation is high, the concept won't be often used.
>>
> I still don't understand where the discount, if any, is used. NARS does
> induction between <{p2} --> (|,canary,penguin)> and <{p2} --> nofly> to
> get <(|,canary,penguin) --> nofly>, using the usual truth value for
> induction with no discount. Then it "removes" penguin to get <canary -->
> nofly> with the same truth value, no discount.
>
> In this way, NARS starts with a high confidence statement like
> <{p2} --> nofly> %1.0000;0.9000%,
> introduces an unrelated term like 'canary', and concludes
> <canary --> nofly>. %1.0000;0.4475%
> when the only connection between 'canary' and 'nofly' is from <canary
> --> fly> and the "definition" where I'm trying to say that "fly" and
> "nofly" are not connected. The problem is that NARS then does a similar
> derivation starting from different evidence to also conclude <canary -->
> nofly>, then does revision to combine them. In this way, NARS can
> convince itself with high confidence of just about anything. That can't
> be right.
>
>
> >
>