Jak zrychlit Powell Method (hledání globálního optima funkce)?

Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #15 kdy: 29. 08. 2022, 19:59:59 »
jestli ma 500+ parametru tak si na tech rezech vykouka ocicka :-)

tolik parametru by mohly mit nejake obchodni transakce?

nebo muze hledat nejlepsi konformaci molekuly a 500 parametru jsou uhly mezi atomy v molekule a pocita nejjnizsi konformacni energii.

Haha, ne. Snažím se předpovídat výsledky sportovních zápasů podle určité mé metody, která je zřejmě na světě unikátní, ale otázka je, zda to celý vůbec funguje - klidně můžu dospět k tomu, že to nefunguje a že celej tenhle projekt byl jen ztráta času. (Každopádně maximum mé funkce vyjadřuje celkovou ziskovost tý mý metody - proto čím vyšší hodnota tý funkce, tím líp pro mě :)) Aktuálně sem na cca +0,98 % ziskovosti (proti průměru kurzů sázkovek) To je samozřejmě slabý. Na druhou stranu - sázkovky mají cca 3% marži a tu marži to teda asi o procento překonává, takže celkově ta moje metoda asi o 4% překonává práh pravděpodobnosti. (Další věc je, že mám v zásobě metody, který by měly bejt mnohem lepší než ta moje současná, uvidíme.)
.
simulovane zihani jen k jakekoliv optimalizacni metode pridava upraveny test na mensi nalezenou hodnotu, simulovane zihani v zavislosti na teplote jen umoznuje prijmout i vysledek, ktery ma vyssi hodnotu objektivni funkce a umoznuje tak vylezt na kopec z lokalniho minima.

Moc tomu nerozumím, ale jak to propojit s tím Powellem? Právěže mechanismus Powella neznám a nechce se mi studovat (mám za sebou jen středoškolskou matiku tak bych tomu asi stejně nerozuměl). Nicméně to vypadá, že Powell ty směrový vektory nevybírá náhodně, ale podle nějakýho danýho algoritmu - snadno se to dá ověřit tím, že když to opakovaně spustím se stejnejma parametrama, tak to vždycky dá úplně stejnej výsledek a stejný koeficienty. Takže bych nejspíš musel vzít zdroják Powella a to žíhání teda zapracovat do něj, aby to ty směrový vektory nevybíralo podle algoritmu Powella, ale podle toho žíhání ne? Tím bych teda vytvořil úplně novou metodu, jakýhosi žíhanýho Powella, haha. Každopádně toto určitě dělat nebudu :))


mikrom

  • ***
  • 211
    • Zobrazit profil
    • E-mail
Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #16 kdy: 29. 08. 2022, 20:00:53 »
V podstatě mám nějakejch 15 základních faktorů,
ale potom nerozumiem ako ziskas z 15 faktorov 500+ premennych ako si pisal vyssie

no a jednak nevím, jak velkou váhu/důležitost ty vlastnosti mají a pak hlavně mají x možných hodnot a každá z těch hodnot zase hraje jinou roli, pravděpodobně v tom není nějaká zákonitost nebo jí minimálně neznám.
to by si ale mal skusit najskor analyzovat, aku dolezitost jednotlive faktory maju, lebo takto mi to pripada ze len naslepo spustas nejaku optimalizacnu metodu nad nejakou funkciou o ktorej povahe nemas znalosti.

Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #17 kdy: 29. 08. 2022, 20:22:12 »
ale potom nerozumiem ako ziskas z 15 faktorov 500+ premennych ako si pisal vyssie


Možná není dobrý, že to nazývám slovem faktor - je to v podstatě objekt a ten má určitý vlastnosti. Každá z vlastností má určitý počet možných hodnot, některý třeba 12, jiný 144 nebo i víc. Takže celkově vzato ten objekt má nějakou sílu, která je daná určitým produktem těch hodnot. No a těch objektů mám 15 :D

a6b

  • ***
  • 119
    • Zobrazit profil
    • E-mail
Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #18 kdy: 29. 08. 2022, 21:28:36 »
Citace
Moc tomu nerozumím, ale jak to propojit s tím Powellem? Právěže mechanismus Powella neznám a nechce se mi studovat (mám za sebou jen středoškolskou matiku tak bych tomu asi stejně nerozuměl). Nicméně to vypadá, že Powell ty směrový vektory nevybírá náhodně, ale podle nějakýho danýho algoritmu - snadno se to dá ověřit tím, že když to opakovaně spustím se stejnejma parametrama, tak to vždycky dá úplně stejnej výsledek a stejný koeficienty. Takže bych nejspíš musel vzít zdroják Powella a to žíhání teda zapracovat do něj, aby to ty směrový vektory nevybíralo podle algoritmu Powella, ale podle toho žíhání ne? Tím bych teda vytvořil úplně novou metodu, jakýhosi žíhanýho Powella, haha. Každopádně toto určitě dělat nebudu :))


zihani a jeho parametr teplota nezasahuje do powellovy nebo jine metody, ktera nalezne vhodny nasledny bod s mensi funkcni hodnotou. ale jen do testu zda se nova iterace vezme, normalne se vezme jen novy bod, ktery ma mensi funkcni hodnotu. zihani ale muze vzit i bod, ktery ma vyssi hodnotu objektivni funkce.

teplota jen urcuje sanci, ze se muze vzit i horsi iterace. a teplota postupne klesa a tak i klesa sance, ze v dalsich iteracich polezeme do kopce.

teplota muze klesat linearne, logaritmicky nebo ji lze obcas i zvysit a ohrat system.

Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #19 kdy: 30. 08. 2022, 00:45:13 »
zihani a jeho parametr teplota nezasahuje do powellovy nebo jine metody, ktera nalezne vhodny nasledny bod s mensi funkcni hodnotou. ale jen do testu zda se nova iterace vezme, normalne se vezme jen novy bod, ktery ma mensi funkcni hodnotu. zihani ale muze vzit i bod, ktery ma vyssi hodnotu objektivni funkce.

teplota jen urcuje sanci, ze se muze vzit i horsi iterace. a teplota postupne klesa a tak i klesa sance, ze v dalsich iteracich polezeme do kopce.

teplota muze klesat linearne, logaritmicky nebo ji lze obcas i zvysit a ohrat system.

Aha, už rozumím. Takže vzít hodnoty, které mi dal Powell, nechat je projet tím žíháním, a zase poslat do Powella. Takhle to je myšleno, že?

Mně teď nějaký vývojář JAXu poradil, jak tu mojí funkci malinko upravit, aby nebyla derivace zero gradient, takže mi možná nakonec půjde gradient descent, pokud ne, tak to tvoje žíhání zkusím.



tecka

  • ***
  • 132
    • Zobrazit profil
    • E-mail
Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #20 kdy: 30. 08. 2022, 02:17:35 »
Právěže mechanismus Powella neznám a nechce se mi studovat
Tak si ho nastuduj. Pokud chceš použít konkrétně Powella, tak bys asi měl vědět proč.

Ale můžu ti předem prozradit, že to je celé nesmysl a přijdeš akorát na to, že favoritem je favorit. Abys vykoumal něco navíc, tak musíš mít informace navíc. A ty nemáš.

a6b

  • ***
  • 119
    • Zobrazit profil
    • E-mail
Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #21 kdy: 30. 08. 2022, 06:12:30 »
Právěže mechanismus Powella neznám a nechce se mi studovat
Tak si ho nastuduj. Pokud chceš použít konkrétně Powella, tak bys asi měl vědět proč.

Ale můžu ti předem prozradit, že to je celé nesmysl a přijdeš akorát na to, že favoritem je favorit. Abys vykoumal něco navíc, tak musíš mít informace navíc. A ty nemáš.

ja bych rekl, ze lepsi by byla analyza hracu podle casu, protoze favoritem se v case stavaji ruzni hraci. multiparametricka optimalizace je podle me vhodnejsi na funkce co se nemeni v case.

Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #22 kdy: 30. 08. 2022, 20:13:22 »
Právěže mechanismus Powella neznám a nechce se mi studovat
Ale můžu ti předem prozradit, že to je celé nesmysl a přijdeš akorát na to, že favoritem je favorit. Abys vykoumal něco navíc, tak musíš mít informace navíc. A ty nemáš.

No tak samozřejmě, že mám informace navíc! Na tom to je celý postavený. Dám příklad: třeba někdo by měl teorii, že výsledek zápasu záleží na počasí. No tak potom stačí každej zápas a jeho výsledek propojit s datama z nějaký mateorologický databáze a nějak z toho udělat model. (Moje informace se netýkají počasí, ale principiálně to je podobný. Prostě to propojuju s jinou databází.)

A jinak pracuju s datama z free API jedný společnosti, která poskytuje data sázkovým kancelářím. Mají tam třeba i průměr kurzů asi 20 velkých světových sázkovek. Ty mají dohromady průměrnou marži kolem 6,5%. Moje aktuální metoda - když vezmu všechny zápasy dohromady, teď jich je asi 135 tisíc, má celkovou ziskovost na zápas +0,98% (přičemž si myslím, že globální maximum tý mý funkce je kolem 1,5%, ale důkaz pro to v současnosti nemám).  Jedno procento je samozřejmě slabý a nemám šanci na tom zbohatnout - obzvlášť vzhledem k tomu, že český sázkovky mají obecně vzato marži vyšší než těch 6,5% - spíš se pohybuje kolem 8%. Ale na druhou stranu - na to moje jedno procento zisku je nutný se dívat tak, že překonává tu marži 6,5% - takže vlastně to o cca 7,5% překonává práh pravděpodobnosti. To podle mě když už nic jinýho aspoň dokládá, že ty informace, s nimiž pracuju, prostě výsledek ovlivňujou, byť ne nijak zásadně.

Logik

  • *****
  • 1 006
    • Zobrazit profil
    • E-mail
Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #23 kdy: 31. 08. 2022, 12:09:25 »
Jen takovej, možná blbej, nápad:
Zkus pomocí andersona (scipy.optimize.anderson) hledat kořen funkce G, kde je F je tvoje funkce:
G(x) = F(x) - F(scipy.optimize.powell(F, x))

možná to k ničemu nebude, ale mohlo by to urychlit hledání správného minima. Fungovat by to mělo,
pokud platí to, co se mi zdá implicitně tvrdíš, že čím jsi blíže minimu, tím menší zlepšení optimalizace
udělá... a když budeš mít štěstí.... :-)

Pokud to bude fungovat, tak můžeš zkusit v tom vnitřním powellovi omezit počet iterací,
aby to bylo rychlejší...




Re:Jak zrychlit Powell Method (hledání globálního optima funkce)?
« Odpověď #24 kdy: 18. 09. 2022, 12:40:57 »
Zde je můj sázecí AI projekt - aktuálně se nesnaží docílit co nejvyššího zisku, ale co nejvyšší úspěšnosti predikcí. Co říkáte? :))

http://194.163.128.167:1414/

http://194.163.128.167:1414/history

Current status: 89 games, good predictions: 57 (64.04%), wrong: 32 (35.96%)
Gain: 16670 // Profitability: +18.73% (per game)