Concetti di IA in Python

Neuroni e funzioni di attivazione in Python

Un neurone artificiale è una funzione minuscola. Moltiplica ogni input per un peso, aggiunge un bias e passa il risultato a una funzione di attivazione che decide quanto forte si «attiva».

Il concetto in parole semplici

Un neurone artificiale è una funzione minuscola. Moltiplica ogni input per un peso, aggiunge un bias e passa il risultato a una funzione di attivazione che decide quanto forte si «attiva».

Costruisci un neurone artificiale in Python puro: una somma pesata degli input più un bias, passata attraverso sigmoid o ReLU.

Idee chiave

  • I pesi indicano quanto conta ogni input; il bias sposta il risultato in alto o in basso.
  • Senza attivazione, impilare neuroni darebbe comunque solo un modello lineare (una retta).
  • Sigmoid restituisce un valore tra 0 e 1, quindi è adatta alle probabilità.
  • ReLU è veloce ed è la scelta abituale per gli strati nascosti delle reti moderne.

Quando si usa?

  • Capire cosa succede dentro le reti neurali e le librerie di IA.
  • Imparare l'idea prima di implementarla nelle sfide corrispondenti.
  • Prepararti a corsi di machine learning, colloqui e progetti.

Guardalo in azione

Sposta i cursori per cambiare input, pesi e bias. Guarda la somma pesata z muoversi lungo le curve sigmoid e ReLU.

Codice di esempio

Esegui codice →
main.py
import math

# A neuron multiplies each input by a weight, adds them up and adds a bias.
def dot(a, b):
    return sum(x * y for x, y in zip(a, b))

def sigmoid(z):
    return 1 / (1 + math.exp(-z))   # squashes any number into (0, 1)

def relu(z):
    return max(0.0, z)              # keeps positives, turns negatives into 0

inputs = [0.5, -1.0, 2.0]
weights = [0.8, 0.2, -0.5]
bias = 0.1

z = dot(inputs, weights) + bias      # weighted sum
print("weighted sum z =", round(z, 3))
print("sigmoid(z) =", round(sigmoid(z), 3))
print("relu(z) =", relu(z))

# The activation decides how strongly the neuron "fires".
for value in [-2, 0, 2]:
    print(f"z={value:>2}  sigmoid={sigmoid(value):.3f}  relu={relu(value)}")

Output previsto

weighted sum z = -0.7
sigmoid(z) = 0.332
relu(z) = 0.0
z=-2  sigmoid=0.119  relu=0.0
z= 0  sigmoid=0.500  relu=0.0
z= 2  sigmoid=0.881  relu=2

Come funziona

dot() calcola la somma pesata z. Sigmoid comprime z in un valore tra 0 e 1, mentre ReLU mantiene i valori positivi e trasforma quelli negativi in 0. Il ciclo mostra come ogni attivazione risponde a un input negativo, nullo e positivo.

Modifica i valori ed esegui il programma nel compilatore Python online CodeUtility senza installare Python.

Esercizi pratici

Modifica gli input e verifica i casi limite prima di usare dataset più grandi.

  1. Cambia gli input o i pesi e prevedi l'output prima di eseguire.
  2. Stampa i valori intermedi per seguire ogni passo del calcolo.
  3. Risolvi le sfide collegate qui sotto per implementare l'idea da solo.
Esegui nell’IDE Python →

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide