Geçiş Kontrolünde Plan Kütüphanesinin Çıkarımı

Önceki yazımda Event Gates Geçiş Kontrol Sistemi için geliştirdiğimiz plan tanıma çözümünü paylaşmıştım. Plan tanıma (plan recognition), bir ajanı gözlemleyerek davranışlarından niyetini anlamaya yönelik yapılan faaliyetleri ifade etmekte. Biz de geçiş kontrol verilerinden yola çıkarak sistem kullanıcılarının amaçlarını ve normal dışı davranışlarını tespit etmeyi planlıyoruz.

Plan tanıma çalışmalarının çoğu, gözlemlenen davranışı önceden hazırlanmış bir plan kütüphanesi ile karşılaştırarak olası amaçları saptamaya çalışmaktadır. Her ne kadar bu kütüphane bir karar ağacı yapısında olsa da, yayınlanmış çalışmaların çoğunda bilinen alanlarda önceden hazırlanmış plan kütüphanelerinin kullanıldığı görülmektedir. Oysa geçiş kontrolünde olası hedeflerin tamamı yerleşime göre oluşacağından önceden bir plan kütüphanesi oluşturmak mümkün değildir. Zaten bizim de amacımız, kullanıcıların alışkanlıklarından yola çıkarak davranış desenlerini oluşturmak ve bunların dışındaki hareketleri şüpheli olarak tespit etmek olduğundan, plan kütüphanesini geçiş kontrolü tarafından üretilen verilerden oluşturmak daha uygun görülmektedir.

Bu amaçla geliştirdiğimiz plan kütüphanesi algoritması, kullanıcıların geçiş kontrol sisteminde ürettikleri verileri kullanarak kişiselleştirilmiş bir plan kütüphanesi üretmektedir. Bu yazının devamında plan kütüphanesinin yapısı ve algoritmanın işleyişi hakkında bilgi vereceğim.

Öncelikle sistemin geliştirme aşamasında kütüphanenin yapısı ile ilgili belirlediğimiz 2 kuralı ifade etmeliyim. Geliştirilen algoritmanın bu kurallara uyması sistemin verimli çalışması açısından büyük önem taşımakta:

  1. Plan kütüphanesi kişisel olmalı, her kullanıcının kendi davranışları, kendi seçimlerine göre meydana çıkan olasılıklarla oluşturulmalıdır.
  2. Kütüphaneyi oluşturmak için geçiş kontrol sisteminde yer alan verilerin ötesinde tanımdan kaçınılmalıdır. Algoritma yerleşim ile ilgili asgari veri ile çalışabilmelidir.

Bu şartlar altında geçiş kontrol sisteminde üretilen konuyla alakalı verileri gözden geçirdiğimizde sistemin her geçiş için aşağıdaki verileri tuttuğunu görmekteyiz (sadece ilgili alanlar gösterilmektedir):

GMY2 522 2019-09-12 17:55:31.547
GMY2 562 2019-09-12 19:08:59.650
GMY2 523 2018-05-09 16:10:31.817
GMY2 563 2018-05-09 16:30:26.090

Her kullanıcı için kapının adı (ya da numarası) ile birlikte yön bilgisi de tutulmaktadır. Sadece bu verileri kullanarak bir plan kütüphanesi oluşturmaya çalışacağız. Örnek veri setimizi inceleyelim. Bir kullanıcı için bir takım kapılardan geçişi gösteren bir veri setimiz var.

101> 121> 231> 271> 271> 231> 121> 131> 311> 331> 331> 311> 131> 121> 231> 271> 271> 231>
121> 101> 101> 121> 231> 271> 271> 231> 121> 101> 101> 121> 231> 271> 271> 231> 121> 101>
101> 121> 231> 271> 271> 231> 121> 141> 421> 421> 141> 121> 231> 271> 271> 231> 121> 131>
311> 331> 341> 341> 331> 311> 131> 121> 231> 271> 271> 231> 121> 101> 101> 141> 421> 421>
141> 121> 231> 271> 271> 231> 121> 131> 311> 331> 341> 341> 331> 311> 131> 121> 231> 271>
271> 231> 221> 221> 231> 271> 271> 231> 121> 101

Plan kütüphanesi algoritmasından beklentimiz, bu veriyi işleyerek aşağıdaki çıktıyı elde etmek:

101>271(0.13): 101>121>231>271
101>421(0.03): 101>141>421
221>271(0.03): 221>231>271
271>331(0.13): 271>231>121>131>311>331
331>341(0.10): 331>341
271>271(0.03): 271>231>121>131>311>131>121>231>271
271>101(0.17): 271>231>121>101
271>421(0.03): 271>231>121>141>421
271>221(0.03): 271>231>221
331>271(0.13): 331>311>131>121>231>271
341>271(0.10): 341>331>311>131>121>231>271
421>271(0.07): 421>141>121>231>271

Her iki listede de okunabilirlik açısından yön bilgilerini dışarıda bıraktım. Şimdi plan kütüphanesini oluşturan algoritmayı inceleyelim.

Hangi kapıların binanın dış kapıları, hangilerinin oda, hangilerinin koridor kapısı olduğunu bilmeden işlem yapmamız gerekiyor. Verinin içinde uygunsuz planlar, yarım bırakılmış, ya da kısmen terk edilmiş ve daha sonra devam eden planlar olabileceğini de göz önünde bulundurmalıyız. Genel yapıyı incelediğimiz zaman bir kullanıcının seçeceği kapıyı etkileyen tek şartın bir önceki kapı olduğunu görüyorsunuz. 4 ve 5 numaralı kapılar, 3 nolu kapının arkasındaysa, kullanıcının bu kapılara ulaşmak için 3 nolu kapıyı geçtiğini bilmek yeterli, bundan önce nerede bulunduğu bu gerçeği değiştirmiyor. Sonraki olayların olasılığının sadece bir önceki olaya bağlı olarak değişiyor olması, bize bir Markov zinciri (ya da birinci dereceden Markov modeli) ile karşı karşıya olduğumuz söylüyor.

Markov modellerinin detayına girmeden, ilk aşamada eldeki veriyi bir Markov zincirine çevirdiğimizi söylemekle yetineceğim. Çıktımız buna benziyor:

101-52:121-52(0.8), 141-52(0.2)
101-56:101-52(0.75)
121-52:231-52(0.36)
121-56:131-52(0.09), 101-56(0.45), 141-52(0.09)
131-52:311-52(0.2), 311-56(0.2)
131-56:121-52(0.2)
141-52:421-52(0.5)
141-56:121-52(1)
221-52:221-56(1)
221-56:231-52(1)
231-52:271-52(0.33)
231-56:121-56(0.08), 221-52(0.08)
271-52:271-56(0.08)
271-56:231-56(0.08), 271-52(0.08)
311-52:331-52(0.25)
311-56:131-56(0.2)
331-52:331-56(0.25), 341-52(0.75)
331-56:311-56(0.25)
341-52:341-56(1)
341-56:331-56(1)
421-52:421-56(1)
421-56:141-56(1)

Markov zincirimiz her adımdan sonraki adımları ve olasılıklarını gösteriyor. Bu bir sonraki adımın ne olabileceğini tahmin etmek açısından yeterli olmakla beraber, hangi planın seçilmiş olabileceği ve nihai hedefin ne olabileceği konusunda yetersiz kalıyor. Plan tanıma çözümü tanım gereği üst seviye planı ve bunun seçilme olasılığını bulmayı amaçlıyor. Bilinen planlara uymayan tüm davranışları “şüpheli” olarak nitelendirdiğimiz düşünülünce bir sonraki adımı bilmek ve buna uymayan her hareketi şüpheli saymak çözüm açısından yeterli gözülebilir ancak güvenlik amaçlı bir plan tanıma çözümünün nihai hedefi gözardı etmesini uygun bulmuyoruz.

Diğer taraftan seçilen planların olasılığını ortaya çıkarmak için de hareketleri adım adım bilmek yeterli olmayacak, planları bütün olarak tanımlamak ve toplam hareket içindeki oranlarını bulmamız gerekiyor.

Bu sebeple elimizdeki Markov zincirini özyineli (rekursiv) bir ters ağaç işlevine sürüyoruz. İşlevin neticesi, tüm alt dallarıyla olası başlangıç noktalarından olası bitiş noktalarına geçişleri veriyor.

Plan kütüphanemiz için algoritmanın son görevi, her bir planın veri içerisinde kaç defa yer aldığını tespit etmek. Bu sayının planlar toplamına bölümü, kullanıcının bir planı hangi sıklıkla tercih ettiğini hesaplıyor.

Plan çıkarımı ve gözlemcinin nasıl çalıştığını görmek isterseniz bir demo için bize ulaşmanız yeterli.

Bu yazı Event Gates, Machine Learning, Plan Recognition içinde yayınlandı. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s