TinyML, makine öğrenimini, güç, işleme ve bellek kısıtlamaları olan mikro denetleyicilere yerleştirmekle ilgili bir çalışma alanıdır. TinyML’nin bir mikro denetleyicide kullanılması, akıllıca yanıt verebilen düşük maliyetli bir sistem oluşturulmasına yarar. Bir mikro denetleyici tarafından çalıştırılması gereken diğer etkinliklerle birlikte çalışabilen düşük gecikmeli, düşük güçlü ve düşük bant genişliğine sahip yapay zeka algoritmalarına olanak tanır. Başka bir deyişle TinyML, “IoT” ve “bulut” gibi bir moda kelimedir ve basitçe AI’yı küçültmek anlamına gelir.

TinyML, Tiny Machine Learning kelimelerinin kısaltmasıdır. TinyML, makine öğrenimi (ML) temeline dayanır. Makine öğrenimi (ML), günümüzdeki kullandığımız, cep telefonları, arabalar ve ev aletleri gibi etkileşimde bulunduğumuz dijital olan her şeye nüfuz etmiş, dinamik ve güçlü bir bilgisayar bilimi alanıdır. ML’nin erişiminin genişletilmesi ve sürekli gelişen süreçte yeni uygulamaların kilidini açmasına izin vermek için daha küçük ve daha kısıtlı kaynakları olan cihazlarda çıkarımı kolaylaştıran yollara ihtiyaç vardı. Bu arayış, TinyML tarafından teknoloji ile eş anlamlı hale gelen ticari olarak bilinen alana yol açtı.  Özetle TinyML, ML uygulamalarının ucuz, kaynak ve güç kısıtlı cihazlarda etkinleştirilmesini amaçlayan ML’nin bir alt alanıdır.

Perceptron sinir ağı görseli

Perceptron sinir ağı görseli

TinyML’nin amacı, pille çalışan, mikrodenetleyici tabanlı gömülü cihazların makine öğrenimini gerçek zamanlı duyarlılıkla ML görevlerini gerçekleştirebildiği uçtan uca bir noktaya getirmektir. Bu çaba, donanım, yazılım, veri bilimi ve makine öğrenimi gibi alanlarda optimizasyon ve maksimizasyon gerektiren olağanüstü derecede çok disiplinlidir.

TinyML Yazılımı: TensorFlow

TinyML, çevresel sensörler ve ev otomasyon sistemleri dâhil olmak üzere dünya çapında birçok ürün ve uygulamada halihazırda mevcuttur. Ancak bu tür algoritmalar ya tescillidir ya da kitleler tarafından yaygın olarak bulunan daha küçük sistemlerde çalıştırılamaz, bu yüzden pek çoğu hala yapay zekayı mikrodenetleyici projelerine uygulamamaktadır.

Bununla birlikte, TensorFlow Lite’nin Arduino Nano 33 BLE Sense ile uyumluluğu ile bir araya gelmesi, kullanıcıların artık daha büyük bilgisayar sistemlerinin gücünün çok azını kullanan mikro denetleyiciler üzerinde AI algoritmalarını denemeye başlayabilecekleri anlamına geliyor.

TinyML geliştirme için en popüler ve yerleşik ekosistem, mikrodenetleyiciler için TensorFlow Lite’tır.

TensorFlow Lite Micro iş akışı

TensorFlow Lite Micro iş akışı

TF Lite Micro’nun odak noktası, mikroişlemciler olmak üzere, kısıtlı kaynaklara sahip cihazlarda makine öğrenimi görevi için özel olarak tasarlanmış olmasıdır. Python programlama dili tabanlı bir ortam olan TF Lite Micro, aşağıdaki yerleşik kitaplıklar ve araç setlerini içerir.

  • Veri toplama
  • Ön işleme
  • Model mimarisi
  • Eğitim
  • Değerlendirme
  • Optimizasyon
  • Niceleme

TinyML’yi mümkün kılan gizli özellik, nicelemedir. Niceleme, bir modelin ağırlıklarının ve önyargılarının kesinliğini (bit boyutunu) azaltarak modelin daha az bellek kaplayacağı, daha hızlı çalışacağı ve daha az güç gerektireceği bir süreçtir.

Nicelleştirilmiş bir modelle, çoğu TinyML cihazı uygulamaları, minimum ek yük için C/C++ ile yazılır.

TinyML’nin Avantajları

TinyML’nin avantajlarından en önemlisi, taşınabilirliğidir. TinyML’nin avantajlarından diğerlerine göz atalım.

  • Küçük piller ve düşük güç tüketimi ile ucuz mikrodenetleyiciler üzerinde çalışabilir. Bu, TinyML kullanarak, ML’yi neredeyse her şeye ucuza kolayca entegre edebileceğiniz anlamına gelir.
  • TinyML, bilgi işlemin yerel yapısı nedeniyle artan güvenlik avantajına da sahiptir. Yani verilerin buluta gönderilmesine gerek yoktur. Bu, nesnelerin interneti (IoT) gibi uygulamalarda kişisel verilerle çalışırken önemli bir hale gelmektedir.

TinyML’nin Kullanım Alanları

Farkında olmasak da TinyML, günlük yaşantımızın bir parçasıdır. Günlük hayattaki TinyML uygulamasına bir örnek olarak, Google ve Android cihazlarda kullanılan sesli uyandırma sözcüğü gösterilebilir. Algılama modeli olan bu sistemde, Android cihazlar, “Hey Google” kelimesini duyduklarında “açmak” için bir DSP üzerinde çalışan 14 kB konuşma algılama ML modelini kullanır. Aynısı diğer birçok sanal asistan için de söylenebilir.

TinyML’nin kullanım alanlarından bazıları şunlardır:

  • Anahtar kelime tespiti
  • Nesne tanıma ve sınıflandırma
  • Mimik tanıma
  • Ses algılama
  • Makine izleme

Harvard’daki öğrencilerin uyguladığı,  örnek TinyML uygulamaları ise şunlardır. Arabalar için otoyolda geyik algılama (nesne algılama örneği), ses tabanlı sivrisinek algılama (ses tanıma örneği).

TinyML Uygulamalarında Kullanılan Donanım

TinyML’nin gerçek amacı, ML çıkarımını mümkün olan en düşük güçte gerçekleştirmektir. TinyML’nin babası olarak kabul edilen Pete Warden, TinyML’nin 1 mW’ın altında bir güç tüketiminde çalışmayı hedeflemesi gerektiği konusundaki durumu kitabında belirtmişti.

Bu, 1 mW tüketimin, bir cihazı, aylar ila bir yıl arasında makul bir ömre sahip standart bir madeni para büyüklüğündeki bir pil ile çalışabilecek hale getirmesidir. TinyML için güç kaynaklarının, madeni para büyüklüğündeki piller, küçük Li-Po piller ve RF enerji hasatlama cihazları olduğunu düşünün.

Hesaplama açısından bakıldığında, TinyML çoğu ML uygulaması gibi grafik işleme birimlerine (GPU‘lar), uygulamaya özel tümleşik devrelere (ASIC’ler) ve mikroişlemcilere dayanmaz. Arduino kullanan örnek bir öğrenme seti aşağıdaki gibidir.

Yüksek 1 mW hedeflerine ulaşmak için, neredeyse yalnızca mikrodenetleyiciler (MCU’lar) ve dijital sinyal işlemcileri (DSP’ler) gibi daha az yetenekli bilgi işlem donanımlarıyla sınırlıdır. Bu cihazlar genellikle Cortex-M tabanlıdır ve birkaç yüz kB’den fazla RAM’e, benzer miktarda flaşa ve onlarca MHz’de saat hızlarına sahip olmaları beklenebilir.

Bunun ötesinde, TinyML cihazında bulması umulan diğer donanımlar arasında sensörler (örneğin kamera, mikrofon) ve muhtemelen bir miktar BLE (Bluetooth Low Energy) bağlantısı bulunur.

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here