Skip to main content

Görüntü Tespitinde FPGA ve Derin Öğrenme Kullanımı

Derin öğrenmenin 2012 yılından bu yana hızla yaygınlaşması ve görüntü tespitindeki doğruluk oranının artmasında GPU mimarisinin kullanılması büyük bir rol oynamaktadır (GPU mimarileri CPU mimarilerine göre daha fazla çekirdek barındırdığından paralel işlem bakımından üstünlük barındırmaktır).

Derin öğrenme için GPU kullanmak zorunda mıyız? şeklinde bir soru aklınıza gelebilir. Bu soruyu doğru cevaplamak için son dönemde üzerinde çalışılan alternatif çözümlere de bakmamız gerekiyor.

Altera Startix 10

Bu yazıda özellikle konuyla ilgili çalışma yapmak isteyenler için çeşitli makaleler paylaşılmıştır. FPGA platformları (FPGA Nedir?) GPU platformları kadar hızlı olmasa da enerji tüketimi dikkate alındığında tercih sebebi olabiliyorlar. Microsoft Open Cloud Server yapısında enerji tüketiminin GPU’lara göre dha az olması nedeniyle FPGA kullanmakta. Derin öğrenmenin bir eğitim bir de uygulama safhası dikkate alındığında, eğitim safhasında FPGA kullanmak işleri çıkmaza sokabilir. İşte bu nedenle Facebook hergün sisteme yüklenen 600 milyon fotografla anlamlı veri elde etmek için GPU yapısı kullanmaktadır.

Verisetinizi eğittikten sonra elde ettiğiniz modelinizi kullanmak için FPGA kullanmayı düşünebilirsiniz. Yazının devamında Altera’nın geliştirdiği FPGA kartı üzerinde yaptığı demo videolarını görebilirsiniz. Demolardan anladığım gerçek zamanlı tanımada FPGA ufakta olsa geçikme yaşıyor.

Güç tüketimi bakımından FPGA uygulamada tercih sebebi olacaksa bir de uygulama yazımı konusunu değerlendirmek gerekiyor. FPGA platformlarına kod yazan uzman sayısının az olduğu, nispetende zorluklar barındırdığı gözardı edilmemelidir.

Peki, güç tüketimi konusu değerlendirildiğinde GPU tabanlı alternatif bir çözüm yok mu? NVIDIA Jetson TX1 düşük güç tüketimi yanında sağlamış olduğu altyapı desteği sayesinde geliştiriciler için alışmış oldukları ortamı bırakmadan GPU mimarisinin sağlamış olduğu tüm olanakları gömülü donanım hızlandırmalı olarak kullanma imkanı sunuyor.

GPU dışındaki diğer yapılar:

Google, makine öğrenmesi ve TensorFlow için Tensor Processing Unit (TPU) yapısına sahip. Söz konusu işlemci Google’ın birçok ürününde hizmet vermeye başladı. Bu mimari özellikle düşük enerji tüketimi bakımından GPU’lara göre daha uygun gözüküyor.

Tensor Processing Unit board

IBM TrueNorth işlemcisi DARPA SyNAPSE Programı desteği ile geliştirilen ve 70 miliwatt enerji harcayarak saniyede 46 milyar sinaptik işlem yapabilen avuç içi süper bilgisayardır. Kıyaslama açısından bakarsak insan beyni 100 trilyon işlem için 20W harcarken varsayıma dayalı bir bilgisayarın bu kadar işlemi yapabilmesi için 12GW’a ihtiyaç duyulmaktadır. Daha fazla bilgi için http://www.research.ibm.com/articles/brain-chip.shtml adresine bakabilirsiniz.

TrueNorth Chip Core Array

Intel Altera FPGA‘yi bünyesine kattıktan sonra Altera derin öğrenme kullanımına yönelik çalışmalarına hız verdi. Aşağıdaki videolardan ve kaynaklardan detaylara ulaşabilirsiniz.

Convolution Neural Network CNN Implementation on Altera FPGA using OpenCL

FPGAs vs. GPGPUs

Machine Learning on FPGAs: Neural Networks

 

Object Detection and Recognition with Neural Networks

ALTERA ile obje tespiti ve tanıma yapılabiliyorsada gerçek zamanlı işlem geçikmesi sorun teşkil edebilir.

FPGA ile derin öğrenme kullanımına yönelik makaleler:

1. Accelerating Deep Convolutional Neural Networks Using Specialized Hardware

Accelerating Deep Convolutional Neural Networks U sing Specialized Hardware.pdf

2. Deep Learning on FPGAs: Past, Present, and Future

Deep Learning on FPGAs Past Present and Future1602.04283v1.pdf

3. CNNLab: a Novel Parallel Framework for Neural Networks using GPU and FPGA

CNNLab a Novel Parallel Framework for Neural Networks using GPU and FPGA-a Practical Study with Trade-off Analysis.pdf

Kaynaklar:

http://www.fpganedir.com

http://www.newelectronics.co.uk/electronics-technology/intels-programmable-systems-group-takes-its-first-step-towards-an-fpga-based-system-in-package-portfolio/142701/

OpenCL Caffe

https://www.quora.com/Is-implementing-deep-learning-on-FPGAs-a-natural-next-step-after-the-success-with-GPUs

https://www.tractica.com/automation-robotics/fpgas-challenge-gpus-as-a-platform-for-deep-learning

http://www.embedded-vision.com/industry-analysis/technical-articles/fpgas-deep-learning-based-vision-processing

https://www.altera.com/products/fpga/stratix-series/stratix-10/overview.html

https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/backgrounder/stratix10-floating-point-backgrounder.pdf

http://www.teradeep.com

https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html

http://fortune.com/2016/02/29/nervana-deep-learning/

http://www.techrepublic.com/article/ibms-brain-inspired-chip-truenorth-changes-how-computers-think-but-experts-question-its-purpose/

http://www.nextplatform.com/2016/06/21/knights-landing-solid-ground-intels-stake-deep-learning

http://www.nextplatform.com/2016/06/29/universal-fpga-gpu-platform-deep-learning

http://www.heig-vd.ch/docs/default-source/pdf-news-2014/thoma13fpga.pdf

Derin Öğrenme Yaz Okulu 2015

Derin Öğrenme Yaz Okulu Montreal/Kanada’da Ağustos 2015 ayında icra edildi. 10 günlük faaliyette derin öğrenmenin kullanım alanlarına yönelik konusunda uzman kişilerin katıldığı sunumlar ve otonom sistem demoları yapıldı. Aşağıda  günlük programlar halinde sunulan sunumları indirip inceleyebilirsiniz.

Gelecek yaz döneminde benzer bir faaliyeti ülkemizde yapma konusunda şimdiden  hazırlıklara başladık. Değerli katkılarınızı bekliyoruz.


1’inci Gün – 03 Ağustos 2015
Pascal Vincent: Intro to ML
Yoshua Bengio: Theoretical motivations for Representation Learning & Deep Learning
Leon Bottou: Intro to multi-layer nets

2’nci Gün – 04 Ağustos 2015
Hugo Larochelle: Neural nets and backprop
Leon Bottou: Numerical optimization and SGD, Structured problems & reasoning
Hugo Larochelle: Directed Graphical Models and NADE
Intro to Theano

3’üncü Gün – 05 Ağustos 2015
Aaron Courville: Intro to undirected graphical models
Honglak Lee: Stacks of RBMs
Pascal Vincent: Denoising and contractive auto-encoders, manifold view

4’üncü Gün – 06 Ağustos 2015
Roland Memisevic: Visual features
Honglak Lee: Convolutional networks
Graham Taylor: Learning similarit

5’inci Gün – 07 Ağustos 2015
Chris Manning: NLP 101
Graham Taylor: Modeling human motion, pose estimation and tracking
Chris Manning: NLP / Deep Learning

6’ncı Gün – 08 Ağustos 2015
Ruslan Salakhutdinov: Deep Boltzmann Machines
Adam Coates: Speech recognition with deep learning
Ruslan Salakhutdinov: Multi-modal models

7’nci Gün – 09 Ağustos 2015
Ian Goodfellow: Structure of optimization problems
Adam Coates: Systems issues and distributed training
Ian Goodfellow: Adversarial examples

8’inci Gün – 10 Ağustos 2015
Phil Blunsom: From language modeling to machine translation
Richard Socher: Recurrent neural networks
Phil Blunsom: Memory, Reading, and Comprehension

9’uncu Gün – 11 Ağustos 2015
Richard Socher: DMN for NLP
Mark Schmidt: Smooth, Finite, and Convex Optimization
Roland Memisevic: Visual Features II

10’uncu Gün – 12 Ağustos 2015
Mark Schmidt: Non-Smooth, Non-Finite, and Non-Convex Optimization
Aaron Courville: VAEs and deep generative models for vision
Yoshua Bengio: Generative models from auto-encoder

Tüm sunumları indirmek için tıklayınız.

Kaynaklar:

https://stanfordsailors.wordpress.com

https://sites.google.com/site/deeplearningsummerschool