Makine öğrenimi projeleri planlamak, tipik yazılım mühendisliği projeleri planlamaktan farklıdır. Makine öğrenimi projeleri karakteristik olarak doğrusal değildir ve çeşitli derecelerde belirsizliklere sahiptir. Bu çözümler için tekrarlı bir yaklaşım ve deneysel bir düşünce yapısı gerekir.
Projede belirsizlik
En iyi yaklaşım, bir projeye başlarken genellikle belirsiz olmayacağından erken aşamada planlama zor olabilir. Doğadaki bu belirsizlik, zaman çizelgelerini tahmin etmeyi zorlaştırır.
Yakın zamanda yapılan bir Kaggle yarışması, makine öğrenimi projelerinin belirsizliğini gösteriyor. Yarışmanın ilk birkaç haftasına 350 ekip katıldı. Bazı ekipler karşılaştırmalı tahmin kalitesini% 35'ten %65'e yükseltti. Sonraki iki hafta boyunca, sorun üzerinde çalışan ekiplerin sayısı 350'den 1400'e çıktı. Ancak en iyi model yalnızca %68'lik bir tahmin kalitesi elde etti.
Şekil 3'te, çabadaki önemli artış görülürken model kalitesinde yalnızca minimum düzeyde kazanç sağlanarak, makine öğreniminin geliştirilmesindeki belirsizlikler gösterilmektedir.
3. Şekil. İki haftalık bir süre içinde, sorun üzerinde çalışan ekiplerin sayısı 4 kat arttı ancak modelin kalitesi neredeyse aynı kalarak bir ML çözümünün çabasını tahmin etmenin zorluğunu vurguladı.
Diğer bir deyişle, her biri çeşitli veri dönüşümleri, mimariler ve hiperparametrelerle deney yapan binden fazla ekip, yalnızca% 68 tahmin kalitesine sahip bir model üretmeyi başardı.
Sektörden bir örnek, makine öğrenimi projelerinin doğrusal olmadığını gösterir. Burada çıktı, girişlerle orantılı değildir. İki ekip, bir modeli% 90 tahmin kalitesine eğitmek için birkaç ay sürdü. Ancak birkaç ekibin modeli% 99, 9 tahmin kalitesiyle üretime hazır hale getirmesi beş yıldan uzun sürdü.
Bu örnekler, üretime hazır makine öğreniminin hem bilim hem de mühendislik yaklaşımı gerektiren keşif amaçlı bir süreç olduğunu vurguluyor.
Deneysel yaklaşım
Çoğu durumda, makine öğrenimi geliştirme süreci, geleneksel yazılım mühendisliğini uygulamaktan ziyade deney yapmaya benzer. Makine öğrenimi için farklı özelliklerin test edilmesi, birden fazla mimarinin kullanılması ve hiperparametrelerin doğru şekilde ayarlanması gerekir. Tanımları gereği, denemelerin başarılı olacağı garanti edilmez. Bu nedenle, deneysel bir çerçeve kullanarak planlama yapmak en iyisidir.
ML proje planından farkını görmek için tipik bir yazılım mühendisliği planına bakalım.
Yazılım mühendisliği projeleri planlama
Tipik bir yazılım mühendisliği planında gereklilikleri tanımlar, bileşenleri özetler, çabayı tahmin eder ve işi çizelgelersiniz. Çözüme giden yolda daha net bir yol vardır. Örneğin, mühendisler genellikle tasarım spesifikasyonunu karşılayan bir uygulama oluşturmak için tamamlamaları gereken görevleri yüksek derecede kesinlikle bilirler.
Bir görevi tamamlamak için gereken süreyi tahmin ettiklerinde, benzer projelere dayanarak işi tahmin edebilirler. Bazen tahmin etmeyi zorlaştıran bilinmeyen bağımlılıklar veya değişen gereklilikler gibi sürekli zorluklarla karşılaşılsa da genellikle çözüme giden net bir yol vardır.
Ancak makine öğrenimi projelerinin tersine normalde başarıya giden tek bir net yol yoktur.
ML projeleri planlama
Çoğu makine öğrenimi projesi için en iyi çözümü, deneme yanılma sürecinde birden fazla yaklaşımı deneyerek bulabilirsiniz. Genellikle sorununuzu çözmeye çalışmadan en uygun çözümü bilemezsiniz. Örneğin, en uygun çözümün mimarisi basit bir doğrusal model, nöral ağ veya karar ağacı olabilir. En iyi çözümü, ancak her bir yaklaşımı deneyerek bulabilirsiniz.
Bu belirsizlik planlama yapmayı zorlaştırıyor. Daha önce belirtildiği gibi, bir makine öğrenimi projesinin gerektirdiği çabayı tahmin etmek zordur. Bir çözümün gerektirebileceği zaman ve kaynak miktarını daha iyi anlamak için yalnızca problemi çözme girişiminde bulunmanız gerekir.
Makine öğrenimi çalışmalarını planlamak için önerilen stratejiler aşağıda verilmiştir:
Çalışma için zaman sınırı belirleyin. Görevleri tamamlamak veya belirli bir çözümü denemek için net zaman aralıkları belirleyin. Örneğin, doğru veri türüne erişip erişemeyeceğinizi belirlemek için iki hafta ayırabilirsiniz. Verileri alabiliyorsanız basit bir modelin bir ML çözümünün uygulanabilir olduğunu gösterip göstermediğini görmek için iki hafta daha atayabilirsiniz. Basit bir model başarısız olursa nöral ağı denemek için iki hafta daha belirtebilirsiniz. Her zaman aralığının sonunda, soruna kaynak uygulamaya devam etmenin değerli olup olmadığını belirlemek için daha fazla bilgi edinirsiniz.
Proje gereksinimlerinin kapsamını belirleyin. Bir makine öğrenimi çözümü umut vadeden ama ürün veya hizmetiniz için kritik bir özellik değilse çözümlerinin gereksinimlerini geri alın. Örneğin bir sonraki çeyreğin çalışmasını planlarken çok basit bir çözüm kullanmayı düşünebilirsiniz. Sonraki çeyreklerde çözümü yinelemeli olarak iyileştirmeyi planlayabilirsiniz. Birçok ekip etkili makine öğrenimi çözümlerine, daha uzun bir süre içinde kademeli iyileştirmeler yaparak bir ML çözümünü uygulamak oldu.
Staj veya Noogler projesi. Bir stajyeri veya Noogler'ı makine öğrenimi çözümü denemesi için yönlendirmek ve yönlendirmek, bilinmeyen sonuçları olan yeni bir alanı keşfetmeye başlamak için iyi bir yol olabilir. Proje sona erdikten sonra, bir ML çözümünün gerektirdiği çabayı ve gerçekleştirilecek vaat eden yaklaşımları ya da kaynakların başka bir yere yerleştirilmesi gerekip gerekmediğini daha iyi anlayabilirsiniz.
Her stratejide kısa sürede başarısız olmak akıllıcadır. Önce en düşük maliyetli ama muhtemelen en yüksek getiriyi sağlayacak yaklaşımları deneyin. Yaklaşım işe yarıyorsa iyi bir çözüm bulmuşsunuz demektir. Aksi halde çok fazla zaman ve kaynak harcamış olmazsınız.
Ekipler deneyim kazandıkça ve yapılan denemelerle karşılaştıkça, bir deneme için gereken çabayı daha iyi tahmin edebilirler. Bu da planlamayı daha öngörülebilir hale getirir. Ancak bir denemenin sonucu neredeyse her zaman bilinmeyecektir. Bu nedenle, en iyi çözümü bulmak için gereken deneme sayısı önceden tahmin edilemez.
Deneysel bir bakış açısıyla yaklaşım planlama ekibinizi başarıya hazırlayın. Bir yaklaşım cesaretini kırmak yerine çıkmaza girdiğinde ekip üyeleri bunun ML çözümü bulma sürecinin bir parçası olduğunu anlar. Daha da önemlisi, paydaşlarla makine öğreniminin gelişimindeki doğal belirsizliği paydaşlarla tartışarak daha gerçekçi beklentiler oluşturabilirsiniz.
Hatırlatma
Birden fazla makine öğrenimi yaklaşımı planlamayı öğrenmek olasılıksal olarak zaman ve deneyim gerektirir. Proje planınızın sık sık güncellenmesi gerekebilir. Ekibiniz birden fazla yaklaşımla deneyler yaparken bu belgeyi sürekli gelişen dinamik bir belge gibi düşünebilirsiniz. Aşağıdaki temel fikirlere odaklanarak başarı ihtimalinizi artırırsınız:
- Her bir yaklaşım için maliyeti ve başarı şansını tahmin edin.
- Yaklaşımlardan oluşan bir portföy bulmaya çalışın.
- Alınan dersleri belirleyin ve her seferinde sistemi geliştirmeye çalışın.
- Başarısızlıklara karşı plan yapın.
Bazen erken bir yaklaşım çığır açıyor. Birileri, veri oluşturma ardışık düzenindeki bir hata veya eğitim-doğrulama bölünmesinde bir hata keşfedebilir. İyi bir planlama ve kapsamlı belgelerle, işletmenizdeki sorunları beklenenden daha kısa sürede çözecek bir model bulma olasılığını artırırsınız.