Sunday, 10 September 2017

Neurale Netwerk Binêre Opsie


Meta Trader 4 - Trading Systems Diep neurale netwerk met Stacked RBM. Eie opleiding, selfbeheersing Hierdie artikel is 'n voortsetting van die vorige artikels oor diep neurale netwerk en voorspeller seleksie. Hier gaan ons kyk kenmerke van 'n neurale netwerk wat deur Stacked RBM, en die implementering daarvan in die DARCH pakket. Die moontlikheid van die gebruik van 'verskuilde Markov model vir die verbetering van die prestasie van 'n neurale netwerk voorspelling sal ook aan die lig gebring. Ten slotte, sal ons programmaties te implementeer 'n operasionele Expert adviseur. Inhoud 1. Struktuur van DBN 2. Voorbereiding en seleksie van data 2.1. Insette veranderlikes 2.2. Uitsetveranderlikes 2.3. Aanvanklike data raam 2.3.1. hoogs gekorreleer veranderlikes 2.4 Die verwydering. Seleksie van die belangrikste veranderlikes 3. eksperimentele deel. 3.1. Die bou van modelle 3.1.1. Kort beskrywing van die DARCH pakket 3.1.2. Die bou van die DBN model. Grense. 3.2. Vorming van opleiding en toetsing monsters. 3.2.1. Balansering klasse en pre-verwerking. 3.2.2. Kodering die teiken veranderlike 3.3. Opleiding van die model 3.3.1. Pre-opleiding 3.3.2. Verfyn 3.4. Die toets van die model. etrics. 3.4.1. Dekodering voorspellings. 3.4.2. Die verbetering van die voorspelling resultate Kalibrasie Gladstryking met 'n Markov ketting model Regstelling voorspel seine op die teoretiese balans kurwe 3.4.3. Statistieke 4. Struktuur van die deskundige adviseur 4.1. Beskrywing van die deskundige adviseur se werking 4.2. Selfbeheer. Eie opleiding Installasie en die launch van maniere en metodes van die verbetering van kwalitatiewe aanwysers. Slot Inleiding Ter voorbereiding van data vir die uitvoer van eksperimente, sal ons veranderlikes gebruik van die vorige artikel oor die evaluering en keuse voorspellers. Ons sal die aanvanklike steekproef te vorm, skoon dit en kies die belangrike veranderlikes. Ons sal maniere verdeel die aanvanklike monster in opleiding, toetsing en bekragtiging monsters beskou. Die gebruik van die DARCH pakket sal ons 'n model van die DBN netwerk te bou, en op te lei dit op ons stelle data. Na die toets van die model, sal ons statistieke wat ons in staat sal stel om die kwaliteit van die model te evalueer verkry. Ons sal kyk na verskeie geleenthede wat die pakket bied om instellings van 'n neurale netwerk instel. Ook, sal ons sien hoe verskuilde Markov-modelle kan ons help om neurale netwerk voorspellings. Ons sal 'n kundige adviseur waar 'n model van tyd tot tyd sal opgelei op die vlieg sonder onderbreking in die handel, wat gebaseer is op die resultate van deurlopende monitering te ontwikkel. Die DBN model van die DARCH pakket sal gebruik word in die Expert adviseur. Ons sal ook inkorporeer die deskundige adviseur gebou met behulp van SAE DBN van die vorige artikel. Verder sal ons maniere en metodes van die verbetering van kwalitatiewe aanwysers van die model aan te dui. 1. Die struktuur van 'n diep neurale netwerk geïnisialiseer deur Stacked RBM (DN SRBM) Ek onthou dat DN SRBM bestaan ​​uit N-aantal RBM dat die aantal verborge lae neurale netwerk is gelyk en, basies, die neurale netwerk self. Opleiding bestaan ​​uit twee fases. Die eerste fase behels PRE-OPLEIDING. Elke RBM is stelselmatig opgelei sonder 'n toesighouer op die stel (sonder teiken) insette. Hierna gewig van verborge lae, is RBM na relevante verborge lae neurale netwerk. Die tweede fase behels verfyn, waar neurale netwerk is opgelei met 'n toesighouer. Gedetailleerde inligting oor dit wat in die vorige artikel, sodat ons nie t moet onsself hier herhaal. Ek sal net noem dat in teenstelling met die Deepnet pakket wat ons gebruik het in die vorige artikel, die DARCH pakket help ons om wyer geleenthede in die bou implementeer en transaksies met die model. Meer besonderhede sal verskaf word wanneer die skep van die model. Fig. 1 toon die struktuur en die opleiding proses van DN SRBM Fig. 1. Die struktuur van DN SRBM 2. Voorbereiding en seleksie van data 2.1. Insette veranderlikes (tekens, voorspellers) In die vorige artikel het ons reeds beskou as die evaluering en seleksie van voorspellers, so daar is geen behoefte om bykomende inligting nou voorsien. Ek sal net noem dat ons gebruik 11 aanwysers (al ossillators: ADX, aroon, ATR, CCI, chaikinVolatility, GMO, MACD, RSI, Stoch, SMI, wisselvalligheid). Verskeie veranderlikes is gekies uit 'n paar aanwysers. Op hierdie manier het ons die insette stel 17 veranderlikes gevorm. Laat s aanhalings uit die laaste 6000 bars op EURUSD, 30 soos op 14.02.16, en bereken aanwyser waardes met behulp van die funksie in (). Ons sal die insette datamatriks op die uitset te kry. 2.2 Afvoer data (teiken veranderlike) as 'n teiken veranderlike wat ons neem seine verkry met ZZ. Die funksie berekening van 'n zigzag en 'n sein: pr prys oorsig van OHLCMed haal CH minimum lengte van die zigzag draai in die punte (4 tekens) of in reële terme (byvoorbeeld CH 0,0035) af toegepas prys (m - medium, hl - hoë en Lae cl -. Close), medium gebruik by verstek. Die funksie gee terug Die matriks met twee veranderlikes in werklikheid, die zigzag en die sein, verkry op die basis van die zigzag hoek in die reeks van -1 1. Ons skuif die sein deur een bar aan die linkerkant (teenoor toekomstige). Dit spesifieke sein sal gebruik word om die neurale netwerk op te lei. Ons bereken seine vir ZZ met 'n draai lengte van ten minste 37 punte (4 tekens). Soos ons kan sien, die klasse is effens ongebalanseerd. Wanneer die vorming van monsters vir die opleiding van die model, sal ons die nodige maatreëls te neem om hulle afplat. 2.3. Aanvanklike data raam Laat s skryf 'n funksie wat die aanvanklike data raam sal skep, skoon dit van onseker data (NA) en omskep die teiken veranderlike om die faktor met twee klasse -1 en 1. Hierdie funksie kombineer voorheen geskryf funksies () en ZZ (). Ons sal onmiddellik gewas die laaste 500 bars wat gebruik sal word om die gehalte van die model se voorspelling te evalueer. 2.3.1. hoogs gekorreleer veranderlikes te skrap Ons sal veranderlikes verwyder met 'n korrelasiekoëffisiënt bo 0.9 van ons eerste stel. Ons sal 'n funksie wat die aanvanklike data raam vorm, te verwyder hoogs gekorreleer veranderlikes en terugkeer skoon data skryf. Ons kan kyk vooruit watter veranderlikes 'n korrelasie bo 0.9. So, die bogenoemde veranderlikes is onderhewig aan die verwydering. Ons sal dit verwyder uit die data raam. Ons sal dit kompak skryf in een funksie: Nie alle skrywers van pakkette en navorsers is dit eens dat hoogs gekorreleer data van die stelle moet verwyder word. Daar moet egter resultate met behulp van beide opsies hier vergelyk word. In ons geval, sal ons die opsie met die verwydering te kies. 2.4. Seleksie van die belangrikste veranderlikes belangrike veranderlikes gekies sal word wat gebaseer is op drie aanwysers: globale belang, plaaslike belang (in samewerking) en gedeeltelike belang deur die klas. Ons sal die geleenthede van die randomUniformForest pakket aan te gryp, soos uiteengesit in die vorige artikel. Alle vorige en volgende aksies sal versamel word in een funksie vir kompaktheid. Sodra uitgevoer, sal ons drie stelle as 'n resultaat te verkry: met die beste veranderlikes in bydrae en interaksie met die beste veranderlikes vir die klas -1 met die beste veranderlikes vir die klas 1. Ons sal aan die orde van die funksie berekeninge verduidelik. Amptelike parameters: N insette data parameter Z uitset data parameter sny korrelasie drumpel van veranderlikes metode insette data pre-verwerking metode. Orde van berekeninge: skep die aanvanklike stel data. f, wat hoogs het gekorreleer veranderlikes verwyder, en stoor dit vir verdere gebruik te identifiseer indekse van die opleiding en toetsing monsters van idx bepaal pre-verwerking parameters van prep verdeel die aanvanklike monster in opleiding en toets monsters, insette data genormaliseer verkry en toets die RUF model op die verkry stelle bereken die belangrikheid van die imp. ruf veranderlikes kies 10 belangrikste veranderlikes in terme van bydrae en interaksie beste kies 7 belangrikste veranderlikes vir elke klas -1 en 1 beste. buy, best. sell Maak 'n lys met drie stelle van voorspellers beste, best. buy, best. sell. Ons sal hierdie monsters te bereken en waardes van globale, plaaslike en gedeeltelike belang van die geselekteerde veranderlikes te evalueer. In terme van globale belang al 14 insette veranderlikes is gelyk. Die beste 10 word bepaal deur die totale bydrae (globale belangrikheid) en interaksie (plaaslike belang). Sewe beste veranderlikes ter gedeeltelike belang vir elke klas word op die onderstaande tabelle. Fig. 2. Gedeeltelike belangrikheid van veranderlikes vir die 1-klas Fig. 3. Gedeeltelike belangrikheid van veranderlikes vir die -1 klas Soos ons kan sien, die belangrikste veranderlikes vir verskillende klasse verskil in beide struktuur en ranglys. So, as vir die -1 klas die slowD veranderlike is die belangrikste, dan vir die 1-klas is dit net op die 4de plek. So, ons het stelle data gereed. Nou kan ons voortgaan met die eksperimente. 3. eksperimentele deel. Eksperimente sal gedoen word in die R taal Revolusie R Open, weergawe 3.2.2, verspreiding van die Revolusie Analytics maatskappy, meer spesifiek te wees. revolutionanalytics / revolusie-r-ope Hierdie verspreiding het 'n aantal voordele bo gewone R 3.2.2: vinnige en meer kwalitatiewe berekeninge deur die toepassing van die multi-threaded verwerking met Intel Math kern Biblioteek gevorderde funksies van Reproduceerbare R Toolkit. Een effense verduideliking: die R taal is aktief die ontwikkeling deur voortdurend die verbetering van die bestaande pakkette en die toevoeging van die nuwes. Die ander kant van sodanige vordering behels die verlies van reproduseerbaarheid. Dit wil sê, jou produkte wat n paar maande terug geskryf en is goed funksioneer, skielik ophou werk nadat die volgende update van pakkette. Baie tyd word vermors om die fout wat veroorsaak word deur die verandering in een van die pakkette te identifiseer en te likwideer. Byvoorbeeld, die deskundige adviseur verbonde aan die eerste artikel oor diep neurale netwerke is goed funksioneer by die punt van die skepping. Maar 'n paar maande na die publikasie van 'n aantal gebruikers het gekla oor sy nie-gemak. Die analise het getoon dat die opdatering van die svSocket pakket het gelei tot die deskundige adviseur se wanfunksioneer, en ek was nie in staat om die rede agter dit vind. Die gefinaliseer Expert adviseur sal na hierdie artikel word aangeheg. Hierdie probleem het 'n dringende kwessie, en dit is maklik opgelos in Revolusie Analytics. Nou, wanneer 'n nuwe verspreiding vrygestel word, die toestand van al die pakkette in die CRAN repositary vasgestel op die release date deur hulle kopiëring op hul spieël. Geen veranderinge in die CRAN deposit na hierdie datum kan beïnvloed die pakkette gevries op die Revolusie spieël. Verder vanaf Oktober 2014, het die maatskappy maak elke dag foto's van die CRAN deposit, waarby die betrokke staat en weergawes van pakkette. Met hul eie kontrolepunt pakket kan ons nou oplaai nodige pakkette wat betrokke is op die datum wat ons nodig het is. Met ander woorde, ons bedryf 'n 'n soort van tyd masjien. En 'n ander nuus. Nege maande gelede, toe Microsoft Revolusie Analytics gekoop, dit beloof om hul ontwikkelings te ondersteun en het die Revolusie R Open (RRO) verspreiding gratis beskikbaar. Dit is gevolg deur talle boodskappe oor verrassings in RRO en Revolusie R Enterpise (nie om die integrasie van R met SQL Server. PowerBI. Blou en Cortana Analitics noem). Nou het ons inligting wat die volgende RRO update sal genoem Microsoft R Open. en Revolusie R Enterprise Microsoft R Server. En nie so lank gelede Microsoft R het aangekondig dat R beskikbaar in Visual Studio sal wees. R gereedskap vir Visual Studio (RTVS) volg die Python gereedskap vir Visual Studio model. Dit sal 'n gratis Benewens Visual Studio dat 'n volledige IDE sal voorsiening maak vir R met die moontlikheid om te wysig en ontfout die skrifte interaktief wees. Teen die tyd dat die artikel is klaar, is Microsoft R Open (R 3.2.3) reeds vrygestel dus verder in die artikel ons sal verwys na pakkette vir hierdie weergawe. 3.1. Die bou van modelle 3.1.1. Kort beskrywing van die DARCH pakket Die DARCH ver. 0.10.0 pakket bied 'n wye verskeidenheid van funksies wat Don t net toelaat om te skep en op te lei die model, maar, letterlik, bou dit steen vir steen en pas dit volgens jou voorkeure. Soos voorheen aangedui, diep neurale netwerk bestaan ​​uit N-aantal RBM (N lae -1) en MLP neurale netwerk met 'n aantal lae. Laag-wyse pre-opleiding van RBM uitgevoer op onbegrijpelijke data sonder 'n toesighouer. Verfyn van neurale netwerk is uitgevoer met 'n toesighouer op geformateer data. Die verdeling van die opleiding stadiums gee ons 'n geleentheid om data verskeie in volume (maar nie struktuur) te gebruik of om 'n hele paar verskillende verfyn modelle verkry op grond van pre-opleiding alleen. Verder, as data vir pre-opleiding en fine-tuning is dieselfde, is dit moontlik om op te lei in 'n keer, in plaas van die verdeling in twee fases. Of jy kan pre-opleiding te slaan en gebruik slegs multilayer neurale netwerk, of, aan die ander kant, gebruik slegs RBM sonder die neurale netwerk. Terselfdertyd het ons toegang tot alle interne parameters. Die pakket is bedoel vir gevorderde gebruikers. Verder sal ons analiseer verdeelde prosesse: pre-opleiding en verfyning. 3.1.2. Die bou van die DBN model. Grense. Ons sal die proses van die bou, opleiding en toetsing van die DBN model beskryf. 1. Ons skep die diep argitektuur voorwerp genoem DARCH met behulp van die konstruktor met die nodige parameters lae. verskeidenheid wat die aantal lae en neurone in elke laag. Byvoorbeeld: lae c (5,10,10,2) 'n inset laag met 5 neurone (sigbare), twee verborge lae met 10 neurone elk, en een uitset laag met 2 uitgange. BatchSize. grootte van die mini-monster tydens opleiding. VF. dui aan of die VF formaat moet gebruik word vir gewigte, afwykings en uitgange. Die VF formaat is toegepas vir die stoor van groot hoeveelhede data met kompressie. LogLevel. vlak aan te meld en uitset by die verrigting van hierdie funksie. GenWeightFunction. funksie vir die opwekking van die matriks van RBM gewigte. Daar is 'n geleentheid om die gebruiker se aktivering funksie gebruik. Die geskep DARCH-voorwerp bevat (lae - 1) RBM gekombineer in die opbou netwerk wat gebruik sal word vir pre-opleiding van die neurale netwerk. Twee eienskappe fineTuneFunction en executeFunction bevat funksies vir fine-tuning (backpropagation by verstek) en vir die uitvoering (runDarch by verstek). Opleiding van die neurale netwerk is uitgevoer met twee opleiding funksies: preTrainDArch () en fineTuneDArch (). Die eerste funksie lei die RBM netwerk sonder 'n toesighouer met behulp van 'n teenstellende divergensie metode. Die tweede funksie maak gebruik van 'n funksie wat in die fineTuneFunction kenmerk vir 'n verfyning van neurale netwerk. Na neurale netwerk prestasie, kan uitgange van elke laag gevind word in die executeOutputs skryf of net uitset laag in die executeOutput kenmerk. 2. Funksie van pre-opleiding van die DARCH-voorwerp preTrainDArch (DARCH, dataset, numEpoch 1, numCD 1. trainOutputLayer F), DARCH. monster van die DARCH klas dataset. datastel vir opleiding numEpoch. aantal opleiding epogge numCD. aantal monsters iterasies. Gewoonlik, 'n voldoende. bykomende parameters wat kan oorgedra word na die trainRBM funksie trainOutputLayer. logiese waarde wat wys of die opbrengs laag RBM moet opgelei word. Die funksie verrig die trainRBM () opleidingsfunksie vir elke RBM, deur die kopiëring na opleiding gewigte en vooroordele aan die betrokke neurale netwerk lae van die DARCH-voorwerp. 3. Verbeter funksie van die DARCH-voorwerp DARCH. monster van die DARCH klas dataset. stel data vir opleiding (kan gebruik word vir bekragtiging) en toets dataSetValid. stel data wat gebruik word vir bekragtiging numxEpoch. aantal opleiding epogge bootstrap. logiese, is dit nodig om bootstrap toepassing wanneer die skep van data validering Isbin: dui as uitset data moet geïnterpreteer word as logiese waardes. By verstek ONWAAR is. Indien WAAR is elke waarde bo 0,5 geïnterpreteer as 1, en onder as 0. isClass. dui as die netwerk is opgelei vir klassifikasie. Indien waar, statistieke vir klassifikasie sal bepaal. WAAR by verstek. stopErr. maatstaf vir die staking van die opleiding van neurale netwerk weens fout tydens die opleiding. - Inf By verstek stopClassErr. maatstaf vir die staking van die opleiding van neurale netwerk as gevolg van klassifikasie Fout het tydens opleiding. 101 by verstek stopValidErr. maatstaf vir die staking van die neurale netwerk as gevolg van foute in datavalidering. - Inf By verstek stopValidClassErr. maatstaf vir die staking van die neurale netwerk as gevolg van klassifikasie Fout het tydens validering. 101 by verstek. bykomende parameters wat gebruik kan word geslaag om die opleidingsfunksie. Die funksie lei die netwerk met 'n funksie gestoor in die fineTuneFunction kenmerk van die DARCH-voorwerp. Insette data (trainData, validData, testData) en klasse wat aan hulle behoort (targetData, validTargets, testTargets) oorgedra kan word as dataset of VF-matriks. Data en klasse vir validering en toetsing is nie verpligtend. As hulle verskaf, dan neurale netwerk sal uitgevoer word met hierdie stelle data, en statistieke sal bereken word. Die Isbin kenmerk dui as uitset data moet geïnterpreteer word as binêre. As Isbin WAAR, word elke uitset waarde bo 0,5 geïnterpreteer as 1, anders as 0. Ons kan ook 'n stop maatstaf vir die opleiding wat gebaseer is op fout (stopErr, stopValidErr) of korrekte klassifikasie (stopClassErr, stopValidClassErr) stel op opleiding of validering stelle . Alle funksie parameters verstek waardes. Maar ander waardes is ook beskikbaar. So, byvoorbeeld: Funksie van aktiveer neurone sigmoidUnitDerivative, linearUnitDerivative, softmaxUnitDerivative, tanSigmoidUnitDerivative is beskikbaar. sigmoidUnitDerivative is by verstek gebruik word. Funksies van die neurale netwerk is verfyn backpropagation by verstek, veerkragtig-voortplanting rpropagation is ook beskikbaar in vier variasies (Rprop, Rprop-, iRprop, iRprop-) en minimizeClassifier (hierdie funksie is opgelei deur die DARCH netwerk klassifiseerder met behulp van die lineêre toegevoegde gradiënt metode). Vir die afgelope twee algoritmes en vir diegene wat 'n diep kennis van die onderwerp, is 'n aparte implementering van die neurale netwerk is verfyn met 'n opset van hul verskeie parameters verskaf. Byvoorbeeld: DARCH DARCH-voorwerp vir opleiding trainData insette data vir opleiding targetData verwag uitset vir die opleiding stel metode opleiding metode. iRprop by verstek. Rprop, Rprop-, iRprop - moontlik decFact dalende faktor vir opleiding. 0.5 by verstek incFact - toenemende faktor vir opleiding. 1.2 by verstek weightDecay dalende gewig by die opleiding. 0 by verstek initDelta inisialisering waarde aan die werk. 0,0125 by verstek minDelta minimum grens vir die stap grootte. 0.000001 by verstek maxDelta boonste grens vir die stap grootte. 50 by verstek. Die funksie gee terug Die DARCH-voorwerp met die opgeleide neurale netwerk. 3.2. Vorming van opleiding en toetsing monsters. Ons het reeds gevorm die aanvanklike steekproef van data. Nou moet ons dit verdeel in opleiding, geldigmaking en toets monsters. Die verhouding by verstek is 2/3. Verskeie pakkette het baie funksies wat gebruik word om monsters te verdeel. Ek gebruik rminer :: holdout () wat indekse bereken vir die afbreek van die aanvanklike monster in opleiding en toetsing monsters. y verlangde teiken veranderlike, numeriese vektor of faktor, in hierdie geval, die gestratifiseerde skeiding toegepas (dws proporsies tussen die klasse is dieselfde vir alle dele) verhouding verhouding van skeiding (in persentasie van die grootte van die opleiding monster gestig of in die totale getal monsters van die grootte van die toets monster gestig) internalsplit indien dit waar is, dan is die opleiding van data weer is verdeel in opleiding en validering monsters. Dieselfde verhouding toegepas vir die interne skeiding af monsterneming af. Opsies beskikbaar: gestratifiseerde gestratifiseerde ewekansige afdeling (indien faktor anders standaard ewekansige afdeling) ewekansige standaard ewekansige verdeling orde statiese af, wanneer die eerste voorbeelde word gebruik vir opleiding, en die res van die kinders vir die toets (wyd toegepas vir tydreekse) rollende rollende venster meer algemeen bekend as 'n gly venster (wyd toegepas op die voorspelling van voorraad en finansiële markte), insgelyks orde. behalwe dat venster verwys na venster grootte, iter rollende iterasie en inkrement aantal monsters die venster gly vorentoe op elke iterasie. Die grootte van die opleiding monster vir elke iterasie vasgestel met venster, terwyl die toets monster is gelykstaande aan verhouding, behalwe vir die laaste iterasie (waar dit minder kan wees). inkrementele inkrementele wyse van heropleiding, ook bekend as 'n toenemende venster, dieselfde as orde, behalwe dat venster is 'n aanvanklike venster grootte, iter inkrementele iterasies en inkrement aantal voorbeelde bygevoeg by elke iterasie. Die grootte van die opleiding monster groei (inkrement) by elke iterasie, terwyl die grootte van die toets stel is gelykstaande aan verhouding, behalwe vir die laaste iterasie, waar dit kleiner kan wees. iter aantal iterasies van die inkrementele metode van heropleiding (slegs gebruik wanneer af rollende of inkrementele, is iter gewoonlik in 'n lus). saad as NULL, dan ewekansige saad gebruik word, anders saad vaste (verdere berekeninge sal altyd dieselfde resultaat teruggekeer) venster grootte van opleiding venster (indien modus rollende) of die aanvanklike grootte van opleiding venster (indien modus inkrementele) inkrement aantal voorbeelde by die opleiding venster op elke iterasie (indien modus inkrementele of af rollende). 3.2.1. Balansering klasse en pre-verwerking. Ons sal 'n funksie wat die aantal klasse in die monster na die hoër getal sal in lyn te bring (indien nodig), verdeel die monster in opleiding en toetsing monsters, uit te voer pre-verwerking skryf (normalisering, indien nodig) en terug te keer die lys met relevante voorbeelde lei, te toets. Om balansering te bereik, gaan ons die kappie :: upSample () funksie wat monsters lukraak geneem met vervanging voeg, maak die klas verspreiding gelyke gebruik. Ek moet sê dat nie alle navorsers vind dit nodig om klasse te balanseer. Maar, soos reeds bekend, praktyk is 'n maatstaf van die waarheid, en die resultate van my verskeie eksperimente toon dat gebalanseerde monsters altyd beter resultate in opleiding wys. Alhoewel, dit kom nie t stop ons om te eksperimenteer op ons eie. Vir pre-verwerking sal ons die kappie :: vir wysig () funksie gebruik. Parameters van preprocessing sal in die prepr veranderlike gered. Aangesien ons reeds oorweeg en toegepas hulle is in die vorige artikels, sal ek nie hier verskaf enige verdere beskrywing. Een kommentaar met betrekking tot pre-verwerking: insette veranderlikes sal genormaliseer in die reeks (-1, 1). 3.2.2. Kodering die teiken veranderlike Wanneer die oplossing van klassifikasie take, die teiken veranderlike is 'n faktor met 'n paar vlakke (klasse). In 'n model dit is ingestel as 'n vektor (kolom), wat bestaan ​​uit die volgende teiken state. Byvoorbeeld, y (1, 1, 2, 3, 1). Met die oog op die neurale netwerk op te lei, moet die teiken veranderlike gekodeer (getransformeerde) in die matriks met die aantal kolomme gelyk aan die aantal klasse. In elke ry van hierdie matriks, mag slegs een kolom 1. Sulke transformasie bevat saam met die gebruik van die softmax () aktivering funksioneer in die uitset laag, toelaat om waarskynlikhede van state van die voorspelde teiken veranderlike verkry in elke klas. Die funksie classvec2classmat () sal gebruik word vir kodering. Dit op sy nie die enigste of die beste metode vir die kodering van die teiken veranderlike, maar ons sal dit gebruik, want dit is eenvoudig. Inverse transformasie (dekodering) van voorspelde waardes van die teiken veranderlike word bereik deur verskillende metodes wat ons gaan gou dek. 3.3. Opleiding van die model 3.3.1. Pre-opleiding Soos hierbo genoem, eerste, skep ons die diep argitektuur voorwerp genoem DARCH. dit sluit die vereiste aantal RBM met parameters van voorlopige opleiding by verstek, en die neurale netwerk geïnisieer met 'n arbitrêre gewigte en neuron aktivering funksie by verstek stel. By die skepping voorwerp stadium, kan die pre-opleiding parameters verander, indien nodig. Daarna het die RBM netwerk sal vooraf opgelei sonder 'n toesighouer deur die stuur van die opleiding monster (sonder teiken veranderlike) op die opbrengs. Nadat dit voltooi is, kry ons D RCH waar gewigte en vooroordele wat tydens RBM opleiding is oorgeplaas na die neurale netwerk. Ons moet vooraf bepaal word die verspreiding van verborge neurone in lae in 'n vorm van vektor (byvoorbeeld): Nommer van neurone in die insette laag is gelyk aan die aantal insette veranderlikes. Twee verborge lae sal 50 neurone bevat elk, sal die uitset laag twee het. Laat my die laaste bietjie verduidelik. As 'n teiken veranderlike (faktor) het twee vlakke (klasse), dan, in werklikheid, 'n produksie is voldoende. Maar die omskakeling vektor in die matriks met twee kolomme, elkeen van hulle wat ooreenstem met een klas, stel ons in staat om die softmax aktivering funksioneer, wat goed werk in die klassifikasie take, in die uitset laag toe te pas. Verder uitsette in die vorm van die klas waarskynlikhede gee ons bykomende geleenthede in die daaropvolgende ontleding van resultate. Hierdie vak sal binnekort gedek. Die aantal tydperke wanneer opleiding is eksperimenteel vasgestel, gewoonlik binne die omvang van 10-50. Die aantal monsters iterasie sal bly by verstek, maar hierdie parameter kan verhoog as jy wil om te eksperimenteer. Dit sal gedefinieer word in 'n aparte funksie: 3.3.2. Verfyn Soos voorheen bespreek, die pakket bied backpropagation (), rpropagation (), minimizeClassifier (), minimizeAutoencoder () vir fine-tuning. Die laaste twee gewen t in ag geneem word, aangesien hulle nie genoeg gedokumenteer in die pakket, en daar is geen voorbeelde van hoe om dit toe te pas. Hierdie funksies in my eksperimente didn t wys goeie resultate. Ek wil ook graag iets pakket updates te voeg. Toe ek begin skryf van hierdie artikel, die huidige weergawe was 0,9, en deur die oomblik is daar klaar 'n nuwe 0.10 weergawe met verskeie veranderinge is vrygestel. Alle berekeninge moes oorgedoen. Op grond van die resultate van kort toetse, kan ek sê dat die operasie spoed aansienlik toegeneem het, in teenstelling met die resultate gehalte (wat meer 'n skuld van 'n gebruiker, dan is die pakket). Laat s kyk na twee eerste funksies. Die eerste (backpropagation) is by verstek stel in die D RCH voorwerp en maak gebruik van die opleiding neurale netwerk parameters wat hier verskaf word. Die tweede funksie (rpropagation) het ook standaard parameters en vier oefenmetodes (hierbo beskryf) wat iRprop by verstek. Jy kan beide parameters en die opleiding metode beslis verander. Dit is maklik om hierdie funksies toe te pas: verander die verfyn funksie in FineTuneDarch () Benewens instellings-tuning fyn, ons moet stel (indien nodig) die funksie van die aktivering van neurone in elke laag. Ons weet dat sigmoidUnit speel af in alle lae by verstek. Dit is beskikbaar in die pakket sigmoidUnitDerivative, linearUnitDerivative, tanSigmoidUnitDerivative, gaan besoek softmaxUnitDerivative. Die verfyn word gedefinieer met 'n aparte funksie met die vermoë om die verfyn funksie te kies. Ons sal versamel moontlike funksies van aktivering in 'n aparte lys: eerste opgelei met behulp van die backpropagation funksie, tweede met rpropagation: Het verduideliking oor formele parameters van die funksie wat ons sal 'n verfyn funksie wat sal lei en genereer twee neurale netwerke te skryf. variant - keuse van verfyn funksie (1- backpropagation 2- rpropagation.). dbnin - model van ontvangs gevolg van pre-opleiding. dS - datastel vir verfyn (dataset). HD - koëffisiënt van steekproefneming (hiddenDropout) in verborge lae neurale netwerk. ID - koëffisiënt van steekproefneming (inputDropout) in insette laag neurale netwerk. Wet - vektor met aanduiding van funksie van neuron aktivering in elke laag van neurale netwerk. Die lengte van vektor is 'n eenheid korter as die aantal lae. nE - aantal opleiding tydperke. dataset 'n nuwe wese wat verskyn in hierdie weergawe. Ek Don t regtig verstaan ​​die rede vir sy verskyning. Gewoonlik, die taal het twee maniere om die oordrag van veranderlikes om 'n model met behulp van 'n paar (x, y) of 'n formule (y data). Die voorkoms van hierdie wese kom nie t verbetering van die gehalte, maar verwar die gebruikers in plaas. Tog kan die skrywer sy redes wat aan my onbekend is nie. 3.4. Die toets van die model. etrics. Die toets van die opgeleide model is uitgevoer op die toets monsters. Dit moet in ag geneem word dat ons twee statistieke sal bereken: formele Akkuraatheid en kwalitatiewe K. Die relevante inligting word hieronder verskaf. Vir hierdie doel, sal ons twee verskillende monsters van data nodig, en ek sal vir jou verduidelik hoekom. Akkuraatheid te bereken moet ons waardes van die teiken veranderlike, en die ZigZag, as ons onthou van voor, die mees algemene is nie gedefinieer op die laaste bars. Daarom is die toets monster vir die berekening van akkuraatheid sal ons bepaal met die funksie prepareTrain (), en vir kwalitatiewe aanwysers sal ons die volgende funksie Die modelle sal op die laaste 500 bars van die geskiedenis word getoets gebruik. Vir werklike toets, testAcc () en testBal () sal toegepas word. Die eerste funksie gee terug Rek en die teiken veranderlike waardes (werklike of voorspel) vir 'n moontlike verdere analise. Die tweede funksie gee terug Die voorspelde seine vir die sig EA, die balans verkry op grond van hierdie seine (bal), kwaliteit koëffisiënt (). maksimum waarde van hierdie koëffisiënt op die getoets gebied (Kmax) en die maksimum drawdown (dd) in dieselfde gebied. By die berekening van die balans, is dit belangrik om te onthou dat die laaste voorspel sein verwys na die toekomstige bar wat t is hasn gevorm nie, daarom is dit moet verwyder word op berekeninge. Ons het dit gedoen deur die verskuiwing van die sig vektor deur een bar na regs. 3.4.1. Dekodering voorspellings. Die verkry gevolg ontsyfer kan word (omgeskakel vanaf matriks te vektor) met behulp van die WTA metode. Die klas is gelyk aan die aantal kolom met 'n maksimum waarde van waarskynlikheid, en die waarde drumpel van hierdie waarskynlikheid kan ingestel word, onder wie die klas nie bepaal word. As die drumpel is ingestel as 0,5, en die grootste waarskynlikheid in die kolomme is onder die drempel, sal ons 'n bykomende klas te verkry (nie gedefinieer). Dit moet in ag geneem word by die berekening van statistieke soos Akkuraatheid. 3.4.2. Die verbetering van die voorspelling resultate Is dit moontlik om die voorspelling gevolg verbeter nadat dit ontvang Daar is drie moontlike maniere wat aangewend kan word. Kalibrasie Kalibrasie Isa berekening van die moontlikheid reekse wat die mees akkurate verenigbaarheid met werklike data gee. Vir hierdie doel, is daar 'n spesiale funksie in die CORElearn pakket: correctClass vektor met korrekte byskrifte Klasse vir probleem klassifikasie predictedProb vektor met die voorspelde klas 1 (waarskynlikheid) van dieselfde lengte as correctClass metode een uit die volgende (isoReg, binIsoReg , saamverpakkingsafdeling, mdlMerge). Vir meer inligting lees asseblief die pakket beskrywing gewig vektor (indien aangedui) moet dieselfde lengte as correctClass wees, en bied gewigte vir elke waarneming, anders gewigte van alle waarnemings gelyk 1 by verstek noBins parameter waarde hang af van metode en bepaal die gewenste of aanvanklike e. Mis nooit 'n update Skryf R-bloggers om e-posse te ontvang met die nuutste R poste. (Jy sal hierdie boodskap nie weer sien nie.)

No comments:

Post a Comment