Sonucu optimize etmek için derin bir öğrenme algoritması


10

Derin öğrenme konusunda oldukça yeniyim ama sanırım kullanmaya başlamak için doğru gerçek dünyadaki durumu buldum. Sorun şu ki, sadece sonuçları tahmin etmek için bu tür algoritmalar kullandım. Yeni projem için, sonuçları optimize etmek üzere bir makineyi beslemek için bilgiye ihtiyacım var . Birisi nasıl ilerlemem gerektiğini kısaca açıklayabilir mi? Sıkıştım.

Durum şu:

Uzunluğu boyunca farklı ahşap sınıflarına sahip ahşap tahtaları alan ve kesim listesinde verilen bloklara kesmek zorunda kalan bir makinem var. Bu makine her zaman belirli bir tahtadan alabileceği en yüksek puanı seçecektir . Skor her bloğun çarpılmasıyla elde edilir bölgeyi onun tarafından Multiplikatör . Oluşturmak istediğim algoritma, bu makineye bir kesim listesinde listelenen her blok için bir çoğaltıcı vermelidir . Bu makineden gelen tüm fiziksel çıktılar, ihtiyaç duyulana kadar bir robot tarafından raflarda stoklanacaktır. Kesme makinesinin, daha yüksek bir skora ulaşmasına yardımcı olursa, bir tahtanın parçalarını düşürmesine izin verilir.

Değer, çok fazla odun indirmeden bana en çok ihtiyacım olan bloğu vermesi için makine için bir teşvik görevi görmelidir.

OPTİMİZASYON HEDEFLERİ

  • Her bloğun gerekli zamana kadar stokta bulunduğundan emin olun, ancak neden olmadan çok erken değil
  • Mümkün olduğunca az ahşap alanı düşürün (bazı türler çok pahalıdır)

GİRİŞ DÜĞMELERİ

  • Bu bloğa ihtiyaç duyulmadan önce geçen süre
  • Bu blok için ahşap kalitesi
  • Bu bloğun miktarı gerekli
  • Blok alanı (Belki?)

ALGORİTMAYA VERİLEN GERİ BİLDİRİM

  • Bloğun hazır olduğu önceden geçen süre (mümkün olduğunca düşük olmalıdır)
  • Eski ahşap alanı * atlanan sınıf sayısı

BEKLENEN DÖNÜŞ VERİLERİ

  • Bu bloğa, diğerlerine göre önceliğini en uygun hale getirecek bir çoklayıcı

OLMADIĞIM BİLGİLER TOPLADI

  • Her bir ağaç türü için her bir sınıfın ortalama oranı

Şimdiye kadar anladığım şey, geri bildirimimin çıktı düğümü olmasını sağlamak için sadece bir değerde parçalanabilmem gerekebileceğidir. Sorun şu ki bu algoritmayı bir çoğaltıcı belirlemek için nasıl yapılacağını anlayamıyorum . Bunu derin öğrenme yoluyla çözmeye çalışırken yanlış mıyım?


Bu gerçekten ilginç bir soru! AI'ye hoş geldiniz.
DukeZhou

Daha fazla netlik için soruyu düzenleme özgürlüğünü aldım. Ne yapılacağından emin değildim: "Bu bloğa diğerlerine göre önceliğini en uygun hale getirecek cm² başına değer" Bir bloğa diğer bloklara göre önceliği açısından en uygun değeri vermek mi demek istediniz?
DukeZhou

@DukeZhou Makinenin algoritması, bir "skor" oluşturmak ve maksimum puanı almak için her bir tahta kesmek için, blokun toplam 2B alanı (genişlik x uzunluk) ile optimize etmeye çalıştığım değeri çarpar. Algoritmada bloğun alanını kullanırsam, skoru belirleyebilir ve sonra alana bölebilirim. Sonuçta, ana odak, en yüksek puanın en yüksek ihtiyaca uyduğundan emin olmaktır, böylece makinenin hedefi bizimkiyle aynıdır.
Frank Malenfant

@DukeZhou Maalesef olabildiğince net değilse, İngilizce ikinci dilim.
Frank Malenfant

1
@DukeZhou İşte. Bunu çoğaltıcı terimi ile değiştirdim ve kullanımı hakkında biraz daha bilgi verdim.
Frank Malenfant

Yanıtlar:


2

Regresyon görevleri için derin öğrenme modellerinin eğitimi oldukça zordur, bu yüzden onlarla başlamamayı öneririm. Bunun yerine aşağıdaki yaklaşımlardan biriyle başlıyorum ve belki sonradan derin öğrenme kullanmaya çalışıyordum.

Soruna klasik bir yaklaşım, optimizasyon yazılımınızı analiz etmek olabilir ve bu muhtemelen sizi belirli bir algoritmaya götürür.

Optimizasyon yazılımınızı kara bir kutu olarak ele almak farklı yaklaşımlar olabilir - ona çok çeşitli girişler verin, ilgilendiğiniz değişkenleri not edin (yürütme süresi, kesme sonuçları vb.) Ve üzerine bir çeşit veya regresör takmaya çalışın .

Bir seçenek Kourosh'un fikrini takip etmek ve klasik bir optimizasyon problemi olarak formüle etmektir.

Makine öğrenim araçlarını kullanmayı tercih ederseniz, verilerinde kullanabileceğiniz herhangi bir sinyal olduğunu doğrulamak için doğrusal regresyon gibi basit bir modelle başlamanızı öneririm. Daha sonra xgboost, regresyon ağaçları vb. Gibi daha güçlü algoritmalara bakabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.