Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Una prima rete neurale
In questo esercizio addestreremo la nostra prima piccola rete neurale.
Le reti neurali ci daranno un modo per imparare modelli non lineari senza
l'uso di incroci di caratteristiche espliciti.
Attività 1: il modello come dato combina le nostre due caratteristiche di input in un
singolo neurone. Il modello apprenderà eventuali non linearità? Eseguilo per confermare
indovinare.
Attività 2: prova ad aumentare il numero di neuroni nello strato nascosto da
1 a 2 e prova anche a passare da un'attivazione lineare a una non lineare
come ReLU. Puoi creare un modello in grado di apprendere le non linearità? Può modellare
i dati in modo efficace?
Attività 3: prova ad aumentare il numero di neuroni nello strato nascosto da
da 2 a 3, utilizzando un'attivazione non lineare come la funzione ReLU. Può modellare i dati
in modo efficace? Come varia la qualità del modello da corsa a esecuzione?
Attività 4: continua a sperimentare aggiungendo o rimuovendo gli strati nascosti
e neuroni per strato. Non esitare a modificare i tassi di apprendimento,
regolarizzazione e altre impostazioni di apprendimento. Qual è la più piccola
numero di neuroni e strati che puoi utilizzare e che fornisce la perdita di test
di 0,177 o inferiore?
Aumentando le dimensioni del modello si migliora l'adattamento o la velocità di convezione?
Cambia la frequenza con cui converge verso un buon modello? Ad esempio, prova la
la seguente architettura:
Primo strato nascosto con 3 neuroni.
Secondo strato nascosto con 3 neuroni.
Terzo strato nascosto con 2 neuroni.
Le risposte vengono visualizzate immediatamente sotto l'esercizio.
Fai clic sull'icona Più in corrispondenza di una risposta all'attività 1.
L'attivazione è impostata su Lineare, pertanto questo modello non può apprendere
non linearità. La perdita è molto elevata e il modello è underfit.
i dati.
Fai clic sull'icona Più in corrispondenza di una risposta all'attività 2.
La funzione di attivazione non lineare può apprendere modelli non lineari. Tuttavia,
un singolo strato nascosto con 2 neuroni non può riflettere tutte le non linearità
questo set di dati e avranno una perdita elevata anche senza rumore:
sufficienti i dati. Questi esercizi non sono deterministici, quindi alcuni
non apprenderà un modello efficace, mentre altre esecuzioni faranno un buon lavoro.
Il modello migliore potrebbe non avere la forma prevista.
Fai clic sull'icona Più in corrispondenza di una risposta all'Attività 3.
La natura non deterministica di Playground traspare in questo esercizio. R
un singolo strato nascosto con 3 neuroni è sufficiente per modellare il set di dati (assente
del rumore), ma non tutte le esecuzioni convergono a un buon modello.
3 neuroni sono sufficienti perché la funzione XOR può essere espressa come una combinazione di 3 semipiani (attivazione ReLU). Lo puoi vedere osservando
immagini di neuroni, che mostrano l'output dei singoli neuroni. In un modello adeguato
con 3 neuroni e attivazione ReLU, ci sarà 1 immagine con un
linea verticale in cui X1 è positivo (o negativo; il segno potrebbe
automaticamente), 1 immagine con una linea quasi orizzontale che rileva il segno
X2 e un'immagine con una linea diagonale che rileva la relativa
un'interazione.
Tuttavia, non tutte le esecuzioni convergono a un modello valido. Alcune esecuzioni non comportano
migliore di un modello con 2 neuroni, e i duplicati di questi neuroni
d'uso diversi.
Fai clic sull'icona Più in corrispondenza di una risposta all'attività 4.
Un singolo strato nascosto con 3 neuroni può modellare i dati, ma non è presente
ridondanza, in molte esecuzioni perde un neurone e non apprenderà
un buon modello. Un singolo strato con più di 3 neuroni ha una maggiore ridondanza e
quindi ha più probabilità di convergere verso un buon modello.
Come abbiamo visto, un singolo strato nascosto con solo 2 neuroni non è in grado di modellare i dati
beh. Se provi, puoi vedere che tutti gli elementi nel livello di output
possono essere solo forme composte dalle linee dei due nodi. In questo caso, un
una rete più profonda può modellare il set di dati in modo migliore rispetto al solo primo strato nascosto:
I singoli neuroni del secondo strato possono modellare forme più complesse, come
quadrante in alto a destra, combinando i neuroni nel primo strato. Durante l'aggiunta
il secondo strato nascosto può comunque modellare il set di dati meglio del primo
livello, potrebbe essere più sensato aggiungere più nodi al primo strato
lascia che più linee facciano parte del kit da cui il secondo strato crea la sua
forme.
Tuttavia, un modello con 1 neurone nel primo strato nascosto non può apprendere
del modello, indipendentemente dalla sua profondità. Questo perché l'output del primo
varia solo lungo una dimensione (di solito una linea diagonale), che non corrisponde
sufficiente a modellare bene questo set di dati. I livelli successivi non possono compensare questo inconveniente, no
a prescindere dalla complessità. le informazioni nei dati di input sono state irrecuperabili
hanno perso.
E se invece di provare ad avere una piccola rete, avessimo molti strati con
molti neuroni, per un problema semplice come questo? Beh, come abbiamo visto, la prima
avrà la possibilità di provare molte pendenze della linea diverse. Il secondo
strato avrà la capacità di accumularli in molte forme diverse,
con moltissime forme lungo gli strati successivi.
Permettendo al modello di considerare tante forme diverse attraverso così tante
neuroni nascosti diversi, hai creato spazio a sufficienza per l'avvio del modello
overfitting facilmente con il rumore nel set di addestramento, consentendo a questi
di forme complesse in modo da corrispondere alle falle dei dati di addestramento piuttosto che alle
e basato su dati empirici reali generalizzati. In questo esempio, i modelli più grandi possono presentare
confini per corrispondere esattamente a punti dati. In casi estremi, un modello di grandi dimensioni
potrebbe apprendere un'isola attorno a un singolo punto di rumore, che è
memorizzare i dati. Se lasci il modello molto più grande,
vediamo che in realtà spesso ha prestazioni peggiori rispetto al modello più semplice con
abbastanza neuroni per risolvere il problema.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2024-08-22 UTC."],[[["This exercise explores training a neural network to learn nonlinearities and model data effectively."],["Increasing the number of neurons and using nonlinear activation functions like ReLU improves model performance."],["A single hidden layer with 3 neurons using ReLU can sufficiently model the data, but model quality varies between runs."],["Deeper and wider networks risk overfitting, potentially memorizing noise instead of generalizing patterns."],["While adding layers can improve model performance, redundant layers and neurons might lead to worse results compared to a simpler, well-structured model."]]],[]]