Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Yakın zamanda piyasaya sürüldü makaleBu, son yıllarda makine öğreniminde iyi bir eğilim olduğunu gösteriyor. Kısacası, makine öğrenimi girişimlerinin sayısı son iki yılda azaldı.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?
Kuyu. İlk etapta “balon patladı mı”, “yaşamaya nasıl devam edilir”e bakalım ve bu dalgalı çizginin nereden geldiğinden bahsedelim.

Öncelikle bu eğriyi güçlendiren şeyin ne olduğundan bahsedelim. Nereden geldi? Muhtemelen her şeyi hatırlayacaklar zafer 2012 yılında ImageNet yarışmasında makine öğrenimi. Sonuçta bu ilk küresel etkinlik! Ancak gerçekte durum böyle değil. Ve eğrinin büyümesi biraz daha erken başlıyor. Bunu birkaç noktaya ayıracağım.

  1. 2008 yılı “büyük veri” teriminin ortaya çıkışına tanık oldu. Gerçek ürünler başladı görünmek 2010'dan beri. Büyük veri doğrudan makine öğrenmesiyle ilgilidir. Büyük veri olmadan o dönemde var olan algoritmaların kararlı çalışması mümkün değildir. Ve bunlar sinir ağları değil. 2012 yılına kadar sinir ağları marjinal bir azınlığın koruması altındaydı. Ancak daha sonra yıllardır, hatta on yıllardır var olan tamamen farklı algoritmalar çalışmaya başladı: SVM(1963,1993), Rastgele Orman (1995) AdaBoost (2003),... O yılların start-up'ları öncelikle yapılandırılmış verilerin otomatik olarak işlenmesiyle ilişkilidir: yazar kasalar, kullanıcılar, reklamlar, çok daha fazlası.

    Bu ilk dalganın bir türevi, XGBoost, CatBoost, LightGBM vb. gibi bir dizi çerçevedir.

  2. 2011-2012'de evrişimli sinir ağları çok sayıda görüntü tanıma yarışmasını kazandı. Gerçek kullanımları biraz gecikti. 2014 yılında çok anlamlı girişimler ve çözümler ortaya çıkmaya başladı diyebilirim. Nöronların hala çalıştığını sindirmek, makul bir sürede kurulup başlatılabilecek uygun çerçeveler oluşturmak, yakınsama süresini stabilize edecek ve hızlandıracak yöntemler geliştirmek iki yıl sürdü.

    Evrişimli ağlar, bilgisayarlı görme problemlerini çözmeyi mümkün kıldı: görüntüdeki görüntülerin ve nesnelerin sınıflandırılması, nesne tespiti, nesnelerin ve insanların tanınması, görüntünün iyileştirilmesi vb.

  3. 2015-2017. Tekrarlanan ağlara veya bunların analoglarına (LSTM, GRU, TransformerNet, vb.) dayalı algoritmaların ve projelerin patlaması. İyi işleyen konuşmayı metne dönüştürme algoritmaları ve makine çeviri sistemleri ortaya çıktı. Temel özellikleri çıkarmak için kısmen evrişimli ağlara dayanıyorlar. Bu kısmen gerçekten büyük ve iyi veri kümeleri toplamayı öğrenmiş olmamızdan kaynaklanmaktadır.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

"Balon patladı mı? Heyecan aşırı mı ısındı? Blockchain olarak mı öldüler?”
Aksi takdirde! Yarın Siri telefonunuzda çalışmayı bırakacak ve yarından sonraki gün Tesla dönüş ile kanguru arasındaki farkı bilemeyecek.

Sinir ağları zaten çalışıyor. Onlarca cihazda varlar. Gerçekten para kazanmanıza, piyasayı ve etrafınızdaki dünyayı değiştirmenize izin veriyorlar. Hype biraz farklı görünüyor:

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Sadece sinir ağları artık yeni bir şey değil. Evet, birçok insanın beklentileri yüksek. Ancak çok sayıda şirket nöronları kullanmayı ve onlara dayalı ürünler yapmayı öğrendi. Nöronlar yeni işlevler sağlar, işleri azaltmanıza ve hizmetlerin fiyatlarını düşürmenize olanak tanır:

  • İmalat şirketleri üretim hattındaki kusurları analiz etmek için algoritmalar entegre ediyor.
  • Hayvancılık çiftlikleri inekleri kontrol etmek için sistemler satın alıyor.
  • Otomatik birleştirir.
  • Otomatik Çağrı Merkezleri.
  • SnapChat'teki filtreler. (en azından faydalı bir şey!)

Ama en önemlisi ve en bariz olanı değil: "Artık yeni fikir yok, yoksa anında sermaye getirmeyecekler." Sinir ağları onlarca sorunu çözdü. Ve daha da fazlasına karar verecekler. Var olan tüm bariz fikirler birçok yeni girişime yol açtı. Ancak yüzeydeki her şey zaten toplanmıştı. Geçtiğimiz iki yılda sinir ağlarının kullanımına ilişkin tek bir yeni fikirle karşılaşmadım. Tek bir yeni yaklaşım bile yok (pekala, GAN'larla ilgili birkaç sorun var).

Ve sonraki her başlangıç ​​giderek daha karmaşık hale geliyor. Artık açık verileri kullanarak bir nöronu eğiten iki kişiye gerek yok. Programcılar, bir sunucu, bir işaretleyici ekibi, karmaşık destek vb. gerektirir.

Sonuç olarak, daha az startup var. Ama daha fazla üretim var. Plaka tanımayı eklemeniz mi gerekiyor? Piyasada ilgili deneyime sahip yüzlerce uzman var. Birini işe alabilirsiniz ve birkaç ay içinde çalışanınız sistemi oluşturacaktır. Veya hazır satın alın. Peki yeni bir girişim mi yapıyorsunuz?.. Çılgın!

Bir ziyaretçi takip sistemi oluşturmanız gerekiyor; 3-4 ay içinde kendi lisansınızı oluşturabilecekken neden bir sürü lisansa para ödeyesiniz ki, onu işletmeniz için geliştirin.

Artık sinir ağları da düzinelerce başka teknolojinin geçtiği yoldan gidiyor.

1995'ten bu yana “web sitesi geliştiricisi” kavramının nasıl değiştiğini hatırlıyor musunuz? Pazar henüz uzmanlara doymuş değil. Çok az profesyonel var. Ancak 5-10 yıl içinde bir Java programcısı ile bir sinir ağı geliştiricisi arasında pek bir fark olmayacağına bahse girebilirim. Piyasada her iki uzmandan da yeterli olacak.

Nöronlar tarafından çözülebilecek bir dizi sorun olacaktır. Bir görev ortaya çıktı - bir uzman işe alın.

"Sıradaki ne? Vaat edilen yapay zeka nerede?”

Ancak burada küçük ama ilginç bir yanlış anlaşılma var :)

Görünüşe göre bugün var olan teknoloji yığını bizi yapay zekaya götürmeyecek. Fikirler ve onların yenilikleri büyük ölçüde tükendi. Gelin mevcut gelişme düzeyini neyin koruduğu hakkında konuşalım.

Kısıtlamalar

Sürücüsüz arabalarla başlayalım. Günümüz teknolojisiyle tamamen otonom otomobiller yapmanın mümkün olduğu açık görünüyor. Ancak bunun kaç yıl içinde olacağı belli değil. Tesla bunun birkaç yıl içinde gerçekleşeceğine inanıyor.


Başkaları da var Uzmanları5-10 yıl olacağını tahmin edenler.

Bana göre büyük olasılıkla 15 yıl içinde şehirlerin altyapısı öyle değişecek ki otonom arabaların ortaya çıkışı kaçınılmaz hale gelecek ve onun devamı olacak. Ancak bu zeka olarak kabul edilemez. Modern Tesla, veri filtreleme, arama ve yeniden eğitim için çok karmaşık bir işlem hattıdır. Bunlar kurallar-kurallar-kurallar, veri toplama ve bunların üzerindeki filtrelerdir (burada burada Bunun hakkında biraz daha yazdım veya şuradan izledim: bu işaretler).

İlk problem

Ve işte burada görüyoruz ilk temel sorun. Büyük veri. Mevcut sinir ağları ve makine öğrenimi dalgasını doğuran şey tam olarak budur. Günümüzde karmaşık ve otomatik bir şey yapmak için çok fazla veriye ihtiyacınız var. Sadece çok değil, çok ama çok fazla. Bunların toplanması, işaretlenmesi ve kullanılması için otomatikleştirilmiş algoritmalara ihtiyacımız var. Arabanın güneşe bakan kamyonları görmesini istiyoruz - öncelikle yeterli sayıda kamyon toplamalıyız. Bagaja cıvatalanmış bir bisikletle arabanın çıldırmamasını istiyoruz - daha fazla örnek.

Üstelik tek bir örnek yeterli değil. Yüzlerce mi? Binlerce mi?

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

İkinci sorun

İkinci sorun — sinir ağımızın anladığının görselleştirilmesi. Bu çok önemsiz bir görev. Şimdiye kadar çok az kişi bunu nasıl görselleştireceğini anlıyor. Bu yazılar çok yeni, bunlar uzak da olsa sadece birkaç örnek:
Görüntüleme dokulara olan tutku. Nöronun neye odaklanma eğiliminde olduğunu + başlangıç ​​bilgisi olarak neyi algıladığını iyi gösterir.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?
Görüntüleme Dikkat çeviriler. Aslına bakılırsa, çekim genellikle böyle bir ağ tepkisine neyin sebep olduğunu göstermek için tam olarak kullanılabilir. Hem hata ayıklama hem de ürün çözümleri için böyle şeyler gördüm. Bu konuyla ilgili pek çok makale var. Ancak veriler ne kadar karmaşık olursa, sağlam görselleştirmenin nasıl elde edileceğini anlamak da o kadar zor olur.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Evet, eski güzel "bakın ağın içinde ne var" dizisi filtreler" Bu resimler 3-4 yıl önce popülerdi ama resimlerin güzel olduğunu hemen herkes anladı ama pek bir anlamı yoktu.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Ağın içinin nasıl görüntüleneceğine dair onlarca başka gadget'tan, yöntemden, hack'ten, araştırmadan bahsetmedim. Bu araçlar işe yarıyor mu? Sorunun ne olduğunu hızlıca anlamanıza ve ağda hata ayıklamanıza yardımcı oluyorlar mı?.. Son yüzdeyi aldınız mı? Eh, hemen hemen aynı:

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Kaggle'da herhangi bir yarışmayı izleyebilirsiniz. Ve insanların nihai kararları nasıl verdiklerinin bir açıklaması. 100-500-800 adet modeli istifledik ve işe yaradı!

Abartıyorum elbette. Ancak bu yaklaşımlar hızlı ve doğrudan yanıtlar sağlamamaktadır.

Yeterli deneyime sahip olarak, farklı seçenekleri araştırarak sisteminizin neden böyle bir karar verdiğine dair bir karar verebilirsiniz. Ancak sistemin davranışını düzeltmek zor olacaktır. Bir koltuk değneği takın, eşiği hareket ettirin, bir veri kümesi ekleyin, başka bir arka uç ağı alın.

Üçüncü problem

Üçüncü Temel Sorun — ızgaralar mantığı değil istatistikleri öğretir. İstatistiksel olarak bu yüz:

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Mantıksal olarak pek benzemiyor. Sinir ağları, zorlanmadıkça karmaşık hiçbir şeyi öğrenemez. Daima mümkün olan en basit işaretleri öğretiyorlar. Gözlerin, burnun, kafan var mı? Demek yüz bu! Veya gözlerin yüz anlamına gelmediği bir örnek verin. Ve yine milyonlarca örnek.

Altta Çok Yer Var

Şu anda sinir ağlarının ve makine öğreniminin gelişimini sınırlayan şeyin bu üç küresel sorun olduğunu söyleyebilirim. Ve bu sorunların onu sınırlamadığı yerlerde zaten aktif olarak kullanılıyor.

Bu son? Sinir ağları çalışıyor mu?

Bilinmeyen. Ama tabii ki herkes öyle olmayacağını umuyor.

Yukarıda altını çizdiğim temel sorunların çözümüne yönelik pek çok yaklaşım ve yön var. Ancak şu ana kadar bu yaklaşımların hiçbiri temelde yeni bir şey yapmayı, henüz çözülmemiş bir şeyi çözmeyi mümkün kılmadı. Şu ana kadar tüm temel projeler istikrarlı yaklaşımlar (Tesla) temelinde yapılıyor veya enstitülerin veya şirketlerin test projeleri olarak kalıyor (Google Brain, OpenAI).

Kabaca söylemek gerekirse, ana yön, giriş verilerinin bazı üst düzey temsillerini oluşturmaktır. Bir anlamda “hafıza”. Belleğin en basit örneği çeşitli “Gömme” - görüntü gösterimleridir. Mesela tüm yüz tanıma sistemleri. Ağ, bir yüzden dönmeye, ışığa veya çözünürlüğe bağlı olmayan sabit bir temsil elde etmeyi öğrenir. Temel olarak ağ, "farklı yüzler uzaktır" ve "aynı yüzler yakındır" ölçütünü en aza indirir.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Böyle bir eğitim için onlarca, yüzbinlerce örneğe ihtiyaç vardır. Ancak sonuç “Tek Seferde Öğrenmenin” bazı temellerini taşıyor. Artık bir kişiyi hatırlamak için yüzlerce yüze ihtiyacımız yok. Sadece bir yüz ve biz bu kadarız Hadi bulalım!
Tek bir sorun var... Izgara yalnızca oldukça basit nesneleri öğrenebilir. Yüzleri değil, örneğin “insanları kıyafetlere göre” ayırt etmeye çalışırken (görev Yeniden tanımlama) - kalite birçok büyüklük düzeyinde düşer. Ve ağ artık açılardaki oldukça belirgin değişiklikleri öğrenemiyor.

Milyonlarca örnekten ders çıkarmak da oldukça eğlenceli.

Seçimlerin önemli ölçüde azaltılmasına yönelik çalışmalar var. Örneğin, ilk çalışmalardan birini hemen hatırlayabilirsiniz. Tek Çekimde Öğrenme Google'dan:

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Bunun gibi pek çok eser var mesela 1 veya 2 veya 3.

Yalnızca bir eksi var - genellikle eğitim bazı basit "MNIST" örnekleri üzerinde iyi sonuç verir. Karmaşık görevlere geçerken büyük bir veritabanına, nesne modeline veya bir çeşit sihre ihtiyacınız var.
Genel olarak One-Shot eğitimi üzerinde çalışmak çok ilginç bir konudur. Bir sürü fikir buluyorsun. Ancak çoğunlukla, listelediğim iki sorun (devasa bir veri kümesi üzerinde ön eğitim / karmaşık veriler üzerindeki istikrarsızlık) öğrenmeye büyük ölçüde engel oluyor.

Öte yandan, GAN'lar (üretken rakip ağlar) Yerleştirme konusuna yaklaşıyor. Muhtemelen Habré hakkında bu konuyla ilgili birçok makale okumuşsunuzdur. (1, 2,3)
GAN'ın bir özelliği, bir görüntü çizmenize olanak tanıyan bazı dahili durum alanlarının (esasen aynı Gömme) oluşmasıdır. Olabilir лица, olabilir etkinlik.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

GAN'ın sorunu, üretilen nesne ne kadar karmaşıksa onu "üretici-ayırıcı" mantığıyla tanımlamanın da o kadar zor olmasıdır. Sonuç olarak, GAN'ın duyulan tek gerçek uygulaması, yine yüz temsillerini değiştiren (bunun için çok büyük bir tabana sahip) DeepFake'tir.

Çok az başka yararlı kullanım gördüm. Genellikle resimlerin çizimlerini bitirmeyi içeren bir tür hiledir.

Ve yeniden. Bunun daha parlak bir geleceğe nasıl adım atmamızı sağlayacağına dair kimsenin fikri yok. Bir sinir ağında mantığı/uzayı temsil etmek iyidir. Ancak çok sayıda örneğe ihtiyacımız var, nöronun bunu kendi içinde nasıl temsil ettiğini anlamıyoruz, nöronun gerçekten karmaşık bir fikri nasıl hatırlamasını sağlayacağımızı anlamıyoruz.

Takviye öğrenimi - bu tamamen farklı bir yönden bir yaklaşımdır. Elbette Google'ın Go'daki herkesi nasıl yendiğini hatırlıyorsunuzdur. Starcraft ve Dota'daki son zaferler. Ancak burada her şey o kadar pembe ve umut verici olmaktan uzak. RL ve karmaşıklıkları hakkında en iyi o konuşuyor bu makale.

Yazarın yazdıklarını kısaca özetlemek gerekirse:

  • Kutudan çıkan modeller çoğu durumda uymuyor / kötü çalışıyor
  • Pratik problemlerin başka yollarla çözülmesi daha kolaydır. Boston Dynamics, karmaşıklığı/öngörülemezliği/hesaplama karmaşıklığı nedeniyle RL'yi kullanmaz
  • RL'nin çalışması için karmaşık bir fonksiyona ihtiyacınız var. Oluşturmak/yazmak genellikle zordur
  • Modelleri eğitmek zordur. Enerjinizi artırmak ve yerel optimumdan çıkmak için çok zaman harcamanız gerekiyor
  • Sonuç olarak modeli tekrarlamak zordur, model en ufak değişikliklerle kararsız hale gelir.
  • Çoğu zaman bazı rastgele kalıplara, hatta rastgele sayı üretecine bile fazla uyum sağlar

Kilit nokta, RL'nin henüz üretimde çalışmamasıdır. Google'ın bazı deneyleri var ( 1, 2 ). Ama tek bir ürün sistemi göremedim.

Bellek. Yukarıda açıklanan her şeyin dezavantajı yapı eksikliğidir. Tüm bunları toparlamaya yönelik yaklaşımlardan biri de sinir ağına ayrı belleğe erişim sağlamaktır. Böylece attığı adımların sonuçlarını oraya kaydedebilir ve yeniden yazabilir. Daha sonra sinir ağı mevcut hafıza durumuna göre belirlenebilir. Bu, klasik işlemcilere ve bilgisayarlara çok benzer.

En ünlü ve popüler makale — DeepMind'dan:

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Görünüşe göre zekayı anlamanın anahtarı bu mu? Ama muhtemelen hayır. Sistem eğitim için hala büyük miktarda veriye ihtiyaç duyuyor. Ve esas olarak yapılandırılmış tablosal verilerle çalışır. Üstelik ne zaman Facebook çözülmüş Benzer bir sorunla karşılaştıklarında, "belleği yok edin, nöronu daha karmaşık hale getirin ve daha fazla örneğe sahip olun, böylece kendi kendine öğrenecektir" yolunu izlediler.

çözme. Anlamlı bir anı yaratmanın başka bir yolu da aynı yerleştirmeleri almaktır, ancak eğitim sırasında bunlardaki "anlamları" vurgulamanıza olanak sağlayacak ek kriterler ekleyin. Örneğin, bir mağazadaki insan davranışlarını ayırt etmek için bir sinir ağını eğitmek istiyoruz. Eğer standart yolu izleseydik bir düzine ağ oluşturmamız gerekecekti. Biri kişiyi arıyor, ikincisi onun ne yaptığını belirliyor, üçüncüsü yaşı, dördüncüsü cinsiyeti. Ayrı mantık, mağazanın bunu yaptığı/eğitildiği kısmına bakar. Üçüncüsü yörüngesini vb. belirler.

Veya sonsuz miktarda veri olsaydı, o zaman bir ağı tüm olası sonuçlar için eğitmek mümkün olurdu (tabii ki bu kadar veri dizisi toplanamaz).

Çözme yaklaşımı bize şunu söylüyor: Ağı, kavramlar arasında ayrım yapabilecek şekilde eğitelim. Öyle ki videoya dayalı bir yerleştirme oluşturacak, bir alan eylemi belirleyecek, zaman içinde yerdeki konumu belirlenecek, kişinin boyu belirlenecek, cinsiyeti belirlenecek. Aynı zamanda, eğitim sırasında, ağı neredeyse bu tür anahtar kavramlarla yönlendirmek yerine, alanları vurgulayıp gruplandırmasını istiyorum. Bu tür pek çok makale var (bazıları 1, 2, 3) ve genel olarak oldukça teoriktirler.

Ancak bu yönelim en azından teorik olarak başlangıçta sıralanan sorunları kapsamalıdır.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

“Duvar rengi/zemin rengi/nesne şekli/nesne rengi/vb.” parametrelerine göre görüntü ayrıştırma.

Makine öğrenimi balonu patladı mı, yoksa yeni bir şafağın başlangıcı mı?

Yüzün “boyut, kaşlar, yön, ten rengi vb.” parametrelere göre ayrıştırılması.

Diğer

Veritabanını bir şekilde azaltmanıza, daha heterojen verilerle çalışmanıza vb. olanak tanıyan, küresel olmayan birçok başka alan vardır.

Dikkat. Bunu ayrı bir yöntem olarak ayırmak muhtemelen mantıklı olmayacaktır. Sadece başkalarını geliştiren bir yaklaşım. Birçok makale ona ithaf edilmiştir (1,2,3). Dikkat edilmesi gereken nokta, eğitim sırasında özellikle önemli nesnelere ağın tepkisini arttırmaktır. Genellikle bir tür harici hedef belirleme veya küçük bir harici ağ aracılığıyla.

3 boyutlu simülasyon. İyi bir 3D motor yaparsanız, genellikle eğitim verilerinin %90'ını bununla kapsayabilirsiniz (hatta iyi bir motor tarafından verilerin neredeyse %99'unun kapsandığı bir örnek bile gördüm). 3D motorla eğitilmiş bir ağın gerçek verileri kullanarak nasıl çalıştırılacağına dair birçok fikir ve tüyo vardır (İnce ayar, stil aktarımı vb.). Ancak çoğu zaman iyi bir motor yapmak, veri toplamaktan çok daha zordur. Motorların yapıldığı örnekler:
Robot eğitimi (google, beyin bahçesi)
eğitim tanıma mağazadaki ürünler (ancak yaptığımız iki projede onsuz da kolaylıkla yapabilirdik).
Tesla'da eğitim (yine yukarıdaki video).

Bulgular

Makalenin tamamı bir bakıma sonuç niteliğindedir. Muhtemelen vermek istediğim ana mesaj şuydu: "Bedavalar bitti, nöronlar artık basit çözümler sunmuyor." Artık karmaşık kararlar almak için çok çalışmamız gerekiyor. Veya karmaşık bilimsel araştırmalar yaparak çok çalışın.

Genel olarak konu tartışmalıdır. Belki okuyucuların daha ilginç örnekleri vardır?

Kaynak: habr.com

Yorum ekle