Federe Öğrenme (Yapay Zekâ ve Mahremiyet)

Mehmet Ali SARIKAYA
Bankalararası Kart Merkezi
8 min readNov 14, 2019

Son yıllarda yapay zekâ, makine öğrenmesi ve derin öğrenme gibi alanlarda çok büyük atılımlar meydana gelmiştir [1]. Bu atılımların temelinde büyük verinin ortaya çıkması yatmaktadır. Görüntü tanıma sistemleri en yüksek performansa ulaşmak için on milyonlarca eğitim görüntüsüne ihtiyaç duyar. Sadece görüntü işleme için değil aynı zamanda konuşma tanıma sistemleri, sohbet robotları, büyük öneri ve tahmin sistemleri için de aynı durum geçerlidir.

Yapay zekâ uygulamalarının veri toplama ihtiyacı, kullanıcıların mahremiyetine aykırı durumlara sebebiyet verebilmektedir. Örneğin bir sonraki kelimeyi öneren bir akıllı klavye uygulaması, bireylerin kişisel yazışmalarına ihtiyaç duymakta ve yazışmalardaki kelimelerin ardışıllığına göre öneri sunmaktadır. Bu tarz uygulamaların geliştirilmesi için bütün verileri sunucuya göndermek iyi bir fikir değildir. Çünkü veriler şahıslara özeldir ve kullanıcılar yazdıkları her şeyi bir sunucuda tutmak istememektedir.

Kişisel verilerin mahremiyetinin korunması için iki olası yöntem vardır. Bunlardan ilki Diferansiyel Mahremiyettir (Differential Privacy). Bu yöntemde verilere matematiksel gürültü ekleme yoluna gidilir. Diğer yöntem ise Federe Öğrenmedir (Federated Learning). Bu yaklaşım ise eğitim verilerinin kullanıcıların bilgisayarından hiç çıkmadığı bir makine öğrenmesi biçimidir. Kullanıcılar, verilerini paylaşmak yerine, yerel olarak mevcut olan verilerini kullanarak modelin ağırlıklarını günceller. Her bir kullanıcı tarafından eğitilen model ağırlıkları birleştirilerek sunucuda nihai modelin ağırlıkları belirlenir. Bu yazımızda Federe Öğrenme yöntemini ve kullanım alanlarını inceleyeceğiz.

Federe Öğrenmenin Ortaya Çıkışındaki Motivasyon

Örneğin, A Bankasında kart kullanıcılarının verileri; B Market zincirinde ise kullanıcının aldığı ürün özellikleri ve etiket verileri bulunsun. Mevcut durumda bu iki kuruluş, her iki tarafın verilerini bir araya getiremez. Ayrıca AB Genel Veri Koruma Regülasyonu (GDPR) çerçevesinde şayet bir kullanıcı, verilerinin sisteminizde kullanılmasını istemezse o kullanıcıya ait verileri sisteminizden kazımanız ve bunu gerçekten yaptığınıza dair bir sertifika vermeniz gerekir. Her bir kuruluşa ait bir sınıflandırma veya tahmin modeli olduğunu varsayalım. Şimdi burada sorun, hem A hem de B için daha kaliteli modellerin nasıl oluşturulacağıdır. Ancak mevcut durumda veriler eksik (örneğin A bankası, ürün verilerinden yoksun ve B Marketi kullanıcı özellikleri verilerinden yoksun) veya veri miktarı yetersiz olduğundan her iki uçtaki modeller oluşturulamayabilir veya sonuçlar tatmin edici olmayabilir. Federe öğrenmenin amacı bu problemi çözmektir: her bir organizasyonun bireysel verileri yerel ortamlarında kalırken, organizasyonlar arasında bir model oluşturmayı amaçlar ve model parametreleri bir federe sistemdeki şifreleme mekanizması altında değiştirilir. Kısaca veri gizliliği yönetmeliklerini ihlal etmeden paylaşılan model oluşturulur. Bu modelin tüm verileri bir araya getirerek oluşturulan modellere yakın performansa sahip olması amaçlanmaktadır. Ancak bu model oluşturulurken veriler hareket etmez, gizlilik korunur. Federe sistemde, her katılımcının kimliği ve statüsü aynıdır ve “ortak servet” stratejisi ile hareket edilir, bu nedenle bu sisteme “federe öğrenme” denir. Bu örnek, federe öğrenmenin temel mantığını ortaya koymaktadır.

Federe Öğrenme

Federe Öğrenme, eğitim sürecinin birçok kullanıcı arasında dağıtıldığı işbirlikçi bir makine öğrenme şeklidir. Bir sunucu koordine etme rolüne sahiptir, her kullanıcı kendi verisiyle ilgili işlemleri gerçekleştirir. Her kullanıcı tarafından oluşturulan model ağırlıkları sunucuya aktarılır. Sunucu nihai modeli oluştururken kullanıcı ağırlıklarından yararlanır.

Federe Öğrenmenin Temel Görünümü

Federe Öğrenme Modeli Oluşturulması

Federe Öğrenmede Model Oluşturma

Şekilde görüldüğü gibi model üretimi 5 aşamadan oluşmaktadır. Sunucu tarafından model eğitimi için kullanıcılar belirlenir. Kullanıcı belirleme işlemi için kullanıcıların erişilebilirliğine ve model eğitimi için onay verip vermemesine göre seçim yapılır. Şayet başlangıçta eğitilmiş bir model varsa bu modelin ağırlıkları ve parametreleri kullanıcılar ile paylaşılır. Her kullanıcı kendi verisi ile yerel modeli günceller ve güncellenmiş ağırlıkları sunucuya gönderir. Sunucu elde ettikleri ağırlıkların ortalamasını alarak nihai modeli oluşturur. Türev almaya dayanan geri besleme (backward) içeren modellerin güncellenmesinde ortalama almak yerine dereceli alçalma (gradient descent) yöntemi kullanılır. Bu tür modeller için kullanıcıların yerel modellerinde stokastik dereceli alçalma (stochastic gradient descent) metodundan yararlanılır [2]. Kaç kullanıcı seçileceği, kaç kez bu işlemlerin tekrarlanacağı, her turda modelin eğitim parametrelerinin neler olacağı birer araştırma konusudur.

Federe Öğrenmenin Türleri

Federe Öğrenme, farklı senaryodaki problemleri çözmek için 3 farklı türde ele alınır. Bunlar Yatay Federe Öğrenme, Dikey Federe Öğrenme ve Federe Transfer Öğrenmedir.

Yatay Federe Öğrenmede iki veri seti aynı özniteliklere sahiptir ancak veri örnekleri farklıdır. Örneğin, iki bankanın çok farklı kullanıcı grupları olabilir ve bu nedenle kullanıcıların kesişimi çok küçüktür. Ancak, yapılan işler ve dolayısıyla öznitelikler çok benzerdir. Bu durumda yatay bir federe öğrenme modeli oluşturulabilir.

Dikey Federe Öğrenme, iki veri setinin aynı kullanıcılara ait olduğu ancak özniteliklerinin farklı olduğu durumlarda gerekir. Örneğin, bir ilçede alışveriş yapan insanlara ait veriler için bir banka bir de e-ticaret şirketi düşünün. Banka, kullanıcıların gelir ve kredi notunu bilgisine; e-ticaret firması ise kullanıcının satın alma geçmişine sahiptir. Bu nedenle kullanıcı öznitelikleri farklılık arz etmektedir. Dikey Federe Öğrenme, veri gizliliğini koruyarak bu farklı özniteliklerin şifrelenmiş bir biçimde toplanmasını ve her iki yerel modelin birlikte ana modeli oluşturmasını sağlayan hesaplama sürecidir. Günümüzde makine öğrenme modellerinin bu federe sisteme dâhil olabileceği kanıtlanmıştır.

Federe Transfer Öğrenimi, iki veri setinin hem farklı kullanıcılara hem de farklı özniteliklere sahip olduğu senaryolar için geçerlidir. Bu durumun üstesinden gelmek için transfer öğrenimi teknikleri uygulanabilir. Hem lokasyon farklılığı hem de sektör farklılığı söz konusu olan birleşmeler buna örnek gösterilebilir. Coğrafi farklılık nedeniyle iki şirketin kullanıcı grupları küçük bir kesişime sahiptir. Öte yandan farklı sektörde olmaları nedeniyle, iki şirketin verilerindeki özniteliklerinin yalnızca küçük bir kısmı örtüşmektedir. Bu durumda, etkili bir federe öğrenme gerçekleştirmek için transfer öğrenme ile modelin performansını artırmak gerekir [3].

Federe Öğrenme Uygulamaları

İlk örnek uygulama, Google tarafından yayınlanan federe öğrenme hakkındaki blog gönderisinde yer alan ve şu an Android cihazlarda kullanılan bir uygulamadır (kişisel metin öneri sistemi) [4]. Muhtemelen kimse kişisel metin geçmişini Google’a göndermek istemez. Federe öğrenme sayesinde mobil cihazdaki metin tahminini, mahremiyeti koruyarak ve bu verileri taşıma yüküne katlanmadan yapabilirsiniz [5].

Başka bir güzel kullanım örneği ise Firefox tarayıcısının internet sayfası sıralama algoritmasıdır [6]. Tüm tarama geçmişinizi Firefox ile paylaşmadan size gösterilen internet sayfalarının sıralanması için ilgili model bilgisayarınızda yerel olarak eğitilir ve daha sonra bu model ağırlıkları daha iyi bir genel modeli geliştirmek için kullanılır.

Federe öğrenme uygulamalarından bir diğeri ise sesli asistanı uyandırma sözcüğü (wakeword) tespitidir [7]. Bu sözcük kişiden kişiye değişir ve iyi bir model eğitmek zordur. Ayrıca uygulamanın sürekli bizi kaydetmesini de istemeyiz. Bütün bu problemler için federe öğrenme bir çözüm sunmaktadır.

Federe Öğrenmenin Zorlukları

Federe Öğrenme teoride harika görünse de bazı uygulama zorlukları söz konusudur. Bu zorluklardan ilki iş akışlarıdır. Klasik makine öğrenmesi süreçlerinden farklı bir iş akışı oluşturmak gerekir. Çünkü hangi mimariyi kullanmam gerekiyor, kayıp değeri nedir, neyi ölçeceğim, hangi iyileştiriciyi kullanmalıyım, hiper parametreler var mı, tam olarak neyi inşa etmek gerekir gibi sorular federe öğrenmede karşılık bulunamayabilir. Bu tarz problemlerin çözümü için bir ara katmana ihtiyaç duyulmaktadır. Böyle bir ara katman tanımlayarak federe sistemlerin karmaşıklığını azaltmak gerekmektedir.

Diğer bir zorluk ise federe sistemin koordine edilmesidir. Sunucular, federe sistemi koordine etmekle görevlidir. Ağda hangi cihazlar var, bunlardan hangileri şu an sisteme dâhil olmayı kabul edilecek, hangileri reddedecek, hangi komutlar gönderilecek gibi işler sunucuyu yoracak işlerdir. Ayrıca federe sisteme dahil olan yerel modellerin eğitilip toplanması ve sunucudaki modelin oluşturulmasının da bu koordinasyonun bir parçası olması gerektiğini söylemek mümkündür.

Model oluştururken iyi bir hipotez kurulması karşılaşılan sorunlardandır. Çünkü verilere bakmadan öznitelikleri ve dağılımları anlamanız mümkün değildir ve sunucuya verileri getirmemeniz gerekir. Bu nedenle kullanmak istediğiniz algoritma için bir hipotez oluşturulması ve bu hipotezin öncelikle halka açık verilerle test edilmesi gerekir. Burada problem bilimsel yaklaşım gibi ele alınmalıdır. Sistemin oluşturulan algoritma ile neler yapacağı hakkında bir tahmin yapılmalı ve daha sonra geri dönüşler gözlemlenerek sonuçlar karşılaştırılmalıdır.

Kullanıcıdan gelen ağırlıklardan kişisel bir bilginin açığa çıkarılabilir olması da bir sorun teşkil eder. Bir kullanıcıya ait yerel modelin ağırlıkları tersine mühendislikle kişisel veriyi açığa çıkarmada kullanılabilir [8]. Bunu engellemenin yollarından birisi, bireysel cihazlardan gelen model ağırlıklarını anahtarlarla şifrelemek ve güvenli bir birleştirme işlemi sonrası tekil kullanıcıya ait olmayan ortalamaları elde etmektir [9]. Yani bir grup yerel model ağırlıklarının toplamlarını veya ortalamalarını görebiliriz. Dolayısıyla sadece genel istatistik elde edilir ve bireye ait veriler bulunamaz. Az sayıda kullanıcı varsa kişisel verinin bulunamayacağı garanti değildir ancak katılımcı sayısı arttıkça sunucudaki model bireye daha az duyarlı hale gelecektir.

Federe Öğrenmede Ağırlıkların Şifrelenmesi

Blokzincir ve Federe Öğrenme

Federe Öğrenme sayesinde veri ittifakının oluşturulması ve yeni iş birliklerinin hayata geçirilmesi sağlanacaktır. Şirketler ve kuruluşlar ittifaka katılmaya teşvik edilmeli ve ittifak açık bir teşvik mekanizmasına sahip olmalıdır. İttifaktaki üyeler, bu birlikteliğin çıkarlardan yararlanmalı ve sorumluluklarını yerine getirmelidir. İttifakı oluşturmak, her bir üyenin katkısını kaydetmek ve büyük katkı sağlayanlara büyük ödül vermek için blokzincir kullanılabilir. Mutabakat ve teknik destek ile birçok pazarda endüstriyel veri ittifakı oluşturabiliriz. Örneğin; finansal endüstri için finansal veri ittifakı, sağlık sektörü için tıbbi veri ittifakı oluşturulabilir.

Somut bir örnek ile bu kısmı açalım. Örneğin Amerika’daki büyük veri sahibi bir kanser araştırma merkezi ile Türkiye’deki yeni kurulmuş bir kanser araştırma merkezini düşünelim. Bunları Federe Öğrenme ve Blokzincir ile işbirliğine dahil edelim; bu sayede Türkiye’deki insanlar kanser testlerini başarılı bir şekilde yaptırabilecekler ve verileri Türkiye’de kalacak. Ayrıca Amerika’daki kanser merkezi, verilerini paylaşmadan sisteme dahil olacak ve federe sisteme yaptığı büyük katkı sebebiyle Türkiye’deki bu testin gelirinin büyük kısmına sahip olacak. Hangi üyenin ne oranda gelir elde edeceği ise yine blokzincir ile kayıt altına alınacak.

Federe Öğrenme — Blokzincir Örneği

Diğer bir somut örneği hukuk sisteminden vermek mümkündür. Küreselleşme ile birlikte suçlar ve suça ilişkin veriler de yerel olmaktan çıktı. Bu nedenle farklı ülkedeki delillerin değerlendirilmesi gerekmektedir. Bütün ülkedeki hukuksal modellerin federe sisteme dahil edildiği bir yapı sayesinde süreçler çok kısalacaktır. Yine her kurum, veri ittifakına olan katkısı oranınca sistemden pay alacaktır. Yine bu yapı güvenli bir şekilde federe öğrenme — blokzincir ikilisi sayesinde ortaya koyulabilecektir.

Referanslar

[1] LeCun, Y., Bengio, Y. and Hinton, G., 2015. Deep learning. nature, 521(7553), p.436.

[2] McMahan, H.B., Moore, E., Ramage, D. and Hampson, S., 2016. Communication-efficient learning of deep networks from decentralized data. arXiv preprint arXiv:1602.05629.

[3] Pan, Sinno Jialin, and Qiang Yang. “A survey on transfer learning.” IEEE Transactions on knowledge and data engineering 22.10 (2009): 1345–1359.

[4] https://ai.googleblog.com/2017/04/federated-learning-collaborative.html

[5] Yang, Timothy, et al. “Applied federated learning: Improving google keyboard query suggestions.” arXiv preprint arXiv:1812.02903 (2018).

[6] https://florian.github.io/federated-learning-firefox/

[7] https://medium.com/snips-ai/federated-learning-for-wake-word-detection-c8b8c5cdd2c5

[8] Fredrikson, M., Jha, S. and Ristenpart, T., 2015, October. Model inversion attacks that exploit confidence information and basic countermeasures. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (pp. 1322–1333). ACM

[9] Bonawitz, K., Ivanov, V., Kreuter, B., Marcedone, A., McMahan, H.B., Patel, S., Ramage, D., Segal, A. and Seth, K., 2017, October. Practical Secure Aggregation for Privacy-Preserving Machine Learning. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (pp. 1175–1191). ACM.

--

--