Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!ncar!gatech!udel!haven.umd.edu!uvaarpa!murdoch!helga2.acc.Virginia.EDU!aam9n From: aam9n@helga2.acc.Virginia.EDU (Ali Ahmad Minai) Newsgroups: comp.ai.neural-nets Subject: Re: Fault-Tolerance of NN Keywords: fault-tolerance, fault-recovery, fault-detection Message-ID: <1991May6.205024.17882@murdoch.acc.Virginia.EDU> Date: 6 May 91 20:50:24 GMT References: Sender: usenet@murdoch.acc.Virginia.EDU Organization: University of Virginia Lines: 94 In article omlinc@cs.rpi.edu (Christian Omlin) writes: >Hi ! > >A few papers have appeared recently dealing with retraining (using >backpropagation) as a strategy by which feedforward NN's can recover >from faults such as neuron stuck-at faults. A few questions come to >my mind: > > 1. Often, retraining a network is claimed to be easier (i.e. faster) > than training the original, flawless network with small random initial > weights. My experiments show that a network is not guaranteed to > relearn the intended I/O mapping, i.e. it a network may get trapped > in a local minimum. Is relearning inherently easier than learning > assuming there are enough units in the hidden layer ? I have not done any experiments, but it seems to me that relearning should not *always* be easier after neuron faults. Intuitively, it is a question of how much difference the fault makes to the error surface. Now, this will vary depending on how close the faulty neuron is to the output. If it is in the last hidden layer, it will typically have a more direct (and probably greater) impact on the error surface (which is defined in terms of network outputs). If the faulty neuron is in a lower layer, the effect of its failure will be statistically averaged out to some extent, especially if the network is large. Even if the neuron does belong to the last hidden layer, the impact of its failure will depend on its "relevance" to the output layer, which, to some extent, is a direct function of the magnitude of weights linking it to the output neurons (scaled by the links from other neurons in the last hidden layer). If the failed neuron was strongly linked to the network outputs, its failure will cause a great change in the error surface (somewhat analogous to a "flattening out" along all directions corresponding to the input weights of the failed neuron). While this might create local minima, it is likelier to turn minima into ravines (or so it seems to me, because now changing some of the weights has no impact on the error). >2. Suppose we can retrain a network, we are not guaranteed that the > network exhibits the same characteristics (e.g. generalization) > which may have been one of the criteria during the design of the NN. > Wouldn't it be more reasonable to detect structural damages of the > NN before it is used in an application and repair the damage ? > (This would require some method for detecting such faults.) In a fault-tolerance sense, it would indeed be desirable to locate and repair the fault. However, one of the reasons why neural nets are so attractive is the promise of *immunity* to errors in the presence of faults, i.e. the system can continue to function adequately even with undetected, unrepaired faults. And, of course, as you have larger and larger networks, detecting and repairing faults will become trickier (though the impact of individual faults will also diminish). There has been some interesting work on networks that automatically detect faults and reconfigure. Offhand, I can refer you to two papers: "Fault-Tolerant Neural Networks with Hybrid Redundancy", by Lon-Chan Chu and B.W. Wah, IJCNN-90, San Diego, vol II, pp 639-649 "Trellis Codes, receptive Fields, and Fault-Tolerant, Self-Repairing Neural Networks", by T. Petsche and B.W. Dickinson, IEEE Trans. on Neural Networks, vol. 1, no. 2, pp 154-166 I'm sure there are other papers too, and I would certainly appreciate any references etc. that others might have. >3. Giving a NN a retraining capability, certainly requires > additional hardware and information about the training set. How > big is the additional cost of hardware of a NN with retraining > capability as opposed to a non-retrainable NN ? I'll leave that to others who have thought about the problem, but ideally, retraining should only require more time. The data, presumably, is either stored or continually coming in. >4. It seems fault-tolerance is not an inherent property of NN, rather > they have to be designed with fault-tolerance in mind. There seem > to be two possibilities for improving the fault-tolerant behavior: > changes in the architecture and a changes in the training procedure. > Which of the two is more effective ? I would say: modifying training methods to force the emergence of robust architectures. I have some half-baked ideas along these lines, but would like to try them out before opening my mouth. Briefly, I think that networks with well-distributed representational responsibility should be more inherently fault-tolerant than those with localized responsibility. We can add constraints during the training process that forces the emergence of distributed representations, thus achieving greater fault-tolerance. Also, adding faults during learning could help, as evidenced by: "Fault-Tolerance in Artificial Neural Networks", by Carlo H. Sequin and Reed D. Clay, IJCNN-90, San Diego, vol. I, pp 703-708. Regards, Ali Minai aam9n@Virginia.EDU