Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Microsoft Neural Network usa una rete Multilayer Perceptron, detta anche rete di regole deltaBack-Propagated, composta da un massimo di tre livelli di neuroni o perceptron. Questi livelli sono un livello di input, un livello nascosto facoltativo e un livello di output.
Una descrizione dettagliata delle reti neurali Perceptron multilayer non rientra nell'ambito di questa documentazione. In questo argomento viene illustrata l'implementazione di base dell'algoritmo, incluso il metodo usato per normalizzare i valori di input e output e i metodi di selezione delle caratteristiche usati per ridurre la cardinalità degli attributi. In questo argomento vengono descritti i parametri e altre impostazioni che è possibile usare per personalizzare il comportamento dell'algoritmo e vengono forniti collegamenti ad altre informazioni sull'esecuzione di query sul modello.
Implementazione dell'algoritmo Microsoft Neural Network
In una rete neurale Multilayer Perceptron ogni neurone riceve uno o più input e produce uno o più output identici. Ogni output è una semplice funzione non lineare della somma degli input al neurone. Gli input passano in avanti dai nodi nel livello di input ai nodi nel livello nascosto e quindi passano dal livello nascosto al livello di output; non ci sono connessioni tra neuroni all'interno di un livello. Se non è incluso alcun livello nascosto, come in un modello di regressione logistica, gli input passano direttamente dai nodi nel livello di input ai nodi nel livello di output.
Esistono tre tipi di neuroni in una rete neurale creata con l'algoritmo Microsoft Neural Network:
Input neurons
I neuroni di input forniscono valori di attributo di input per il modello di data mining. Per gli attributi di input discreti, un neurone di input rappresenta in genere un singolo stato dell'attributo di input. Sono inclusi i valori mancanti, se i dati di training contengono valori Null per tale attributo. Un attributo di input discreto con più di due stati genera un neurone di input per ogni stato e un neurone di input per uno stato mancante, se sono presenti valori Null nei dati di training. Un attributo di input continuo genera due neuroni di input: un neurone per uno stato mancante e un neurone per il valore dell'attributo continuo stesso. I neuroni di input forniscono input a uno o più neuroni nascosti.
Hidden neurons
I neuroni nascosti ricevono input dai neuroni di input e forniscono output ai neuroni di output.
Output neurons
I neuroni di output rappresentano valori di attributo stimabili per il modello di data mining. Per gli attributi di input discreti, un neurone di output rappresenta in genere un singolo stato stimato per un attributo stimabile, inclusi i valori mancanti. Ad esempio, un attributo stimabile binario produce un nodo di output che descrive uno stato mancante o esistente, per indicare se esiste un valore per tale attributo. Una colonna booleana utilizzata come attributo prevedibile genera tre neuroni di output: un neurone per un valore vero, un neurone per un valore falso e un neurone per uno stato di valori mancanti o esistenti. Un attributo stimabile discreto con più di due stati genera un neurone di output per ogni stato e un neurone di output per uno stato mancante o esistente. Le colonne stimabili continue generano due neuroni di output: un neurone per uno stato mancante o esistente e un neurone per il valore della colonna continua stessa. Se vengono generati più di 500 neuroni di output esaminando il set di colonne stimabili, Analysis Services genera una nuova rete nel modello di data mining per rappresentare i neuroni di output aggiuntivi.
Un neurone riceve l'input da altri neuroni o da altri dati, a seconda del livello della rete in cui si trova. Un neurone di input riceve input dagli dati originali. I neuroni nascosti e quelli di output ricevono gli input generati dall'output di altri neuroni nella rete neurale. Gli input stabiliscono relazioni tra neuroni e le relazioni fungono da percorso di analisi per un set specifico di case.
A ogni input è assegnato un valore, denominato peso, che descrive la rilevanza o l'importanza di quel particolare input per il neurone nascosto o il neurone di output. Maggiore è il peso assegnato a un input, più rilevante o importante è il valore di tale input. I pesi possono essere negativi, il che implica che l'input può inibire, anziché attivare, un neurone specifico. Il valore di ogni input viene moltiplicato per il peso per sottolineare l'importanza di un input per un neurone specifico. Per i pesi negativi, l'effetto della moltiplicazione del valore per il peso è quello di ridurre l'importanza.
A ogni neurone è assegnata una semplice funzione non lineare, denominata funzione di attivazione, che descrive la rilevanza o l'importanza di un particolare neurone a quel livello di una rete neurale. I neuroni nascosti usano una funzione tangente iperbolica (tanh) per la funzione di attivazione, mentre i neuroni di output usano una funzione sigmoide per l'attivazione. Entrambe le funzioni sono funzioni non lineari e continue che consentono alla rete neurale di modellare relazioni non lineari tra i neuroni di input e di output.
Training di reti neurali
Sono necessari diversi passaggi per il training di un modello di data mining che usa l'algoritmo Microsoft Neural Network. Questi passaggi sono fortemente influenzati dai valori specificati per i parametri dell'algoritmo.
L'algoritmo prima valuta ed estrae i dati di addestramento dall'origine dei dati. Una percentuale dei dati di addestramento, denominati dati di holdout, è riservata per l'uso nella valutazione dell'accuratezza della rete. Durante il processo di training, la rete viene valutata immediatamente dopo ogni iterazione tramite i dati di training. Quando l'accuratezza non aumenta più, il processo di training viene arrestato.
I valori dei parametri SAMPLE_SIZE e HOLDOUT_PERCENTAGE vengono usati per determinare il numero di case da campionare dai dati di training e il numero di case da riservare per i dati di controllo. Il valore del parametro HOLDOUT_SEED viene usato per determinare in modo casuale i singoli casi da mettere da parte per i dati di validazione.
Annotazioni
Questi parametri dell'algoritmo sono diversi dalle proprietà HOLDOUT_SIZE e HOLDOUT_SEED, applicate a una struttura di data mining per definire un set di dati di test.
L'algoritmo determina quindi il numero e la complessità delle reti supportate dal modello di data mining. Se il modello di data mining contiene uno o più attributi utilizzati solo per la stima, l'algoritmo crea una singola rete che rappresenta tutti questi attributi. Se il modello di data mining contiene uno o più attributi utilizzati sia per l'input che per la stima, il provider di algoritmi costruisce una rete per ogni attributo.
Per gli attributi di input e stimabili con valori discreti, ogni neurone di input o output rappresenta rispettivamente un singolo stato. Per gli attributi di input e stimabili con valori continui, ogni neurone di input o output rappresenta rispettivamente l'intervallo e la distribuzione dei valori per l'attributo. Il numero massimo di stati supportati in entrambi i casi dipende dal valore del parametro dell'algoritmo MAXIMUM_STATES . Se il numero di stati per un attributo specifico supera il valore del parametro dell'algoritmo MAXIMUM_STATES , vengono scelti gli stati più diffusi o rilevanti per tale attributo, fino al numero massimo di stati consentiti e gli stati rimanenti vengono raggruppati come valori mancanti ai fini dell'analisi.
L'algoritmo usa quindi il valore del parametro HIDDEN_NODE_RATIO quando si determina il numero iniziale di neuroni da creare per il livello nascosto. È possibile impostare HIDDEN_NODE_RATIO su 0 per impedire la creazione di un livello nascosto nelle reti generate dall'algoritmo per il modello di data mining, per considerare la rete neurale come regressione logistica.
Il provider di algoritmi valuta in modo iterativo il peso per tutti gli input nella rete contemporaneamente, prendendo il set di dati di training riservati in precedenza e confrontando il valore noto effettivo per ogni caso nei dati di controllo con la stima della rete, in un processo noto come apprendimento batch. Dopo che l'algoritmo ha valutato l'intero set di dati di training, l'algoritmo esamina il valore stimato e effettivo per ogni neurone. L'algoritmo calcola il grado di errore, se presente, e regola i pesi associati agli input per quel neurone, lavorando indietro dai neuroni di output ai neuroni di input in un processo noto come backpropagation. L'algoritmo ripete quindi il processo sull'intero set di dati di training. Poiché l'algoritmo può supportare molti pesi e neuroni di output, l'algoritmo del gradiente coniugato viene usato per guidare il processo di addestramento per l'assegnazione e la valutazione dei pesi d'ingresso. Una descrizione dell'algoritmo gradiente coniugato non rientra nell'ambito di questa documentazione.
Selezione funzionalità
Se il numero di attributi di input è maggiore del valore del parametro MAXIMUM_INPUT_ATTRIBUTES o se il numero di attributi stimabili è maggiore del valore del parametro MAXIMUM_OUTPUT_ATTRIBUTES , viene usato un algoritmo di selezione delle caratteristiche per ridurre la complessità delle reti incluse nel modello di data mining. La selezione delle funzionalità riduce il numero di attributi di input o stimabili a quelli più rilevanti statisticamente per il modello.
La selezione delle funzionalità viene utilizzata automaticamente da tutti gli algoritmi di data mining di Analysis Services per migliorare l'analisi e ridurre il carico di elaborazione. Il metodo usato per la selezione delle funzionalità nei modelli di rete neurale dipende dal tipo di dati dell'attributo. Per riferimento, la tabella seguente illustra i metodi di selezione delle funzionalità usati per i modelli di rete neurale e mostra anche i metodi di selezione delle funzionalità usati per l'algoritmo Logistic Regression, basato sull'algoritmo Neural Network.
| Algoritmo | Metodo di analisi | Commenti |
|---|---|---|
| Rete neurale | Punteggio di interesse Entropia di Shannon Bayesian con K2 Prior Bayesian Dirichlet con precedente uniforme (impostazione predefinita) |
L'algoritmo Neural Networks può usare sia metodi di assegnazione dei punteggi basati su entropia che bayesiani, purché i dati contengano colonne continue. Predefinito |
| Regressione logistica | Punteggio di interesse Entropia di Shannon Bayesian con K2 Prior Bayesian Dirichlet con precedente uniforme (impostazione predefinita) |
Poiché non è possibile passare un parametro a questo algoritmo per controllare il comportamento di elezione delle caratteristiche, vengono usate le impostazioni predefinite. Pertanto, se tutti gli attributi sono discreti o discretizzati, il valore predefinito è BDEU. |
I parametri dell'algoritmo che controllano la selezione delle funzionalità per un modello di rete neurale sono MAXIMUM_INPUT_ATTRIBUTES, MAXIMUM_OUTPUT_ATTRIBUTES e MAXIMUM_STATES. È anche possibile controllare il numero di livelli nascosti impostando il parametro HIDDEN_NODE_RATIO.
Metodi di assegnazione dei punteggi
L'assegnazione dei punteggi è un tipo di normalizzazione, che nel contesto del training di un modello di rete neurale indica il processo di conversione di un valore, ad esempio un'etichetta di testo discreta, in un valore che può essere confrontato con altri tipi di input e ponderato nella rete. Ad esempio, se un attributo di input è Gender e i valori possibili sono Maschio e Femmina e un altro attributo di input è Income, con un intervallo variabile di valori, i valori per ogni attributo non sono direttamente confrontabili e pertanto devono essere codificati in una scala comune in modo che i pesi possano essere calcolati. L'assegnazione dei punteggi è il processo di normalizzazione di tali input in valori numerici: in particolare, in un intervallo di probabilità. Le funzioni usate per la normalizzazione consentono anche di distribuire il valore di input in modo più uniforme su una scala uniforme, in modo che i valori estremi non distorcono i risultati dell'analisi.
Vengono codificati anche gli output della rete neurale. Quando è presente una singola destinazione per l'output ( ovvero stima) o più destinazioni usate solo per la stima e non per l'input, il modello crea una singola rete e potrebbe non sembrare necessario normalizzare i valori. Tuttavia, se vengono usati più attributi per l'input e la stima, il modello deve creare più reti; pertanto, tutti i valori devono essere normalizzati e anche gli output devono essere codificati quando escono dalla rete.
La codifica per gli input si basa sulla somma di ciascun valore discreto nei casi di addestramento, e sul prodotto di tale valore per il suo peso. Si tratta di una somma ponderata, che viene passata alla funzione di attivazione nel livello nascosto. Per la codifica viene usato un punteggio z, come indicato di seguito:
Valori discreti
μ = p - probabilità precedente di uno stato
StdDev = sqrt(p(1-p))
Valori continui
Valore presente= 1 - μ/σ
Non esiste alcun valore= -μ/σ
Dopo aver codificato i valori, gli input passano attraverso la somma ponderata, con bordi di rete come pesi.
La codifica per gli output usa la funzione sigmoid, che ha proprietà che lo rendono molto utile per la stima. Una di queste proprietà è che, indipendentemente dal modo in cui i valori originali vengono ridimensionati e indipendentemente dal fatto che i valori siano negativi o positivi, l'output di questa funzione è sempre un valore compreso tra 0 e 1, adatto per la stima delle probabilità. Un'altra proprietà utile è che la funzione sigmoid ha un effetto di smussamento, in modo che quando i valori si allontanano più lontano dal punto di inflessione, la probabilità per il valore si sposta verso 0 o 1, ma lentamente.
Personalizzazione dell'algoritmo di rete neurale
L'algoritmo Microsoft Neural Network supporta diversi parametri che influiscono sul comportamento, sulle prestazioni e sull'accuratezza del modello di data mining risultante. È anche possibile modificare il modo in cui il modello elabora i dati impostando flag di modellazione sulle colonne o impostando i flag di distribuzione per specificare la modalità di gestione dei valori all'interno della colonna.
Impostazione dei parametri dell'algoritmo
La tabella seguente descrive i parametri che possono essere usati con l'algoritmo Microsoft Neural Network.
RAPPORTO_NODO_NASCOSTO
Specifica il rapporto tra neuroni nascosti e neuroni di input e output. La formula seguente determina il numero iniziale di neuroni nel livello nascosto:
RAPPORTO_NODO_NASCOSTO * RADICE_QUADRATA(Totale neuroni di input * Totale neuroni di output)
Il valore predefinito è 4.0.
HOLDOUT_PERCENTAGE
Specifica la percentuale di casi all'interno dei dati di addestramento utilizzati per calcolare l'errore di esclusione, utilizzato come parte dei criteri di arresto durante l'addestramento del modello di data mining.
Il valore predefinito è 30.
HOLDOUT_SEED
Specifica un numero utilizzato per inizializzare il generatore pseudo-casuale quando l'algoritmo determina in modo casuale i dati di controllo. Se questo parametro è impostato su 0, l'algoritmo genera il valore di inizializzazione in base al nome del modello di data mining, per garantire che il contenuto del modello rimanga invariato durante la rielaborazione.
Il valore predefinito è 0.
Attributi Di Input Massimi
Determina il numero massimo di attributi di input che possono essere forniti all'algoritmo prima che venga utilizzata la selezione delle funzionalità. L'impostazione di questo valore su 0 disabilita la selezione delle funzionalità per gli attributi di input.
Il valore predefinito è 255.
ATTRIBUTI_DI_OUTPUT_MASSIMI
Determina il numero massimo di attributi di output che possono essere forniti all'algoritmo prima che venga utilizzata la selezione delle funzionalità. L'impostazione di questo valore su 0 disabilita la selezione delle funzionalità per gli attributi di output.
Il valore predefinito è 255.
STATI_MASSIMI
Specifica il numero massimo di stati discreti per attributo supportati dall'algoritmo. Se il numero di stati per un attributo specifico è maggiore del numero specificato per questo parametro, l'algoritmo usa gli stati più diffusi per tale attributo e considera mancanti gli stati rimanenti.
Il valore predefinito è 100.
SAMPLE_SIZE
Specifica il numero di casi da utilizzare per addestrare il modello. L'algoritmo usa questo numero o la percentuale del totale dei casi non inclusi nei dati di controllo, come specificato dal parametro HOLDOUT_PERCENTAGE, a seconda di quale valore è minore.
In altre parole, se HOLDOUT_PERCENTAGE è impostato su 30, l'algoritmo userà il valore di questo parametro o un valore uguale al 70% del numero totale di case, a qualsiasi valore minore.
Il valore predefinito è 10000.
Bandiere di modellazione
I flag di modellazione seguenti sono supportati per l'uso con l'algoritmo Microsoft Neural Network.
NON NULLO
Indica che la colonna non può contenere un valore Null. Se Analysis Services rileva un valore Null durante il training del modello, verrà generato un errore.
Si applica alle colonne della struttura di mining.
SOLO_ESISTENZA_MODELLO
Indica che il modello deve considerare solo se esiste un valore per l'attributo o se manca un valore. Il valore esatto non è rilevante.
Applicabile alle colonne del modello di mining.
Indicatori di distribuzione
I flag di distribuzione seguenti sono supportati per l'uso con l'algoritmo Microsoft Neural Network. I flag vengono usati solo come hint per il modello; se l'algoritmo rileva una distribuzione diversa, userà la distribuzione trovata, non la distribuzione fornita nell'hint.
Normale
Indica che i valori all'interno della colonna devono essere considerati come se rappresentino la distribuzione normale o gaussiana.
Uniforme
Indica che i valori all'interno della colonna devono essere considerati come se fossero distribuiti in modo uniforme; ovvero, la probabilità di qualsiasi valore è approssimativamente uguale e è una funzione del numero totale di valori.
Distribuzione Log Normale
Indica che i valori all'interno della colonna devono essere considerati come distribuiti in base alla curva normale del log , il che significa che il logaritmo dei valori viene distribuito normalmente.
Requisiti
Un modello di rete neurale deve contenere almeno una colonna di input e una colonna di output.
Colonne di input e prevedibili
L'algoritmo Microsoft Neural Network supporta le colonne di input specifiche e le colonne stimabili elencate nella tabella seguente.
| colonna | Tipi di contenuto |
|---|---|
| Attributo di input | Continuo, Ciclico, Discreto, Discretizzato, Chiave, Tabella e Ordinato |
| Attributo prevedibile | Continuo, Ciclico, Discreto, Discretizzato e Ordinato |
Annotazioni
I tipi di contenuto ciclici e ordinati sono supportati, ma l'algoritmo li considera come valori discreti e non esegue un'elaborazione speciale.
Vedere anche
Algoritmo Microsoft Neural Network
Contenuti dei modelli di data mining per i modelli di rete neurale (Analysis Services - Data Mining)
Esempi di query sul modello di rete neurale