Il 03 dicembre 2012 04:18, Raistlin <raistlin@???> ha scritto:
> La debolezza non sta nel codice, ma nell'impostazione del problema. Non
> stai riconoscendo i volti, ma gli specifici file immagine che usi per
> fare training e testing.
>
> Che e' anche il motivo per cui se dopo l'apprendimento la ribalti in
> bitmap ti viene fuori ancora l'immagine. Stai facendo overfitting. Se
> aggiungessi uno strato di neuroni non otterresti nulla se non
> amplificare l'overfitting.
e potevi dirlo subito :)
hai ragione, sono andato un po' a studiarmi il problema e c'è
senz'altro un problema di overfitting.
Ora, la questione è la seguente. A me non interessa studiare il modo
più efficiente di riconoscere i volti in sé, mi interessa studiare le
reti neurali come lontano parente del meccanismo di funzionamento del
cervello. allora, il tema è come fa il cervello a riconoscere gli
oggetti, le persone, ecc e ad associarvi suoni (che a sua volta impara
a distinguere per fonemi) costruendoci poi sopra un linguaggio? questa
è la questione che mi interessa. è chiaro che non ci sono risposte che
uno possa trovare con poca matematica e 50 righe di codice C. ma
bisogna pur essere ambiziosi e avere almeno chiaro il campo da gioco,
anche se il campo da gioco non è nemmeno percorribile e tantomeno è
praticabile una partita.
detto in altre parole, non mi interessa solo riconoscere piero da
carlo, ma anche riconoscere un temperamatite o una sedia da carlo e
perciò non so francamente come ridurre il problema a pochi parametri.
e quello che mi viene in mente è che probabilmente il cervello non ha
il problema dell'overfitting perché ha milioni di sample su cui fare
riconoscimento del pattern e non i miei miseri 40.
quindi forse oltre a ridurre i parametri c'è anche da introdurre un
meccanismo di input a flusso video, in modo da poter campionare
migliaia di immagini.
> Non puoi usare una rete neurale per distinguere tra "due cose",
> comunque. Cioe', puoi, ma non ha alcun senso. Il numero significativo di
> campioni per addestrare una rete neurale e' spannometricamente almeno il
> quadrato del numero di parametri. Con questo esempio, due file immagine,
> puoi anche fare un algoritmo che tira le medie per righe e per colonne
> dei dati RGB... o qualsiasi altra cosa ti venga in mente. Finche' devi
> discriminare tra 2 immagini funzionera' sempre.
in pratica il modello è così esteso che di fatto memorizza i file
immagine, non ci avevo pensato...
> Devi prima di tutto preprocessare le immagini facciali per trasportarle
> in una forma numerica su cui abbia senso fare apprendimento. Un metodo
> molto base che dovresti _senza dubbio_ approfondire e' eigenfaces, anche
> perche' e' la base degli studi di riconoscimento facciale.
cmq me lo guardando, è molto interessante.
> Poi da li' puoi partire a creare l'algoritmo di riconoscimento che vuoi,
> anche a base neurale (ma ripeto, e' dimostratamente una via
> inefficiente). Se vuoi puoi guardare questo articolo:
> http://www.cs.columbia.edu/~angelos/Papers/2012/soauth-break.acsac12.pdf
>
> che ... presentiamo dopodomani qui a Orlando:
> https://www.acsac.org/2012/openconf/modules/request.php?module=oc_program&action=summary.php&id=138&OPENCONF=8leugbu5he7redddl4p30uj4o0
me lo sono guardato, è un lavoro molto interessante, complimenti.
lo presentate oggi?