• Increase font size
  • Default font size
  • Decrease font size
Welcome to AI-Portal - Artificial Intelligence for Enthusiasts

Artificial Intelligence Projects

E-mail Print PDF

Artificial Intelligence is a growing domain, where every day new ideas appear and new projects are being built for every day use.

M.sc. eng. Eugen Hristev is the owner of the Artificial Intelligence Portal here, having graduated from the Master of Artificial Intelligence at Polytechnic University of Bucharest, with an Artificial Intelligence master thesis developed in collaboration with the Master of Artificial Intelligence at Polytechnic University of Catalunya, Spain.

Interested persons or companies in having a partner in research or development artificial intelligence projects please send your suggestions to eugenhristev [at] gmail [dot] com.

The owner of this website publicly expresses his interest in collaboration in the field of artificial intelligence, for short or long term, in developing or research activity.

 

NARX (Nonlinear AutoRegressive with eXogenous inputs) with neural networks

E-mail Print PDF

NARX (Nonlinear AutoRegressive with eXogenous inputs) is a model for time series forecasting. It can be modeled with Neural Networks.

The main idea it uses is the following: create an architecture that feeds three types of inputs to the learning algorithm: the past input values of the time series, the past predicted values by the model itself, and exogenous variables - a different time series that indirectly affects the time series we want to predict ( there can be more ).

All the inputs are being fed to a simple neural network architecture that is based on BPTT ( back propagation through time ) and TDNN (time delay neural networks ).

I started working on this subject on my master thesis at Universitat Polytecnica de Catalunya, Barcelona, Spain.

You can visit my project on Sourceforge.

Most important articles about NARX:

T. Lin, B. G. Horne, P. Tino, and C. L. Giles, “Learning long-term dependencies in NARX
recurrent neural networks.,” IEEE transactions on neural networks / a publication of the
IEEE Neural Networks Council, vol. 7, no. 6, pp. 1329-38, Jan. 1996.

H. T. Siegelmann, B. G. Horne, and C. L. Giles, “Computational capabilities of recurrent NARX
neural networks.,” IEEE transactions on systems, man, and cybernetics. Part B,
Cybernetics : a publication of the IEEE Systems, Man, and Cybernetics Society, vol. 27, no.
2, pp. 208-15, Jan. 1997.

J. Menezesjr and G. Barreto, “Long-term time series prediction with the NARX network: An
empirical evaluation,” Neurocomputing, vol. 71, no. 16-18, pp. 3335-3343, Oct. 2008.

E. Diaconescu, “The use of NARX neural networks to predict chaotic time series,” WSEAS
Transactions on Computer Research, vol. 3, no. 3, pp. 182–191, 2008.

 

Self organizing systems Part 1

E-mail Print PDF

A self organizing system is normally a multi-agent system where every agent does a specific action and a structure or pattern appears at the system level, without any specific global action by every agent.

Every agent will perform a specific action, usually each will have the same set of actions, and by doing so, a special global action is performed. This is called the emergent property of the self organizing system.

Let's give a simple example: self organizing maps. Given a map of pixels, each with a color raging 1-255, which is initially quite indefinite in a shape, can be reorganized by a self organizing agents in order to find parts of the map which have a specific color dominance.

The Kohonen algorithm works in the following way: every agent will randomly pick a certain radius area of the map, and then choose the winning pixel, which is the pixel with the color closest to the area average. Then all the pixels are updated with a certain fixed percentage in order to get closer to the winning pixel.

The radius decreases in time, allowing smoother modifications.

In the end the system will emerge into an organized maps, with colored areas according to the most dominant color of that specific area.

We can observe that after agents that initially did a simple job like modifying colors in a slight matter, the system emerges into a different system having a specific pattern/structure/property, which is organization, in our case delimiting portions of the map having dominant colors.

Last Updated on Friday, 16 December 2011 16:57
 

Agent equilibrium

E-mail Print PDF

Let's say we have 2 agents running in a world, each with a set of possible actions ( common for each agent ). Each agent can pick one of the actions ( strategies ) at a time in one round. Depending on his action and the action of the other agent, a reward is given, different for each agent. We can summarize this in the following table:

Reward Action 1 Action 2
Action 1 3, 3 5, 0
Action 2 0, 5 5, 5

For example if Agent 1 and Agent 2 both pick Action 1 then their rewards are respectively 3 and 3.

From this matrix we can see the following : If both agents use Action 2 then they have maximum reward. If the agents choose Action 1, then they have a good reward but not the best. If they choose differently, one of them maximizes its reward but the other has a zero one.

In this situation we call the pair 5,5 the Nash equilibrium pair because if any of the agents change their strategy independently they cannot get a better reward.

The situation 3,3 is Pareto Efficient because any change of strategy could make an agent go better but could make another agent worse.

The social welfare is the sum of the rewards for a given situation. For example the social welfare for Action 2, Action 2 is 10, which is the biggest value for total received reward.

Last Updated on Tuesday, 04 May 2010 16:56
 

Agent types

E-mail Print PDF

What is an agent? A primary definition would say that an agent is an autonomous software program that can take decisions based on the given inputs.

This means that an agent has a somewhat "intelligence". This intelligence is disputed, however. In nature, a system also takes actions according to given stimuli. According to the 3rd classical mechanic law, if one applies a force to a system, the system responds with an equal force back. This is a specific law of a more general idea: any system that is disturbed from its current balance responds in order to get the balance back.

In the same idea, a reactive agent is an agent that waits for environment changes. The agent gets the input and then, using a rule based system or any other possible implementation, picks an action that it must take.

A proactive agent is an agent that takes an action independent on environment changes, e.g. it takes initiative in the system.

Last Updated on Monday, 21 February 2011 11:28
 

Possible worlds of belief

E-mail Print PDF

What are possible worlds of belief?

Let's say that we have a fact X. We may know that X is true. But we might also now that X will be true at a time t in the future. Also X may be true at a time in the future. X is believed to be true.

All this statements can be implemented in logic using possible worlds approach. In a certain world John lives in America. In another world John lives in Africa. Facts can have different truth values, but all worlds may connect to each other.

If fact X is true in all worlds, then we can conclude that X is true.

Such a statement is called a tautology.

In Kripke semantics for possible worlds belief, every world has possible accessible worlds. For example if John lives in America in world 1, then if he believes that is possible that he lives in Africa, then world 2 is accessible from his world, world 1. We can write this as world 1 -> world 2.

Further we can discuss links between more worlds and problems of accessing a world starting from a not directly accessible world. In such cases, there are chains of beliefs that can be modeled.

Properties of the accessibility relation:

1. Reflexivity: w -> w . This means any world is accessible from itself.

2. Transitivity: If there is w1->w2->w3 then we can assume we have w1->w3.

One interesting consequence of the properties, if the model accepts them, is introspection. If John believes X, then John believes that "John believes X" . This is part of Doxastic logic.

 

K-nearest neighbor classification algorithm

E-mail Print PDF

K-nearest neighbour is a classic, simple and well known classification algorithm. It's a supervised learning algorithm.

Let's suppose we have a Q count set of points in our n-dimensional space where all items are placed. In this space, distance between points (elements) that we need to cluster is measured using different distance metrics.

If we have a new element E which we need to classify, the algorithm uses the following idea: count the K nearest neighbors and assign the new point to the majority.

In case of equality, we can either: give up furthest away element so equality is broken or choose with a evaluation function which class the new point will belong to ( preferential class for example ), or another solution implementation dependent.

The algorithm is very simple, and it has good results in practice. However it is sensible to outliers, and very far away points from the training set are not classified very well.

Of course K can variate according to data size, computation power, time needed for classification or more criteria.

 

Truth Maintainance System

E-mail Print PDF

In logics, truth can "change" over time. What I mean with this concept :

Obama is the president of the United States.

In time the truth value of this sentence might change. In 2056 we will probably have it false. During the life of our logic reasoning facts can change from true to false and so forth. The purpose of a Truth Maintainance System is too keep track of the truth values of the sentences, complying with the fact that facts are generated from already existing facts that might change truth value.

For example we know that

P

and

P->Q

In this case we can add to the knowledge base the fact

Q

because P is true and we know that P->Q.

However if later on we need to retract P and assert ~P (eg. P is now false), the truth value for Q is wrong, because it was based on the assertion of P. In this case we have either to rollback all statements that were asserted after asserting P, or recheck them. A truth maintainance system ensures all this.

A simple method of keeping tracks of true and untrue values is keeping a list of IN and OUT facts. Each fact has a list of facts that have to be IN so that the fact itself is IN. This is the IN list. Also each fact has to have a list of facts that are OUT so that the fact is IN. This is called the OUT list.

This method creates a graph of facts each dependent on others, and it's easy to propagate modifications from leafs ( that are basic assumptions) to the end of the tree to see what states changed.

For example in our P->Q statement, the node is Q, and it's IN list is P. The OUT list is empty. If P becomes OUT, then Q becomes OUT as well. If we had a statement like P ^ ~R -> Q then the IN list was P and the OUT list was R. Any change in this facts would change Q as well.

 

Prenex Normal Form

E-mail Print PDF

In First Order Predicate Logic ( FOPL ), one can represent an expression using the operators

For any X, Expression

Exists X such that Expression.

Where Expression is a logic expression , either a predicate or a combination of logic operators and other expressions.

In order to represent an Expression in Prenex Normal Form, one must do some transformation. For an expression to be in Prenex Normal Form, all the "Any" and "Exists" Logical operators must precede a whole stand-alone expression. For example, expression

(Any X in P(X) ) Or ( Exists Y in Q(Y)) it's not in Prenex Normal Form.

Expression

(Any X in ( P(X) and Q (Y) ) ) is in Prenex Normal Form .

Prenex Normal Form is useful in Knowledge representation for obvious reasons: memorizing in computer memory, specific attributes: We evaluate first the "Any"/"Exists" operators and the following expression can be substituted to simple expression.

To convert a normal expression to Prenex Normal Form, we consider the following transformation rules:

( Any X in Expr) or (Another_Expr) changes to (Any X in ( Expr or Another_Expr )) with mentioning the fact that X has no free appearances in Another_Expr ( if free they are renamed to another free variable )

( Any X in Expr) and (Another_Expr) changes to (Any X in (Expr and Another_Expr )) with same mentioning.

The same rules apply to Exists operator.

 
  • «
  •  Start 
  •  Prev 
  •  1 
  •  2 
  •  Next 
  •  End 
  • »


Page 1 of 2