General Archives - Artifica.io https://artifica.io/category/general/ E-Commerce Product Information Management Solution Mon, 13 Nov 2023 07:53:07 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.3 What is E-Commerce SEO?  https://artifica.io/e-commerce-seo/ Tue, 15 Aug 2023 11:18:05 +0000 https://artifica.io/?p=3820 One of the most talked about SEO strategies of recent times is E-Commerce SEO. This is the art of optimizing your online store’s website to rank higher on search engine results pages. By strategically using relevant keywords, enhancing site structure, and refining content, you make it easier for potential customers to find your products organically. 

Benefits of E-commerce SEO

Why is E-Commerce SEO a game-changer for online retailers? 📈 Let’s break it down: 

  • Increased Visibility: When your store ranks higher in search results, your products are more likely to be discovered by eager shoppers. 
  • Targeted Traffic: E-Commerce SEO attracts users actively seeking your products, leading to higher conversion rates. 
  • Cost-Effective: Compared to paid ads, SEO offers a cost-effective long-term strategy with sustainable results. 
  • Credibility Boost: Higher rankings lend credibility to your brand, making consumers more likely to trust and choose your products. 
  • Improved User Experience: SEO involves optimizing site speed, navigation, and mobile-friendliness, creating a seamless shopping journey. 
  • Competitive Edge: Outshine competitors by appearing at the forefront of search results, capturing the lion’s share of clicks. 

Strategy Essentials for E-commerce SEO

Here are some E-Commerce SEO essentials to keep in mind: 

  • Keyword Research: Identify high-intent keywords that resonate with your target audience and integrate them into your product descriptions, titles, and meta tags. 
  • Optimized Product Pages: Craft unique, compelling, and informative product descriptions that highlight benefits and features. 
  • Site Speed and Mobile Optimization: Ensure your website loads quickly and looks great on all devices. 
  • High-Quality Visuals: Use high-resolution images and videos that showcase your products from different angles. 
  • User-Friendly Navigation: Make it easy for visitors to explore your store, find what they need, and make a purchase. 

Final Thoughts 

E-Commerce SEO is your secret sauce for standing out in the crowded e-commerce landscape. By enhancing your online visibility, driving targeted traffic, and boosting credibility, you’re paving the way for e-commerce success. 🚀 Ready to take your store to new heights? Let’s optimize and soar together!  

Start using Artifica today make all those process easy for you. Optimize content to be SEO compatible and make category anaylsis for your products in bulk!

Don’t forget to follow us on your social media accounts👇

]]>
Bilgi İstem Mühendisliği (Prompt Engineering) Nedir? https://artifica.io/bilgi-istem-muhendisligi/ Mon, 07 Aug 2023 13:28:55 +0000 https://artifica.io/?p=3701 Yapay zeka serisinden bir önceki yazımız olan “Makine Öğrenmesinde Doğru Performans Ölçütünü Seçmek: Sınıflama ve Kümeleme Modellerindeki Farklı Ölçütler“den sonra son dönemde çok fazla kişinin arattığı bilgi istem mühendisliği nedir yazısıyla karşınızdayız.

Yapay zeka üzerine ilginiz ne seviyede olursa olsun son birkaç ay içerisinde Büyük Dil Modelleri (Large Language Models) üzerine yapılan çalışmalardan habersiz kalmak neredeyse imkansız.

OpenAI şirketinin ChatGPT-3’ü kullanıma açmasının ardından yapay zeka dünyasında odak tamamen bu konuya kaymış durumda. Kullanıcının istemine uygun bir şekilde metin üretebilen ChatGPT, yapay zeka ile ilgilenen/ ilgilenmeyen herkesin çekti. Sorulan sorulara ve metin üretimiyle alakalı bütün isteklere oldukça doğru cevap verebilmesi, önceki soru/cevapları hatırlayabilmesi sayesinde insanlar yapay zeka ile sohbet edebilme fırsatı buldu.

Bu ilgi üzerine çokça kullanılmaya başlanan ChatGPT, bir rekora imza atarak bildiğimiz tüm yazılımlardan çok daha kısa sürede, sadece 5 günde 1 Milyon kullanıcıya sahip oldu. Ocak 2023 verilerine göre 2 milyar aktif kullanıcısı olan Instagram’ın 1 milyon kullanıcıya 2.5 ayda ulaşabilmiş olması, Chat GPT’nin gelecekte internet erişimi olan herkes tarafından kullanılacağını ortaya koyuyor.

Bu grafik chatGPT’nin gelecekte internet erişimi olan herkes tarafından kullanılacağını ortaya koyuyor.

Geçtiğimiz 5 ay içinde ChatGPT kullanıcıları yazılımı pek çok farklı alanda kullandı. Edebi yönünün sınanmasından herhangi bir bilim alanında sorulan sorulara yanıt vermesine, makale yazımından dünyanın en prestijli okullarının sınavına dair soruların sorulmasına kadar birçok konuda başarısı ölçüldü ve neredeyse tüm denemelerde oldukça başarılı sonuçlar üretti. Bu da, insanları bu teknolojiden nasıl faydalanabilecekleri konusunda araştırma yapmaya yönlendirdi.

Büyük Dil Modellerinden uygun ve verimli yanıtlar alabilmek için gönderilen istemin (prompt) doğru şekilde seçilmesi gerekiyor. Doğru bir istem belirlemek için de bu modelleri ve nasıl eğitildiklerini tanımak gerekiyor.

Büyük Dil Modelleri Nasıl Eğitilir?

Bir Büyük Dil Modeli oluştururken gerçekleştirilmesi gereken ilk adım, önceden eğitilmiş bir model oluşturmaktır. Bu model denetimsiz bir şekilde, yani etiketsiz verileri kullanarak, metin içerisindeki desen ve örüntüleri tanıma amaçlı kurulmuştur. Bu desen ve örüntüleri anlama süreci, ön eğitim olarak adlandırılır.

Desen tanıma işlemleri “Yinelemeli Sinir Ağları” (Transformer Neural Networks) ve “Dikkat Mekanizmaları” (Attention Mechanisms) sayesinde yapılmaktadır. Dikkat mekanizması, veriler arasındaki ilişki ve bağımlılıkları modelleme konusunda son derece etkili olan, girdi dizisindeki her bir elemanı diğer elemanlarla birbiriyle ilişkilendiren bir mekanizmadır. Bu ilişkilendirme, her verinin birbiriyle olan ilişki ve özelliklerine bağlı olarak yapılır. Böylece her eleman ağırlıklandırılmış olur. Bu ağırlıklandırma sonucu, sıralı bir veri geldiğinde (örneğin bir metin) hangi elemana daha çok dikkat edilmesi gerektiğini belirler. Yani bir cümlenin karakteristiğini belirleyen sözcüğün hangisi olduğunu cümle içerisindeki konumuna, özelliğine ve diğer sözcüklerle ilişkisine bakarak karar verir.

Yinelemeli sinir ağları, her bir elemanın bağımsız ve tüm elemanların aynı anda işlenmesini sağlar. Dikkat mekanizması, kodlayıcının bir elemanın vektörünü hesaplarken diğer elemanların vektörlerine dikkat etmesini sağlar. Metin içerisindeki bağımlılıklar ve örüntüler hesaplandıktan sonra bu mekanizma ile yeni metinler doğal bir şekilde üretilebilir.

Etiketsiz verilerle eğitilen ön eğitimli bu model, içerisinde bir miktar etiketli veri bulunan bir veri kümesi kullanılarak “Öğrenme Aktarımı” (Transfer Learning) yöntemiyle ile eğitilir. Böylece, etiketsiz veriler ile eğitilen ilk model etiketli verilerle tekrar eğitilir ve model içerisinde doğru veya yanlış ağırlıklandırılan elemanlar saptanır. Buna “Öz Denetimli Öğrenme” (Self-Supervised Learning) adı verilir.

Eğitimi tamamlanmış olan model yeni metin üretmeye hazırdır ancak kendisini geliştirmesi gerekmektedir. Yeni üretilen metinler, kullanıcılar tarafından oylanır. Üretilen metin, istenen cevapla uyuşması halinde olumlu, aksi halde olumsuz olarak oylanır. Bu oylar, eğitim için bir ödül-ceza görevi görür. Yani model, geri bildirimlerle ödüllendirilir veya cezalandırılır. Böylece yeni üretilen metinlerin daha yüksek güvenilirliğe sahip olmasını sağlanır.

Büyük Dil Modelleri Nasıl Çalışır?

ChatGPT gibi üretken büyük dil modelleri istem üzerine çalışır. Yani girdi olarak bir metin alır. Girdi öncelikle matrise dönüştürülür ve dikkat mekanizmasıyla elemanlar arası ilişkiler belirlenir. Girdi alındıktan sonra cevap olarak üretilen metinde kullanılacak olan bir sonraki sözcük olasılıksal olarak tahmin edilir, böylece yeni bir cevap oluşturulur. Oluşturulan cümleler sonucunda özel bir örnekleme tekniği kullanılır ve olası cümleler kullanıcıya sunulur.

Girdide verilen metnin sözcük sırasımetnin büyüklüğü gibi etmenler üretilecek olan cevabı etkilemektedir. Modelde bir girdi analiz edilirken Doğal Dil İşleme (Natural Language Processing) adı altında birçok işlem uygulanmaktadır. Söz dizilimleri, edat ve bağlaç tespiti, sözcük kök ve ek analizi vb. bir çok dil bilimi tekniği kullanılarak analiz edilir. Bu nedenle kullanılan sözcüklere, dil kurallarına, sözcük ve söz dizilimlerine dikkat etmek önemlidir.

Girdileri üretmek ve yukarıdaki konulara dikkat etmek modelin performansını artırmaktadır. Çünkü modelin verdiği cevap “Sıfır-Çekimli Öğrenme” (Zero-Shot Learning) veya “Birkaç-Çekimli Öğrenme” (Few-Shot Learning) gibi yöntemlerin uygulanması sonucu oluşturulur. Yani bir girdi verildiğinde yalnızca girdiyi veri olarak alır ve onu öğrenir. Girdi (içerisinde barındırdığı bilgi ve ilişki bakımından) ne kadar zenginleştirilirse aldığımız cevap o kadar zenginleşecektir. Bu girdiyi düzenleme, zenginleştirme ve belli bir formata sokma işlemi Bilgi İstem Mühendisliği (Prompt Engineering) olarak adlandırılmaktadır.

Bilgi İstem Mühendisliği (Prompt Engineering) Nasıl Yapılır?

Amacın Belirlenmesi

Öncelikle modelden ne isteneceği netleştirilmelidir. Modeli metin sınıflandırma, cümle tamamlama veya chatbot tarzı bir soru-cevap görevi için kullanıyor olabiliriz. Amacın doğru belirlenmesi girdinin formatını belirlemede önemli bir rol oynar.

Sistem Mesajı

Amacın belirlenmesinin ardından alınacak olan cevabı belirli bir standarda sokmak için girdiden önce bir bilgilendirme mesajı yazılabilir. Bu, alınacak olan cevabın belirli bir formatta gelmesini sağlar ve istediğimiz cevaba yaklaşmasını sağlar. Buna “sistem mesajı” denir. (Özetle sistem mesajı; modelden alınacak cevabı belli bir standarda sokmak için en başta yazılan bir istemdir. Bu istemin içeriği, modelden alınan verimi doğrudan etkilemektedir.)

Bir örnek vemek gerekirse,

Sistem mesajı olmadan:

Sistem mesajı ile:

Görüldüğü üzere, istemden önce çıktının formatı net bir şekilde belirtildiğinde istediğimize uygun formatta cevap alabiliyoruz.

ChatGPT temel dil olarak İngilizce eğitildiği için, en doğru içerikleri İngilizce kullanıldığında üretebilmektedir. Aşağıdaki örneklerde aynı ihtiyacın Türkçe ve İngilizce sorulması durumunda alınan cevaplar örneklenmiştir.

“Act as” kalıbı, İngilizce kullanımda sistem mesajını belirtmek için kullanılabilecek en net kalıplardan birisidir.

Bu kalıp kullanılarak aynı probleme farklı bakış açılarıyla cevap alabilmek mümkün olabilmektedir. Örneğin uyku problemi için bir Klinik Psikolog tavsiyesi üretmek istediğimizde aşağıdaki gibi cevap üretilirken;

Psikiyatrist tavsiyesi istendiğinde aşağıdaki gibi “Bipolar Disorder” rahatsızlığından da bahsedilen bir cevap alınabilmektedir.

Bilgi İstem Mühendisliğinde Talimat ve Yönlendirme Mesajları

Girdinizi belirli bir sırayla yazmak ve bağlamsal ilişkiler kurmak alacağınız cevabın doğruluğunu artırabilir. Örneğin, modelden (asistandan) almak istediğiniz cevabın formatı en başta belirlenebilir. Bu, sistem mesajından daha farklı bir durumdur. Diyelim ki bir konuyla alakalı birkaç örnek ve bağlamsal bilgiler verip bu örnek ve bilgilere göre bir yanıt isteyeceksiniz. Modelin örnek ve bilgileri nasıl ele alacağı konusunda talimatlar sizi istediğiniz cevaba yaklaştıracaktır.

Söz Dizimi Ekleme

Girdiyi açık bir söz diziminde oluşturup belirli noktalama işaretleri kullanmak modelin anlama kapasitesini artırabilir. Nokta, ünlem gibi noktalama işaretleri cümleler arasında durdurma kriteri olarak kullanılır ve amaca yönelik istemi güçlendirir.

Görevi Alt Parçalar Halinde İfade Etmek

Ulaşılmak istenen cevaba birkaç adımda ulaşmak cevapların güvenilirliğini artırır ve istenen cevaba ulaşma olasılığını yükseltir.

Parametre Ayarı

Temperature : Sıcaklık parametresinin değiştirilmesi, modelin çıktısını değiştirir. Sıcaklık parametresi 0 ile 1 arasında ayarlanabilir. Yüksek bir değer (örneğin 0.7), çıktıyı daha rastgele hale getirerek daha farklı yanıtlar üretirken, daha düşük bir değer (0.2 gibi), çıktıyı daha odaklı ve somut hale getirecektir. Daha yüksek bir sıcaklık kullanılarak kurgusal bir hikaye üretilebilir. Oysa yasal bir belge oluşturmak için çok daha düşük bir sıcaklık kullanılması önerilir.

Sıcaklık değeri olarak önerebileceğimiz değerler ise şöyle;

· Yaratıcılık beklemeden sadece bir metni özetlemek, format ve gramer hatalarını düzeltmek gibi talepler için 0 ile 0.3 arasında

· Metin üretme talepleri için 0.5’a yakın değerler

· Pazarlama / reklam gibi amaçlar için çok yaratıcı metinler üretme talepleri için 0.7 ile 1 arasında

değerler kullanabilirsiniz.

Temperature: 0.1 ile

Temperature: 0.9 ile

Sıcaklık ile ilgili diğer örnekler:

Top_probability: Top_probability başka bir parametredir ve model yanıtının rasgeleliğini de kontrol etmesi bakımından Sıcaklık’a benzer, ancak arka planda çalışma prensibi biraz farklıdır. Genel tavsiye, her seferinde bu iki parametreden birini değiştirmektir.

Yukarıda da görüldüğü üzere Bilgi İstem Mühendisliği’nde kullanılan, Büyük Dil Modellerinden alınan cevabın güvenilirliğini ve doğruluğunu artıran yöntemler belirtilmiştir. Bu teknikleri kullanarak Büyük Dil Modellerinden alacağınız verimi arttırabilir ve bu modelleri çok daha efektif kullanabilirsiniz.

Bilgi İstem Mühendisliği Artifica Teknoloji’de Nasıl Kullanılıyor?

Artifica Teknoloji olarak, e-ticaret platformlarındaki ürünlerin analizini pek çok farklı derin öğrenme modeliyle yapan bir yazılım geliştirmiş bulunuyoruz. Bu yazılım e-ticaret platformlarındaki ürünleri kategorizasyon ve içerik hatalarını yapay zeka ile tespit eden ve ürünlerin fiyat tahminlerini yapabilen yüksek teknoloji bir yazılım. Bu özelliklere ek olarak, uzun süredir üstünde çalıştığımız Büyük Dil Modelleri teknolojisi ile e-ticaret platformlarındaki ürünler için SEO uyumlu başlık ve içerik üretebilmekteyiz. İçerik oluşturmanın yanı sıra, Büyük Dil Modellerinden diğer yapay zeka modellerinin performansını zenginleştirmek için sentetik veri üretiminde de yararlanmaktayız. Bu tür modellerin ve teknolojilerin geliştirilen proje içerisinde doğru ve verimli bir şekilde kullanılabilmesi için en doğru sistem mesajı belirlenmeli, girdiler en doğru formatta yazılmalı ve modelden alınan cevaplar en doğru şekilde sunulmalıdır.

AI-Commerce’te bizi oldukça heyecanlandıran bir özellik olarak kullandığımız İçerik Üretimini (Content Generation) geliştirirken edindiğimiz Büyük Dil Modelleri tecrübemizi, bir veri bilimcinin gözünden paylaştık. Bir sonraki yazıda görüşmek üzere.

Müstecep Berca Akbayır & Yusuf Sadi Gürsoy

Bu yazının orjinalini linke tıklayarak okuyabilirsiniz: https://medium.com/@bercaakbayir/bi%CC%87lgi%CC%87-i%CC%87stem-m%C3%BChendi%CC%87sli%CC%87%C4%9Fi%CC%87-prompt-engineering-3fb640f0b5d0

Bizi sosyal medya hesaplarınızda takip etmeyi unutmayın!✨

Kaynakça:

https://learn.microsoft.com/en-us/azure/cognitive-services/openai/concepts/advanced-prompt-engineering?pivots=programming-language-chat-completions

https://learn.microsoft.com/en-us/azure/cognitive-services/openai/concepts/prompt-engineering

https://github.com/dair-ai/Prompt-Engineering-Guide/blob/main/guides/prompts-basic-usage.md

https://arxiv.org/abs/1706.03762

https://www.wired.com/story/how-chatgpt-works-large-language-model/#:~:text=LLMs%20use%20a%20combination%20of%20machine%20learning%20and%20human%20input.&text=All%20of%20this%20text%20data,of%20multiple%20nodes%20and%20layers.

https://www.digitalinformationworld.com/2023/01/chat-gpt-achieved-one-million-users-in.html

]]>
Makine Öğrenmesinde Doğru Performans Ölçütünü Seçmek: Sınıflama ve Kümeleme Modellerindeki Farklı Ölçütler https://artifica.io/makine-ogrenmesinde-dogru-performans-olcutunu-secmek/ Mon, 07 Aug 2023 13:06:34 +0000 https://artifica.io/?p=3697 Artifica olarak başlattığımız Türkçe yapay zeka içerik serisinin bir önceki yazısı “Öğrenme Aktarımının Gerçek Hayat Problemlerinde Kullanımı” yazısından sonra serinin 3. yazısı ile karşınızdayız. Bu yazıda makine öğrenmesi modellerini yakından inceleyeceğiz.

Makine öğrenmesi sınıflama ve kümeleme modelleri, büyük miktarda veriye dayalı karar alma süreçlerini otomatikleştirmek için kullanılır. Bu modeller, verileri doğru bir şekilde sınıflandırarak veya gruplandırarak belirli özelliklere sahip olanları birbirinden ayırt etmeyi sağlarlar. Bu işlem, doğru bir performans ölçütünün seçilmesine bağlıdır.

Sınıflama modellerinde, doğru bir performans ölçütü, modelin doğru sınıflandırma yapmasını sağlar. Doğru sınıflandırma, modelin tahminlerinin gerçek değerlere ne kadar yakın olduğunu gösterir. Sınıflama modellerinde kullanılan performans ölçütleri arasında doğruluk, hassasiyet, özgüllük, F1 skoru ve ROC eğrisi gibi ölçütlere yer verilir.

Doğruluk, modelin doğru tahmin ettiği verilerin yüzdesini ifade ederken, hassasiyet, modelin gerçek pozitiflerin yüzdesini tahmin etmesini ifade eder. Özgüllük ise modelin gerçek negatiflerin yüzdesini doğru bir şekilde tahmin etmesini ifade eder. F1 skoru, hassasiyet ve özgüllük arasında bir denge sağlayarak modelin performansını ölçer. ROC eğrisi ise modelin doğru sınıflandırma oranını gösterir.

Kümeleme modelleri ise, verileri doğru bir şekilde gruplamak için kullanılır. Kümeleme modellerinde doğru bir performans ölçütü seçimi, verilerin doğru bir şekilde gruplandırılmasını sağlayacaktır. Kümeleme modellerinde kullanılan performans ölçütleri arasında Silhouette skoru, Cohesion ve Separation, Entropi ve Purity yer almaktadır.

Silhouette skoru, bir veri noktasının kendi kümesinde ne kadar benzer olduğunu ölçerken, Cohesion ve Separation, küme içindeki benzerlikleri ve küme arasındaki farklılıkları ölçer. Entropi, bir kümenin homojenliğini ölçerken, Purity ise kümenin içindeki farklı sınıfların oranını ölçer.

Doğru performans ölçütlerinin seçilmesi, sınıflama ve kümeleme modellerinin etkili bir şekilde kullanılmasını sağlar. Performans ölçütlerinin farklı amaçlar için farklı modellerin seçilmesine olanak sağladığı göz önüne alındığında, model seçiminde performans ölçütleri dikkate alınmalıdır. Ayrıca, performans ölçütlerinin yanı sıra, verilerin nitelikleri, boyutu ve özellikleri gibi faktörler de modellerin seçimi için önemlidir.

Performans ölçütlerinin yanı sıra, verilerin nitelikleri, boyutu ve özellikleri gibi faktörler de modellerin seçimi için önemlidir.

Performans ölçütlerinin seçimi, model seçiminde oldukça önemlidir. Ancak, verilerin nitelikleri, boyutu ve özellikleri gibi faktörler de modellerin seçimi için önemlidir. Veri boyutu arttıkça, modelin performansını ölçmek ve model seçimini yapmak zorlaşır. Ayrıca, verilerin niteliği de modellerin seçimi için önemlidir. Örneğin, veriler karmaşık bir yapıya sahipse, sınıflama ve kümeleme modellerinin doğru seçimi, doğru performans ölçütleri kullanarak yapılmalıdır. Bu nedenle, verilerin özelliklerinin ve niteliğinin dikkate alınması, doğru performans ölçütlerinin seçilmesi için oldukça önemlidir.

Etkili bir sınıflama veya kümeleme modeli oluşturmak için doğru bir performans ölçütünün yanı sıra veri özelliklerinin de dikkate alınması gereklidir. Örneğin, veriler kategorik veya sayısal olabilir. Kategorik veriler için farklı sınıflama yöntemleri kullanılırken, sayısal veriler için farklı yöntemler kullanılır. Ayrıca, verilerin boyutu da performansı etkiler. Büyük boyutlu veriler daha fazla hesaplama gücü ve bellek gerektirirken, küçük boyutlu veriler daha hızlı işlenirler.

Bunun yanı sıra, sınıflama ve kümeleme modellerinin etkili bir şekilde kullanılabilmesi için doğru öznitelik seçimi de önemlidir. Öznitelikler, verilerin temel özelliklerini ifade eder ve doğru seçilmesi, modelin doğru sonuçlar vermesini sağlar. Öznitelik seçimi yaparken, verilerin boyutu ve niteliği göz önünde bulundurulmalıdır.

Sonuç olarak, yapay zekâ sınıflama ve kümeleme modelleri, büyük miktarda veriye dayalı karar alma süreçlerini otomatikleştirmek için kullanılır. Doğru performans ölçütü seçimi, modelin doğru sonuçlar vermesini sağlar. Performans ölçütleri, farklı amaçlar için farklı modellerin seçilmesine olanak sağlar. Verilerin nitelikleri ve boyutu, performansı etkiler ve doğru öznitelik seçimi yapılması önemlidir. Tüm bu faktörler, etkili bir sınıflama veya kümeleme modelinin oluşturulmasına katkı sağlar.

Verilerin nitelikleri ve boyutu, performansı etkiler ve doğru öznitelik seçimi yapılması önemlidir.

Örneklerle bu anlatılanları detaylandırmaya çalışalım. Sınıflama modellerinde kullanılan performans ölçütlerinden biri doğruluk (accuracy) ölçütüdür. Doğruluk, modelin doğru tahmin ettiği verilerin yüzdesini ifade eder. Örneğin, bir sınıflama modeli 100 adet örnek üzerinde çalıştırıldığında, 80 örneği doğru sınıflandırmışsa, doğruluk ölçütü %80 olarak hesaplanır. Ancak, doğruluk ölçütü tek başına yeterli değildir. Örneğin, sınıflandırılan verilerin bir sınıftan diğerine çok dengesiz dağılım gösterdiği durumlarda, modelin doğruluk oranı yüksek olabilir ama aslında performansı düşük olabilir.

Bu durumda kullanılabilecek performans ölçütlerinden biri F1 skoru’dur. F1 skoru, hassasiyet (precision) ve özgüllük (recall) ölçütlerinin harmonik ortalamasını ifade eder. Hassasiyet, modelin gerçek pozitiflerin yüzdesini tahmin etmesini ifade eder. Özgüllük ise modelin gerçek negatiflerin yüzdesini doğru bir şekilde tahmin etmesini ifade eder. Örneğin, bir sınıflama modeli hastalık teşhisi için kullanılıyorsa, hassasiyet modelin hasta olanların yüzdesini doğru tahmin etmesini, özgüllük ise sağlıklı olanların yüzdesini doğru tahmin etmesini ifade eder. F1 skoru, hem hassasiyet hem de özgüllük performansını dengeler ve performans ölçütü olarak daha güvenilirdir.

Kümeleme modellerinde kullanılan performans ölçütlerinden birinin Silhouette skoru olduğu belirtilmişti. Silhouette skoru, bir veri noktasının kendi kümesinde ne kadar benzer olduğunu ölçer. Örneğin, bir mağaza müşteri veri setinde, müşterilerin satın alma alışkanlıklarına göre farklı kümelere ayrılmak isteniyor. Silhouette skoru, her bir müşterinin ait olduğu kümedeki diğer müşterilere ne kadar benzediğini ölçer. Bu ölçütün yüksek olması, kümenin homojen olması anlamına gelir.

Küme içindeki benzerlikleri ve küme arasındaki farklılıkları ölçen Cohesion ve Separation ölçütlerinden bahsedilmişti. Cohesion, bir kümenin içindeki örneklerin birbirine ne kadar benzediğini ölçer. Separation ise, farklı kümeler arasındaki örneklerin birbirinden ne kadar farklı olduğunu ölçer. Bu ölçütlerin yüksek olması, kümenin homojen olması ve farklı kümelerin birbirinden ayrı olması anlamına gelir.

Regresyon modellerinde ise performans ölçütleri genellikle hata ölçütleri olarak kullanılır. Örneğin, ortalama kare hata (mean squared error) ölçütü, modelin gerçek ve tahmin edilen değerler arasındaki farkların karelerinin ortalama değerini ifade eder. Bu ölçütün düşük olması, modelin daha iyi bir şekilde uyum sağladığı anlamına gelir. R-kare (R-squared) ölçütü ise, modelin ne kadar iyi bir şekilde uyum sağladığını belirlemek için kullanılır. R-kare değeri 1’e yaklaştıkça, model gerçek verilere daha yakın bir şekilde uyum sağlamış demektir.

Bu performans ölçütleri, makine öğrenmesi içinde sıkça kullanılan ancak yalnızca birkaç örnektir. Hangi performans ölçütünün kullanılacağı, veri setinin özelliklerine ve modelin amaçlarına bağlıdır. Ayrıca, bir performans ölçütü yalnızca bir bakış açısını yansıttığı için, birden fazla performans ölçütü kullanmanın daha sağlıklı sonuçlar elde etmek için önemli olduğu da unutulmamalıdır.

Bu yazının orjinalini okumak için tıklayınız: https://medium.com/@chaladag/makine-%C3%B6%C4%9Frenmesinde-do%C4%9Fru-performans-%C3%B6l%C3%A7%C3%BCt%C3%BCn%C3%BC-se%C3%A7mek-s%C4%B1n%C4%B1flama-ve-k%C3%BCmeleme-modellerindeki-farkl%C4%B1-29d98fa20b3c

Sosyal medya hesaplarınızda bizi takip etmeyi unutmayın! ✨

]]>
Öğrenme Aktarımının Gerçek Hayat Problemlerinde Kullanımı https://artifica.io/ogrenme-aktariminin-gercek-hayat-problemlerinde-kullanimi/ Mon, 07 Aug 2023 12:00:01 +0000 https://artifica.io/?p=3681 Gün içerisinde birçok problemle karşılaşıyoruz ve bu problemleri çözerken daha önceki deneyimlerimizden sıklıkla yararlanıyoruz. Daha önce karşılaştığımız bir probleme benzer bir durumla karşı karşıya kaldığımızda önceki deneyimlediğimiz durumlardan öğrendiklerimizi ve çıkardığımız dersleri son karşılaştığımız durumda biraz duruma göre yorumlayarak yine kullanıyoruz. Bu son karşılaştığımız durumdan öğrendiklerimizi de ileride elbette kullanacağız. Bu şekilde bilgi birikimimiz ve tecrübemiz kümülatif olarak artmakta ve problemlerle karşılaştıkça yaptığımız hataları daha az yapmakta ve deneyim kazanmaktayız. Böylece kendimizi zaman ilerledikçe geliştiriyoruz.

Alan Turing’in “I propose to consider the question, ‘Can machines think?’” (“Makineler düşünebilir mi?” sorusunu ele almayı öneriyorum.) cümlesiyle başladığı ve yeni bir bilim sahasının doğumuna sebep olan makalesinin ardından makinelere insan gibi düşünebilme yeteneğinin kazandırılması konusunda ciddi çalışmalar yapıldı. İstatistiksel ve matematiksel modeller yazıldı, birçok yaklaşım geliştirildi. Bütün bu çalışmaların ardında makinelerin insana benzer bir şekilde düşünebilme yeteneğini kazandırma çabası yatmaktadır. Özellikle son dönemlerde adı çokça duyulan ve makine öğrenmesi modellerinin performansını artırmasıyla adından çokça söz ettiren öğrenim aktarımı (transfer learning) yaklaşımı da yine bu mottoyla geliştirilmiştir.

Yazının başlangıcında da dediğimiz gibi günlük hayatta karışımıza çıkan problemleri çözerken deneyimlerimizden yararlanıyoruz. Böylece problemleri daha kolay çözüyoruz ve hata yapma riskimizi minimize ediyoruz. Örneğin, bisiklet sürmeyi öğrenirken bir çok problemle ilk kez karşılaşıyoruz. Örneğin dengede kalma, çevre kontrolü, bisikleti kontrol etme ve tüm bunları yaparken de pedalı çevirmeye devam etme… Bütün bu becerileri aynı anda ilk kez öğreniyoruz. Bisiklet sürmeyi öğrenmemizin ardından motosiklet öğrenmek istediğimizde öğrenme sürecimiz bisiklet sürmeyi öğrendiğimiz zamana göre çok daha az zorlayıcı olacaktır. Çünkü bisiklet sürerken edindiğimiz dengede kalma, araç ve çevre kontrolü gibi edindiğimiz becerileri motosiklet sürerken de kullanıyoruz. Böylece öğrenme sürecimiz daha hızlı ve kolay oluyor.

Makine öğrenmesi modelini belli bir problem özelinde geniş bir veri setiyle eğitildikten sonra modelde güncellenen parametreler saklanır.

Makine öğrenmesi sürecinde de bu tarz bir yaklaşımı ‘öğrenme aktarımı’ ile gösterebiliriz. Teknik olarak süreç aynı şekilde işlemektedir. Makine öğrenmesi modelini belli bir problem özelinde geniş bir veri setiyle eğitildikten sonra modelde güncellenen parametreler saklanır. Saklanan bu parametreler, çözülen bu probleme benzer veya ilişkili görülen bir problemi çözmek için kurulan makine öğrenmesine verilir. Bir önceki problemin bilgilerini taşıyan model yeni olan problemi tanıyarak çözmeye çalışır. Böylece sıfırdan model kurmadan daha kısa sürede daha başarılı sonuçlar üretilir.

Makine öğrenmesi dünyasında öğrenme aktarımı ile oldukça başarılı sonuçlar elde edilmiştir. Ayrıca mevcut problemleri başarıyla çözmesinin yanı sıra genel yapay zekaya ulaşma serüveninin önemli adımlarından biri olarak tanımlanmaktadır.

Öğrenme aktarımını kısaca tandıktan sonra gerçek hayat problemlerine uyarlamasını inceleyebiliriz. Ama önce bazı teknik konulara hakim olunmalı ve bu yaklaşımın teknik kısımları bilinmelidir.

Yapay Sinir Ağlarının Temelleri

Beyin hücrelerinden (nöron) ilham alınarak geliştirilen bu matematiksel model, 2000’lerin başına kadar bilgisayarların çok gelişmemiş olmasından kaynaklı olarak bu modelden verimli bir şekilde yararlanılamadı. Ancak özellikle son dönemlerde bilgisayarların işlem performanslarının artmasıyla yapay sinir ağları birçok problemin çözümünde kullanılıyor ve yeni yaklaşımlarla geliştirilmeye devam ediliyor.

Yapay sinir ağları beyin hücrelerinden (nöron) ilham alınarak geliştirilmiştir.

Yukarıda da görüldüğü üzere mimari ve çalışma mekanizması olarak yapay sinir ağları, biyolojik sinir ağlarına oldukça benzemektedir. Dendritlerden alınan elektriksel sinyaller gövdeden geçerek akson boyunca uçtaki dendritlere iletilir ve bir sinir hücresindeki elektriksel sinyalin geçişi tamamlanır. Yine aynı şekilde yapay sinir ağlarında girdi olarak mevcut bilgiler gelir. Wn olarak tanımladığımız ağırlıklarca toplam fonksiyona (yukarıdaki şemada linear function olarak adlandırılan kısım) iletilir. Burada toplam fonksiyonunda stratejiye bağlı olarak ortalama fonksiyonu, medyan fonksiyonu gibi doğrusal fonksiyonlar kullanılır ve bu noktada bütün ağırlıklandırılmış bilgiler birleştirilir. Birleştirilen bilgiler belirli bir eşik değer atamasının yapılacağı aktivasyon fonksiyonuna iletilir ve niyahetinde bir çıktı değer elde edilir. Çeşitli mimarilerce bu sinir ağları tekrar ve tekrar çalıştırılır.

Sinir ağlarında geri yayılım (backpropagation):

Geri yayılım algoritması, yapay sinir ağının ürettiği sonuç olan tahmin edilmiş değeri gerçek veriyle kıyaslar ağın hata fonksiyonunu elde eder.Bu fonksiyon sayesinde ağın hata miktarını hesaplar ve ağın doğruluğunu artırmak için bu hataya göre ağırlıklar atanır.Gradyan iniş algoritması (gradient descent algorithm) ile ağın ağırlıkları optimize edilir. Her iterasyonda bu işlemler tekrarlanır ve ağırlıklar güncellenir.

Öğrenme Aktarımı (Transfer Learning)

Yazının başlangıcında da belirtildiği gibi öğrenme aktarımı, bir problemin çözümünde edinilen bilgileri başka bir problemde kullanılması ve tecrübelerin aktarılmasıdır. Örneğin bir görüntü sınıflandırma projesi için çalıştığımızı varsayalım. İlk problem olarak ultrason görüntülerinden kanser teşhisi koymaya çalıştığımızı varsayalım.

Elimizde Sağlık Bakanlığı’ndan temin ettiğimiz Türkiye genelini temsil eden büyük bir veri olduğunu varsayalım. Probleme uygun bir sinir ağı modeli kurduk, sıfırdan eğittik ve güncellenen ağırlıkları sakladık. Şu an elimizde büyük bir veriden öğrenen güçlü bir yapay sinir ağımız ve onun eğitim süresince güncellenmiş ağırlıkları var. Bunun anlamı şu an sinir ağı bu problem üzerinde bir deneyime sahip olduğudur. Ardından bir hastaneden görece olarak daha düşük bir boyutta veri temin ettik. Bu veriyle modeli sıfırdan eğitmek yerine bu problem için kurulan sinir ağına önceki problemde güncellenen ağırlıkları verdiğimizde çok daha iyi bir başlangıç noktası olacaktır.

Bu problem üzerinde tecrübe edinmiş olan sinir ağı daha az veri görmüş olmasına karşın oldukça iyi bir sonuç verecektir. Böylece önceden öğrenilen bilgiler burada kullanılmış olup tecrübe aktarılmıştır.

Öğrenme aktarımı, bir problemin çözümünde edinilen bilgileri başka bir problemde kullanılması ve tecrübelerin aktarılmasıdır

Öğrenim Aktarımı Çeşitleri

Öğrenim aktarımının genel bir problemi makine öğrenmesi metotlarıyla çözdükten sonra daha özel bir problem üzerinde edinilen tecrübenin aktarılmasıyla problemi çözme stratejisi olduğundan bahsettik. Bu süreç içerisinde karşılaşılan bazı senaryolar vardır.

İlk modeli üretirken çözmek istediğimiz problem ile öğrenme aktarımı ile çözmek istediğimiz problem aynı veya ilişkili olabilir ancak buna karşın bu iki problemin çözümünde kullanacağımız veriler farklı olabilir. Buna Dönüştürücü Öğrenme denmektedir. Örneğin yukarıda verdiğimiz ultrason görüntülerinden kanser tespiti örneği bir dönüştürücü öğrenme çeşididir.

Bir diğer senaryoda ise ilk modelin üretildiği problemle öğrenme aktarımının uygulanmak istenen problemin farklı olmasıdır. Örneğin ImageNet ile bir model eğitmek istediğimizi varsayalım. ImageNet, içerisinde milyonlarca görselin ve binlerce farklı kategorinin bulunduğu bir veri setidir.

Oldukça geniş ve genel bir veri setinden bahsetmekteyiz. Bu veri setini kullanarak oluşturduğumuz bir yapay sinir ağını hayvan görsellerini tahmin etmek üzere kullandığımızı düşünelim. İlk modelimizi oluşturmuş olduk ve problemimizi çözdük. İkinci safhada ise insan yüzlerini tanıyan bir model üretmemiz istendi. İlk problemde hayvanları sınıflandıran bir modelden edinilen bilgileri şimdi insanları sınıflandıran bir problem için kullanıyoruz. Buna da tümevarımsal öğrenme (inductive learning) denmektedir.

Öğrenim Aktarımı Mimarisi:

Öğrenim aktarımını uygularken oluşturulması gereken bir mimari yapı vardır. Adım adım mimariyi inceleyecek olursak:

1. Önceden Eğitilmiş Modeli (Pre-trained Model) Seçmek

Bazı geliştiriciler tarafından önceden büyük bir veri setiyle eğitilen ve geliştirmeye açık bir şekilde paylaşılan bazı modeller mevcuttur. Sıklıkla kullanılan bazı önceden eğitilmiş model çeşitleri şunlardır:

VGG:

Oxford Üniversitesi’nde bir grup araştırmacı tarafından üretilen model, 16 ve 19 katmanlı olmak üzere iki çeşiti mevcuttur. VGG, özellik çıkarımı ve sınıflandırma için kullanılan bir mimaridir ve görüntü sınıflandırma alanında bir dönüm noktası olarak kabul edilir. Imagenet yarışmasında oldukça iyi sonuçlar üreterek adını duyuran VGG modeli, görüntü işleme alanında çalışma yapan birçok geliştirici tarafından tercih edilmiştir.

ResNet:

Residual Networks (ResNet) adındaki bu model Microsoft uzmanlar tarafından üretilmiş olup geliştiricilere açık bir şekilde paylaşılmıştır. Esas olarak aşırı öğrenme problemine çözüm olarak gelişitirilmiştir ve klasik sinir ağlarına kıyasla çok daha fazla katmana sahiptir. Ancak katman fazlalığından dolayı yine aşırı öğrenmeye yatkındır. Bundan dolayı artık blok adı verilen bir strateji barındırır. Blok içerisinde girdi ve çıktıları birbirine bağlayarak kısa yollar oluşturur. Çıktılar, girdilere eklenmiş olur ve yeni özellikler tanınmış olur. Görüntü işleme alanında en çok tercih edilen modeldir.

Inception / Xception:

Google uzmanları tarafından geliştirilen bu model, en çok tercih edilen modeller arasında yer almaktadır. Xception, VGG ile Inception modellerinin birleşiminden meydana gelir ve klasik sinir ağlarına kıyasla daha yüksek doğruluğa ve daha düşük hesaplama maliyetine sahiptir. Görüntü işleme, sınıflandırma ve nesne tespitinde sıkça tercih edilir.

2. Katmanları Dondurma (Freezing) ve Yeni Katmanları Eğitme

Önceden eğitilmiş modeli seçtikten sonra yapılması gereken işlem probleme özgü özellik çıkarımı ve katmanları dondurma işlemidir.

Evrişimsel sinir ağı modeli 3 kısımdan oluşmaktadır

Yukarıda basitçe görüldüğü üzere bir evrişimsel sinir ağı modeli 3 kısımdan oluşmaktadır. Giriş katmanı, saklı (orta) katmanlar ve çıkış katmanı. Son aşamada tam bağlantı yapılarak evrişimsel sinir ağlarının kurulumu tamamlanır. Önceden eğitilmiş modellerde genel mantık, ilk ve orta katman olduğu gibi tutulur ve son katman probleme özgü olarak yeniden yazılır. Bu noktada yeni problemimiz için önceden eğitilmiş modeli kurduktan sonra parametreleri transfer ederiz. Böylece ilk 2 katmanda güncellenmiş parametrelerimiz olmuş olur.

Kurulan önceden eğitilmiş modele ek olarak son bir katman daha yazılır. Bu son katman, probleme özgü olarak değişmektedir. Son katmanın yazılmasının ardından tam bağlantı kurulur ve mevcut modelimiz tamamlanmış olur. Buradan sonra dikkat edilmesi gereken nokta önceden eğitilmiş modeldeki katmanların dondurulmasıdır. Böylece model, yeni verilerle yeniden eğitildiğinde ilk katmanlardaki bilgi kaybolmamış olur ve yeni verilerle eğitimimiz tamamlanmış olur.

3. İnce Ayar (Fine Tuning)

Bu aşama, öğrenim aktarımı için zorunlu değildir. Ancak birçok senaryoda performansı artırdığı görülmüştür. Katmanlar dondurulup modelin yeni katmanları eğitildikten sonra modelin eğitimi tamamlanmıştır. Bu aşamaların üzerine dondurulmuş olan katmanlar çözünerek (yeniden eğitilebilir hale getirerek) model tekrar eğitilir. Model tekrar eğitilirken sinir ağının öğrenim oranını düşürmek, optimizasyon aşamasında daha detaylı arama yapılması sağlar ve daha yavaş ve detaylı bir öğrenim ile bütün sinir ağı tekrar eğitilir. Bu eğitim, önceki eğitimin üzerine ek olarak tanımlanır ve genel olarak sonuçları iyileştirmektedir.

Öğrenim Aktarımına Neden İhtiyaç Duyulmaktadır ?

Önceden eğitilmiş modelin ağırlıkları, önceki problemlerde edindiği bilgileri ve tecrübeleri barındırmaktadır. Öğrenim aktarımının en büyük avantajı, yeni veriyle sinir ağını sıfırdan eğitmek zorunda olmamamız. Önceden eğitilen sinir ağının üzerine yeni veriyle eğitim yapılarak çok daha iyi bir başlangıç yapılması sağlanıyor. Ayrıca sinir ağlarını başarılı bir şekilde eğitmek için yüksek bir miktarda veriye ihtiyaç duyulmaktadır. Daha az veriyle daha karmaşık problemler, öğrenim aktarımı stratejisiyle mümkün hale gelmektedir.

Artifica Teknolojide öğrenme aktarımı neden kullanıldı?

Bilgisayarla görü alanında yapay zeka modellerini eğitirken öğrenim aktarımına sıkça başvurmaktayız.

Artifica Teknoloji, geçtiğimiz günlerde çıkarmış olduğu AI-Commerce adındaki ürününde görüntü işleme ve bilgisayarlı görü, doğal dil işleme ve tabular veriyle sınıflandırma modelleri gibi 9 farklı derin öğrenme modelini bir arada kompoz bir şekilde kullanarak e-ticaret sektöründeki ürünlerin analizini yapmakta ve kategorizasyon hatalarını düzeltmektedir. Bilgisayarla görü alanında yapay zeka modellerini eğitirken öğrenim aktarımına sıkça başvurmaktayız. Artifica Teknolojinin veri tabanında yer alan milyonlarca ürün görseliyle eğitilen konvülasyonel sinir ağları, çeşitli durumlarda tekrardan eğitilmektedir. MLOps ekosistemi içerisinde birçok tetikleyiciyle bu modeller tekrar eğitilir. Eğer sezonluk yeni veri gelirse, modellerin doğruluk oranları düşerse çeşitli stratejilerle veri tabanından veriler tekrardan eğitime tabii tutulur ve modeller güncellenir. Ayrıca, temel model olarak geniş veri setimizle eğitilmiş modellerimiz Artifica Teknolojiden hizmet alan müşterilerimizin bizlere sağladığı verilerle, tekrar eğitime tabii tutulur ve kümülatif bir öğrenme süreci gerçekleşir. Bu sayede zaman geçtikçe yapay zeka modellerinin başarı yüzdesi sürekli gelişmektedir.

Artifica Teknolojide öğrenme aktarımı nasıl kullanıldı?

İlk Deney

AI-Commerce’in ürünlerin doğru kategorizasyonunu yapabilmesi için başarılı bir görüntü sınıflandırma modeline ihtiyaç vardı. İlk olarak artıklardan öğrenebilen bir evrişimsel sinir ağı mimarisi kuruldu. Kurulan evrişimsel sinir ağının mimarisi özet olarak:

Giriş katmanı 60x60x3 boyutunda bir girdi tensörü alır. Giriş katmanının ardından ağ çeşitli evrişimli bloklardan oluşmaktadır.Her blok, bir önceki bloktan gelen bir artık bağlantıya sahiptir ve iki ayrılabilir evrişim katmanı, toplu normalleştirme ve dropout düzenlemesi içerir. Her bloktaki ayrılabilir evrişim katmanlarının filtre sayısı sırasıyla 256, 512 ve 728’den artar. Son katman ise toplu normalleştirme ve global ortalama havuzlama katmanlarının takibiyle tamamlanır. Sınıf sayısına uygun bir şekilde çıktı katmanının yazlmasıyla ağda tam bağlantı tamamlanır. Böylece ağ, eğitime hazır hale getirilmiştir.Yapılan bu çalışma ile daha az hesaplama gücüyle daha yüksek doğruluk amaçlanarak verimli bir ağ modeli tasarlanmak istenilmiştir.

Deneyin diğer adımı olarak veri tabanında yer alan verilere benzer bir şekilde küçük bir veri kümesi seçildi. Modelin bu verilerle eğitilmesi sonucu yüzde 70’e yakın bir doğruluk oranı yakalanmıştır.

Deneyin ikinci kısmında bir önceden eğitilmiş model kurulmuştur. Model olarak ResNet50 seçilmiş olup son katman probleme özgü olarak yeniden tasarlanmıştır. İlk ve saklı katmanlar dondurularak ağırlıklar korunmuştur. En son olarak ise mevcut epoch sayısının yüzde 30’u, öğrenme oranının (learnnig rate) yüzde 10’u olacak şekilde ince ayar adımı tanımlanmıştır. Bunun anlamı, asıl eğitim süreci bittikten sonra mevcut epoch sayısının yüzde 30’u kadar daha eğitim devam edecek ve bu ikinci eğitim aşamasında optimizer asıl eğitimde kullanılan öğrenim oranının onda biri büyüklükte olacak şekilde daha detaylı bir optimizasyon süreciyle eğitim devam edecektir. Deney sonucunda öğrenme aktarımında sıklıkla karşılaşılan bazı problemler meydana gelmiştir. Bu problemler ve çözümleri aşağıdaki adımlarda anlatılmıştır:

Aşırı öğrenme (Overfitting):

Öğrenme aktarımı uygulanırken en çok karşılaşılan problemlerden birisidir. VGG, ResNet, Inception gibi önceden eğitilmiş modeller, katman sayılarından kaynaklı olarak oldukça kompleks modellerdir. Daha az veriyle eğitim amaçlayan geliştiriciler bu modelleri kullanırken aşırı öğrenme gibi sorunlarla karşılaşabilmektedirler. Bu problemi çözmek için izlediğimiz adımlar:

1. Veri Artırma

Veri artırma (data augmentation) adımı, aşırı öğrenme probleminin üstesinden gelmek için uygulanması gereken ilk adımlardan birisidir. Aşırı öğrenme problemi, modelin genelleştirme yeteneğini kaybetmesinin ardından meydana gelmektedir. Bu adımda, her bir görseli 0.2 radyan ile döndürerek birer kopya oluşturur ve eğitime dahil ederiz. Farklı açılardan gösterilen görseller modelin genelleştirme yeteneğini artırmaktadır.

Veri artırma (data augmentation) adımı, aşırı öğrenme probleminin üstesinden gelmek için uygulanması gereken ilk adımlardan birisidir.
2. Bırakma (Dropout)

Bırakma (dropout), bir düzenlileştirme tekniğidir. Her katmanda nöronlardan geçen bilginin bir kısmı bırakılır, diğer bir tabirle “unutulur”. Böylece herhangi öğrenilen bir özelliğe fazla dayanmadan eğtiim süreci devam eder. Saklı katmanlarda bırakma oranının yaklaşık yüzde 50 civarında olması önerilmektedir.

3. Erken Durdurma (Early Stopping)

Sinir ağlarında eğitim devam ederken modelin doğruluğu artmayabilir veya artmasına karşın hatalar minimize edilemeyebilir. Bu noktada aşırı öğrenme problemi başlamış demektir. Eğitim süresince eğer ardışık 3 epochta bu durum gözlenirse eğitim orada kesilir ve aşırı uyum başlamadan eğitim tamamlanır.

Patlayan Gradyan (Exploded Gradient) Problemi:

Derin öğrenmede, öğrenme sürecinde yapay sinir ağının geri yayılım sürecinde gradyanın çok büyük olmasından kaynaklı olarak patlayan gradyan problemi ortaya çıkar. Bundan dolayı ağırlık güncellemelerinin çok yüksek bir değerle olması uçta çok yüksek ağırlıkların birikmesine neden olur ve model kararsız hale gelir.

Eğer sinir ağı modelinizi eğitirken eğitim süresince loss (kayıp) değeriniz çok yüksek çıkıyorsa veya NaN değerini veriyorsa patlayan gradyan problemi var demektir. Ağırlıklar çok yüksek değer aldıktan sonra kayıp fonksiyonu minimize edilemez, kullanılan optimizasyon algoritması (adam, rmsrop vb.) çözüm uzayında global maksimumu bulmakta zorlanır ve çözüm uzayında salınım hareketi yapmaya başlar. Bu problemin çözümü için aşağıdaki yollar izlenmiştir :

1. Daha düşük öğrenme oranı:

Bir sinir ağını eğitirken amacımız geri yayılım (back propagation) süresince ağırlıklar ağda güncellenirken kayıp (veya maliyet) fonksiyonunu minimize etmeye çalışırız. Eğer öğrenme oranını düşürürsek ağırlıkların güncelleme oranını düşürürüz, böylece gradyanların aşırı büyüme ihtimalini düşürmüş oluruz.

2. L1 (lasso) ve L2 (ridge) Düzenlileştiricileri:

L1 ve L2 düzenlileştiricileri, aşırı öğrenme problemlerinde modelin veriyi daha iyi genelleştirmelerine olanak sağlayan düzenlileştirme metotlarıdır. Patlayan gradyan problemi için üretilen bir çözüm değildir ancak dolaylı yoldan problemin çözümüne yardımcı olmaktadırlar. L1 ve L2 düzenlileştiricileri, modeli daha küçük ağırlıklar kullanmaya ve gradyanların genel büyüklüğünü azaltmaya teşvik eden kayıp fonksiyonuna bir ceza terimi ekleyerek bunu önlemeye yardımcı olabilir.

Önceden eğitilmiş modeli kurup öğrenme aktarımı uyguladıktan sonra karşımıza çıkan problemler ve bunları nasıl çözdüğümüz yukarıda detaylıca anlatılmıştır. Bu çözüm yollarını uyguladıktan sonra modelimiz yüzde 90’lara varan bir başarı elde etmiştir.

Kendi tasarladığımız sinir ağı mimarisini ve önceden eğitilmiş modeli öğrenme aktarımı metotuyla ayrı olarak eğittikten sonra deneyimiz tamamlanmıştır.

Deneye İlişkin Sonuç ve Karşılaştırma

Her iki model karşılaştırıldığında farkları model kurulumu, eğitim süreci ve sonrası olmak üzere incelenebilir. Sıfırdan bir sinir ağı tasarlayıp kurmak ve ağın deneyini yapmak çoğu zaman maliyetlidir. Uzun süren bir sinir ağı mimari tasarımının ardından beklenen sonuç gelmeyebilir ve daha iyi sonuçlar çıkarmak için parametrelerde ve mimaride düzenlemeler yapılarak beklenen sonuca yaklaştırılabilir. Önceden eğitilmiş modellerin kullanılmasıyla sinir ağlarının kurulumu da oldukça kolaylaşmıştır. Başarısını kanıtlamış çok katmanlı sinir ağlarıyla çalışmak ve yönetmek, bize oldukça zaman tasarrufu sağladı. Öğrenme aktarımı metotuyla eğitilen önceden eğitilmiş sinir ağı modeli ResNet50, daha az veriyle eğitildiği için model karmaşıklığına rağmen eğitimi oldukça kısa sürdü. Ayrıca daha kısa sürede daha yüksek doğruluk oranı yakalandı. Sonuç olarak öğrenme aktarımı kullanılarak zaman ve başarı bakımından daha optimize modeller elde ettik.

Ürün İçerisinde Testlerinin Yapılması

İlk deneyde Ar-Ge çalışmalarında mevcut yöntemin ürünlerin tahminlerindeki başarısının görülmesi üzerine ürün içerisinde denenmek üzere çalışmalara başlandı.

Ürün içerisinde verilerin çeşidi ve boyutu değiştiğinden dolayı yeni bir deneysel sürece başlanmış oldu. Bundan dolayı birkaç farklı model denendi. İlk safhada önceden eğitilmiş modellerin arasındaki farklı kıyaslamak amacıyla ullanılan modeller ResNet50, VGG16 ve Xception modelleridir. ResNet50 ve Xception arasında bariz bir fark olmamasına karşın diğer modellere kıyasla çok daha iyi sonuçlar vermiştir. ResNet50’nin yaklaşık %90, Xception’un ise %91–93 bandında bir doğruluk oranı verdiği görülmüştür. Böylece en iyi performansı gösterenin Xception olduğuna karar verilmiştir.

İkinci safhada ise ürün içerisinde önceden kullanılan ve yukarıda da bahsedilmiş olan konvülasyonel sinir ağı ve en iyi sonucu veren Xception modeli denenmiştir. Deneyde bir ikili (binary) sınıfa sahip veri seti, bir de 4 adet sınıfa sahip bir veri seti seçilip deneylere başlanmıştır.

İkili sınıfa sahip olan veri setinde konvülasyonel sinir ağı yaklaşık %81 doğruluk oranı vermiştir. Yine aynı veri seti üzerinden Imagenet üzerinden eğitilmiş ve güncellenmiş parametreler Xception modeline verilerek tekrar eğitilmiştir. Xception’un doğruluk oranının %91 olduğu görülmüştür.

4 adet sınıfa sahip veri setinde yazdığımız konvülasyonel sinir ağı %70, Xception modeli ise %91.2 doğruluk oranı vermiştir.

Ürün Testlerinde Sonuç ve Karşılaştırma

Ürün içerisinde önceden kullanılan konvülasyonel sinir ağı ile Xception modeli kıyaslandığında bariz farklılıklar görülmektedir. Bu farklılıklardan ilk göze çarpanı doğruluk oranlarındaki fark olduğu görülmektedir. Xception modelinin bizim tarafımızdan tasarlanan konvülasyonel sinir ağına kıyasla yüzde 25 daha iyi sonuçlar verdiği görülmüştür.

Ürün İçerisindeki Etkisi:

Xception modelini ürün içerisine yerleştirdikten sonra yüzlerce kategori üzerinde eğitilmiştir. Yüzlerce kategorinin bu modelle eğitilmesinin ardından öğrenme aktarımının modelin ürün içerisindeki başarının oldukça yükselttiği görülmüştür. Doğruluk oranı olarak belirlenen eşik değerin altında kalan kategorilerden birçoğunun eşik değeri geçtiğini ve başarılı olarak işaretlendiği görülmüştür. Verisi az olan kategorilerin doğruluğu düşük iken öğrenme aktarımı uygulandıktan sonra yüksek bir başarıya ulaştığı görülmüştür. Yapılan geliştirmelerin ardından geçmişe kıyasla daha az aşırı öğrenme problemiyle karşılaşılmaya başlanmıştır.

Bu yazımızda Artifica Teknoloji bünyesinde çalışan bir veri bilimci gözünden öğrenim aktarımı yaklaşımını şirketimizin bünyesinde nasıl kullandığımızı ve nasıl süreçlerden geçtiğimizi aktarmaya çalıştık. Öğrenme aktarımının yapay zeka modellerine olan katkıları ve nasıl kullandığıyla alakalı deneyimlerimizi paylaştık. Ayrıca derin öğrenme modelleri kurulurken sıklıkla karşılaşılan problemler ve çözümlerine de değinmeye çalıştık.

Artifica Teknolojinin yapay zeka tabanlı ürünü olan AI-Commerce’i geliştirirken geçtiğimiz aşamaları ve karşılaştığımız zorlukları sizinle paylaşmak istedik. Ürün geliştirme sürecimizde yapay zeka tarafında edindiğimiz tecrübelerimizi aktarırken siz de bu serüvene ortak olabilirsiniz. Bir sonraki yazımızda görüşmek üzere.

Müstecep Berca Akbayır

Veri Bilimci

Bu yazının orjinaline erişmek için tıklayın: https://medium.com/@bercaakbayir/%C3%B6%C4%9Frenme-aktariminin-transfer-learning-ger%C3%A7ek-hayat-problemleri%CC%87nde-kullanimi-95c08425bd1e

Kaynakça:

https://dergipark.org.tr/tr/download/article-file/833620

https://medium.com/novaresearchlab/%C3%B6%C4%9Frenme-aktar%C4%B1m%C4%B1-transfer-learning-c0b8126965c4

https://keras.io/guides/transfer_learning/

https://www.spiceworks.com/tech/artificial-intelligence/articles/articles-what-is-transfer-learning/

https://redirect.cs.umbc.edu/courses/471/papers/turing.pdf

]]>
Artifica TEYDEB 1507 tarafından desteklenmeye hak kazandı https://artifica.io/teydeb-1507/ Mon, 07 Aug 2023 10:18:03 +0000 https://artifica.io/?p=3675 🎉🥳 Artifica olarak, Kobi Ar-ge Başlangıç Destek Programı olan TEYDEB 1507 kapsamında desteklenmeye hak kazandığımızı duyurmaktan dolayı büyük mutluluk duyuyoruz!

TEYDEB 1507, KOBİ’lerin Ar-Ge projelerini hayata geçirmeleri ve inovasyon süreçlerini desteklemeleri için tasarlanmış bir programdır. Bu destekle, Artifica olarak, Ar-Ge faaliyetlerimizi daha da güçlendirecek, yenilikçi projeler geliştirecek ve ülkemizin teknolojik gelişimine katkı sağlayacağız.

Bu programı kazanmanın bizim için büyük bir önemi vardır. TEYDEB 1507 sayesinde, Ar-Ge çalışmalarımızı daha fazla kaynak ve imkanlarla sürdürebilecek, nitelikli insan kaynağına ulaşma ve teknoloji transferi gibi alanlarda destek alabileceğiz. Aynı zamanda, bu destekle Ar-Ge süreçlerimizi daha verimli ve etkin bir şekilde yöneterek, inovasyon kapasitemizi artıracağız.

Bu başarıya ulaşmamızda emeği geçen herkese teşekkür ederiz. Çalışanlarımızın özverili çalışmaları, danışmanlarımızın rehberliği ve iş ortaklarımızın desteği olmadan bu hedefe ulaşamazdık. Hep birlikte, Artifica olarak, teknoloji ve inovasyon alanındaki faaliyetlerimizi daha da ileriye taşıyacak ve ülkemize katma değer sağlamaya devam edeceğiz.

Artifica olarak, yeni başarılarla dolu bir gelecek hedefliyoruz. TEYDEB 1507’nin bize sağladığı destekle, daha büyük ve daha etkileyici projeler hayata geçirmeyi, sektörde liderliğimizi pekiştirmeyi ve dünya çapında tanınan bir teknoloji şirketi olmayı hedefliyoruz. Artan motivasyonumuz ve heyecanımızla, gelecekte daha nice başarılara ulaşacağımıza inanıyoruz.

Bu başarıyı sizlerle paylaşmaktan gurur duyuyoruz ve destekleriniz için teşekkür ederiz. Sizlerle birlikte büyümek ve başarmak için heyecanla çalışmaya devam edeceğiz.

Bizi takip etmeyi unutmayın! ✨

]]>