Dissento.

> On 9 Sep 2024, at 11:10, [email protected] wrote:
> 
> From: Giacomo Tesio <[email protected]>
> ..l
> 
>> On Mon, 9 Sep 2024 09:50:41 +0200 Giuseppe Attardi wrote:
>> 
>> Che significa “software programmato statisticamente”?
> 
> Un software (ovvero una sequenza di byte eseguibili da una macchina con
> una architettura nota in fase di compilazione) programmato attraverso
> tecniche statistiche, ovvero basate sull'elaborazione di grandi
> quantitativi di dati selezionati allo scopo.
> 
> 
>> Una rete neurale è realizzata con programmi come altri utilizzando
>> algoritmi di ottimizzazione, con un processo di fit dei parametri del
>> modello rispetto ai dati per minimizzare una funzione di loss.
> 
> Esatto, ottimo esempio.
> 
> Con il termine "rete neurale artificiale" si con-fondono due software
> diversi programmati con tecniche diverse:
> 
> - la macchina virtuale caratterizzata dall'architettura di interesse
>  (la topologia della rete), tipicamente scritta in R, Python, C etc...
> - il software che quella macchina virtuale esegue, espresso come
>  matrici numeriche, programmato appunto attraverso tecniche
>  statistiche e compilato per quella specifica macchina virtuale
> 
La domanda era proprio cosa significa programmare con tecniche statistiche. 
Posso capire implementare formule statistiche, ma il codice è pur sempre 
scritto in un linguaggio di programmazione.
Quanto ai due software, proprio non li vedo, c’è solo un software ed è la rete 
neurale, scritta in un linguaggio di programmaziine a scelta che gira, 
direttamente o compilato, su una macchina, virtuale o reale.
Le matrici sono dati, non software, e non vengono eseguite. Il programma di 
ottimizzazione (backpropagation) li modifica, ma non sono loro ad eseguire 
calcoli.

> Si tratta di software distinti, anche quando usati insieme.
> 
> Il primo software (la macchina virtuale) viene eseguito dall'hardware
> (che può essere a sua volta virtuale, ovviamente), mentre il secondo
> (il cosiddetto "modello" della "rete neurale artificiale") viene
> eseguito dal primo.
> 
La rete neurale implementa il modello direttamente, non in due fasi.
> I sorgenti del primo vengono scritti.
> I sorgenti del secondo vengono selezionati.
> 
I sorgenti del secondo non esistono. I parametri del modello (i contrnuti delle 
matrici), vengono calcolati attraverso l’ottimizzazione della loss function sui 
dati di apprendimento (sempre dati sono).

> Cambiano le tecniche di programmazione e compilazione, ma rimangono
> sorgenti di software compilati per essere eseguiti dalle rispettive
> architetture di interesse.
> 
> 
>> Un modello statistico sarebbe quello costruito a partire da un
>> campione statistico rappresentativo, selezionato appunto su basi
>> statistiche.
> 
> Infatti!
> 
> Proprio il software programmato statisticamente a partire dai dataset
> sorgente non è un modello statistico, è sbagliato chiamarlo "modello".
> 
> Altrimenti finisce che i giuristi lo confondono con il data mining.
> 
> 
>> Ciò non vale per i LLM che usano tutti i dati disponibili,
>> considerandoli la realtà stessa e non la loro rappresentazione.
> 
> Gli LLM non hanno alcuna consapevolezza dell'esistenza della realtà.
> Dunque non possono "considerare" i dati come la realtà.

Certo, intendevo chi li allena non usa tecniche statistiche perché non fa 
assunzioni statistiche sulla struttura dei dati da cui poter estrarre un 
campione rappresentativo: utilizza tutti i dati disponibili indistintamente.
> 
> Gli LLM sono programmati compilando i dati SCELTI da chi li programma.
> La scelta dei contenuti da includere nel dataset è l'aspetto
> predominante del processo di programmazione statistica.
> 
Non proprio, non viene fatta una scelta basata su criteri statistici. Per i 
LARGE LM  si usano quanti più dati possibile, al massimo si fa una 
deduplicazione.
> 
>> Quanto a “imparare”, è discutibile usare termini antropomorfi
>> riguardo alle macchine, ma per intenderci si può dire che fanno
>> qualcosa che si avvicina al nostro concetto di apprendere, ossia
>> saper usare quanto visto in precedenza in situazioni nuove.
> 
> No.
> 
> La calcolatrice non conosce l'aritmetica, anche se riesce a produrre in
> output una configurazione di cristalli liquidi che la tua mente può
> interpretare come somme che non le sono mai state sottoposte in passato.
> 
> Una calcolatrice non sa cosa sia un numero più di quanto
> un LLM non sappia cosa sia un testo.
Infatti una calcolatrice non impara: non saprebbe fare altre operazioni oltre a 
quelle per cui è stata programmata.
> 
> Chi l'ha programmata non le ha insegnato l'aritmetica e lei non l'ha
> appresa, per nessuna definizione ragionevole di "apprendimento".
> Chi l'ha programmata ha codificato la _propria_ conoscenza della
> aritmetica in una serie di circuiti che ne _riproducono_ le regole
> sulle rappresentazioni elettriche fornite in input.
> 
> 
> Allo stesso modo, non c'è alcuna relazione fra il processo di
> programmazione statistica di una macchina in grado di ridurre
> vettori e l'apprendimento di un essere umano.
A parte il fatto che ancora non ho capito cosa sia la “programmazione 
statistica”, una relazione si trova sempre.
> 
> Entrambi i processi sono iterativi e producono un cambiamento nel ente
> che li subisce, non hanno null'altro in comune.
> 
> 
> Se dicessi in una conferenza che la frutta "apprende" come comportarsi
> da marmellata, tutti riderebbero fragorosamente. :-D
> 
Quale sarebbe l’analogia umana di un tale forma di apprendimento?
> 
> Dire che un software "apprende" come comportarsi è altrettanto
> ridicolo, ma hubris, ignoranza e soldi convincono troppe persone
> a non ridere quando sentono parlare di "machine learning".
> 
> Così rimangono solo bambini e buffoni a ricordare che il re è nudo...
> e i software si programmano.

Reply via email to