Até o momento, existem muitas aplicações interessantes para aprendizado profundo em visão computacional ou processamento de linguagem natural.
Como é em outros campos mais tradicionais? Por exemplo, tenho variáveis sociodemográficas tradicionais e talvez muitas medições de laboratório e quero prever uma determinada doença. Isso seria um aplicativo de aprendizado profundo se eu tiver muitas observações? Como eu construiria uma rede aqui, acho que todas as camadas sofisticadas (convolucionais etc.) não são realmente necessárias ?! Apenas faça isso profundo?
No meu conjunto de dados específico, tentei alguns algoritmos comuns de aprendizado de máquina, como florestas aleatórias, gbm etc. com resultados variados em relação à precisão. Tenho uma experiência limitada de aprendizado profundo com reconhecimento de imagem.
fonte
Respostas:
Sim, você pode usar técnicas de aprendizado profundo para processar dados sem imagem. No entanto, outras classes de modelos ainda são muito competitivas com redes neurais fora do processamento de sinais e tarefas relacionadas.
Para usar abordagens de aprendizado profundo em dados sem sinal / sem sequência, normalmente você usa uma rede multicamada feed-forward simples. Não há necessidade de camadas convolucionais ou camadas de pool. A melhor arquitetura diferente dessa precisa ser explorada com a validação cruzada e pode ser demorada para descobrir, pois as NNs profundas exigem muita computação para serem treinadas.
Na minha experiência, tentando usar redes neurais profundas (-ish, normalmente ~ 5 camadas) nas competições do Kaggle:
O abandono ainda é altamente eficaz para regularizar e melhorar a precisão
Normalização de entrada - geralmente com o valor 0, desvio padrão 1, é importante
As funções de ativação da camada oculta podem fazer a diferença. Embora o ReLU reduz alguns problemas com gradientes de fuga, na minha experiência, ele é menos robusto com dados sem sinal e você desejará alguma outra forma. Se você tiver apenas algumas camadas, sigmoid ou tanh ainda funcionam bem. Caso contrário, observe ReLU, PReLU, ELU e outras variantes de ReLU que tentam corrigir seus problemas com neurônios "mortos".
Utilize otimizadores projetados para aprendizado profundo, como Adam, Adagrad ou RMSProp
Use uma abordagem de inicialização de peso que funcione com aprendizado profundo, como Glorot.
Considere usar camadas de Normalização em lote. Não é algo com o qual tenho muita experiência, mas vi outras pessoas se saindo bem com essa abordagem.
Apesar de tudo isso, o XGBoost pode vencer rotineiramente e facilmente NNs profundos com esforço mínimo de ajuste e treinamento em comparação (dependendo do curso do problema e dos dados que você possui). Se a precisão é tudo para você, é possível - embora não seja garantido - que um conjunto de NNs profundos e outro modelo como o XGBoost tenham um desempenho melhor do que individualmente.
fonte
Uma rede pode ser apropriada para fins de classificação. Para isso, é necessário definir um conjunto de treinamento e um conjunto de testes de seus dados que representam os dados que a rede será solicitada a classificar na produção. Isso determina se você pode obter uma rede ruim, razoável ou boa de trabalho.
Considero termos como "aprendizado profundo" enganosos: uma rede não aprende, você só pode treiná-la.
Supondo que você possa criar um conjunto de treinamento e teste, em alto nível, você pode usar um
Multicamada: se seus dados não tiverem ordem e as estruturas tiverem uma posição fixa.
Redes recursivas: se a ordem dos dados é importante para a classificação
Convolução: se seus dados tiverem estruturas semelhantes às imagens, mas não houver posição fixa.
Obter uma boa configuração, como o número de camadas, requer tentativa e erro; é um tipo de magia negra.
fonte