Path: utzoo!attcan!uunet!aplcen!uakari.primate.wisc.edu!dogie.macc.wisc.edu!uwvax!cambizola.cs.wisc.edu!finton From: finton@cambizola.cs.wisc.edu (David Finton) Newsgroups: comp.ai.neural-nets Subject: nn implementation of "max" function Summary: how do you do it? Keywords: max, winner-take-all, weights Message-ID: <9202@spool.cs.wisc.edu> Date: 21 Nov 89 20:38:45 GMT References: <4616@arctic.nprdc.arpa> <80766@linus.UUCP> Sender: news@spool.cs.wisc.edu Reply-To: finton@cs.wisc.edu (David Finton) Organization: U of Wisconsin CS Dept Lines: 24 Can anyone describe to me what an implementation of the function max{xi} looks like in a connectionist net? I'm using linear-sum, sigmoid-output units. What I want is a layer which outputs a "1" from the unit whose input (from outside the layer) is greatest, with the other nodes in the layer outputing a "0". Assume that each node in the layer has an input from outside the layer, and these inputs are clamped to their values. Node activation is in the range [0,1], while link weights are in the range [-1, 1]. The obvious thing is to have mutual inhibition within the layer, possibly with each unit also sending itself some activation (or, equivalently, each unit retains some fraction of its previous activation level). But what I've come up with so far seems to give me a net which sends out "1" for *each* unit whose input is above the *average*. I bet this has been done before; can someone show me where I'm going wrong? --David Finton ( finton@cs.wisc.edu )