
Makine öğrenimi modelleri, farkında olsak da olmasak da, günlük yaşamımızda önemli bir rol oynar. Tipik bir gün boyunca bir makine öğrenimi modeliyle etkileşime girme olasılığınız yüksektir; çünkü etkileşimde bulunduğumuz dijital ürünlerin neredeyse tümüne nüfuz etmiş durumdadırlar; örneğin sosyal medya hizmetleri, sanal kişisel asistanlar, arama motorları ve e-posta barındırma servisinizin istenmeyen posta filtrelemesi.
Gündelik hayatta makine öğreniminin çok sayıda örneği olmasına rağmen, teknolojinin hâlâ ulaşamadığı alanlar var. Nedeni? Pek çok makine öğrenimi modeli, özellikle de son teknoloji (SOTA) mimariler, önemli kaynaklar gerektirir. Yüksek performanslı hesaplama gücü talebi, pek çok makine öğrenimi uygulamasını bulutla sınırlamıştır – talep üzerine bilgisayar sistemi kaynakları sağlayan altyapılar.
Bu modellerin eğitiminin hesaplama açısından maliyetli olmasının yanı sıra, üzerinde çıkarım (inference) çalıştırmak da çoğu zaman oldukça masraflıdır. Makine öğreniminin erişimini genişletmesi ve ek alanlara nüfuz etmesi için, çıkarımı daha küçük ve kaynakları sınırlı cihazlarda çalıştırmaya olanak tanıyan bir çözüme ihtiyaç vardır. Bu çözüm arayışı, Tiny Machine Learning (TinyML) adı verilen makine öğrenimi alt alanının doğmasına yol açmıştır.
Bu yazıda:
- TinyML’yi ve faydalarını tanımlayacağız
- TinyML’nin bazı uygulamalarını ele alacağız
- TinyML uygulamaları için gereken iş akışı gereksinimlerini tartışacağız.
TinyML nedir?
“Sinir ağları, yapay sinir ağları (ANN) olarak da adlandırılır. Mimari, yalnızca makine öğreniminin bir alt kümesi olan ve insan beyninin yapısı ve işlevinden esinlenen algoritmalarla ilgilenen derin öğrenmenin temelini oluşturur. Kısacası, sinir ağları, biyolojik nöronların birbirlerine nasıl sinyal gönderdiğini taklit eden mimarilerin temelini oluşturur.”
Kaynak: PyTorch Eğitimi: Sıfırdan Basit Bir Sinir Ağı Kurma
Makine öğrenimi, bir dizi algoritma sağlayan yapay zekânın bir alt alanıdır. Bu algoritmalar, makinelerin mevcut geçmiş verilerden kalıpları ve eğilimleri öğrenerek aynı veriler üzerinde daha önce bilinen sonuçları tahmin etmesini sağlar. Ancak asıl hedef, eğitilmiş modelleri, eğitim veri kümesinin ötesinde genelleme yapacak şekilde kullanmak; böylece açıkça programlanmadan tahmin doğruluğunu artırmaktır.
Bu görevlerde kullanılan algoritmalardan biri de sinir ağlarıdır. Sinir ağları, genellikle makine öğrenimi modellerine kıyasla eğitimi daha pahalı olan modellerden oluşan derin öğrenim olarak bilinen bir alt alana aittir. R ile sinir ağı modelleri oluşturma hakkında ayrı bir eğitimde daha fazla bilgi edinebilirsiniz.

Şekil 1. Üç katmanlı bir sinir ağının görselleştirmesi
tinyml.org’a göre, “Tiny machine learning, donanım, algoritmalar ve yazılım da dahil olmak üzere, genellikle mW aralığında ve altında son derece düşük güçte cihaz üzerinde sensör verisi analitiği gerçekleştirebilen ve bu sayede her zaman açık kullanım senaryolarını mümkün kılan, pil ile çalışan cihazları hedefleyen makine öğrenimi teknolojileri ve uygulamalarının hızla büyüyen bir alanı olarak geniş biçimde tanımlanır.”
TinyML’nin son yıllardaki büyümesi büyük ölçüde onu destekleyen donanım ve yazılım ekosistemlerinin gelişimine atfedilmektedir. Teknikler düşük enerjili sistemlerde (örn. sensörler, mikrodenetleyiciler vb.) uygulanabildiğinden, makine öğrenimi uç noktaya son derece yakın biçimde taşınabilir ve bu tür uygulamaların gerçek zamanlı yanıt verebilirlik ile çalışmasını sağlar. Özünde fikir, makine öğrenimi uygulayıcılarının daha azla daha fazlasını yapabilmesini sağlamaktır.
Peki bu neden bu kadar önemli? TinyML’nin neden cazip olduğuna bakalım.
TinyML’nin faydaları
- Gecikme: Model uç cihazlarda çalıştığı için verinin çıkarım için bir sunucuya aktarılması gerekmez. Veri aktarımları genellikle zaman alır ve küçük de olsa gecikmeye yol açar. Bu gereksinimi ortadan kaldırmak gecikmeyi azaltır.
- Enerji tasarrufu: Mikrodenetleyiciler çok az güç gerektirir; bu da uzun süre şarj edilmeden çalışabilmelerini sağlar. Bunun da ötesinde, herhangi bir bilgi aktarımı olmadığı için kapsamlı bir sunucu altyapısına ihtiyaç duyulmaz: sonuç olarak enerji, kaynak ve maliyet tasarrufu elde edilir.
- Azalan bant genişliği: Çıkarım için çok az ya da hiç internet bağlantısı gerekmez. Cihaz üzerinde veriyi yakalayan ve işleyen sensörler bulunur. Bu, ham sensör verisinin sürekli olarak sunucuya iletilmediği anlamına gelir.
- Veri gizliliği: Model uçta çalıştığı için verileriniz sunucularda tutulmaz. Sunuculara bilgi aktarımının olmaması, veri gizliliği güvencesini artırır.
Vaka Kullanımları: TinyML nasıl kullanılıyor?
TinyML’nin uygulamaları, özellikle nesnelerin interneti (IoT) ağlarına ve verilerine bağımlı olanlar başta olmak üzere çok çeşitli sektörlere yayılmıştır – Nesnelerin İnterneti (IoT), temelde internete üzerinden diğer cihazlar ve sistemlerle bağlanan ve veri alışverişi yapan sensörler, yazılımlar ve diğer teknolojilerle donatılmış fiziksel nesneler ağından oluşur.
Bilgisayarlı görü, görsel uyandırma sözcükleri, anahtar kelime yakalama, kestirimci bakım, hareket tanıma, endüstriyel makine bakımı vb. TinyML’nin yaygın kullanım örneklerindendir. TinyML’nin uygulamalarıyla güçlendirildiği bazı sektörlere de göz atalım:
Tarım
Gerçek zamanlı tarım ve hayvancılık verileri TinyML cihazlarıyla izlenebilir ve toplanabilir. İsveçli uç yapay zekâ ürün şirketi Imagimob, uç cihazlarda makine öğrenimi için bir geliştirme platformu oluşturdu. Avrupa Birliği genelinden elli beş kuruluş, TinyML’nin mahsul ve hayvancılığın verimli yönetimini nasıl sağlayabileceğini öğrenmek üzere Imagimob ile iş birliği yaptı.
Endüstriyel kestirimci bakım
TinyML, düşük güçlü cihazlara konuşlandırılarak makineleri arızalara karşı sürekli izlemek ve sorunları gerçekleşmeden önce tahmin etmek için kullanılabilir; bu tür uygulamalar, işletmelerin çoğu zaman arızalı makinelerden kaynaklanan maliyetleri azaltmasına yardımcı olma potansiyeli taşır.
Kestirimci bakıma iyi bir örnek Ping Services’tır. Rüzgâr türbini kanatlarının akustik imzasını sürekli izleyerek herhangi bir değişikliği veya hasarı tespit edip bildirmek için bir izleme cihazı geliştirdiler. Ping’in web sitesine göre, “sürekli izleme sayesinde operatörler kanat hasarına zamanında yanıt verebilir; bu da bakım maliyetlerini, arıza risklerini ve kesinti sürelerini azaltırken rüzgâr türbini performansını ve verimliliğini artırır.”
Müşteri Deneyimi
Kişiselleştirme, beklentiler arttıkça müşterilerin talep ettiği temel bir pazarlama aracıdır. Amaç, işletmelerin müşterilerini daha iyi anlaması ve davranışlarıyla örtüşen reklam ve mesajlarla hedeflemesidir. Uçta TinyML uygulamaları konuşlandırmak, işletmelerin kullanıcı bağlamlarını, davranışları da dâhil olmak üzere, anlamalarına olanak tanır.
İş Akışı Gereksinimleri
Geleneksel makine öğrenimi iş akışlarında kullanılan pek çok araç ve mimari, uç cihaz uygulamaları geliştirilirken de kullanılır. Temel fark, TinyML’nin bu modellerin daha küçük cihazlarda çeşitli işlevler gerçekleştirmesine olanak tanımasıdır.
Mikrodenetleyiciler için Tensorflow Lite (TF Lite Micro), uç cihazlarda makine öğrenimi için en popüler çerçevelerden biridir; yalnızca birkaç kilobayt belleğe sahip gömülü sistemlerde makine öğrenimini uygulama görevine özel olarak tasarlanmıştır.
Python, makine öğrenimi modelleri oluşturmak için sıklıkla tercih edilen dildir. Ancak TensorFlow Lite, modelleri C, C++ veya Java ile kolayca geliştirip internet bağlantısı olmadan dağıtmayı mümkün kılar.
Donanım açısından bakıldığında, TF Lite ile TinyML’ye başlamak için desteklenen bir mikrodenetleyici kartı gereklidir; kütüphane şu anda aşağıdaki mikrodenetleyicileri desteklemektedir:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- STM32F746 Discovery kit
- Adafruit EdgeBadge
- Adafruit TensorFlow Lite for Microcontrollers Kit
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Wio Terminal: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- Synopsys DesignWare ARC EM Software Development Platform
- Sony Spresense
TinyML’nin desteğiyle, her gün kullandığımız ev aletleri ve IoT cihazları gibi milyarlarca cihazın zekâsını, bant genişliği ve güç tarafından sıklıkla kısıtlanan ve önemli gecikmeler üreten pahalı donanım ya da güvenilir internet bağlantılarına servet harcamadan artırmak mümkündür.
Öğrenme Kaynakları
- TinyML Foundation
- Tiny ML: Machine Learning with Tensorflow Lite on Arduino and Ultra-Low-Power Microcontrollers (Kitap)
- Uç Cihazlarda Gömülü Makine Öğrenimi (Podcast)
- Makine Öğrenimini Anlamak
- Python ile Derin Öğrenmeye Giriş
- Derin Öğrenme Eğitimi
Özet
TinyML, onu destekleyen donanım ve yazılım ekosistemlerinin gelişimi sayesinde son yıllarda çeşitli sektörlerde ivme kazanıyor. Bu araç, mikrodenetleyiciler gibi düşük enerjili sistemlerde makine öğrenimi modellerinin uygulanmasını mümkün kıldı ve çeşitli yeni fırsatların kapısını araladı. Düşük gecikme, enerji tasarrufu, veri gizliliği ve bağlantı bağımlılığının olmaması; TinyML’yi, nesnelerin interneti (IoT) cihazları için uygulama geliştirmek isteyen geliştiriciler açısından cazip kılan etkenlerden bazılarıdır.
SSS
Tiny Machine Learning (TinyML) nedir?
TinyML, modellerin daha küçük ve daha az güçlü cihazlarda çalışmasına olanak tanıyan bir makine öğrenimi türüdür. Donanım, algoritmalar ve yazılımlar içerir; bu sayede bu cihazlardaki sensör verileri çok düşük güç tüketimiyle analiz edilebilir ve her zaman açık kullanım senaryoları ile pil ile çalışan cihazlar için idealdir.
TinyML’nin faydaları nelerdir?
TinyML’nin faydaları arasında azaltılmış gecikme, enerji tasarrufu, daha düşük bant genişliği kullanımı ve gelişmiş veri gizliliği yer alır. TinyML, verilerin uç cihazlarda işlenmesine imkân tanır; böylece gecikmeye neden olabilen sunucuya veri aktarımı ihtiyacını ortadan kaldırır. Ayrıca TinyML, geleneksel makine öğrenimi modellerine kıyasla çok daha az güç gerektirir; bu da uzun süreler boyunca şarj gerektirmeden çalışmasına imkân verir.
TinyML ne için kullanılır?
TinyML, tarım, endüstriyel kestirimci bakım ve müşteri deneyimi dâhil olmak üzere geniş bir yelpazedeki sektörlerde kullanılabilir. Ayrıca bilgisayarlı görü, görsel uyandırma sözcükleri, anahtar kelime yakalama, hareket tanıma ve daha fazlası için de kullanılabilir.
TinyML uygulamaları için iş akışı gereksinimleri nelerdir?
TinyML uygulamaları için iş akışı gereksinimleri, geleneksel makine öğrenimi iş akışlarına benzerdir. Ancak TinyML, bu modellerin daha küçük cihazlarda çeşitli işlevleri yerine getirmesine olanak tanır. Mikrodenetleyiciler için TensorFlow Lite (TF Lite Micro), uç cihazlarda makine öğrenimi için en popüler çerçevelerden biridir ve yalnızca birkaç kilobayt belleğe sahip gömülü sistemlerde makine öğrenimini uygulama görevi için özel olarak tasarlanmıştır.
TinyML için bazı öğrenme kaynakları nelerdir?
TinyML için bazı öğrenme kaynakları arasında TinyML Foundation, "Tiny ML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers" kitabı ve "Uç Cihazlarda Gömülü Makine Öğrenimi" podcast’i yer alır. DataCamp ayrıca bu derin öğrenme eğitimi, makine öğrenimini anlama kursu ve daha fazlasını içeren Learn AI merkezinde birçok kaynak sunuyor.
