İçeriğe atla
Üyelik kaydınızı yaparak son yazılan içeriklerden haberdar olun! ×

Yapay Zeka

  • makale
    55
  • yorum
    2
  • görüntüleme
    717.221

Negatif Seçim Algoritması (Negative Selection Algorithm)


Doğuhan ELMA

312 görünüm

Negatif Seçim Algoritması (Negative Selection Algorithm), yapay bağışıklık sistemlerinin bir parçasıdır ve bir sistemdeki normal dışı (anomali) davranışları veya durumları tespit etmek için kullanılır. Doğal bağışıklık sistemlerinin "öz" (self) ve "öz olmayan" (non-self) kavramlarını taklit eder. 

Bu algoritmanın genel prensipleri şunlardır:

1. Detektörlerin Oluşturulması (İnitialization): Algoritma, rastgele oluşturulan bir dizi detektör (çözüm adayı) ile başlar.

2. Eğitim (Training): Eğitim seti, normal (öz) davranışları veya durumları temsil eder. Detektörler, eğitim setindeki örneklerle eşleşmezse "öz olmayan" olarak kabul edilir ve sisteme dahil edilirler. Eğer bir detektör, eğitim setindeki bir örnekle eşleşirse, o detektör reddedilir ve yeni bir detektör oluşturulur.

3. Test (Testing): Test aşamasında, detektörler yeni veriler (test seti) üzerinde kullanılır. Eğer bir detektör, bir test verisi ile eşleşirse, bu verinin normal dışı (anomali) olduğu kabul edilir. 

Bu algoritma, genellikle anormallik (anomali) tespiti, hata tespiti ve güvenlik uygulamaları gibi alanlarda kullanılır. Başarısı, detektörlerin doğru şekilde oluşturulması ve uygun bir eşleşme kriterinin seçilmesine bağlıdır. 

Negatif Seçim Algoritması, normal (öz) ve normal dışı (öz olmayan) durumları ayırt etmek için kullanılabilen birçok yapay bağışıklık algoritmasından biridir. Bu algoritmanın en büyük avantajlarından biri, normal dışı durumların belirli bir modeline veya örneğine ihtiyaç duymamasıdır. Bu nedenle, bilinmeyen ve beklenmeyen anormalliklerin tespiti için özellikle yararlıdır.

Negatif Seçim Algoritması bir tür anomali tespit yöntemidir. Örneğin, metinde belirli bir dizi karakteri tespit etmek için kullanabiliriz. Algoritma aşağıdaki şekildedir:

import random
import string

# Karakter kümesi ve detektör boyutu
charset = string.ascii_lowercase + string.digits
detector_size = 10

# Rastgele bir detektör oluşturma
def generate_detector():
    return ''.join(random.choice(charset) for _ in range(detector_size))

# Öz kümesini oluşturma
self_set = {'abcdefghij', 'klmnopqrst', 'uvwxyz0123', '4567890abc', 'defghijklm'}

# Detektörlerin kümesini oluşturma
detectors = set()
while len(detectors) < 100:
    detector = generate_detector()
    if not any(detector in s for s in self_set):
        detectors.add(detector)

# Anomali tespiti
def detect_anomaly(s):
    return any(detector in s for detector in detectors)

# Test
print(detect_anomaly('uvwxyz0123'))  # False
print(detect_anomaly('uvwxyz012x'))  # True

Bu kod örneğinde, generate_detector fonksiyonu rastgele bir detektör oluşturur. Daha sonra, öz kümesi (normal durumları temsil eden) ve detektörler kümesi (anormallikleri tespit etmek için kullanılan) oluşturulur. Detektörler kümesi, rastgele oluşturulan ve öz kümesindeki hiçbir örnekle eşleşmeyen detektörlerden oluşur.

detect_anomaly fonksiyonu, bir girdinin anomali olup olmadığını kontrol eder. Eğer girdi, detektörler kümesindeki herhangi bir detektörle eşleşirse, bu girdinin bir anomali olduğu kabul edilir. Bu durumda, fonksiyon True döndürür; aksi takdirde, False döndürür.

Son olarak, kod iki test durumuyla sona erer. İlk durum, öz kümesindeki bir örnektir ve detect_anomaly fonksiyonu False döndürmelidir. İkinci durum, öz kümesinde olmayan bir örnektir ve detect_anomaly fonksiyonu True döndürmelidir.

Bu basit örnekte, detektörler ve öz kümesi manuel olarak oluşturulmuştur ve sadece metin dize tespiti için kullanılmıştır. Ancak, Negatif Seçim Algoritması'nın genel prensipleri, çok daha karmaşık durumlar ve farklı veri türleri için de geçerlidir. Algoritmanın başarısı, uygun bir eşleşme kriterinin seçilmesine ve detektörlerin doğru şekilde oluşturulmasına bağlıdır.

0 Yorum


Önerilen Yorumlar

Görüntülenecek yorum yok.

Misafir
Yorum ekle...

×   Zengin metin olarak yapıştırıldı.   Bunun yerine düz metin olarak yapıştır

  Yalnızca 75 emojiye izin verilir.

×   Bağlantınız otomatik olarak gömüldü.   Bunun yerine bağlantı olarak görüntüle

×   Önceki içeriğiniz geri yüklendi.   Düzenleyiciyi temizle

×   Görüntüleri doğrudan yapıştıramazsınız. URL'den resim yükleyin veya ekleyin.

×
×
  • Create New...