Advanced deep learning practices (-> 259) Flashcards
Multimodal inputs
They merge data coming from different input sources, processing each type of data using different kinds of neural layers
Inception networks
Networks which have a nonlinear network topology, as a graph
Residual connections
It reinjects previous representations into the downstream flow of data by adding a past output tensor to a later output tensor
Advantages of residual connections
Preventing the information loss along the data-processing flow
Esempio di functional API vs Sequential
Sequential:
seq_model = Sequential()
seq_model.add(layers.Dense(….))
seq_model.add(layers.Dense(….))
Functional API:
x = layers.Dense(....) x = layers.Dense(....)(x) out = .....(x)
Funzioni che posso usare per mettere insieme layer nel caso di input multipli
Concatenate
Add
Come faccio il training di un modello con due input?
Usando model.fit([in_1, in_2], out, altre_opzioni)
Cosa mi devo ricordare quando ho tanti output?
Posso specificare tante loss functions, distinte per ogni output
Questo significa avere tanti compile e tanti fit quanti sono gli output
Quale classe di grafi posso costruire usando le functional API?
Directed Acyclic Graphs
Cosa è vietato nei grafi di una rete?
I cicli
Descrivi una Inception Network (pg 243)
Tanti input, tanti output
Posso apprendere separatamente feature spaziali e a livello di canale.
Formata da inception modules
Configurazione base Inception
Da tre a quattro branch
Inizio con una conv 1x1, poi conv 3x3, poi concateno feature risultanti
Disegna Inception module
vedi pag 243
A cosa serve una convoluzione 1x1?
Per ridurre la dimensionalità nelle Inception
Cosa fa Xception? Quali sono i vantaggi rispetto ad Inception?
Gestisce ogni canale separatamente
Mostra migliore accuratezza e performance di Inception
Quali problemi punta a risolvere una residual connection?
Vanishing gradients e representational bottleneck
Cosa si intende con bottleneck
Si tratta di un layer con meno neuroni che metto alla fine della rete (per esempio) per diminuire il numero di canali, che altrimenti con le convoluzioni aumenterebbe troppo
In a Sequential model, each successive representation layer is built on top of the
previous one, which means it only has access to information contained in the activation
of the previous layer. If one layer is too small (for example, it has features that
are too low-dimensional), then the model will be constrained by how much information
can be crammed into the activations of this layer.
Come funziona una residual connection?
Somma un tensore precedente con il tensore corrente, formango così un DAG
Siamese (shared) LSTM
Pesi della rete appresi dall’input e dal suo simmetrico
Cosa si intende con callback
Oggetto passato al modello nella chiamata a fit chiamato in vari punti durante il training
Cosa può fare callback
- Model checkpointing: salva pesi correnti durante il training
- Early stopping: interrompe il training sulla base di validation loss
- Dynamic adjustments: corregge alcuni parametri del modello
- Logging
Struttura con cui scrivo callback (fare esempi)
on_epoch_begin
on_epoch_end
on_batch_begin
on_batch_end
…train …
Experimental approach in good models development
Provesso iterativo, o ciclo, in cui inizio con un’idea, faccio un esperimento, provo a validare o invalidare la mia idea, raccolgo le informazioni!
A cosa serve TensorBoard?
Monitorare tutto ciò che accade durante il training VISUALMENTE