Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Classificazione Multiclasse


Creare un modello con Keras

Creazione di un modello

Dopo aver fatto la fase di preprocessing, adesso il momento di creare una rete neurale con Keras.

rete Neurale con keras

Questo il codice con il prompt

Crea una rete neurale con keras .
Primo strato nascosto 512 nodi, funzione attivazione Relu,.
Secondo strato nascosto 256 nodi, funzione attivazione Relu.
Terzo strato nascosto 128 nodi, funzione attivazione Relu.
Ultimo output 10 classi, funzione di attivazione softmax.
model.summary() fornira' parametri da analizzare


from keras.models import Sequential
from keras.layers import Dense

# Crea il modello
model = Sequential()

# Aggiungi il primo strato nascosto con 512 nodi e funzione di attivazione ReLU
model.add(Dense(512, activation='relu', input_shape=(28*28,)))

# Aggiungi il secondo strato nascosto con 256 nodi e funzione di attivazione ReLU
model.add(Dense(256, activation='relu'))

# Aggiungi il terzo strato nascosto con 128 nodi e funzione di attivazione ReLU
model.add(Dense(128, activation='relu'))

# Aggiungi l'ultimo strato di output con 10 nodi e funzione di attivazione softmax per la classificazione multiclasse
model.add(Dense(10, activation='softmax'))

# Visualizza un riassunto del modello
model.summary()




Come risposta otterremo :
Total params: 567434 (2.16 MB)

Compilazione e valutazione dei dati

Ancora il prompt per chatGPT
Compila il codice il codice model.compile con funzione di costo=categorical_crossentropy, optimizer=sgd, metrics=['accuracy']).
Fai partire addestramento per 20 epoche.
Verifica anche il test set con model.evaluate.
Voglio visualizzare sia il valore della finzione di costo che accuracy
Ultimo stampa il numero di proprieta' del data set

Codice per la compilazione


from keras.optimizers import SGD

# Compila il modello
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])

# Addestra il modello per 20 epoche
history = model.fit(X_train.reshape(-1, 28*28), y_train_dump, epochs=20, batch_size=128, validation_data=(X_test.reshape(-1, 28*28), y_test_dump))

# Valuta il modello sul test set
loss, accuracy = model.evaluate(X_test.reshape(-1, 28*28), y_test_dump)
print("Test Loss:", loss)
print("Test Accuracy:", accuracy)

# Stampa il numero di proprietà del dataset
num_properties = X_train.shape[1] * X_train.shape[2]
print("Numero di proprietà del dataset:", num_properties)



Dopo 2 minuti e 26 secondi su Google Colab
Si ottiene
Test Loss: 0.11675428599119186
Test Accuracy: 0.9656000137329102
ho provato con 40 epoche
Test Loss: 0.08130357414484024
Test Accuracy: 0.9750000238418579

Che rappresenta un buon risultato !!!