Sou um iniciante no aprendizado profundo, mas acho que encontrei a situação certa no mundo real para começar a usá-lo. O problema é que eu apenas usei esses algoritmos para prever resultados. Para o meu novo projeto, preciso de informações para alimentar uma máquina e otimizar os resultados. Alguém poderia explicar brevemente como devo proceder? Estou preso.
Aqui está a situação:
Eu tenho uma máquina que pega pranchas de madeira com diferentes tipos de madeira disponíveis em todo o seu comprimento e precisa cortá-la em blocos fornecidos em uma lista de corte. Esta máquina sempre escolhe a pontuação mais alta que pode obter de uma determinada prancha. A pontuação é obtida multiplicando a área de cada bloco pelo multiplicador . O algoritmo que quero construir deve fornecer a essa máquina um multiplicador para cada bloco listado em uma lista de corte. Toda a saída física desta máquina será armazenada nas prateleiras por um robô até que seja necessário. A máquina de corte pode fazer o downgrade de partes de uma prancha se isso ajudar a atingir uma pontuação mais alta.
O valor deve atuar como um incentivo para que a máquina me dê o bloco de que mais preciso, sem diminuir a quantidade de madeira.
OBJETIVOS DE OTIMIZAÇÃO
- Certifique-se de que cada bloco esteja em estoque no momento necessário, mas não muito cedo sem motivo
- Faça o downgrade da menor área possível de madeira (algumas espécies são muito caras)
NÓS DE ENTRADA
- Tempo antes que este bloco seja necessário
- Grau de madeira para este bloco
- Quantidade deste bloco necessária
- Área do bloco (Talvez?)
FEEDBACK FORNECIDO AO ALGORITMO
- Tempo que o bloco estava pronto (deve ser o mais baixo possível)
- Área de madeira rebaixada * número de classes ignoradas
DADOS DE DEVOLUÇÃO ESPERADOS
- Um multiplicador que dará a esse bloco uma prioridade ideal em relação aos outros
INFORMAÇÃO QUE EU NÃO POSSO RECOLHER
- Proporção média de cada série para cada espécie de madeira
O que eu descobri até agora é que posso precisar que meu feedback seja quebrado em apenas um valor para torná-lo o nó de saída. O problema é que não consigo entender como criar esse algoritmo para determinar um multiplicador . Estou errado ao tentar resolver isso através do aprendizado profundo?
fonte
Respostas:
Modelos de aprendizado profundo para tarefas de regressão são bastante difíceis de serem treinados, então eu sugeriria não começar com eles. Em vez disso, começaria com uma das abordagens abaixo e talvez tentasse usar o aprendizado profundo posteriormente.
Uma abordagem clássica para o problema poderia ser analisar seu software de otimização e isso provavelmente o levaria a algum algoritmo determinístico.
Diferentes abordagens podem ser tratar seu software de otimização como uma caixa preta - forneça uma ampla variedade de entradas, anote as variáveis nas quais você está interessado (tempo de execução, resultados de corte etc.) e tente ajustar algum tipo ou regressor nele .
Uma opção é seguir a idéia de Kourosh e formulá-la como um problema clássico de otimização.
Se você preferir usar ferramentas de aprendizado de máquina, sugiro que você comece com um modelo simples, como regressão linear, apenas para verificar se há algum sinal nos dados que você pode usar. Depois, você pode ver algoritmos mais poderosos, como xgboost, árvores de regressão, etc.
fonte