Things have settled now.
I need to get my head settled too.
I can’t wait to get started on some work.
Monthly Archive for November, 2005
I’m now a proud owner of a DS. I didn’t put up much resistance really.
I have mario cart, and nintendogs. Going to buy Pheonix Wright Ace Attourney. I’ll have to order it from elsewhere though.
I’m not sure how satisfactory those answers the last years exam are.
I think I’ve studied fairly well.
If I manage to answer fully 5 questions of 6 I think I’ll be satisfied.
(20 marks)
6. Describe a typical process of development of a genetic algorithm (GA) for solving a real world problem. Define the following basic concepts in GA: Crossover; Mutation; Population; Generation; and Run.
~~~ Development process ~~~
- Specify the problem, define the constraints and optimum criteria.
- Represent the problem domain as a chromosome.
- Define a fitness function to evaluate the chromosome’s performance.
- Construct the genetic operators.
- Run the GA and tune its parameters.
Crossover:
Crossover is an operation applied to two chromosomes, to generate their offspring. For some probablitity (commonly 0.7) called the crossover probability, two chromosomes are split at some random point in their bit string and the end parts are swaped with each other. This generates two new offspring. For those that aren’t crossed over the offspring are clones of the originals.
Mutation:
After the crossover operation is complete, there is a very small probablity (say 0.001) that a mutation will occur for each chromosome. If a mutation occurs then a random 1 bit in the chromosome is switched (ie if 1 then 0, or if 0 then 1). Mutation’s are included to ensure that while the algorithm runs to find an optimal solution, it does not halt on a local maximum. If this does happen then the mutation probability may be too small, or the population of the genetic pool may be too small.
Population:
Is the number of chromosomes in the gene pool. If the population is too small, then there may not be enough diversity in the gene pool to find a optimal solution quickly or at all.
Generation:
A genetic algorithm is an itterative process. Each iteration replaces those chosen for mating with their offspring. Each iteration is called a generation.
Run:
A genetic algorithm is usually run for a fixed number of generations. 1 run referers to executing the program for those generations. The results are usually checked when it’s complete. If no good solution is found, things are tweaked and it is run again.
(20 marks)
5. Distinguish neural network expert systems from traditional expert systems. What are the main problems with the back-propagation training algorithm?
Neural Network expert systems:
Can learn and improve the inferencing and reasoning without human intervention.
A neural network can learn, but is a black box to the user. Combining a neural network with an expert system to solve a problem can give the best of both methods. Allowing some explaination of the reasoning, while enabling the system to learn and adapt. One way of doing this is in a rule based system, is to have a neural network generate and modify rules from the knowledge base and any new data.
Traditional expert systems:
Cannot learn from experience (in a standard rule based system, though case based reasoning expert system could expand it’s knowledge base). In a traditional expert system the inferencing and reasoning cannot be modified by the expert system itself. In a rule based system it is the entire knowledge base that is static.
A traditional expert system cannot learn, but it can fully explain the reasoning that lead a solution.
Problems with the back-propagation training algorithm:
Lots of calculations are required, thus training is slow and expensive.
Also to train a neural network with this method, we must know the expected output of the training input data so that we can calculate the error. Which isn’t always possible or feasible.
(20 marks)
4. Describe the steps to develop a fuzzy expert system for time-series forcasting tasks. What is the most laborous and tedious part in this process?
- Specify the problem and define the linguistic variables.
- Determine fuzzy sets.
- Elicit and construct fuzzy rules.
- Encode the fuzzy sets, fuzzy rules and procedures to perform fuzzy inference into the expert system.
- Evaluate and tune the system.
Most tedious:
Extrating the knowledge from the expert is a bottle neck in all expert systems development. However after the linguistic variables are defined, tuning and tweaking the fuzzy sets and rules is the most tedious and time consuming part of the development cycle. It is an iterative process.
