Örüntü Tanımaya Giriş
Merhabalar, öğrenirken not aldığım veya paylaşmaya değer gördüğüm her bilgiyi yazıya aktarmaya çalışıyorum ve burada da zaman zaman paylaşıyorum biliyorsunuz ki , aldığım müthiş ötesi eğlenmemi sağlayan seçmeli dersimi -Ufuk Nalbatoğlu öğretmenime harika anlatımı için sonsuz teşekkürler! -de biraz ders notlarımdan biraz internetin karanlık sularından toplayarak sizin için ve kendim için bir özet yazı haline getirdim. Bu konunun devam serisinin geleceğini de şimdiden müjdeliyorum. 🦾 İyi okumalar dilerim!
BAŞLIYORUZ!👽
Gelelim Örüntü Tanımaya,
🤔Örüntü Tanıma Nedir?🤔
Bu terimi BT dünyasında çok duysak da, aslında bilişsel sinirbilim ve psikolojiden geliyor.
Örüntü tanıma, karşılaştığımız bazı bilgileri belleğimizde depolanan verilerle eşleştirdiğimizde beynimizde gerçekleşen bilişsel bir süreçtir. Örneğin, bir anne çocuğuna saymayı öğrettiğinde, “Bir, iki, üç” der. Birden fazla tekrardan sonra anne “Bir, iki …” dediğinde çocuk “Üç” diyebilir. Gördüğümüz gibi, çocuk kalıbı tanımış oldu.
Ayrıca vücudumuzda, patojenik moleküler kalıpları ve hasarla ilişkili moleküler kalıpları tanımlamak ve bunlarla mücadele etmek için belirli bir görevi olan hücreler-makrofajlar, monositler, vb.-örüntü tanıma reseptörleri (PRR) vardır. Ancak bu da teknoloji değil, biyolojidir.
Bilgisayar biliminde örüntü tanıma nedir? Bilgisayar bilimi ve makine öğrenmesinde örüntü tanıma, veri tabanında depolanan bilgileri gelen verilerle eşleştiren bir teknolojidir.
Makine öğreniminin en yaygın uygulamalarından biri örüntü tanımadır.
İyi eğitilmiş algoritmalar kullanan bilgisayarlar, fotoğraflardaki hayvanları, stok dalgalanmalarındaki anormallikleri ve mamogramlardaki kanser belirtilerini insanlardan çok daha iyi tanır. Parça parça ele alalım ;
Örüntü Tanıma sürecinin merkezinde olayların istatistiksel bilgilere, geçmiş verilere veya makinenin belleğine dayalı olarak sınıflandırılması yatar.
Makinenin verilerdeki örüntüleri arayabilmesi için ön işlemden geçirilmesi -bu yazıda anlatmayacağız- ve bilgisayarın anlayabileceği bir biçime dönüştürülmesi gerekir . Daha sonra araştırmacı, yararlı sonuçlar elde etmek için problem hakkında mevcut bilgilere bağlı olarak sınıflandırma, regresyon veya kümeleme algoritmalarını kullanabilir:
Örüntü Tanıma Sisteminin Temel Bileşenleri 🧠
Yukarıdaki tablodan da görebileceğiniz gibi, örüntü tanımanın sonucu ya sınıf ataması ya da küme ataması ya da tahmin edilen değişkenler olabilir. Bu nedenle, “örüntü tanıma ve sınıflandırma arasındaki fark nedir” diye sormanın bir anlamı yoktur — sınıflandırma algoritması, hedef değerin sonlu bir sınıflar kümesi olduğu denetlenen makine öğrenimi problemlerinin bir parçasıdır.
Ayrıca örüntü tanıma ve bilgisayarla görmeyi birbirinden ayırmalıyız. Bu iki teknoloji benzer görünmekle birlikte, bilgisayarla görme teknolojisi çoğunlukla nesne algılama, görsel tabanlı öğrenme ve bölümleme gibi görüntüleri ve görsel bilgileri işleme ve analiz etmeye odaklanır. Öte yandan örüntü tanıma, her türlü verideki örüntülerin otomatik olarak keşfedilmesini amaçlamaktadır — görsel ve diğerleri.
🤔Örüntü tanıma nasıl çalışır?🤔
Üç tür örüntü tanıma modeli vardır:
İstatistiksel Örüntü Tanıma🧠
Bu tür örüntü tanıma, örneklerden öğrendiğinde istatistiksel tarihsel verileri ifade eder: gözlemleri toplar, işler ve bu kuralları genellemeyi ve yeni gözlemlere uygulamayı öğrenir.
Sözdizimsel Örüntü Tanıma 🧠
Aynı zamanda yapısal örüntü tanıma olarak da adlandırılır, çünkü ilkel olarak adlandırılan daha basit alt modellere (örneğin, sözcükler) dayanır. Kalıp, ilkeller arasındaki bağlantılar açısından tanımlanır, örneğin, sözcükler cümleleri ve metinleri oluşturur.
Sinir Örüntü Tanıma 🧠
Sinir örüntü tanımada yapay sinir ağları kullanılır. Karmaşık doğrusal olmayan girdi-çıktı ilişkilerini öğrenebilir ve kendilerini verilere uyarlayabilirler.
BİR ÖRNEKLE AÇIKLAMAYA ÇALIŞALIM 🤟 ;
Bir deniz ürünü işlem merkezinde gelen balıkların bir konveyörde ilerlerken farklı türlerdeki balıkların insan iş gücü ile farklı kasalara aktarılması gerçekleşiyor, biz ise sensörle algılanmasını sağlayıp Örüntü Tanıma Sistemi kullanılarak robotik bir sistem ile türlerin farklı yönlere ayırmasını sağlamak istiyoruz.
Örüntü tanımanın buradaki görevi; balıkları tanıyıp/ tanımlayıp hangi balığın hangi sınıfa gireceğini belirleyen sistem.
Problem ; Kamera görüntüleri alıyor ve balıkları seçebilmek için özellikler belirleniyor.
Neler kullanabilir ?
Balıkla İlgili Özellikler;
- Uzunluk
- Hafiflik
- Genişlik
- Kanatların sayısı ve şekli
- Ağzın konumu vb.
Bu sistemlerdeki özellikleri matematiksel olarak basitçe karakterize etmek ve bu karakterizasyonu işleyerek en sonunda karar verebilen matematiksel algoritma oluşturmaya çalışacağız.
-önişlem ile verinin normalizasyonunun yapılıp öz nitelikler ile temsil edilebildiğini varsayıyoruz.
Classification / Sınıflandırma
Sınıflandırmada algoritma, önceden tanımlanmış özelliklere dayalı olarak verilere etiketler atar.
Peki bir ya da birden fazla öz niteliği kullanarak nasıl sınıflandırma yapabiliriz?
Balıkların uzunluğunu olası bir özellik olarak seçelim;
Grafiğe göre;
Yaklaşık olarak somonlar(salmon) daha kısa ,levrekler (sea bass) daha uzun şeklinde tahmin yapabiliriz. Ama bu tek bir öz nitelikle her zaman doğru ve yeterli değildir.
Balıkların açık renkli/koyu renkli olmasını olası bir özellik olarak seçelim;
Grafiğe göre; Genel olarak somonlar(salmon) daha koyu renkli,levrekler (sea bass) daha açık renkli şeklinde genel tahmin yapabiliriz. (Threshold belirleriz; 5–6 lightness değeri altı somon üstü sea bass) Ama burada da yeterli sonucu ulaşamayız.
Görünen o ki, elimizdeki özellikleri kombine kullanmamız gerekiyor tanıma başarımızı arttırmak için;
Balığı 2 boyutlu düzlemde bir nokta olarak temsil edeceğim ve bu özelliklere göre balığı tanımam ve ayırmam çok daha kolay hale gelecek.
Hepsini bir arada barındırarak daha geometrik yaklaşımlarla güçlü sınıflandırma, güçlü karakterizasyon sağlayabilecek sistem oluşturduk, bu durumu daha da arttırabiliriz. (geometriksel açıdan aynı şekilde sonuç verecek bir özellik daha eklemek boyutsallığın lanetine sebep olacaktır ve boyut arttıkça sistem daha kötü davranmaya başlayacaktır. Bu yüzden elimizden geldiğince çok bilgi veren az gürültülü ( elimizdeki özellikle örtüşmeyen özellikler ) özellik kullanmaya özen göstermeliyiz.
Örüntü tanımada boyutluluğun laneti nedir? 🧠
Buradaki sorun, boyutsallık arttığında, alan hacminin de hızla artması ve mevcut verilerin seyrekleşmesidir. Neden boyutluluk laneti deniyor? Çünkü istatistiksel olarak sağlam ve geçerli sonuçlar için yeterli miktarda bilgiye ihtiyacınız var.
Genellemeyle değil de spesifik tüm özellikleri öğrenmeye çalışırsak/karmaşıklaştırırsak çok hata yapmamıza neden olacaktır. Çünkü genel olan somon boyutunu istisnai bir şekilde levrekte gördüğümüzden dolayı levrek diyerek birçok somon boyutunu da levrek olarak algılamaya çalışacağız bu yüzden ayrıntıları değil genel kuralları öğrenmeye çalışmalıyız.
Hem genelleme yapma yeteneğine sahip olması ve hem de yeterince kompleks olabilmesini sağladık!
Özetle Örüntü tanıma süreci 🧠
Örüntü tanıma, mevcut verilere bakan ve içinde herhangi bir düzen olup olmadığını görmeye çalışan bir süreçtir. İki ana bölümü vardır. Bunlar;
- Algoritmaların genel olarak kalıpları aradığı keşif bölümü
- Algoritmaların bulunan kalıpları kategorize etmeye başladığı açıklayıcı kısım
Bilgisayar görüşünün aksine, örüntü tanıma için veri herhangi bir şey olabilir:
Ayrıca örüntü tanıma ve bilgisayarla görmeyi birbirinden ayırmalıyız. Bu iki teknoloji benzer görünmekle birlikte, bilgisayarla görme teknolojisi çoğunlukla nesne algılama, görsel tabanlı öğrenme ve bölümleme gibi görüntüleri ve görsel bilgileri işleme ve analiz etmeye odaklanır. Öte yandan örüntü tanıma, her türlü verideki örüntülerin otomatik olarak keşfedilmesini amaçlamaktadır.
- Metinler veya kelimeler
- Görüntüler
- Duygular (duygular)
- Sesler
- Diğer unsurlar ve bilgiler
Bu model arama sürecinden elde edilen bilgiler, veri analitiği sistemleri için kullanılabilir. Bu özellik, kullanıcıların bu kadar büyük miktarda veriyi kendi başlarına veya Excel veya diğer benzer araçlar yardımıyla işleyemediği büyük veri analitiği için özellikle hayati önem taşır.
Örüntü tanımanın nasıl çalıştığına dair basitleştirilmiş bir süreç:
- Öncelikle veri toplamanız gerekir.
- Ardından, ön işleme tabi tutar ve gürültüden arındırırsınız.
- Algoritma, verileri inceler ve ilgili özellikleri veya ortak öğeleri arar.
- Daha sonra bu öğeler sınıflandırılır veya kümelenir;
- Her segment içgörüler için analiz edilir;
- Son olarak, çıkarılan içgörüler pratikte uygulanır.
🤔Örüntü tanıma nerelerde kullanılır?🤔
Örüntü tanıma teknikleri, sınıflandırma sorunlarını çözmek, sahtekarlığı ortaya çıkarmak, volkanik patlamaları tahmin etmek veya tehlikeli hastalıkları insanlardan daha yüksek doğrulukla teşhis etmek için kullanışlıdır.
Görüntü işleme, segmentasyon ve analiz 🧠
Görüntü işleme için örüntü tanıma kullanılır. Örneğin, bir makine öğrenimi algoritması , görüntü karanlık veya gürültülü olsa bile yüzlerce kuş türünü insanlardan daha iyi tanıyabilir .
Bilgisayar görüşü 🧠
Bilgisayar görüşü için örüntü tanımayı kullanan yapay sinir ağlarından biri, gerçek zamanlı olarak çevrenin tanımlarını oluşturabilen Sinirsel Konuşma’dır .
Konuşma tanıma 🧠
Alexa veya Siri gibi sanal asistanlar, ayrı fonem kelimeleriyle çalışmak yerine tüm konuşma parçalarını işlemek için konuşma tanıma sistemlerini kullanır.
Parmak izi tanımlama 🧠
Parmak izi eşleştirmesi yapmak için bir dizi tanıma yöntemi kullanılmıştır. Örüntü tanıma yaklaşımı hem kriminal bilimlerde hem de kendi akıllı telefonunuzda yaygın olarak kullanılmaktadır. Telefonunuzda bir parmak izi kilidiniz varsa, bu, kilidini her açtığınızda oyuna giren desen tanımadır.
Borsa analizi 🧠
Borsayı tahmin etmek zor. Bununla birlikte, orada bile, tanınabilen ve kullanılabilen modeller vardır. Yatırımcılar için modern uygulamalar, kullanıcılarına danışmanlık hizmetleri sağlamak için AI kullanır. Bazı örnekler Blumberg, Tinkoff, Kosho ve SofiWealth’tir.
Tıbbi teşhis 🧠
Gerçek verilerle eğitilmiş örüntü tanıma algoritmaları kanser teşhisi için kullanılabilir. Bu araştırmacılar ,% 99.86'lık bir tahmin doğruluğu sağlayan otomatik bir meme kanseri tespit tekniği önerdiler. Özellik çıkarımı için biyopsiden alınan histopatoloji görüntülerini kullandılar ve sonuçları üretmek için yapay bir sinir ağı uyguladılar.
🤔ÖRÜNTÜ TANIMA NEDEN ÖNEMLİDİR?🤔
Muazzam bir makale yazdıktan sonra şu soru kalır: “Neden örüntü tanımayı kullanıyoruz?”
Cevap basit — çevremizde o kadar çok bilgi var ki, yalnızca önemli olan şeylere dikkat etmemiz için yardıma ihtiyacımız var. Web sitenizin ziyaretçi istatistiklerini gece gündüz izlemek yerine, şüpheli ani artışlar olup olmadığını kontrol etmek için Google Analytics Insights’ı kullanabilirsiniz. Mojave çölünde Sincap Waldo’yu aramak yerine, o hayvanı dakikalar içinde (saniyeler değilse) tespit edecek bir algoritma çalıştırabilirsiniz. Yabancı bir Avrupa şehrinde kalın bir sözlükle dolaşmak yerine, kameranızı işarete veya bir restoran menüsüne doğrultabilir ve orada ne yazdığını anlayabilirsiniz.
Örüntü tanıma teknolojisi, analitiğin sonuçlarını basitleştirir ve kuruluşlar ve karar verme süreci için kritik bir şey olan İş Zekası Öngörüleri için güvenilir bir kaynak sağlar.
Gelecek yazılarda görüşmek üzere!👣
Beni Linkedin ve Twitter hesaplarımdan da takip edebilirsiniz!🐞
Kaynaklar
- Pattern Classification (2nd ed) by R. O. Duda, P. E. Hart and D. G. Stork, John Wiley & Sons, 2000
- Machine Learning -Tom M Mıtchell
- https://huspi.com/blog-open/pattern-recognition-in-machine-learning
- https://serokell.io/blog/pattern-recognition#what-should-a-pattern-recognition-system-be-able-to-do%3F
- https://medium.com/@togayyazar/%C3%A7ok-boyutlunun-laneti-the-curse-of-dimensionality-94779b56d90e
- https://www.edureka.co/blog/wp-content/uploads/2019/08/Pattern-Recognition-528x245.jpg