Kayıtlar

2017 tarihine ait yayınlar gösteriliyor

Repository ve Unit Of Work Tasarım Kalıbı ve Uygulanması

Resim
Repository ve Unit Of Work Tasarım Kalıbı ve Uygulanması Bu yazıda Repository design pattern konusunu anlatmaya çalışacağım, bunun yanında Unit Of Work pattern konusunda da kısa bir özet geçip kod örneği ile yazıyı uzatmadan tamamlamış olacağım. Yazıyı hazırlarken kullandığım geliştirme ortamı .Net Framework ve C#. Bu nedenle öncelikle DbContext nedir? Bu noktadan başlayalım. DBContext Veritabanına karşılık gelen obje yapısıdır. İçinde tablo yapısında karşılık gelen DbSet objelerini bulundurur. DbContext kullanarak tablo ve view yapılarına erişebilir, DbSet yapısını kullanarak tablo üzerinde CRUD işlemlerini gerçekleştirebilirsiniz. Repository Tasarım Kabılı (Repository Design Pattern) Repository temel olarak veritabanı sorgulama işlemlerinin bir merkezden yapılmasını sağlayarak iş katmanına bu işlerin taşınmasını önler bu şekilde sorgu ve kod tekrarına engel olmuş olur. Yani asıl amaç veri işlem ve sorgulamaların tekrarlardan kaçınılarak merkezi bir yapıya çekilmesidir. Bu sa

Bulut Mimarisinin Temelleri

Resim
Bulut Mimarisinin Temelleri Bulut Bilişim Tipleri Özel Bulut (Private Cloud) Bulut servislerinin kullanıcıya özel olarak sunulmasıdır. Sunulan kaynaklar diğer kullanıcılarla paylaşılmaz, kullanıcı kendisine sunulan bulut servislerinin ölçeklenebilirlik, elastiklik gibi özelliklerini kullanırken kontrol ve uyarlanabilirlik özelliklerine de sahip olur. Özel bulut servisleri IaaS ve Paas modeli ile sağlanabilir. Iaas, Servis Olarak Altyapı(ağ,depolama..) ve PaaS, Servis Olarak Platform(işletim sistemi, web sunucusu, veritabanı sunucusu...) anlamına gelmektedir. Dahili veya kurumsal bir bulut olarak da adlandırılan özel bulut, şirketlere barındırılan bilgisayar altyapısı üzerinden özelleştirilmiş kaynaklardan sağlanan ek kontrol ve özelleştirme sayesinde, işletmelerin self-servis, ölçeklenebilirlik(scalability) ve elastikiyet(elasticity) gibi genel bir bulutun pek çok avantajını sağlar Genel Bulut (Public Cloud) Internet üzerindeki sunucular ile sağlanan ve herkese açık

Bayes Teoremi

Resim
Bayes Teoremi Olasılık teorileri arasında en popüler ve yaygın kullanılan teoridir. Olasılıkla ilgili daha önceden bilgi sahibi değilseniz olasılık yazımda bu konuyla ilgili temel kuralları açıklamaya çalıştım o yazıyı da okumanızı öneririm. Bayes teoremi, 18. yüzyıl İngiliz matematikçisi Thomas Bayes'in adını verdiği koşullu olasılığı belirlemek için kullanılan matematiksel bir formüldür. P(A|B)  = B olayı gerçekleştiğinde A olayının gerçekleşme olasılığı P(A) = A olayının gerçekleşme olasılığı P(B|A)  = A olayı gerçekleştiğinde B olayının gerçekleşme olasılığı P(B) = B olayının gerçekleşme olasılığı Şimdi bu formülün nasıl çıkarıldığına bakalım. Koşullu olasılık kuralını kullanacağız. Buna göre: P(A|B) = P(A ve B) / P(B) Formülünü kullanıyorduk. Aynı şekilde : P(B|A) = P(B ve A) / P(A) P(A ve B) = P(B ve A) dır. Yukarıdaki iki denklemi birleştirirsek. P(A|B) . P(B) = P(B|A) . P(A)  buradan Bayes kuralını çıkarabiliriz. P(A|B) = P(B

Olasılık Kuralları

Olasılık Kuralları Olasılık kuralları, temel olasılık konularına giriş ve olasılık içeren olaylara yaklaşım açısından bilinmesi gereken temel kurallardır. Bu yazıda olasılık kuralları ile ilgili temel bilgiler vermeye çalışacağım. Olasılık konusu elbette derin ve matematiksel olarak detayları çok bir konudur, fakat benim üzerinde durmak istediğim özellikle giriş seviyesinde bir bakış açısı sağlamaya yardımcı olmaktır.  Bu yazıda veya diğer yazılarımda matematiksel detaylara girip konuyu içinden çıkılamaz duruma getirmekten çok işin özünü verip merak edenleri araştırmaya yönlendirmeyi tercih ettiğimi belirtmek isterim. Olasılık kurallarının isimlendirmelerini kolay anlaşılması amacıyla biraz farklılaştırdım, bence bu şekildeki isimlendirmeler akılda kalıcı oluyor. Kuralları kısaca özetleyip örneklerle pekiştirmeye çalışacağım. Daha net anlamak için farklı kaynakları ve tanımları incelemenizi özellikle öneririm. Toplama Kuralı Aynı anda gerçekleşmeyen(olasılıkları kesişm

Container Nedir? Docker Nedir? MongoDB Container Kurulum Örneği

Resim
Container Nedir? Docker Nedir? MongoDB Container Kurulum Örneği Bu yazıda Container konusuna giriş yapıp devamında Docker ve MongoDB document database kullanımını ve bunun docker container olarak lokal makinamıza nasıl kurabileceğimizi kısaca anlatmaya çalışacağım. Öncelikle container nedir? Ne değildir? Buna bir bakıp Docker konusuna geçelim. Container Container, uygulamalarımızı bir yapı içine koyup istediğimiz yere gönderebileceğimiz ve orada bir kurulum/setup ihtiyacı olmadan ve uyumluluk sorunu yaşamadan çalışabilmelerini sağlayan teknolojidir. Bunun tam anlaşılabilmesi için VM(Virtual Machine) ne demek onu da bilmek gerekiyor. VM, sanal makina anlamına gelmekte olup işletim sistemi barındıran yapılar olmakla beraber başlı başına bir bilgisayarı simule eder. Her VM içinde bir işletim sistemi çalışır ki o işletim sistemine RAM ayrılması zorunluluğu doğar. Bu da VM’e ayrılan RAM’den işletim sistemine gidecek bir kaynak demektir. VM’ler büyük ve hantal yapılardır, depl

Discriminative ve Generative Modeller

Discriminative ve Generative Modeller Supervised learning altındaki classification işlemlerinde Discriminative ve Generative modeller hakkında kısa bilgi vermeye çalışacağım.  Aslında kelimelerin anlamlarından gitsek bile farkın ne olduğunu kestirmemiz mümkün. Discriminative kelimesini ayrım yapan/fark gözeten, Generative kelimesini ise üretebilir/yaratabilir olarak anlamlandırabiliriz. Bu durumda Discriminative model verideki farklara bakan ve buna göre farklılık arasına bir sınır koyup(desicion boundary) bu şekilde sınıflandıran, Generative model ise veri farklılıklarını modelleyip/anlayıp gruplayan ve sınıflandırmayı grupladığı bu model üzerinden yapan algoritmadır diyebiliriz. Örneğin logistic regression bir Discriminative öğrenme algoritmasdır. Bu nasıl çalışır? En basit anlatımla A ve B etiketine sahip iki veri setimiz olsun. A ve B olarak sınıflandırdığımız veri setinin ayrımını yapmak için A etiketi ve B etiketi verilerinin arasından düz bir hat geçirir buna desici

Custom Vision AI Uygulaması

Resim
Custom Vision AI Microsoft’un kullanıma sunduğu görsel tanıma ve sınıflandırma yapay zeka servisidir. Daha önce LUIS konusunda da anlattığım gibi kullanması kolay, herhangi bir kodlama gerekmeden bir modelin üretilip publish edilebileceği ve çağrılabileceği bir yapıdır. Kullanımı en basit servis diyebilirim, sadece görselleri yükleyip modeli train ettikten sonra sınıflandırma denemelerini yapabilirsiniz. Öncelikle customvision.ai sitesinden microsoft hesabınızla giriş yapıyorsunuz. Sonrasında yeni proje yaratılıyor. Proje yaratıldıktan sonra görseller yükleniyor. Görsel yükleme ekranında yüklenen görsellere tag veriliyor. Bu tag’leme işlemi yüklenen görsel setinin hangi sınıflandırmaya ait olduğunu belirtmek için gerekli. Ben örnek olarak qashqai ve auris fotolarını yükledim ve auris fotolarına toyota ve auris etiketini verdim. Qashqai fotolarına ise nissan ve qashqai etiketini verdim. Daha sonra yüklenen bu resimler train ediliyor. Modelimizi train

LUIS - The Language Understanding Intelligence Service

Resim
LUIS - The Language Understanding Intelligence Service LUIS, Microsoft tarafından geliştirilmiş bir yapay zeka servisidir. Natural Language Processing (NLP) kullanarak verilen cümleleri yorumlar, ayrıştırır ve hangi amaca yönelik olduğunu sınıflandırarak döner. LUIS ile uygulamalar arasındaki veri alış verişi HTTP endpoint aracılığı ile olmaktadır. Bir LUIS uygulamasını dizayn ederken temel üç kavramın bilinmesi önemlidir. Bunlar: Utterance İfade. Kullanıcıdan gelen ve yorumlanması gereken metin girişi. "Ankara'ya bilet alacağım" veya "Rezervasyon" veya Ankara uçuşu" gibi bir ifade olabilir. Intent Amaç. Kullanıcının gerçekleştirmek istediği işlemleri temsil eder. Kullanıcının cümlesindeki hedeftir; örneğin, bir fatura ödemesi veya bir haber makalesini bulma gibi. Entity Varlık. Kullanıcının amacıyla alakalı bir sınıfı temsil eder. “Ankara'ya bilet alacağım" sözcüğünde, "Ankara", konum türü bir varlıktır.

Yapay Zeka Öğrenme Teknikleri Giriş

Resim
Yapay Zeka Öğrenme Teknikleri - Giriş Supervised Learning Denetimli Öğrenme olarak ta dilimize çevrilebilir. Seçeceğimiz öğrenme algoritmamıza modelleme yapabileceği yeterlilikte verinin ve bu veriden ulaşılmaya çalışılan sonucun verilmesi gerekir. Algoritmamız eldeki veriyi ve bu verinin sonucunu kullanarak bir model geliştirir. Geliştirilen bu modelin geçerliliğini ve hata oranlarını bilebilmek için elimizdeki veri ve sonuçları ile sınarız. Eldeki hazır veri seti kullanılarak geliştirilmiş ve sonrasında test verisi ile geçerliliği sınanmış modelimizin yeni gelecek veriden doğru tahmini sonuç çıkarması bazı kriterlere bağlıdır. Doğru modelleme yapılmamışsa çıkacak sonuçlar da gerçek durumdan uzak olacaktır. Dikkat edilmesi gereken kriterler öğrenme algoritması seçimi, verinin gerçek durumu ne kadar yansıttığı, test verisinin ne kadar doğru seçildiği ve hazırlandığı(bu konu çok önemli ve uzun bir konudur) gibi. Regression Sayısal giriş değerleri ile sayısal ve süreklilik