some thoughts to consider 13 what do we really mean by ‘learning’ in a software system? can...

10
Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know? Can learning take place without some sort of feedback mechanism or without an evaluation metric? Take a look at WordNet: http:// www.cogsci.princeton.edu/~wn / It’s a good example of corpus-based perspective of natural language processing. So, what does it mean to make use of ‘intelligent software technology’?

Upload: magnus-stephens

Post on 11-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

Some Thoughts to Consider 13

• What do we really mean by ‘learning’ in a software system?

• Can humans or systems learn anything that they don’t already know?

• Can learning take place without some sort of feedback mechanism or without an evaluation metric?

• Take a look at WordNet:• http://www.cogsci.princeton.edu/~wn/

• It’s a good example of corpus-based perspective of natural language processing.

• So, what does it mean to make use of ‘intelligent software technology’?

Page 2: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

The Nature of Planning

• Planning can be viewed as a type of problem solving in which an agent uses beliefs about actions and their consequences to search for a solution over the more abstract space of plans, rather than over the space of situations (states).

• Most planning systems represent states and operators in the STRIPS language.• STRIPS - Stanford Research Institute Problem

Solver.

• Now it is SRI International.

• Now it is a planner, not a problem solver.

• STRIPS operators have 3 components:• Action description.

• Precondition.

• Effect.

• Typical planner agents are regression planners that start with goal states and work backward to successively find preconditions and operators that achieve them. A solution to the plan is found when all preconditions to all the plan steps are satisfied.

• Knowledge representation for planning is similar to that for problem solving, except that the knowledge is one level of abstraction higher.

Page 3: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

The Nature of Planning 2

• Representation languages must be expressive enough to describe a wide variety of problems, but restrictive enough to allow efficient algorithms to act over them.

• Important representational entities in planning are:• States

• Goals

• Actions

• Each of the major approaches to planning has its adherents, and there is as yet no consensus on which is best.• Forward state-space search is too inefficient to be practical.

• Backward state-space search is also inefficient, but to a lesser degree.

• Suitable heuristics are most important.• Can generate a heuristic by formulating a more relaxed

problem.

• Partial order planning involves doing many actions in parallel, rather than in sequence.

• A planning graph can be used with any of the planning techniques to give better heuristic estimates.• The graph becomes a computational roadmap for the problem.

• GraphPlan is a tool for using the graph.

• Planning involves reasoning on plans and plan representations, not on the states of the world.

Page 4: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

Use of Prior Knowledge in Learning

• Agents can be made to learn with or without prior knowledge.

• There is a difference between function-learning using inductive inference over examples and logical formulation of what is to be learned.• It is the same kind of distinction we encountered

between problem solving using goals and states and planning.

• The use of prior knowledge improves an agent’s ability to learn and accelerates the learning process.

• There are 3 popular approaches to using prior knowledge:

• Explanation-based learning extracts general rules from single examples by explaining the examples and generalizing the explanation.

• Relevance-based learning uses prior knowledge that establishes relevant attributes that serve to reduce the hypothesis space and speed up the learning process.

• Knowledge-based inductive learning finds inductive hypotheses that explain sets of observations with the help of background knowledge.

Page 5: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

Natural Language Processing

• A natural language system designed to understand and manipulate language should be capable of:• Accepting input in natural language text,

• Storing knowledge related to the application domain,

• Drawing inferences from that knowledge,

• Answering questions based on the knowledge,

• Generating responses.

• Natural Language Levels of Analysis:• Prosody - rhythm and intonation.

• Phonology - Sounds that make language.

• Morphology - Components & rules that form words.

• Syntax - Rules for combining words into sentences.

• Semantics - Meaning of words and phrases.

• Pragmatics - Contextual use of language.

• World Knowledge - Goals, intentions, beliefs.

• Natural language processing techniques make it practical to develop software systems that make queries to a database, extract information from texts, retrieve relevant documents from a collection, translate from one language to another, or recognize spoken words. In all of these areas, there exist programs that are useful, but there are no programs that do a thorough job in an open-ended domain.

Page 6: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

Example of Interpretation Ambiguity

Suppose we were interpreting news accounts using a frame-based representation approach.

Earthquake Hits Lower Slabovia

Today an extremely serious earthquake of magnitude 8.5 hit Lower Slabovia killing 25 people and causing $500,000,000 in damage. The President of Lower Slabovia said the hard-hit area near the Sadie-Hawkins fault has been a danger zone for years.

Earthquake Summary Pattern

An earthquake occurred in value-in-location-slot value-in-day-slot. There were value-in-fatalities-slot fatalities and value-in-damage-slot in property damage. The magnitude was value-in magnitude-slot on the Richter Scale, and the fault involved was the value-in-fault-slot.

Page 7: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

Example of Interpretation Ambiguity

Earthquake Instance Node

(Earthquake-13 (Instance-of earthquake) (Location "Lower Slabovia") (Day today) (Fatalities 25) (Damage 500000000) (Magnitude 8.5) (Fault "Sadie Hawkins"))

Instantiated Interpretation

An earthquake occurred in Lower Slabovia today. There were 25 fatalities and $500,000,000 in property damage. The magnitude was 8.5 on the Richter Scale, and the fault involved was the Sadie Hawkins.

A Fault of Considerable Magnitude:

Earthquake Study Stopped

Today the President of Lower Slabovia killed 25 proposals totalling $500,000,000 for research in earthquake prediction. Our Lower Slabovian correspondent calculates that 8.5 research expenditures are vetoed for every one approved. There are rumors that the President's close advisor, Sadie Hawkins, is at fault.

Page 8: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

The Central Role of Knowledge Representation

Knowledge Representation

Language•grammar•morphology

Thought•concepts•scripts•frames•context

Speech•phonemes•signal analysis

Vision•scene analysis

Interpretation•semantics•pragmatics

Planning•beliefs•goals

Classification•ontology

Reasoning•rules•logic

Problem Solving•states

ExplanationLearning

Page 9: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

AI-KBS Summary 1

• Intelligent systems are often radically different in construction from traditional systems.

• Taking knowledge out of programming language code and representing it in declarative knowledge representation structures is the foundation for building intelligent software systems.

• Knowledge representation is the crucial factor in the competence of the resulting system.

• There are tremendous computational alternatives available when building software with knowledge components.

• Knowledge based systems are difficult to design and implement.

• Large amounts of design time are required up front in the knowledge based systems project.

• Rapid prototyping is essential.

Page 10: Some Thoughts to Consider 13 What do we really mean by ‘learning’ in a software system? Can humans or systems learn anything that they don’t already know?

AI-KBS Summary 2

• There are numerous alternative strategies for representing knowledge:• Part of the ‘art’ if intelligent system design is to

match knowledge representation alternatives to the problem to be solved.

• Using knowledge representation techniques raises the level of abstraction of the problem solving process in software design.

• Both human-crafted symbolic knowledge and emergent knowledge have their place in the design of knowledge based systems.

• The AI tradition offers numerous powerful techniques for building knowledge-enriched software systems that can handle complex problems that often elude traditional software solutions.

• It is possible to build commercially viable software systems using knowledge based techniques.