Knowledge
Discovery from RoboSail data
From the thirteenth of January 2000, the RoboSail software was able to
store information about the boat and its environment in an onboard database.
This information initially consisted of sensor readings from the Brooks
& Gatehouse network, the Furuno GPS and the Intelligent Rudder Control
Unit. Additional information about the current sail settings, the amount
of ballast, the canting angle of the mast and the keel angle of the boat
was manually input by the skipper. Altogether, 27 different pieces of
information (also called attributes) from the sources mentioned before
were recorded in a state (or record, in database terminology), once each
second. Such a state can be seen as a snapshot of certain properties of
the boat and its environment.
Up to this moment, the database has grown large in two directions: Of
course, the amount of states got bigger by simply recording various sailing
sessions. Besides the states, the amount of attributes has more than doubled.
This has a couple of reasons:
• Motion sensors were added to measure the boat's movement in its
six degrees of freedom.
• A new compass was added to the system. Besides an additional attribute,
this also resulted in more states being created each second, due to the
compass's high frequency of delivering information.
• The software system got bigger and more complex. This resulted
in several additional attributes, providing internal information.
Currently, the database contains 61 different attributes. Their values
are recorded in states at a frequency of ten times per second which, until
now, has lead to a collection of more than thirteen million states. Taking
into account contemporary Artificial Intelligence technology, it is possible
to gain knowledge from this database.
Learning properties of the boat
When designing a yacht, certain assumptions are made bout, for example,
the optimal wind angle or optimal boat heel. A simple example of such
an assumption is: "If the wind speed increases, the boat's speed
will increase as well". These assumptions usually are made by using
physics calculations and / or simulation. Given all the information stored
in the database, it is now possible to empirically learn the same properties.
Basically, such a property looks as follows:
IF attribute1 = A1 and attribute2 = A2 and …. THEN goal = optimal
Again, an attribute is a piece of information about the boat and its environment.
When the goal is defined, the pattern of attributes belonging to that
goal is found in the database. Obviously, such patterns can only be found
if they also exist in the real world. An explanation of how to learn such
patterns is beyond the scope of this web page. For more in - depth information,
an interesting reference is the Carnegie
Mellon University site. Also the book "Machine
Learning" by T. M. Mitchell explains various topics.
Currently, some results have been achieved, showing non - trivial relations
between apparent wind angle and the boat's optimal speed.
Learning to sail
It is necessary to take a closer look at an if - then relation as described
before. Maybe surprising, it is really a very small step to change such
a rule into another rule, stating which action to take in each situation.
Only two things have to be done:
• One of the attributes on the "if-side" of the rule must
be a description of an action taken by an experienced skipper.
• The goal at the "then-side" of the rule must be a description
of the boat's performance (for example, velocity made good) in the near
future.
This means that if the database is being enriched with extra attributes
describing the skipper's action and a performance measure, rules can be
learnt, stating which combinations of situation and action led to optimal
performance. It is easy to see that these kind of rules actually describe
how to sail the boat like an expert human sailor.
Natural Language
The rules learnt from the data contain lots of numeric information,
for example "apparent wind angle < 47.3 degrees". It would
be convenient if such rules were expressed in language spoken by human
sailors. For example, 47.3 degrees AWA can be expressed as "sailing
upwind". Also combinations of attributes like the boat's rudder angle
and turning rate will be expressed in concepts like "to luff".
|