Algorytm głębokiego uczenia się w celu optymalizacji wyniku


10

Jestem całkiem nowy w głębokim uczeniu się, ale myślę, że znalazłem właściwą sytuację w świecie rzeczywistym, aby zacząć z niej korzystać. Problem polega na tym, że używałem tylko takich algorytmów do przewidywania wyników. Do mojego nowego projektu potrzebuję informacji, aby nakarmić maszynę, aby zoptymalizować wyniki. Czy ktoś mógłby krótko wyjaśnić, jak mam postępować? Utknąłem.

Oto sytuacja:

Mam maszynę, która pobiera deski z różnymi gatunkami drewna dostępnymi na całej długości i musi ciąć je na bloki znajdujące się na liście cięcia. Ta maszyna zawsze wybierze najwyższy wynik, jaki może uzyskać z danej deski. Wynik uzyskuje się przez pomnożenie każdego bloku na powierzchni jego multiplikatora . Algorytm, który chcę zbudować, musi dać tej maszynie multiplikator dla każdego bloku wymienionego na liście elementów ciętych. Cały fizyczny wynik z tej maszyny będzie przechowywany na półkach przez robota, dopóki nie będzie potrzebny. Maszyna tnąca może obniżyć klasę części deski, jeśli pomaga osiągnąć wyższy wynik.

Wartość musi działać jako zachęta dla maszyny, aby dać mi blok, którego najbardziej potrzebuję, bez obniżania poziomu zbyt dużej ilości drewna.

CELE OPTYMALIZACYJNE

  • Upewnij się, że każdy blok jest w magazynie, zanim będzie potrzebny, ale nie za wcześnie bez powodu
  • Obniż jak najmniejszą powierzchnię drewna (niektóre gatunki są bardzo drogie)

Węzły wejściowe

  • Czas potrzebny na ten blok
  • Gatunek drewna dla tego bloku
  • Potrzebna ilość tego bloku
  • Obszar bloku (może?)

INFORMACJE ZWROTNE PRZEKAZANE ALGORYTMOWI

  • Ilość czasu, zanim blok był gotowy (musi być jak najmniejszy)
  • Obniżona powierzchnia drewna * liczba pominiętych gatunków

OCZEKIWANE DANE ZWROTU

  • Mnożnik , które dadzą tego bloku optymalny swój priorytet w stosunku do innych

INFORMACJE, KTÓRE NIE MIAŁEM, ALE MOGŁEM ZNAĆ

  • Średni stosunek każdego gatunku dla każdego gatunku drewna

Do tej pory doszedłem do wniosku, że może być konieczne, aby moje informacje zwrotne zostały zmiażdżone tylko jedną wartością, aby stał się węzłem wyjściowym. Problem polega na tym, że nie rozumiem, jak zrobić ten algorytm, aby określić multiplikator . Czy mylę się, próbując rozwiązać ten problem poprzez głębokie uczenie się?


To naprawdę interesujące pytanie! Witamy w AI.
DukeZhou

Pozwoliłem sobie na edycję pytania dla większej przejrzystości. Nie byłem pewien, co zrobić z: „Wartość na cm², która da temu blokowi optymalny priorytet w stosunku do innych” Czy masz na myśli podanie bloku optymalnej wartości w odniesieniu do jego priorytetu w stosunku do innych bloków?
DukeZhou

@DukeZhou Algorytm maszyny zwielokrotnia wartość, którą próbuję zoptymalizować przez całkowity obszar 2D bloku (szerokość x długość), aby utworzyć „wynik” i wyciąć każdą deskę, aby uzyskać maksymalny wynik. Jeśli przypiszę obszar bloku w algorytmie, mógłbym następnie ustalić wynik, a następnie podzielić go przez obszar. Podsumowując, głównym celem jest upewnienie się, że najwyższy wynik odpowiada najwyższej potrzebie, tak aby cel maszyny był taki sam jak nasz.
Frank Malenfant,

@DukeZhou Przepraszam, jeśli nie jest tak jasne, jak to możliwe, angielski jest moim drugim językiem.
Frank Malenfant,

1
@DukeZhou tutaj. Zastąpiłem go terminem multiplikator i podałem dodatkowe informacje na temat jego użycia.
Frank Malenfant,

Odpowiedzi:


2

Modele głębokiego uczenia się dla zadań regresyjnych są dość trudne do wyszkolenia, dlatego sugerowałbym, aby ich nie zaczynać. Zamiast tego zacznę od jednego z poniższych podejść i może później spróbuję skorzystać z głębokiego uczenia się.

Klasycznym podejściem do problemu może być analiza oprogramowania optymalizacyjnego, co prawdopodobnie doprowadziłoby cię do jakiegoś deterministycznego algorytmu.

Różne podejścia mogą polegać na traktowaniu oprogramowania optymalizacyjnego jako czarnej skrzynki - podaj szeroki zakres danych wejściowych, zanotuj zmienne, które Cię interesują (czas wykonania, wyniki cięcia itp.) I spróbuj dopasować do niego jakiś rodzaj lub regresor .

Jedną z opcji jest podążanie za pomysłem Kourosha i sformułowanie go jako klasyczny problem optymalizacji.

Jeśli wolisz korzystać z narzędzi uczenia maszynowego, sugerowałbym, aby zacząć od prostego modelu, takiego jak regresja liniowa, aby sprawdzić, czy w danych jest jakiś sygnał, którego możesz użyć. Następnie możesz przyjrzeć się bardziej zaawansowanym algorytmom, takim jak xgboost, drzewa regresji itp.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.