[Wiskunde] Maximaliseren output door kiezen input

Pagina: 1
Acties:

  • Opi
  • Registratie: Maart 2002
  • Niet online
Momenteel zit ik met het volgende probleem:
x = arg maxx V(x)

Hierbij bestaat de vector x uit een aantal elementen waarvan de waarde [-1, 1]; V wordt berekend middels een MLP, oftewel een feedforward artificial neural network, dat gebruik maakt van sigmoid functies, in dit geval een tanh. Tevens bevat het neurale netwerk één hidden layer

Mijn vraag is nu hoe ik een maximale waarde van V kan verkrijgen, gegeven het feit dat de elementen van x tussen -1 en 1 liggen en de gewichten van het neurale netwerk constant zijn?

Inverteren is misschien een mogelijkheid, maar dan zit je nog met het probleem dat x een vector is en geen scalar.

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Hmm kan je niet iets doen met een maximale stroom door een netwerk?

Verwijderd

Het probleem is me nog niet helemaal duidelijk.
Heb je wel of geen expliciete functie voor V?

En nu wil weten voor welke x V een maximale waarde aanneemt.

(aargh vector analyse)

Voor het geval dat je weet dat het maximum niet ergens aan de rand van je gebied is, is het natuurlijk makelijk.
grad V = 0 oplossen (eventueel met mathematica) en in geval van meerdere mogelijk heden degene met de grootste V waarde nemen.
Maar zo ideaal zal de situatie wel niet zijn in welk geval je dus met een optimaliseer probleem met randvoorwaarden zit. Dan is de geijkte oplossings methode met Lagrange multiplicatoren, maar ik kan er ff niet zo snel op komen hoe dat ook al weer werkt. (veel plezier met zoeken)

  • Lord Daemon
  • Registratie: Februari 2000
  • Laatst online: 08-01 13:31

Lord Daemon

Die Seele die liebt

Ik snap er werkelijk niets van? Wat is arg voor operator, wat is maxx voor operator, en hoe hangt V van x af? Je gebruikt wel allerlei interessante termen als 'neuraal netwerk', maar wellicht dat je die even wiskundige moet definieren voordat dit een begrijpelijk probleem wordt?

Welch Schauspiel! Aber ach! ein Schauspiel nur!
Wo fass ich dich, unendliche Natur?


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
Een neuraal netwerk heeft een aantal nodes (overdrachtsfuncties). Nodes hebben dus een input en mogelijk meerdere outputs. Deze nodes zijn aan elkaar gehangen zodat outputs weer inputs van andere nodes zijn. Sommige nodes zijn input nodes, dan gaat er een component van x in. Andere nodes zijn output, dan komt er een component van V uit. Hier is V een scalar, dwz er is maar een input node.

De "hidden layer" is een gangbare neuraal-netwerk configuratie met 3 lagen nodes, nodes zijn of input node, of output node, of ze verbinden input nodes met output nodes.

De vraag is dus volgens mij bij welke input x het neurale netwerk aka functie V(x) de maximale output heeft. Dit wordt behandeld in het college Parameterschatten op de TUD, maar dat is berucht lastig.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Opi
  • Registratie: Maart 2002
  • Niet online
MSalters schreef op 30 June 2003 @ 00:27:
De vraag is dus volgens mij bij welke input x het neurale netwerk aka functie V(x) de maximale output heeft. Dit wordt behandeld in het college Parameterschatten op de TUD, maar dat is berucht lastig.
De sheets heb ik op blackboard gevonden. Thx! :)

Binnenkort zal ik wel een stukje over neurale netwerken schrijven.

x = arg maxx V(x)
bepaald de waarde van x waaronder V gemaximaliseerd wordt.

  • Lord Daemon
  • Registratie: Februari 2000
  • Laatst online: 08-01 13:31

Lord Daemon

Die Seele die liebt

OpifexMaximus schreef op 30 June 2003 @ 13:46:
[...]

De sheets heb ik op blackboard gevonden. Thx! :)

Binnenkort zal ik wel een stukje over neurale netwerken schrijven.

x = arg maxx V(x)
bepaald de waarde van x waaronder V gemaximaliseerd wordt.
Dus feitelijk:

x = {y | Voor alle z: V(z) kleiner dan of gelijk aan V(y)},

of begrijp ik het nog steeds verkeerd? Blijft de vraag wat 'arg' en 'max[sub]x' betekenen. :) Met name die subscript onder 'max' begrijp ik niet, alsof het maximum van een verzameling afhangt van een variabele?

[ Voor 4% gewijzigd door Lord Daemon op 30-06-2003 14:34 ]

Welch Schauspiel! Aber ach! ein Schauspiel nur!
Wo fass ich dich, unendliche Natur?


  • Opi
  • Registratie: Maart 2002
  • Niet online
Laat ik een voorbeeld geven:

y = x2. Met x een element uit de verzameling X = [0, 2].
y is maximaal voor x = 2 oftewel: maxx element van X y = 4.
De arg-operator (staat volgens mij voor argument, maar het kan ook zijn dat ik hier dingen door elkaar haal), zegt dan welke x de maximale waarde voor y oplevert. In dit geval zorgt x = 2 voor een maximale waarde van y, gegeven de verzameling X.

Verwijderd

OpifexMaximus schreef op 30 juni 2003 @ 14:40:
Laat ik een voorbeeld geven:

y = x2. Met x een element uit de verzameling X = [0, 2].
y is maximaal voor x = 2 oftewel: maxx element van X y = 4.
De arg-operator (staat volgens mij voor argument, maar het kan ook zijn dat ik hier dingen door elkaar haal), zegt dan welke x de maximale waarde voor y oplevert. In dit geval zorgt x = 2 voor een maximale waarde van y, gegeven de verzameling X.
(het is inderdaad wel handig om te zeggen wat arg hier betekend, ik denk dat de meesten hier gelijk aan complexe getallen zaten te denken.)

Nog een vraagje: je wil dit analytisch doen neem ik aan?

  • Opi
  • Registratie: Maart 2002
  • Niet online
Verwijderd schreef op 30 June 2003 @ 17:18:
(het is inderdaad wel handig om te zeggen wat arg hier betekend, ik denk dat de meesten hier gelijk aan complexe getallen zaten te denken.)
Klopt, ik in iig wel. :) Maar ik ging ervan uit dat de mensen die dit probleem op zouden kunnen lossen of bekend zouden zijn met manieren die dit zouden kunnen doen, ook bekend zouden zijn met deze wiskundige notatie. :)
Nog een vraagje: je wil dit analytisch doen neem ik aan?
Niet noodzakelijker wijs, maar aangezien die methode naar mijn idee het snelst is, ben ik er ook vanuit gegaan dat dit de aangewezen manier zou zijn.

Verwijderd

Je kan kijken of Lagrange Multipliers werkt. Maar ik vrees dat je daarvoor constrants moet hebben van de vorm f(x)=0. Met continue f. Toch zou je moeten kijken in welke maten dat bruikbaar is.

  • Opi
  • Registratie: Maart 2002
  • Niet online
Zoals voorgenomen, een stukje over neurale netwerken.
Neurale netwerken of indien men op de details let, artificïele neurale netwerken (ANNs), zijn een functie approximatie techniek die ingangwaarden (inputs) en uitgangwaarden (outputs) aan elkaar kan relateren.

Dit stuk zal zich beperken tot globale feedforward neurale netwerken, waarbij globaal slaat op het feit dat de gewichten, die worden aangepast, de totale elementenruimte (ook wel state space of feature space genoemd) beïnvloeden en niet enkel lokaal effect hebben. Feedforward slaat op het feit dat de outputs van het netwerk niet teruggekoppeld worden, waarbij ze zouden dienen als inputs elders in het netwerk.

Het element waarop ieder neuraal netwerk is gebaseerd is het perceptron; een perceptron heeft een aantal ingangen en één uitgang. De inputs (xi) komen binnen bij de ingangen, waar ze vermenigvuldigd worden met gewichten (wi). De som van het product van de inputs met de gewichten, dient als input voor een sigmoïde functie; een sigmoïde functie is een functie die als maximum 1 heeft en als minimum 0 of -1, en strict stijgend is (vb: tanh). Een bijkomend voordeel bij de meest gebruikte sigmoïde functies, dat later van belang zal zijn, is het feit dat de afgeleide een functie is van de functie zelf. De output van het perceptron is de waarde die uit de sigmoïde functie komt rollen. Alhoewel de inputs niet genormaliseerd hoeven te zijn, gebeurt dit in het algemeen wel omdat anders de gewichten op een bepaalde manier genormaliseerd zouden moeten zijn. Beschouw ter illustratie het volgende voorbeeld:
h = tanh(sumi(wixi))

Een neuraal netwerk bestaat uit een aantal lagen van perceptronen; de inputlaag, (inputlayer) waar de inputs binnen komen, één of meerdere verborgen lagen (hidden layers) en een outputlaag, (outputlayer) waar de output van het neurale netwerk vandaan komt. De outputs van de ene laag perceptronen zijn de inputs van de volgende laag. Om alles enigzins te verduidelijken, beschouwen we een neuraal netwerk met één hidden layer, L inputs (index i -> xi), M perceptronen in de hidden layer (index j -> hj) en N outputs (index k -> yk). De gewichten tussen input en de hidden layer worden aangegeven met wij en de gewichten tussen de hidden en de output layer met vjk. Dit levert het volgende op:
hj = tanh(sumiL(wijxi)) en
yk = tanh(sumjM(vjkhj)) oftewel
yk = tanh(sumjM(vjktanh(sumiL(wijxi)))).

Net als elke andere functie approximatie techniek heeft ook een neuraal netwerk een input-output paar (x,d) nodig om te leren. De fout tussen de werkelijke output van het netwerk (y) en de gewenste output (d) wordt veelal gedefinieerd als E = 0.5(||y - d||)2.
Het leren of trainen van een neuraal netwerk gaat middels het updaten van de gewichten van het neurale netwerk aan de hand van de gradiënt. De meestgebruikte methode is van de eerste orde en lijkt op de Eulermethode, ter illustratie:
wij(t+1) = wij(t) - alpha*dE/dwij
Alpha is hierin een leerfactor die ervoor zorgt dat het neurale netwerk niet overtraind raakt, zich gaat focussen op een bepaald deel van de elementenruimte. Wanneer men de partiële afgeleide van E naar wij neemt zal men opmerken dat 'deelafgeleiden' een functie blijken te zijn van de functie zelf. Dit als gevolg van het gebruik van de gebruikte sigmoïde functie.

Een mogelijk probleem dat wordt veroorzaakt door de gradiënt is dat het neurale netwerk terecht komt in een lokaal optimum in plaats van in een globaal optimum. Dit probleem wordt in sommige gevallen veroorzaakt door verkeerde initialisatie van de gewichten. Er zijn manieren voorgesteld om dit tegen te gaan, maar dit gaat te diep in op de stof.

Cybenko toonde in 1989 aan dat één hidden layer in principe genoeg is om elke functie te benaderen, al zegt dit uiteraard niks over het benodigd aantal perceptronen die nodig is in de hidden layer.

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Is dit niet op te lossen door het opstellen van de maximum likelihood estimator van het maximum?

Wie trösten wir uns, die Mörder aller Mörder?


  • Opi
  • Registratie: Maart 2002
  • Niet online
Fused schreef op 12 juli 2003 @ 15:54:
Is dit niet op te lossen door het opstellen van de maximum likelihood estimator van het maximum?
Deze term is mij alleen bekend uit de statistiek. Ik zal er eens naar kijken, maar als je tijd over hebt mag je het natuurlijk ook iets concreter uitwerken. ;)

Het probleem lijkt mij bij deze aanpak namelijk ook voor een deel te zitten in het beperkte domein van x; de kans dat het maximum op een van de randen ligt is naar mijn idee namelijk reëel.

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Komt uit de statistiek ja; analyse van stochastische signalen. Zijn de elementen van x niet stochastisch tussen -1 en 1 verdeeld?

Maar waarom kan je V niet gewoon naar alle elementen van x differentieren? Bij een functie van meerdere variabelen kan je op drie manieren extreme waarden hebben:
- niet inwendige punten van V ('randpunten')
- inwendige punten waar niet alle afgeleiden bestaan
- inwendige punten waar de afgeleiden naar alle elementen 0 zijn.

Ik denk dat je er ook met de multiplicatorenstelling van Lagrange moet kunnen komen, mits je nog een nevenvoorwaarde aan de elementen van x op kan leggen.

Wie trösten wir uns, die Mörder aller Mörder?


Verwijderd

Fused schreef op 12 July 2003 @ 22:27:
Maar waarom kan je V niet gewoon naar alle elementen van x differentieren? Bij een functie van meerdere variabelen kan je op drie manieren extreme waarden hebben:
- niet inwendige punten van V ('randpunten')
- inwendige punten waar niet alle afgeleiden bestaan
- inwendige punten waar de afgeleiden naar alle elementen 0 zijn.
Zal niet altijd werkbaar zijn. Aangezien er best wel veel rand punten kunnen zijn.

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Trias schreef:
Zal niet altijd werkbaar zijn. Aangezien er best wel veel rand punten kunnen zijn.
Dit is niet zozeer een kwestie van werkbaarheid: dit zijn gewoon de mogelijke extreme punten van een functie van meerdere variabelen. Je moet op een of andere manier alle randpunten weten te beschouwen, anders mis je misschien extremen.

Wie trösten wir uns, die Mörder aller Mörder?


  • Opi
  • Registratie: Maart 2002
  • Niet online
Fused schreef op 12 July 2003 @ 22:27:
Komt uit de statistiek ja; analyse van stochastische signalen. Zijn de elementen van x niet stochastisch tussen -1 en 1 verdeeld?
Volgens mij wel.
Maar waarom kan je V niet gewoon naar alle elementen van x differentieren? Bij een functie van meerdere variabelen kan je op drie manieren extreme waarden hebben:
- niet inwendige punten van V ('randpunten')
- inwendige punten waar niet alle afgeleiden bestaan
- inwendige punten waar de afgeleiden naar alle elementen 0 zijn.
V is continu en ik neem dan ook aan dat punt 2 geen punt is.
x is hoogdimensionaal en ook al is de range erg klein, V is wel hoog-nonlinear.
Fused schreef op 14 July 2003 @ 09:09:
[...]
Dit is niet zozeer een kwestie van werkbaarheid: dit zijn gewoon de mogelijke extreme punten van een functie van meerdere variabelen. Je moet op een of andere manier alle randpunten weten te beschouwen, anders mis je misschien extremen.
Dat klopt, maar kan dit op een niet-analytische manier?
Pagina: 1