Antecedentes:
Eu criei apenas uma solução numérica para o 2d Navier-Stokes, para um curso. Era uma solução para o fluxo da cavidade acionado pela tampa. O curso, no entanto, discutiu vários esquemas para discretizações espaciais e discretizações de tempo. Também fiz mais cursos de manipulação de símbolos aplicados ao NS.
Algumas das abordagens numéricas para lidar com a conversão da equação analítica / simbólica de PDE para diferença finita incluem:
- Euler FTFS, FTCS, BTCS
- Relaxado
- Midpoint Leapfrog
- Lax-Wendroff
- MacCormack
- grade deslocada (a difusão espacial permite que a informação se espalhe)
- TVD
Para mim, na época, isso parecia "inserir-nome encontra um esquema e isso funciona". Muitos destes eram de antes da época do "abundante silício". São todas aproximações. No limite eles. em teoria, levam aos PDE's.
Embora a Simulação Numérica Direta ( DNS ) seja divertida e a Rans ( Navans -Stokes Médios Reynolds ) também seja divertida, eles são os dois "pontos finais" do continuum entre tratável computacionalmente e representando plenamente os fenômenos. Existem várias famílias de abordagens que vivem dentro delas.
Eu tive professores de CFD dizendo, em palestra, que a maioria dos solucionadores de CFD faz fotos bonitas, mas, na maioria das vezes, essas fotos não representam a realidade e que pode ser muito difícil e dar muito trabalho para obter uma solução que representa a realidade.
A sequência de desenvolvimento (como eu o entendo, não exaustiva) é:
- comece com as equações que governam -> PDE's
- determine sua discretização espacial e temporal -> grade e regras FD
- aplicam-se ao domínio, incluindo condições iniciais e condições de contorno
- resolver (muitas variações na inversão da matriz)
realizar verificações de realidade grosseira, adequadas a soluções conhecidas, etc.
construir alguns modelos físicos mais simples derivados de resultados analíticos
- testá-los, analisar e avaliar
- iterar (voltando para as etapas 6, 3 ou 2)
Pensamentos:
Trabalhei recentemente com modelos CART, árvores oblíquas, florestas aleatórias e árvores com gradiente. Eles seguem regras derivadas matematicamente, e a matemática orienta a forma da árvore. Eles trabalham para criar formulários discretos também.
Embora essas abordagens numéricas criadas pelo homem funcionem um pouco, existe um "vodu" extenso necessário para conectar seus resultados aos fenômenos físicos que eles devem modelar. Frequentemente, a simulação não substitui substancialmente os testes e verificações do mundo real. É fácil usar o parâmetro errado ou não levar em consideração a variação na geometria ou nos parâmetros de aplicação experimentados no mundo real.
Questões:
- Houve alguma abordagem para permitir que a natureza do problema defina
a discretização apropriada, o esquema de diferenciação espacial e temporal, as condições iniciais ou a solução? - Uma solução de alta definição, associada às técnicas de aprendizado de máquina, pode ser usada para criar um esquema de diferenciação que possui etapas muito maiores, mas que mantém convergência, precisão e outras coisas?
- Todos esses esquemas são acessíveis "humanamente tratáveis para derivar" - eles têm alguns elementos. Existe um esquema de diferenciação com milhares de elementos que faz um trabalho melhor? Como é derivado?
Nota: Seguirei com o empiricamente inicializado e o empiricamente derivado (em oposição ao analítico) em uma pergunta separada.
ATUALIZAR:
Uso de aprendizado profundo para acelerar os fluxos de rede de Boltzmann. Deu ~ 9x aceleração para o seu caso particular
Hennigh, O. (no prelo). Lat-Net: Simulações de Fluxo de Boltzmann em Malha Compactada usando Redes Neurais Profundas. Disponível em: https://arxiv.org/pdf/1705.09036.pdf
Repo com código (acho):
https://github.com/loliverhennigh/Phy-NetAproximadamente 2 ordens de magnitude mais rápidas que a GPU, 4 ordens de magnitude ou ~ O (10.000x) mais rápidas que a CPU e o mesmo hardware.
Guo, X., Li, W. & Ioiro, F. Redes neurais convolucionais para aproximação de fluxo constante. Retirado de: https://autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation
Outros que analisaram o tópico há cerca de 20 anos:
Muller, S., Milano, M. e Koumoutsakos P. Aplicação de algoritmos de aprendizado de máquina para modelagem e otimização de fluxo. Resumo Anual de Pesquisa do Center for Turbulence Research 1999 Obtido em: https://web.stanford.edu/group/ctr/ResBriefs99/petros.pdf
Atualização (2017):
Isso caracteriza o uso de métodos não gradientes no aprendizado profundo, uma arena que se baseia exclusivamente em gradientes. Embora a implicação direta da atividade esteja no aprendizado profundo, também sugere que o AG pode ser usado como equivalente na resolução de um problema muito difícil, muito profundo e muito complexo no nível consistente ou superior aos métodos baseados em descidas gradientes.
Dentro do escopo desta pergunta, pode sugerir que um ataque baseado em aprendizado de máquina em maior escala possa permitir "modelos" no tempo e no espaço que aceleram substancialmente a convergência de métodos no domínio do gradiente. O artigo chega ao ponto de dizer que, às vezes, ir na direção da descida do gradiente se afasta da solução. Enquanto em qualquer problema com ótimas localidades ou trajetórias patológicas (a maioria dos problemas do mundo real de alto valor tem algumas delas), espera-se que o gradiente não seja globalmente informativo, ainda é bom quantificá-lo e validá-lo empiricamente como foi neste artigo e a capacidade de "pular os limites" sem exigir "redução da aprendizagem" à medida que você entra no momento ou descontrai.
Atualização (2019):
Parece que o Google agora tem uma contribuição "como encontrar um melhor solucionador" do quebra-cabeça da IA. link Isso faz parte da IA para resolver.
** Atualização (2020): ** E agora eles estão fazendo e fazendo bem ...
https://arxiv.org/pdf/1911.08655.pdf
Pode-se argumentar que eles poderiam desconstruir seu NN para determinar a discretização real. Eu particularmente gosto da figura 4.