PROJECTS

ARTIFICIAL INTELLIGENCE AND KNOWLEDGE ENGINEERING PROJECTS

The main aim of these projects is to practise the algorithms of artificial intelligence and knowledge engineering which were presented during lecture time. They should allow participants to develop programming skills and gain experience in using modern solutions. The following projects are focused on the construction of easy artificial intelligence systems using neural networks and associative graph structures for data representation and achievement of generalization of various relations between them. The projects use sets of training data and training sequences that represent a part of reality defining the relations between a few attributes (parameters) or their groups (objects, tuples, records). You can use popular training data sets from ML Repository. During these projects, you can notice the differences between classical computing based on formulas, conditions, nested loops and the computations using connected neurons. You can also compare the way of data representation and the ability of each system to react on incoming input data. There is not allowed using the libraries which implement the artificial intelligence methods, because of the main aim of these projects, but you can consult with the lecturer the chosen and implemented project during its progress.

This is the new knowledge which requires exercises to master it, but this knowledge, gained experiences and skills can allow you to achieve future goals, participation in advanced artificial intelligence or knowledge formation projects, a fascinating job, or a special position in the labor market.

Requirements, receiving credits and marks for this subject

In order to receive credits and a final mark for this subject, there is required to:

  1. gain knowledge in the lecture time and/or during individual study which will allow you to carry out a chosen project;
  2. choose a project from the list below or arrange another project related to this subject with the lecturer till Friday 2014-04-11;
  3. carry out the chosen project and collect results;
  4. send the developed computer application (the source code and the compiled application), the used data, and the short description by e-mail to ask the lecturer advice or to evaluate them at the end;
  5. explain to the lecturer how the written code is solving the chosen task and why;
  6. carry out the presentation in English describing the assumptions, the used algorithms, the construction method, and the achieved results;
  7. send the presentation by e-mail to the lecturer to ask the lecturer advice or to finally evaluate it;
  8. make the presentation (20-30 min) and short discussion or questions (5-10 min) in English during one of the last exercises for all participants of this subject.

The final course rating and marks are calculated after the sent computer application quality, the received results, the quality of sent presentations, their substance value, and the final presentations for all participants of this subject during the last exercises.

Project Selection and Consultations

Projects can be chosen by e-mail or personally during project consultations. Project questions can be consulted by e-mail or on Tuesdays 14:00-15:30 on 08.04., 29.04., and so on. Try to make an appointment in advance. The projects should be finalized and sent by e-mail to the lecturer till the end of May. The final course presentations should be done on Tuesday 2014-06-17 during the extended project and lecture time 16:00-19:00 (20:00 if necessary) in C2/104 (the attendance of all presenters is obligatory).

PROJECT 1: Describe and compare supervised learning methods. (1-2 persons)

The aim of this project is to describe and compare a few supervised learning methods. Show the good points and drawbacks of them. Explain how do they work and for what training data can they be applied with success. If the project is accomplished by two people, you should also simply implement these methods in order to demonstrate the progress of learning.

PROJECT 2: Describe and compare unsupervised learning methods. (1-2 persons)

The aim of this project is to describe and compare a few unsupervised learning methods. Show the good points and drawbacks of them. Explain how do they work and for what training data can they be applied with success. If the project is accomplished by two people, you should also simply implement these methods in order to demonstrate the progress of learning.

PROJECT 3: Describe and compare reinforcement learning methods. (1-2 persons)

The aim of this project is to describe and compare a few reinforcement learning methods. Show the good points and drawbacks of them. Explain how do they work and for what training data can they be applied with success. If the project is accomplished by two people, you should also simply implement these methods in order to demonstrate the progress of learning.

PROJECT 4: Backpropagation Algorithm Supervised Learning Implementation (2 persons)

The aim of this project is to develop computer application that uses the backpropagation algorithm to train a MLP neural network to classify a chosen training data set (most likely from economy or business). The algorithm should be implemented and extended by some mechanisms that enable to escape from flat local minima and not to overfit (overtrain delivering weak generalization). There is necessary to define an error function and minimize it. The application should illustrate the progress of training in time. You can use cross-validation and test samples. Finally, try to determine the factors that are important when using the backpropagation algorithm. Illustrate the implemented supervised learning process and the achieved results of training.

PROJECT 5: Kohonen SOM Algorithm Unsupervised Learning Implementation (2 persons)

The aim of this project is to develop computer application that uses the Kohonen SOM algorithm to train a neural network to cluster chosen training data (most likely from economy or business). It should form a few clusters during unsupervised learning. The algorithm should be implemented. The application should illustrate the progress of training in time. You can compare it to neural gas algorithm which is inspired by the idea of SOM. Finally, try to determine the factors that are important when using the unsupervised learning. Illustrate the implemented unsupervised learning process and the achieved results of training.

PROJECT 6: Associative Conversion of the relational DB to the AGDS graph (2-3 persons)

The aim of this project is to develop computer application that transforms the chosen relational database to the associative graph data structure (AGDS) and to show up that this structure enables to simultaneously sort stored objects after all attributes (parameters). You should start with data tables that do not include foreign keys, constructing the AGDS structure. Next, choose these data tables that include foreign keys that have been already represented in the AGDS till all data tables are represented in the single AGDS graph. This final graph is free from all duplicates that were contained in the original DB tables. The nodes of this graph represent records (tuples). This construction should make the developers aware of how easy similar objects can be identified using this associative structure. There can be use ASSORT algorithm or the classical insertion sort algorithm for addition of object data into the associative structure. Some benchmarks comparing the classical searching algorithms working on relational databases to the associative searching ones should be performed. Try to use similarities between attribute values to show how ease similar or duplicated objects (records, tuples) can be found. You can also demonstrate how fast differences between all objects (records, tuples) can be identified in comparison to the classical relational database mechanisms. Try to evaluate and compare the computational complexity of these mechanisms.

PROJECT 7: Final Associative Normalization of Relational DB (2-3 persons)

The aim of this project is to develop computer application that enables to associatively normalize any relational database and save its result in the form of relational database as well. The final associative normalization of relational database consists in creating database tables for all single attributes and associate data of these tables using N:M relations. Moreover, all such constructed data tables should be sorted if there is an order for such kind of data. Such single-attribute tables are related to objects (representing tuples/records) from the original data tables which are represented in separate tables. The original relations are divided to many singular relations between single-attribute tables, where each atribute is a primary key. The single-attribute tables can be supplemented by an index (primary key) representing the single attribute if comfortably or the original atribute values are too long. The relations are represented in appropriate foreign key tables. During this normalization process, all atribute values that were originally duplicated are represented by a single representant that is sorted together with other values of this atribute. This kind of normalization allows to form a simple AGDS structure using the relational database engine and mechanisms and enables to take advantages from close relations, final optimization that removes all duplicates, order of all orderable elements, and associations. Finally, try to compare the speed of various queries in the original and associatively normalized databases.

PROJECT 8: Associative Neural Knowledge Representation (2-3 persons)

The aim of this project is to use a set of sentences that describes an object or a term, and to construct an associative neural graph (LANAKG) that can associate the following words of each training sequence and form knowledge about it. This graph consolidates all training sequences in a single graph structure. The same words occuring in different sentences are not duplicated, but aggregated and represented by single as-neurons. Thanks this feature, various associations can be recalled accordingly to the frequencies and contexts of their occurences. Try to recall various answers from this simple "brain" using various combinations of input stimuli. You can also use natural language queries about this object or this term. The view of the constructed graph should be available. The presentation of the excitation steps of as-neurons in time will be an advantage. It can help to imagine, how it works and recalls various output sequences for a given combination of input stimuli.