August 15, 2006
Applications for the Genetic/Evolutionary algorithm
At the beginning of June, I felt ready to create a pool of agents, endowing them with goals and behaviours but I was (and still am) lacking understanding of educational methodologies to do so in a way that would be meaningful to AIEd systems research. I had the biology, but not the life.
A couple of nights ago, James and I went to the bookstore and I picked out a book by Ray Kurzweil: "The Age of Spiritual Machines". The predictive nature of the work in combination with technical accuracy was reminiscent of "On Intelligence", which I enjoyed immensely. Anyway, at the back of this book was an article entitled, "Pseudo code" for the Evolutionary Algorithm. The article explained an algorithm (i.e. "Genetic algorithm") which I thought immediately applicable to one of my own questions. I had been thinking about this problem recently as a result of some recent discussion with a colleague.
Namely: As learning-object-agents and human agents interact with each other, collecting all kinds of purpose-based interactional data, the required storage space grows and grows. Eventually, the portability of these agents will become a problem. Further, search times increase as data mining algorithms need to hunt through more and more data. It occurred to me that maybe this Genetic/Evolutionalry algorithm could be directly useful for addressing the need for intelligenct garbage collection. (As in the Ecological Approach paper by Gord McCalla).
Within a vast world of learning-object agents and human agents, and under this ecological theme, certainly, some agents will need to die. Some pieces of agents' memory will also need to die. If data is stale and useless, it must be purged. This is the start of intelligent garbage collection and also allows for the "survival of the fittest" -- necessary for an evolving system.
A second aspect -- moving beyond death -- that I had not considered before was the need to create new creatures by copying surviving creatures while introducing small, random variations. Genes. How would learning objects reproduce? Surely, human teachers will continue to create their own learning objects, but, there needs to be an artificial method of doing so as well. We can't very well rely on human teachers to create ALL learning resources -- it's a waste of their expertise. Teachers should be allowed to spend time interacting with students, not punching data into course management systems.
Thirdly: How do you measure the success of a learning object to determine if it should die, or if its "genes" will be useful in the next "generation" of learning objects? I remember this was a topic of discussion in an 862 class (now CMPT 872, I believe); At this point we discussed Granularity-Based Reasoning and Belief Revision in Student Models in order to see exactly how a student's understanding had changed and thereby give some mechanism for measuring the effectiveness of a particular learning object.
I believe my thought experiment is beginning to take form. I have to figure out where other people have already experimented in this area to help me focus. I repeat my outline from last time:
Given a pedagogical ontology and an engine for building a content plan, how would a set of (JADE) agents -- representing learners and learning objects -- interact given a set of starting instructional goals and a student model?
I have a bit of an answer, now. How would they interact? Well, by evolving. Some of them die. Some of them reproduce. I don't yet know how the concept of a "generation" would live in the system. I can't expect agents to grow "old" in the sense that humans and animals do; they are not bound by the fallibility of biology that prevents creatures from reproducing simply due to their extended temporal existence. Ha!
Well, I'm gonna go do some reading. I'm spending far too much time gathering papers and reading abstracts and not enough time studying the material that I've got.
I found your blog looking for more Saskatchewan bloggers that might be interested in being listed with the 130+ others at the Saskblogs Aggregator. If you'd like more readers, or want to read what writers in the province are talking about, head over to http://saskblogs.catprint.ca
If you would be interested in coming to the Saskblogs BBQ Sept 23 2006, check out the details at www.saskblogs.ca
have a good day,
Posted by: Saskboy at August 27, 2006 05:31 PM
Sure, feel free to add me to the list. I was pleasantly surprised, as I skimmed down the list of SaskBloggers, to recognize a blog or two, and one of the other authors I actually know in real life! (Teaching & Developing Online)
Posted by: Steph at August 28, 2006 09:40 PM
Sorry for the delayed reply, but I can't directly add you, you just need to email Lance at his page saskblogs.catprint.ca
Posted by: Saskboy at December 3, 2006 03:35 PM
Post a comment
Index to Steph's NotesFeb. 24th 2007 - Weee! This new part of my website is not an entry, but rather a permanent fixture whose purpose is to "Look Down on All Those Notes With Some Grand Vision of Organization". Wish me luck. LOL
- Representing meta-data (fuel) & the different kinds of "hooks" that intelligent systems can use (how fuel is injected into the motor of the engine)
- Motivation: Semantic net / Rationalizable to a machine
- Semantic network
- Genetic graph
- Prerequisite AND/OR graph
- Constraint Satisfaction Problems
- Bayesian networks / causal graphs
- Technology & Philosophy: RDF, modus ponens,
- Predicates, Logic & situation calculus
- What kinds of data? - What kinds of meta-data would an AIEd system possibly need, and how is it represented?
- task domain knowledge
- "is-prerequisite-to"-type knowledge
- interactions with learning objects & other learners - (location, composition is-a/part-of, sequencing by restricting navigation, personalization, ontologies for LO context)
- lesson plans, curriculum plans, practicing sessions (What is stored, what is generated on the fly? What is remembered?)
- How to organize it - When is it stored in a database? Meta-data? Agent memory banks? Protocols? Repositories? XML files? Home-servers? WSDL services? Frameworks? Portable banks? P2P access?
- Database of object-agent interactions
- Concept of "Home" on a P2P network -- maybe the bulk of a learning object's usage data is on its home server and can be queried using WSDL or something ? Similar homes for each student's usage history, etc. Baggage problem.
- Links to the ontologies
- referring to a concept/relationship - ex. AgentOwl?
- Generation of this data
- Rationalization: For use by other AIEd systems
- What is generated - discuss items under part I.C.
- When it's generated - describe procedural model, which parts of the engine generate what (isa-part-of data, XML feeds, web services, meta data bout groups and collaboration, protocols, examples Friend of A Friend FOAF project)
- Technical notes of HOW it's generated: JENA, issues of implementation demo, my Hermione & Ron agent examples, lol
- Usage of this generated data - see part IV. A.
- Given the engine, who uses it?
- Students / Learners / "Me"
- instructional planning, student model, pre-requisites, tutoring, coaching, collaboration,constructivism
- Teachers / Educators / "Me"
- putting together lessons
- be able to browse through task domain knowledge in an objective / encyclopaedia format, then be able to pick-and-choose what you need for your students
- compose examples, design explanations, pull together diagrams, learning objects, etc. Haystack Relo?
- Administration / Governement / Structure / Crowd Control
- as restrictions/obstacles/sand pit to the robot in agent environment
- can't just have a swarm of students and teachers out there -- need structure of courses, curriculum, objectives, requirements (at least, we do in this day and age!) - Report cards, evaluation, feedback
- government, marks, certificates, requirements, funding, curriclum, attendance, delinquent, non-attending, motivation
- school''s images, goals, strengths, payroll, HR, security, accounts, permissions, privacy
- registration, failed courses
- User Environment -- How does this engine work? What does the user see on the screen?
- Introduction - Given a background in educational psychology, how does the system present itself -- what does the user see, and were does this data come from? Links to thoughts from part I.)
- Task Domain Browsing - Suppose you're you're just idly browsing through the "raw" content. How would it look when it's not wrapped around a learning-context or lesson or tutorial or anything. 'Cross between browsing a raw task domain ontology and browsing a learning object repository.
- Cleaning up the data -- Visualizing the data for humans to pick through the task domain and work on it. Suppose the "Subject Expert" discovers an advancement in science and needs to update the "world's" domain knowledge. (I used the "Subject Expert" terminology from Ontologies to Support Learning Design Context - Thanks Chris) How would they make corrections to ontologies and learning objects, or at least point the users of "old" objects towards adopting the newer ones.
- "Modes" - Learning & Lessons / Checklist - Homework, Assignments, Courses being taken / Collaborative mode / Teaching mode / Calendar- email -adminisrative mode -- See also the different kinds of scenarios in the ActiveMath system
- Evolution of this engine
- target some key implementation hooks discussed in part I - design an experiment/demo
- scrape a page - (Note, scraping can only give objective data, not in-context dat)
- LO repository - related to browsing the task domain?
- a learners "To Do" list - where does it come from? Assignments, courses.
- sample group scenario
- sample teacher lesson planning
- sample data "left behind"
- sample use of that data
- Data mining (for what? lol )
- discovery / generation of ontologies - when do you need to hunt for them, and when do you have to have a solidly-known & predictable ontology?
- I/O - where it happens, which languages, protocols, which agents perform i/o and when, precepts, actuators
- Role Assignments
- My Environment Adapts to me
- Displaying feedback from the server on JSP pages (Software engineering considerations)
- Sketching out a design (Content planning vs. Delivery planning)
- agent negotiations / social structures / ummm... Web 2.0 ?
- garbage collection of meta data
- Artificial Intelligence & Evolution
- Memory Culling: Necessary part of intelligence? (artificial or human)
- Applications for the Genetic/Evolutionary algorithm
- open learning environments
- Agents, pets, grouping, Community modelling
- Protocols - finding groups, cyber dollars, state diagrams (?)
- "Community Studies" - graphs & communication hubs, types of communities (free-for-all, hierarchy of authority, etc.)
- implications of joining a community - what do you share, which parts of your student model are relevant
- Walls & sand traps -- deliberate restrictions as problem-solving for learning
- Communication channels - individual-to-individual, individual-to-community, chat channels, agent-only "administrative" communications, ex. requests for related learning objects in a particular community, etc.
- Educational/Pedagogical focus (this part probably shouldn't be its own section but rather incorporated into the whole picture, but it's separate for me right now because I'm still only just starting to learn about it.)
- Semantics - what there is to talk about in Education
- ex. Merril's First Principles of Instruction, linking educational terms to AI terms
- Pedagogical skills for tutors -- supporting human *and* artifical tutors
- Student modelling - what the machine needs to know about the student, pedagogically-speaking, about learning history/preferences
- Roles - Simulated students, Coaches, Tutors, Teachers,