5. Neural networks NN
Neural networks NN are a computer ‘simulation’ of the interconnected neurons in our brains. This method simulates a network of interconnected neurons usually
arranged in three layers, where the lowest one receives inputs and the top signals the outputs. Work with a NN starts with a ‘clean’ network and the developer has
to ‘train’ it to recognize a specific set of inputs.
Training consists of presenting the NN with a series of cases and providing feedback as to the desired output. During the training the NN adjusts the ‘weights’
given to each input neuron till the NN will give the desired output i.e. until the NN learns to recognize this set of inputs; Kappen, 1996.
The advantages of this method lie in the fact that the network ‘learns’ by itself so that there is no need for a priori knowledge. Therefore, to obtain to the right
output a NN can often find relationships of which we were not aware Babic et al., 1995; Smith et al., 1996.
The problems with NN are that there is a need for a large number of test cases for each disease of interest and that the NN cannot ‘explain’ it’s results. As
discussed above, there is a dearth of well documented test cases to use in training the NN, and the ability to explain results is critical in the context of disease
diagnosis. Therefore, we could not use NN in Fish-Vet.
6. Fuzzy logic systems FL
Fuzzy logic utilizes a many-valued form of logic. Unlike the ‘crisp’ logic of a yes-no system, a FL system has also in-between values. This allows us to describe
a point as a function of it’s membership in different sets. For example, if we define a ‘cold water’ range of temperatures and a ‘hot water’ set, any value can belong to
one, the other or both, e.g. 24°C is a 10 member of the cold water group and 90 in the hot water one, while 8°C is 100 in cold water group and 30°C 100
in the hot water one.
Most of the applications of FL have been in the control field. FL controllers are embedded in everything from washing machines to locomotives. In the last few
years applications in the domain of disease diagnosis have started to proliferate Fathi-Torbaghan and Meyer, 1994; Bellamy, 1997.
In our case, we decided to use the idea of FL, if not the technique itself. This was performed by creating membership functions for signs, as explained later.
7. The Fish-Vet diagnostic process
As stated above, we set out to build a program that will be efficient, will cover as many problems as possible and will give results that are as accurate as possible
in a reasonable time frame. In order to do that, we had to ‘mix and match’ different technologies. We have created a hybrid of several methods that, while eschewing
theoretical purity, can comply with our requirements.
The diagnostic process is iterative and includes the following steps.
Choosing species, water type and all signs observed in the affected fish Fig. 1.
A diagnosis is run and results in a list of candidate diseases presented to the user. Each disease in the list is given a ‘magic number’ which defines it’s ‘distance’
from the most likely disease. This most likely disease is always given a value of 1.0 and all other numbers are normalized accordingly Fig. 2.
The user is shown all the signs ‘expected’ for the different diseases in the list, and he reexamines his fish looking for any of these candidate signs.
The new signs are added and a diagnosis run again. After 2 – 3 iterations the difference between the most likely disease and it’s closest
neighbor should be large enough for us to be confident that the first disease is the right one.
The Fish-Vet diagnostic engine includes the following elements. A small rule base for species, water type, etc. This is used mainly to confine the
problem space and cut the number of candidate diseases entering the second stage. A list of candidate diseases is formed by choosing only diseases prevalent
in the specified water type, non species specific diseases and diseases specific to the chosen species.
A fuzzy logic module that expands the list of chosen signs using membership functions for the defined sets of signs. For example, there is a ‘red on skin’ set
including all signs from redness on skin up to hemorrhages. This means that even
Fig. 1. Choosing water type, species and all observed signs.
Fig. 2. List of candidate diseases arranged by likelihood.
when the user chooses ‘petechiae’, the program will include in the list of signs to check also ‘subcutaneous hemorrhage’, ‘red skin’, etc., each at a weight corre-
sponding to their distance from the original sign in the set. Therefore even if the user, because of inexperience, uses the ‘wrong’ term, the program will still be able
to reach the ‘right’ diagnosis. This will also help with the time progression problem. Redness on skin in day 1 of an outbreak may well turn into hemor-
rhage on day 4. Using sets allows us to obtain the same diagnostic even when sampling at different stages of the disease.
A clustering module that searches for diseases whose signs match the sign vector chosen by the user. Every disease in the database is coded as a multidimensional
vector of it’s signs. A module that gives weights to the different signs according to their relevance to
the different candidate diseases, i.e. some signs are more indicative of specific diseases.
Specific signs are given more weight than general ones e.g. ‘loss of appetite’ is a general sign while ‘Kyphosis’ is a very specific one.
A top-ten selection after computing the scores for all candidates, which is presented to the user after normalizing the scores.
The process utilizes information contributed to Fish-Vet by close to 40 experts from 17 countries. This includes both background information as well as the
expected sign vector for specific diseases.
8. Discussion