56 lines
No EOL
2.9 KiB
Markdown
56 lines
No EOL
2.9 KiB
Markdown
<!--
|
|
.. title: Capire il Machine Learning (parte 3)
|
|
.. slug: machine-learning-parte3
|
|
.. date: 2016-11-15
|
|
.. tags: AI,Genetic algorithm,Neural networks,reti neurali,algoritmi genetici,programming,PesceWanda
|
|
.. category: PesceWanda
|
|
.. link:
|
|
.. description:
|
|
.. type: text
|
|
-->
|
|
|
|
|
|
## Riconoscimento delle immagini
|
|
|
|
Il machine learning viene utilizzato anche per il riconoscimento delle immagini.
|
|
La tipologia di rete neurale utilizzata per questa applicazione è chiamata rete neural a convoluzione ( **convolutional neural networks**), abbreviata CNN.
|
|
|
|
Innanzitutto consideriamo che ogni immagine può essere codificata come una matrice di valori
|
|
|
|
![pixel](/wp-content/uploads/2016/8.jpg)
|
|
|
|
Vediamo ora quali sono le operazioni compiute da una **CNN** per riconoscere delle immagini.
|
|
|
|
#### Convoluzione
|
|
|
|
Durante la fase di apprendimento, la rete neurale analizza moltissime immagini (categorizzate) utilizzando dei "filtri", ovvero delle funzioni che mescolate all'input originale permettono di evidenziare dei pattern nell'immagine.
|
|
Questi pattern corrispondono alle caratteristiche proprie di un oggetto (quali possono essere ad esempio per un uccello il becco, le piume, le ali) e nel caso queste sono presenti, possiamo riconoscere l'immagine.
|
|
|
|
In questo esempio l'immagine di Wally é mescolata (l'operazione si chiama **convoluzione**) con un filtro "a cerchio" che risponde molto bene a caratteristiche come quella di possedere degli occhi.
|
|
|
|
![waldoblue](/wp-content/uploads/2016/bluefilter.png)
|
|
|
|
La **convoluzione** é un'operazione che ha la proprietà di essere indipendente dalla posizione. Non importa la posizione degli occhi, quando applichiamo la **convoluzione** su un'immagine con un filtro "a cerchio" notiamo che gli occhi sono presenti.
|
|
|
|
#### Subsampling
|
|
|
|
Ogni segnale contiene del "rumore", ovvero degli elementi che la allontanano dal comportamento ideale.
|
|
|
|
![ideal](/wp-content/uploads/2016/ideal.jpg)
|
|
|
|
![real](/wp-content/uploads/2016/real.jpg)
|
|
|
|
Attraverso il subsampling possiamo ridurre il rumore e rendere il nostro algoritmo meno suscettibile a queste piccole variazioni; benché l'immagine abbia una risoluzione minore, i pattern rimangono.
|
|
|
|
![waldosub](/wp-content/uploads/2016/sub.png)
|
|
|
|
#### Connessione completa
|
|
|
|
Alla fine dell'analisi tutte le caratteristiche estrapolate vengono considerate nell'insieme e in questo modo possiamo capire a quale categoria appartiene l'immagine.
|
|
|
|
Questo procedimento a livello algoritmo si esplicita con una connessione completa fra tutti i nodi della rete neurale che possono poi restituire l'output (probabilità che l'immagine appartenga ad una determinata categoria).
|
|
|
|
#### Fase di rinforzo
|
|
|
|
Durante il training é presente un'ultima fase (o strato), chiamato più propriamente **loss layer**. Questo strato provvede a dare un **feedback** alla rete neurale analizzando l'output in relazione ai dati di partenza (ovvero le immagini già categorizzate).
|
|
|