CS 8803B - Artificial Intelligence
09/16/2002
Matthias Gauger
Semantic networks (continued from last lecture)
Why is it called semantic networks?
Back to our example:
Jack got a rope.
He wanted to commit suicide.
--> One way to answer the question what the second sentence means would be to analyze the syntactic structure.
But: You can say that Jack was unhappy. --> The syntactic structure doesn't tell you that.
- The input may be partial.
- The question might be about something which is absent in the input.
--> Intelligent agents might nevertheless be able to answer it.

We can answer this question because spreading activation establishes the semantic connection.
Another example: A machine making conversation with you without enabling you to discover that you are talking to a machine.
--> Can't be done with only the input as a basis.
Question from class: Does the programmer have to handcraft the semantic networks?
Answer: In most of the times the semantic networks are handcrafted.
Supplement to the other example from last lecture:
Two layer semantic network:

Discrimination networks
How do we capture information about examples, instances?
Example: Three toy blocks:

Now you present an unknown block to the intelligent agent. Some properties are known: height, width
Question: What is the color of the block?
How can an intelligent agent decide which color is correct?
There are two different situations:
- The intelligent agent is provided with a set of examples. Then you ask one question.
- The intelligent agent is provided with only one example at a time.
- incremental
- We concentrate on this in our current context.

Consistency heuristic

Use the properties you know about to find the case most similar to the new (unknown) case and then make a prediction about the unknown features.
--> Assumption: World is full of patterns.
The simplest solution for this task: Put all the examples in an array.
- easy to do
- probably not very efficient
If the examples come incremental, you can do it with log2(n) (n->number of cases, 2->binary tree):
Incremental learning
Big assumption:
- The list of questions is known.
- The list of questions is prioritized and the priorities are known.
Back to the example:
q1: How large is the height of the block?
q2: How large is the width of the block?
We start with a dummy node and enter "C1":

To enter "C2" we have to enlarge our tree and use the first question:

Entering "C3":

Final state of the tree:

A discrimination network is a tree.
- leafs --> instances / examples / cases
- non-leaf nodes --> questions
In this example only binary questions are used but you could also create more complex trees.
With an unknown object you simply follow the tree to classify the object.
Question from class: What if the color is on top of the tree?
Answer: You will have to reprioritize the questions. The list of features is not arbitrary, it is defined before the discrimination tree is constructed.
You can also build redundant discrimination networks.
Question from class: Is there a way in which the tree can reorganize itself?
Answer: There is made quite some effort in this area. Here you often speak of "Dynamic memory".
Why is it dynamic?
- Constant addition of cases
- Re-organization
When should you re-organize the tree?
Re-organization should be done when the tree becomes highly skewed (The tree should also have reached a certain size).
--> You need measures about how symmetric the tree is.
- Cost of incremental learning
- Retrieval cost
--> You want to re-organize when the retrieval costs get too high.