Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Algoritmo di Selezione Negativa | Sistemi Immunitari Artificiali
Algoritmi Bio-Ispirati

bookAlgoritmo di Selezione Negativa

Note
Definizione

L'algoritmo di selezione negativa è ispirato al sistema immunitario biologico che distingue tra self e non-self. I linfociti T che reagiscono al self vengono eliminati, lasciando solo quelli in grado di riconoscere agenti estranei. L'algoritmo definisce il self (dati normali), genera rilevatori che non corrispondono al self e li utilizza per rilevare anomalie.

Il processo si articola in tre fasi:

  • Generazione di un insieme rappresentativo di campioni self per catturare il comportamento normale del sistema;
  • Creazione di un elevato numero di rilevatori casuali;
  • Eliminazione dei rilevatori che corrispondono al self, lasciando attivi solo quelli che segnalano anomalie quando corrispondono a nuovi dati.
12345678910111213141516171819202122232425262728293031323334
import random def generate_random_detector(length): """Generate a random binary string detector of given length.""" return ''.join(random.choice('01') for _ in range(length)) def match(detector, self_set, r): """ Returns True if detector matches any string in self_set with at least r contiguous matching bits. """ for self_str in self_set: for i in range(len(self_str) - r + 1): if detector[i:i+r] == self_str[i:i+r]: return True return False def negative_selection(self_set, num_detectors, length, r): """ Generate detectors that do not match any self string with at least r contiguous matching bits. """ detectors = [] while len(detectors) < num_detectors: detector = generate_random_detector(length) if not match(detector, self_set, r): detectors.append(detector) return detectors # Example usage: self_set = ['11001', '10011', '11100'] detectors = negative_selection(self_set, num_detectors=5, length=5, r=3) print("Generated detectors:", detectors)
copy

Punti di forza e limitazioni dell'algoritmo di selezione negativa

L'algoritmo di selezione negativa offre un metodo diretto per il rilevamento delle anomalie, ispirato ai sistemi immunitari. Principali punti di forza:

  • Capacità di rilevare anomalie sconosciute mirando ai dati esterni all'insieme self;
  • Nessuna necessità di conoscenze pregresse sui pattern anomali, ma solo una chiara definizione del self.

Limitazioni:

  • La generazione dei rilevatori diventa lenta con l'aumentare dell'insieme self;
  • Meno efficace per dati ad alta dimensionalità o continui a causa della copertura sparsa delle regioni non-self;
  • Possibilità di falsi positivi o negativi se l'insieme self non è pienamente rappresentativo o i rilevatori sono mal definiti.

Nonostante queste problematiche, l'algoritmo di selezione negativa rappresenta un concetto fondamentale nei sistemi immunitari artificiali e nel rilevamento robusto delle anomalie.

question mark

Quale affermazione descrive meglio l'algoritmo di selezione negativa e le sue caratteristiche?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

bookAlgoritmo di Selezione Negativa

Scorri per mostrare il menu

Note
Definizione

L'algoritmo di selezione negativa è ispirato al sistema immunitario biologico che distingue tra self e non-self. I linfociti T che reagiscono al self vengono eliminati, lasciando solo quelli in grado di riconoscere agenti estranei. L'algoritmo definisce il self (dati normali), genera rilevatori che non corrispondono al self e li utilizza per rilevare anomalie.

Il processo si articola in tre fasi:

  • Generazione di un insieme rappresentativo di campioni self per catturare il comportamento normale del sistema;
  • Creazione di un elevato numero di rilevatori casuali;
  • Eliminazione dei rilevatori che corrispondono al self, lasciando attivi solo quelli che segnalano anomalie quando corrispondono a nuovi dati.
12345678910111213141516171819202122232425262728293031323334
import random def generate_random_detector(length): """Generate a random binary string detector of given length.""" return ''.join(random.choice('01') for _ in range(length)) def match(detector, self_set, r): """ Returns True if detector matches any string in self_set with at least r contiguous matching bits. """ for self_str in self_set: for i in range(len(self_str) - r + 1): if detector[i:i+r] == self_str[i:i+r]: return True return False def negative_selection(self_set, num_detectors, length, r): """ Generate detectors that do not match any self string with at least r contiguous matching bits. """ detectors = [] while len(detectors) < num_detectors: detector = generate_random_detector(length) if not match(detector, self_set, r): detectors.append(detector) return detectors # Example usage: self_set = ['11001', '10011', '11100'] detectors = negative_selection(self_set, num_detectors=5, length=5, r=3) print("Generated detectors:", detectors)
copy

Punti di forza e limitazioni dell'algoritmo di selezione negativa

L'algoritmo di selezione negativa offre un metodo diretto per il rilevamento delle anomalie, ispirato ai sistemi immunitari. Principali punti di forza:

  • Capacità di rilevare anomalie sconosciute mirando ai dati esterni all'insieme self;
  • Nessuna necessità di conoscenze pregresse sui pattern anomali, ma solo una chiara definizione del self.

Limitazioni:

  • La generazione dei rilevatori diventa lenta con l'aumentare dell'insieme self;
  • Meno efficace per dati ad alta dimensionalità o continui a causa della copertura sparsa delle regioni non-self;
  • Possibilità di falsi positivi o negativi se l'insieme self non è pienamente rappresentativo o i rilevatori sono mal definiti.

Nonostante queste problematiche, l'algoritmo di selezione negativa rappresenta un concetto fondamentale nei sistemi immunitari artificiali e nel rilevamento robusto delle anomalie.

question mark

Quale affermazione descrive meglio l'algoritmo di selezione negativa e le sue caratteristiche?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2
some-alt