Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!ucsd!sdcsvax!ucsdhub!calmasd!wlp From: wlp@calmasd.Prime.COM (Walter L. Peterson, Jr.) Newsgroups: comp.ai.neural-nets Subject: Re: Training Summary: targets of opportunity Message-ID: <235@calmasd.Prime.COM> Date: 22 Mar 89 17:23:01 GMT References: <2698@sun.soe.clarkson.edu> Organization: Prime-Calma, San Diego R&D, Object and Data Management Group Lines: 60 In article <2698@sun.soe.clarkson.edu>, spam@sun.soe!clutx.clarkson.edu (Roger Gonzalez,,,) writes: > Has anyone come up with a good way to train a net > without knowing a "target" in advance? For example, > if my net is in an undesireable state S1, and it is > totally clueless about how to get to state S2, I would > like it to improve the connections that do get it to > state S2, and impede any others. Now, since it has > no data at all to go on, and the only info it gets after > 1 pass is "nope, not in state 2 yet", what can I use as > a target? All the learning methods I've studied so far > are inadequate for this. > State S2 is, in and of itself, the target. That state, whatever it might be, has to be represented to the machine in some manner. The fact that S2 might be a very long text string or some very large binary number or some arbitraty bit pattern that you make up makes no difference, if you know where you are, and you know where you want to be, you can get there ( it might not be an easy trip, though :-) ). The point is that you must not confuse your interpretation of the "meaning" of the bit pattern with the bit pattern itself. As far as you statement that "...since it has no data at all to go on...". I submit that this is meaningless, not only for a neural net, but for any computer program. Also, your connections and their weights, by themselves, constitute 'data to go on'. Given that the system starts in some arbitrary state S1, which must be known or knowable to the system, and given that its goal is to get to some other known or knowable state S2 there are three ways to proceed. First, if there is some known transform that can be applied to state S1 to turn it into some other valid state Sn, then that transform must be continually applied to the current state, call it Sc, and then Sc must be tested against S2 to see if we have found S2. The existance of some transform implies that there is some set of parameters upon which the transform operates, and lacking any data on which to go, the system must perform a systematic exhaustive search of the parameter space. The second method is a variation on the first. Lacking a known transform, the best that you can do is apply random values to the things that constitute the state and wait for S2 to turn up. This is the situation that you would have in your example, where you say that "...it is totally clueless about how to get to S2...". Totally clueless implies that you don't even have an algorithm for transforming S1 into ANY other valid state, Sn. This, of course, assumes that you have no means of determining how "far away" the current state Sc is from S2. If you have some way of determining that distance, then what you've got is, essentially, the gradient descent of back-propagation which is the third way of going from state S1 to state S2. This "distance" information ( the error function in back-prop ) and the connections with their weights are, essentialy, all the data that you need.-- Walt Peterson. Prime - Calma San Diego R&D (Object and Data Management Group) "The opinions expressed here are my own and do not necessarily reflect those Prime, Calma nor anyone else. ...{ucbvax|decvax}!sdcsvax!calmasd!wlp