Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Алгоритм Негативного Відбору | Штучні Імунні Системи
Біоінспіровані алгоритми

bookАлгоритм Негативного Відбору

Note
Визначення

Алгоритм негативного відбору натхненний біологічною імунною системою, яка розрізняє своє та чуже. Т-лімфоцити, що реагують на своє, видаляються, залишаючи лише ті, які здатні розпізнавати чужорідні об'єкти. Алгоритм визначає своє (нормальні дані), генерує детектори, які не збігаються зі своїм, і використовує їх для виявлення аномалій.

Процес включає три етапи:

  • Генерація репрезентативної вибірки "своїх" зразків для фіксації нормальної поведінки системи;
  • Створення великої кількості випадкових детекторів;
  • Видалення детекторів, що збігаються зі своїм, залишаючи активні детектори, які сигналізують про аномалії при збігу з новими даними.
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

Переваги та обмеження алгоритму негативного відбору

Алгоритм негативного відбору забезпечує простий метод виявлення аномалій, натхненний імунною системою. Основні переваги:

  • Можливість виявлення невідомих аномалій шляхом фокусування на даних поза множиною self;
  • Відсутність необхідності у попередньому знанні аномальних шаблонів, потрібне лише чітке визначення self.

Обмеження:

  • Генерація детекторів сповільнюється зі збільшенням множини self;
  • Менша ефективність для багатовимірних або неперервних даних через розріджене покриття non-self;
  • Можливість хибнопозитивних або хибнонегативних результатів, якщо множина self не є повністю репрезентативною або детектори визначені некоректно.

Незважаючи на ці проблеми, алгоритм негативного відбору є ключовою ідеєю в штучних імунних системах і надійному виявленні аномалій.

question mark

Яке твердження найкраще описує алгоритм негативного відбору та його характеристики?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 6.25

bookАлгоритм Негативного Відбору

Свайпніть щоб показати меню

Note
Визначення

Алгоритм негативного відбору натхненний біологічною імунною системою, яка розрізняє своє та чуже. Т-лімфоцити, що реагують на своє, видаляються, залишаючи лише ті, які здатні розпізнавати чужорідні об'єкти. Алгоритм визначає своє (нормальні дані), генерує детектори, які не збігаються зі своїм, і використовує їх для виявлення аномалій.

Процес включає три етапи:

  • Генерація репрезентативної вибірки "своїх" зразків для фіксації нормальної поведінки системи;
  • Створення великої кількості випадкових детекторів;
  • Видалення детекторів, що збігаються зі своїм, залишаючи активні детектори, які сигналізують про аномалії при збігу з новими даними.
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

Переваги та обмеження алгоритму негативного відбору

Алгоритм негативного відбору забезпечує простий метод виявлення аномалій, натхненний імунною системою. Основні переваги:

  • Можливість виявлення невідомих аномалій шляхом фокусування на даних поза множиною self;
  • Відсутність необхідності у попередньому знанні аномальних шаблонів, потрібне лише чітке визначення self.

Обмеження:

  • Генерація детекторів сповільнюється зі збільшенням множини self;
  • Менша ефективність для багатовимірних або неперервних даних через розріджене покриття non-self;
  • Можливість хибнопозитивних або хибнонегативних результатів, якщо множина self не є повністю репрезентативною або детектори визначені некоректно.

Незважаючи на ці проблеми, алгоритм негативного відбору є ключовою ідеєю в штучних імунних системах і надійному виявленні аномалій.

question mark

Яке твердження найкраще описує алгоритм негативного відбору та його характеристики?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2
some-alt