Cumartesi , 26 Eylül 2020
tensorflow
tensorflow

Derin Öğrenme Uygulamalarının Tarayıcıda Çalıştırılması

TensorFlow.js, tarayıcı tabanlı Yapay Zeka uygulamalarını yalnızca JavaScript kullanarak oluşturmasını ve çalıştırmasını sağlamaktadır.

Derin Öğrenme Uygulamalarının Tarayıcıda Çalıştırılması 1 – 10Wo7QC1f

Geliştiriciler, bu JavaScript kütüphanesi yardımıyla gerçek zamanlı olarak ses yada çehre ifadesi benzer biçimde kullanıcı girişlerine tepki veren akıllı uygulamalar oluşturmak için basit bir halde kullanabilirler. İçerik önerisi, sesli komutlar yada jestler kanalıyla etkileşim, ürünleri yada bölgeleri tanımlamak için cep telefonu kamerasını kullanma ve kullanıcıya günlük görevlerde destek olmayı öğrenme benzer biçimde uygulama örnekleri verebiliriz.

JavaScript ile Yapay Zeka Uygulamaları Geliştirmenin Avantajları

Geçmişte, en iyi makine öğrenmesi ve derin öğrenme frameworklerinin bir çok Python ve ilgili kütüphane ekosistemine egemenlik gerektiriyordu. Derin öğrenme modellerini verimli bir halde eğitmek için NVIDIA GPU’larına ve CUDA benzer biçimde hususi amaçlı donanım ve yazılımların kullanılmasını gerekiyordu. Bugüne dek, makine öğrenmesini JavaScript uygulamalarına entegre etmek, makine öğrenmesi bölümünü AWS Sagemaker benzer biçimde yada Algorithmia benzer biçimde bulut hizmetlerine dağıtmak ve API istekleri kanalıyla mümkün oluyordu. Şimdilerde ise TensorFlow.js ile makine öğrenmesi çözümlerine erişmek süratli, basit ve eğlencelidir.

Ek olarak Tensorflow.JS JavaScript’te kod yazmanıza izin vermenin yanı sıra, her şeyi kullanıcı tarafında yapmanıza da olanak sağlar.

Uygulamaların Kolay Paylaşımı

Makine öğrenmesi modelinizle etkileşime girebilmek için kullanıcıya bir URL vermeniz kafi. Modeller, ek dosyalar yada kurulumlar olmadan direkt tarayıcıda çalıştırılır. Artık JavaScript’i bulutta çalışan bir Python dosyasına bağlamak zorunda değilsiniz. Sanal ortamlarla yada paket yöneticileriyle savaşım etmek yerine, tüm bağımlılıklar js dosyası olarak uygulamanıza dahil edilebilir. Bu, verimli bir halde beraber emek harcama yapmanızı, süratli bir halde prototip oluşturmanızı ve basit bir halde dağıtmanızı sağlar.

İstemci (client) İşlem Gücü

Eğitim ve tahminler kullanıcının donanımına yüklenmektedir. Bu, geliştirici için mühim maliyet ve çabayı ortadan kaldırır. Potansiyel olarak pahalı olan bir uzak makineyi çalışır durumda tutmak, değişen kullanımı esas alan hesaplama enerjisini ayarlamak yada servis başlatma zamanları mevzusunda endişelenmenize gerek kalmamıştır. Sadece, müşterinin donanımının YZ modellerimizin talepler doğrultusunda tatminkar bir edinim sağlayacak kadar kuvvetli olmasına dikkat etmeliyiz.

Veriler Müşterinin Lokasyonunda

Nihayet zamanlardaki büyük veri skandallarının ve güvenlik ihlallerinin arkasından, duyarlı detayları korumak mevzusunda endişelerin arttığı bir gerçek! TensorFlow.js ile, kullanıcılar kişisel verilerini bir ağ üstünden göndermeden ve bir üçüncü tarafla paylaşmadan YZ’den faydalanabilirler. Bu, veri güvenliği düzenlemelerini karşılayan, giyilebilir tıbbi sensörlere bağlı sıhhat uygulamaları benzer biçimde güvenli uygulamalar oluşturmayı kolaylaştırır.

Varlıklı sensör verilerine daha basit erişim

Derin Öğrenme Uygulamalarının Tarayıcıda Çalıştırılması 2 – 0 tFM0Cg1zZCcyt9mU
Mobil cihazların sensör datasına erişim sağlanabilir — Resim kaynağı

Direkt JavaScript entegrasyonu, modelinizi mikrofon yada web kamerası benzer biçimde aygıt girişlerine bağlamayı kolaylaştırır. Tarayıcıda çalışan aynı kod mobil cihazlarda da çalıştığından ivmeölçer, GPS ve jiroskop verilerini de kullanabilirsiniz. Mobil işlemci üreticileri YZ ile optimize edilmiş yeni işlemciler üretmeye başladıklarında aygıt üstünde derin öğrenme modellerinin eğitimi önümüzdeki birkaç sene içinde daha basit olacak benzer biçimde gözüküyor.

Nihayet aşama etkileşimli ve uyarlanabilir deneyimler

İstemci tarafında gerçek zamanlı çıkarım, web kamerası hareketleri benzer biçimde kullanıcı girişlerine derhal cevap veren uygulamalar yapmanıza olanak tanır. Mesela, Google, kullanıcının başını kinetik ettirerek Pacman oynamasına müsaade eden bir web kamerası oyunu yayınladı. Model, kullanıcının baş hareketlerini belirli klavye kontrolleriyle ilişkilendirmek için eğitilmiştir. Evvelinde eğitilmiş modeller yüklenebilir ve ondan sonra bu tarz şeyleri belirli kullanıcılara uyarlamak için geçirme öğrenmeyi kullanarak tarayıcıda ince ayar (fine-tuning) yapılabilir.

Evvelinde eğitilmiş modellerin kullanımı

Tarayıcıya evvelinde eğitilmiş kuvvetli modeller yükleyerek karmaşık görevleri hızla gerçekleştirebilirsiniz. Buradan, artan sayıda mevcut model arasından seçim yapın yada TensorFlow dönüştürücü aracını kullanarak TensorFlow Python modellerinin Tensorflow.js için uygun formata dönüştürüp kullanabilirsiniz. TensorFlow.js, bu modelleri sensör verileri üstünde tekrardan eğitmenize ve bu tarz şeyleri geçirme öğrenimi kanalıyla kendi uygulamanıza gore ayarlamanıza müsaade eden genişletilmiş öğrenmeyi de destek sunar. Tarayıcıda tek başına bir çok kişinin erişemeyeceği hesaplama kaynaklarını kullanarak çoğu zaman büyük veri setlerinde eğitilen evvelinde eğitilmiş modellerin üstüne, kullanıcılarınızın gereksinimlerine gore ince ayar yaparak kullanmanıza olanak sağlar.

GPU’lar için Donanım Hızlandırma

TensorFlow.js, WebGL kullanımı yardımıyla model eğitimini ve çıkarımı hızlandırmak için yerleşik GPU cihazlarından yararlanıyor. Bir modeli eğitmek için CUDA yüklü olan bir NVIDIA GPU’ya ihtiyacınız yoktur. Bu sayede derin öğrenme modellerini AMD GPU’larda da eğitebilirsiniz!

Node.js desteği

TensorFlow.js, Node.js’de CUDA desteğiyle de çalışır. Bu anlamda, JavaScript ile hem istemcide hem de sunucuda yayınlama mevzusundaki geleneksel yararını yapay zeka alanına genişletir.

Gereksinimler

TensorFlow.js (TFJS), bilhassa görüntü yada video verileri söz mevzusu olduğunda, tipik JS uygulamalarınızdan fazlaca daha çok kaynak kullanabilir.

En iyi performans için WebGL desteği ve GPU desteği olan tarayıcılar gerekir. Bu bağlantıyı ziyaret ederek WebGL’nin desteklenip desteklenmediğini denetim edebilirsiniz. WebGL’de bile, kullananların güncel video sürücülerinin olması gerekliliği sebebiyle GPU desteği eski cihazlarda kullanılamayabilir.

Çağıl donanım ve güncellenmiş yazılımın optimum performans elde etme gereklilikleri, kullanıcı deneyiminin cihazlar içinde büyük seviyede değişmesine niçin olabilir. Bundan dolayı, bir TFJS uygulamasını dağıtmadan ilkin, fazlaca çeşitli cihazlarda kapsamlı performans testi yapılmalıdır.

Örnekler

Kullanmaya adım atmak için kendi resmi sitesindeki dökümanlar ve örnekler incelenebilir.

Bazı keyifli örnekler;

Emoji Scavenger Hunt (Google) — Emoji ile gösterilen nesneleri kameranızdan fotoğraflamanız ihtiyaç duyulan keyifli bir oyun.

Teachable Machine (Google) — bir sinir ağını tarayıcı üstünde eğiterek, çıktı olarak bir sese yada görüntüye bağlayabilirsiniz.

Emotion Extractor (Brendan Sudol) — çehre ifadelerinden duygu tanıyan ve bu duyguya karşılık emoji yerleştiren bir uygulama

Derin Öğrenme Uygulamalarının Tarayıcıda Çalıştırılması 3 – 1 nfUGBFLVN h6JuRgYYdQtQ1
Brendan Sudol’un çehre ifadelerinden duygu analizi – Resim kaynağı

Move Mirror (Google) — İnsan vücudunun iskeletini gerçek zamanlı olarak algılayan uygulama

Taş-Kağıt-Makas Oyunu (Yavuz Kömeçoğlu)— ilkin tarayıcı üstünde taş-kağıt-makas ‘a karşılık örneklerle eğitip ondan sonra oyunu başlatarak bilgisayara karşı hamlenizi yapmış olup oynayabilirsiniz.

Developer Summit 2019 etkinliğinde yapmış olduğum sunum dosyasına ve taş-kağıt-makas oyununun kaynak kodlarına erişebilirsiniz.


Derin Öğrenme Uygulamalarının Tarayıcıda Çalıştırılması 4 – 1 CMpORd1h1IqcsEiE58mt0A1
Taş-Kağıt-Makas Oyunu oyunu

Oyunlara ve uygulamalara ek olarak, TensorFlow.js, makine öğrenmede ve derin öğrenmede esas kavramları yada yeni şekilleri iletmek suretiyle etkileşimli öğretim araçları oluşturmak için kullanılabilir:

GAN Lab — Çekişmeli Üretici Ağlar’ı (GAN) daha iyi idrak etmek için geliştirilmiş interaktif bir uygulama.

GAN Showcase — Çekişmeli Üretici Ağlar’lar (GAN) ile çehre resimleri üreten bir uygulama.

Web için tSNE — Fazlaca boyutlu veri analizi için tSNE algoritmasının demosu.

Neural Network Playground: Yapay Sinir Ağları’nın yapısını idrak etmek için görselleştirilmiş fazlaca güzel bir uygulama.

TensorFlow.js’de daha da şaşırtıcı projeler görmek için bu galeriyi inceleyin!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir