Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
SQL Server 2019 a starší služby Analysis Services Azure Analysis Services 
Fabric/ Power BI Premium
Důležité
Dolování dat bylo v SQL Serveru 2017 Analysis Services zastaralé a nyní ukončeno ve službě SQL Server 2022 Analysis Services. Dokumentace se neaktualizuje pro zastaralé a ukončené funkce. Další informace najdete v tématu Zpětná kompatibilita služby Analysis Services.
Neurální síť Microsoftu používá Multilayer Perceptron, označovanou také jako Back-Propagated Delta Rule síť, která se skládá z až tří vrstev neuronů nebo perceptronů. Tyto vrstvy představují vstupní vrstvu, volitelnou skrytou vrstvu a výstupní vrstvu.
Podrobná diskuze o neurálních sítích Multilayer Perceptron je mimo rozsah této dokumentace. Toto téma vysvětluje základní implementaci algoritmu, včetně metody použité k normalizaci vstupních a výstupních hodnot a metod výběru funkcí používaných ke snížení kardinality atributů. Toto téma popisuje parametry a další nastavení, která lze použít k přizpůsobení chování algoritmu, a poskytuje odkazy na další informace o dotazování modelu.
Implementace algoritmu neurální sítě Microsoftu
V neuronové síti Multilayer Perceptron přijímá každý neuron jeden nebo více vstupů a produkuje jeden nebo více identických výstupů. Každý výstup je jednoduchá nelineární funkce součtu vstupů neuronu. Vstupy se předávají z uzlů ve vstupní vrstvě do uzlů ve skryté vrstvě a poté ze skryté vrstvy do výstupní vrstvy; neexistují žádná spojení mezi neurony uvnitř vrstvy. Pokud není zahrnuta žádná skrytá vrstva, jako v modelu logistické regrese, předávají vstupy přímo z uzlů ve vstupní vrstvě do uzlů ve výstupní vrstvě.
Existují tři typy neuronů v neurální síti vytvořené pomocí algoritmu Microsoft Neural Network:
Vstupní neurony
Vstupní neurony poskytují hodnoty vstupních atributů pro model dolování dat. U diskrétních vstupních atributů vstupní neuron obvykle představuje jeden stav ze vstupního atributu. To zahrnuje chybějící hodnoty, pokud trénovací data obsahují hodnoty null pro tento atribut. Diskrétní vstupní atribut, který má více než dva stavy, generuje jeden vstupní neuron pro každý stav a jeden vstupní neuron pro chybějící stav, pokud jsou v trénovacích datech nějaké hodnoty null. Atribut průběžného vstupu generuje dva vstupní neurony: jeden neuron pro chybějící stav a jeden neuron pro hodnotu samotného spojitého atributu. Vstupní neurony poskytují vstupy jednomu nebo více skrytým neuronům.
Skryté neurony
Skryté neurony přijímají vstupy ze vstupních neuronů a poskytují výstupy pro výstupní neurony.
Výstupní neurony
Výstupní neurony představují předvídatelné hodnoty atributů pro model dolování dat. U diskrétních vstupních atributů obvykle výstupní neuron představuje jeden predikovaný stav předvídatelného atributu, včetně chybějících hodnot. Binární předvídatelný atribut například vytvoří jeden výstupní uzel, který popisuje chybějící nebo existující stav, a označuje, jestli pro daný atribut existuje hodnota. Logický sloupec, který se používá jako předvídatelný atribut, generuje tři výstupní neurony: jeden neuron pro skutečnou hodnotu, jeden neuron pro falešnou hodnotu a jeden neuron pro chybějící nebo existující stav. Diskrétní předvídatelný atribut, který má více než dva stavy, generuje jeden výstupní neuron pro každý stav a jeden výstupní neuron pro chybějící nebo existující stav. Souvislé předvídatelné sloupce generují dva výstupní neurony: jeden neuron pro chybějící nebo existující stav a jeden neuron pro hodnotu samotného souvislého sloupce. Pokud se vygeneruje více než 500 výstupních neuronů kontrolou sady předvídatelných sloupců, sql Server Analysis Services vygeneruje v modelu dolování novou síť, která bude představovat další výstupní neurony.
Neuron přijímá vstup z jiných neuronů nebo z jiných dat v závislosti na tom, ve které vrstvě sítě je. Vstupní neuron přijímá vstupy z původních dat. Skryté neurony a výstupní neurony přijímají vstupy z výstupu jiných neuronů v neurální síti. Vstupy vytvářejí vztahy mezi neurony a vztahy slouží jako cesta analýzy pro konkrétní sadu případů.
Každý vstup má přiřazenou hodnotu, která se nazývá váha, která popisuje význam nebo důležitost tohoto konkrétního vstupu pro skrytý neuron nebo výstupní neuron. Čím větší je váha přiřazená ke vstupu, tím relevantnější nebo důležitější hodnota tohoto vstupu. Váhy mohou být záporné, což znamená, že vstup může inhibovat, spíše než aktivovat, konkrétní neuron. Hodnota každého vstupu je vynásobená hmotností, aby zdůraznila důležitost vstupu pro konkrétní neuron. U záporných vah je účinek vynásobení hodnoty vahou snížení důležitosti.
Každý neuron má přiřazenou jednoduchou nelineární funkci, která se nazývá aktivační funkce, která popisuje význam nebo důležitost konkrétního neuronu pro danou vrstvu neurální sítě. Skryté neurony používají hyperbolickou tangensovou funkci (tanh) pro jejich aktivační funkci, zatímco výstupní neurony používají funkci sigmoid pro aktivaci. Obě funkce jsou nelineární, souvislé funkce, které umožňují neurální síti modelovat nelineární vztahy mezi vstupními a výstupními neurony.
Trénování neurálních sítí
Trénování modelu dolování dat, který používá algoritmus Microsoft Neural Network, zahrnuje několik kroků. Tyto kroky jsou silně ovlivněny hodnotami, které zadáte pro parametry algoritmu.
Algoritmus nejprve vyhodnotí a extrahuje trénovací data ze zdroje dat. Část trénovacích dat, označovaná jako testovací data, je vyhrazena k použití při posuzování přesnosti sítě. Během trénování se síť vyhodnocuje okamžitě po každé iteraci prostřednictvím trénovacích dat. Pokud se přesnost už nezvýší, proces trénování se zastaví.
Hodnoty parametrů SAMPLE_SIZE a HOLDOUT_PERCENTAGE slouží k určení počtu vzorkovaných případů z trénovacích dat a počtu případů, které mají být odloženy pro vyhrazená data. Hodnota parametru HOLDOUT_SEED se používá k náhodnému určení jednotlivých záznamů, které mají být vyčleněny jako testovací data.
Poznámka:
Tyto parametry algoritmu se liší od vlastností HOLDOUT_SIZE a HOLDOUT_SEED, které se použijí na strukturu těžby k určení testovací datové sady.
Algoritmus dále určuje počet a složitost sítí, které model dolování podporuje. Pokud model dolování obsahuje jeden nebo více atributů, které se používají pouze pro predikci, algoritmus vytvoří jednu síť, která představuje všechny tyto atributy. Pokud model dolování obsahuje jeden nebo více atributů, které se používají pro vstup i predikci, poskytovatel algoritmu vytvoří síť pro každý atribut.
U vstupních a předvídatelných atributů, které mají diskrétní hodnoty, představuje každý vstupní nebo výstupní neuron jeden stav. U vstupních a předvídatelných atributů, které mají souvislé hodnoty, představuje každý vstupní nebo výstupní neuron rozsah a rozdělení hodnot pro atribut. Maximální počet podporovaných stavů v obou případech závisí na hodnotě parametru algoritmu MAXIMUM_STATES . Pokud počet stavů pro určitý atribut překročí hodnotu parametru algoritmu MAXIMUM_STATES , vyberou se nejoblíbenější nebo relevantní stavy pro daný atribut, až do maximálního povoleného počtu stavů a zbývající stavy se seskupí jako chybějící hodnoty pro účely analýzy.
Algoritmus pak použije hodnotu parametru HIDDEN_NODE_RATIO při určování počátečního počtu neuronů k vytvoření pro skrytou vrstvu. Můžete nastavit HIDDEN_NODE_RATIO na hodnotu 0, aby se zabránilo vytvoření skryté vrstvy v sítích, které algoritmus generuje pro model dolování, a považovat neurální síť za logistickou regresi.
Poskytovatel algoritmu iterativně vyhodnocuje váhu pro všechny vstupy v síti současně, zatímco vezme sadu dříve rezervovaných trénovacích dat a porovnává skutečnou známou hodnotu pro každý případ v ověřovacích datech s predikcí sítě v procesu známém jako dávkové učení. Jakmile algoritmus vyhodnotí celou sadu trénovacích dat, algoritmus zkontroluje predikovanou a skutečnou hodnotu pro každý neuron. Algoritmus vypočítá stupeň chyby, pokud existuje, a upraví váhy, které jsou spojeny se vstupy pro tento neuron, a pracuje zpětně z výstupních neuronů na vstupní neurony v procesu známém jako backpropagation. Algoritmus pak tento proces opakuje přes celou sadu trénovacích dat. Protože algoritmus podporuje mnoho vah a výstupních neuronů, konjugační gradientní algoritmus se používá k vedení procesu trénování pro přiřazování a vyhodnocování hmotností pro vstupy. Diskuse o algoritmu s konjugovaným gradientem je mimo rozsah této dokumentace.
Výběr funkcí
Pokud je počet vstupních atributů větší než hodnota parametru MAXIMUM_INPUT_ATTRIBUTES nebo pokud je počet předvídatelných atributů větší než hodnota parametru MAXIMUM_OUTPUT_ATTRIBUTES , použije se algoritmus výběru funkce ke snížení složitosti sítí zahrnutých v modelu dolování. Výběr funkce snižuje počet vstupních nebo předvídatelných atributů na ty, které jsou pro model statisticky nejrelevantní.
Výběr funkcí automaticky používají všechny algoritmy dolování dat služby SQL Server Analysis Services ke zlepšení analýzy a snížení zatížení zpracování. Metoda použitá pro výběr funkcí v neurálních síťových modelech závisí na datovém typu atributu. V následující tabulce najdete metody výběru funkcí používané pro modely neurální sítě a také metody výběru funkcí používané pro algoritmus logistické regrese založené na algoritmu neurální sítě.
| Algorithm | Metoda analýzy | Comments |
|---|---|---|
| Neurální síť | Zajímavé skóre Shannonův entropie Bayesian s K2 Prior Bayesian Dirichlet s uniformou předchozí (výchozí) |
Algoritmus neurálních sítí může používat entropické i bayesovské metody bodování, pokud data obsahují souvislé sloupce. Výchozí. |
| Logistická regrese | Zajímavé skóre Shannonův entropie Bayesian s K2 Prior Bayesian Dirichlet s uniformou předchozí (výchozí) |
Vzhledem k tomu, že tento algoritmus nemůže předat parametr k řízení chování voleb funkcí, použijí se výchozí hodnoty. Proto pokud jsou všechny atributy diskrétní nebo diskretizované, výchozí hodnota je BDEU. |
Parametry algoritmu, které řídí výběr funkcí pro model neurální sítě, jsou MAXIMUM_INPUT_ATTRIBUTES, MAXIMUM_OUTPUT_ATTRIBUTES a MAXIMUM_STATES. Počet skrytých vrstev můžete také řídit nastavením parametru HIDDEN_NODE_RATIO.
Metody vyhodnocování
Bodování je druh normalizace, který v kontextu trénování modelu neurální sítě znamená proces převodu hodnoty, například diskrétního textového popisku, na hodnotu, kterou lze porovnat s jinými typy vstupů a vážit v rámci sítě. Pokud je například jedním vstupním atributem Pohlaví a možné hodnoty jsou Muž a Žena a dalším vstupním atributem je Příjem s proměnlivým rozsahem hodnot, hodnoty pro každý atribut nejsou přímo srovnatelné, a proto je nutné je zakódovat do společného měřítka, aby bylo možné vypočítat váhy. Bodování je proces normalizace takových vstupů na číselné hodnoty: konkrétně do rozsahu pravděpodobnosti. Funkce používané pro normalizaci také pomáhají rovnoměrněji distribuovat vstupní hodnotu v jednotném měřítku tak, aby extrémní hodnoty nezkreslovaly výsledky analýzy.
Výstupy neurální sítě jsou také kódovány. Pokud existuje jeden cíl pro výstup (tj. predikce) nebo více cílů, které se používají pouze pro predikci, a ne pro vstup, model vytvoří jednu síť a nemusí se zdát nezbytné k normalizaci hodnot. Pokud se však pro vstup a predikci používá více atributů, musí model vytvořit více sítí; proto musí být všechny hodnoty normalizovány a výstupy musí být také kódovány při ukončení sítě.
Kódování vstupů je založeno na sčítání jednotlivých diskrétních hodnot v tréninkových případech a vynásobení těchto hodnot jejich hmotnostmi. Tomu se říká vážený součet, který se předává aktivační funkci ve skryté vrstvě. Skóre z se používá pro kódování následujícím způsobem:
Diskrétní hodnoty
μ = p - předchozí pravděpodobnost stavu
StdDev = sqrt(p(1-p))
Souvislé hodnoty
Hodnota aktuální= 1 - μ/σ
Žádná existující hodnota= -μ/σ
Po zakódování hodnot procházejí vstupy váženým součtem, přičemž váhy tvoří hrany sítě.
Kódování pro výstupy používá funkci sigmoid, která má vlastnosti, díky kterým je velmi užitečná pro predikci. Jednou z těchto vlastností je to, že bez ohledu na to, jak se původní hodnoty škálují, a bez ohledu na to, jestli jsou hodnoty záporné nebo kladné, je výstup této funkce vždy hodnotou mezi 0 a 1, která je vhodná pro odhad pravděpodobností. Další užitečnou vlastností je, že sigmoidová funkce má vyhlazující efekt, takže když se hodnoty vzdalují od bodu inflexe, pravděpodobnost hodnoty se blíží k 0 nebo 1, ale pomalu.
Přizpůsobení algoritmu neurální sítě
Algoritmus Microsoft Neural Network podporuje několik parametrů, které ovlivňují chování, výkon a přesnost výsledného modelu dolování. Způsob, jakým model zpracovává data, můžete také upravit nastavením příznaků modelování u sloupců nebo nastavením distribučních příznaků určit způsob zpracování hodnot ve sloupci.
Nastavení parametrů algoritmu
Následující tabulka popisuje parametry, které lze použít s algoritmem Microsoft Neural Network.
HIDDEN_NODE_RATIO
Určuje poměr skrytých neuronů ke vstupním a výstupním neuronům. Následující vzorec určuje počáteční počet neuronů ve skryté vrstvě:
HIDDEN_NODE_RATIO * SQRT(Celkový počet vstupních neuronů * Celkový počet výstupních neuronů)
Výchozí hodnota je 4,0.
HOLDOUT_PERCENTAGE
Určuje procento případů v trénovacích datech použitých k výpočtu chyby blokování, která se používá jako součást kritérií zastavení při trénování modelu dolování.
Výchozí hodnota je 30.
HOLDOUT_SEED
Určuje číslo, které se používá k inicializaci pseudonáhodného generátoru, když algoritmus určuje odkladová data náhodně. Pokud je tento parametr nastaven na hodnotu 0, algoritmus vygeneruje počáteční hodnotu na základě názvu modelu dolování, aby zajistil, že obsah modelu zůstane během opětovného zpracování stejný.
Výchozí hodnota je 0.
MAXIMUM_INPUT_ATTRIBUTES
Určuje maximální počet vstupních atributů, které lze zadat algoritmus před provedením výběru funkce. Nastavením této hodnoty na hodnotu 0 zakážete výběr funkcí pro vstupní atributy.
Výchozí hodnota je 255.
MAXIMUM_OUTPUT_ATTRIBUTES
Určuje maximální počet výstupních atributů, které lze zadat algoritmus před provedením výběru funkce. Nastavením této hodnoty na hodnotu 0 zakážete výběr funkcí pro výstupní atributy.
Výchozí hodnota je 255.
MAXIMUM_STATES
Určuje maximální počet diskrétních stavů na atribut, který je podporován algoritmem. Pokud je počet stavů pro určitý atribut větší než počet zadaný pro tento parametr, algoritmus použije pro tento atribut nejoblíbenější stavy a považuje zbývající stavy za chybějící.
Výchozí hodnota je 100.
SAMPLE_SIZE
Určuje počet případů, které se mají použít k trénování modelu. Algoritmus používá buď toto číslo, nebo procento celkového počtu případů, které nejsou zahrnuté v datech blokování, jak je určeno parametrem HOLDOUT_PERCENTAGE, podle toho, která hodnota je menší.
Jinými slovy, pokud je HOLDOUT_PERCENTAGE nastavena na hodnotu 30, algoritmus použije buď hodnotu tohoto parametru, nebo hodnotu rovnající se 70 procentům celkového počtu případů, podle toho, co je menší.
Výchozí hodnota je 1 0000.
Příznaky modelování
Následující příznaky modelování jsou podporovány pro použití s algoritmem Microsoft Neural Network.
NESMÍ BÝT NULL
Označuje, že sloupec nemůže obsahovat hodnotu null. Pokud služba Analysis Services během trénování modelu narazí na hodnotu null, dojde k chybě.
Platí pro sloupce struktury dolování.
MODEL_EXISTENCE_ONLY
Označuje, že model by měl zvážit pouze to, jestli pro atribut existuje hodnota, nebo pokud chybí hodnota. Přesná hodnota nezáleží.
Platí pro sloupce modelu dolování.
Příznaky distribuce
Následující distribuční příznaky jsou podporovány pro použití s algoritmem Microsoft Neural Network. Příznaky se používají pouze jako nápovědy k modelu; pokud algoritmus zjistí jinou distribuci, použije nalezenou distribuci, nikoli distribuci uvedenou v nápovědě.
Normální
Označuje, že hodnoty ve sloupci by měly být považovány za normální nebo Gaussovské rozdělení.
Rovnoměrný
Označuje, že hodnoty v rámci sloupce by měly být považovány za to, že jsou distribuovány jednotně; to znamená, že pravděpodobnost jakékoli hodnoty je přibližně rovna a je funkcí celkového počtu hodnot.
Logaritmicko-normální
Označuje, že hodnoty ve sloupci by měly být považovány za distribuované podle normální křivky protokolu , což znamená, že logaritmus hodnot je distribuován normálně.
Požadavky
Model neurální sítě musí obsahovat alespoň jeden vstupní sloupec a jeden výstupní sloupec.
Vstupní a předvídatelné sloupce
Algoritmus Microsoft Neural Network podporuje konkrétní vstupní sloupce a předvídatelné sloupce uvedené v následující tabulce.
| Sloupec | Typy obsahu |
|---|---|
| Vstupní atribut | Kontinuální, Cyklický, Diskrétní, Diskretizovaný, Klíč, Tabulka a Seřazený |
| Předvídatelný atribut | Průběžné, cyklické, diskrétní, diskretizované a seřazené |
Poznámka:
Cyklické a seřazené typy obsahu jsou podporovány, ale algoritmus je považuje za diskrétní hodnoty a neprovádí speciální zpracování.
Viz také
Algoritmus neurální sítě Microsoftu
Obsah modelu dolování pro neurální síťové modely (Analysis Services – Dolování dat)
Příklady dotazů modelu neurální sítě