Seria possível para um amador que está interessado em obter alguma experiência "prática" ao projetar e treinar redes neurais profundas, usar um laptop comum para esse fim (sem GPU) ou é impossível obter bons resultados em tempo razoável sem um computador / cluster / GPU poderoso?
Para ser mais específico, a CPU do laptop é um Intel Core i7 5500U de quinta geração, com 8GB de RAM.
Agora, como não especifiquei em quais problemas gostaria de trabalhar, enquadrarei minhas perguntas de uma maneira diferente: em quais arquiteturas profundas você recomendaria que eu tentasse implementar com meu hardware, para que o objetivo a seguir seja alcançado : Adquirir intuição e conhecimento sobre como e quando usar técnicas introduzidas nos últimos 10 anos e essenciais para a insurreição de redes profundas (como entendimento de inicializações, desistências, rmsprop, apenas para citar algumas).
Eu li sobre essas técnicas, mas é claro que sem testá-las eu não saberia exatamente como e quando implementá-las de maneira eficaz. Por outro lado, receio que, se tentar usar um PC que não seja suficientemente forte, minha taxa de aprendizado será tão lenta que não faria sentido dizer que adquiri um entendimento melhor. E se eu tentar usar essas técnicas em redes rasas, talvez não esteja construindo a intuição certa.
Eu imagino o processo de (meu) aprendizado da seguinte forma: eu implemento uma rede neural, deixo praticar por várias horas, vejo o que tenho e repito o processo. Se eu fizer isso uma ou duas vezes por dia, ficaria feliz se, digamos, seis meses depois, adquirisse um conhecimento prático comparável ao que um profissional da área deve saber.
Respostas:
Sim, um laptop funcionará bem para se familiarizar com alguns projetos de aprendizado profundo:
Você pode escolher um pequeno problema de aprendizado profundo e obter algumas dicas tratáveis usando um laptop, então experimente.
O projeto Theano tem um conjunto de tutoriais sobre reconhecimento de dígitos com os quais eu brinquei e modifiquei em um laptop.
O Tensorflow também possui um conjunto de tutoriais .
Eu deixei algumas das corridas mais longas passarem da noite para o dia, mas nada era intratável.
Você também pode se beneficiar da AWS ou de um dos outros serviços em nuvem. Por 20 a 30 dólares, você pode executar alguns dos maiores cálculos na nuvem em algum tipo de nó de computação elástico . A vantagem secundária é que você também pode listar a AWS ou outros serviços em nuvem como habilidade em seu currículo também :-)
Espero que isto ajude!
fonte
Não há esperança e você pode, sem dúvida, obter muita experiência relevante com o aprendizado profundo usando as especificações de computador mencionadas. Tudo se resume à sua arquitetura de rede neural (número de camadas e neurônios), tamanho do conjunto de dados (número de entradas), natureza dos dados (padrões inerentes) e implementação. E embora você possa se limitar a isso, isso não impedirá que você adquira intuição e conhecimento a que se refere. Você experimentará facilmente problemas de ajuste excessivo, influência da regularização, efeitos do pré-treinamento, impacto de diferentes tipos de neurônios e arquiteturas, para citar alguns.
Vou te dar um exemplo mais concreto. Implementei alguns algoritmos de aprendizado profundo (todos baseados em CPU) em Julia e os executei em um MacBook Air (semelhante à sua especificação). O código não foi terrivelmente otimizado, pois neurônios e camadas foram representados por estruturas de dados reais, em vez de uma única matriz gigante. Portanto, outras melhorias de desempenho foram possíveis.
Para uma rede totalmente conectada de 56x300x300x300x1 (56 entradas e aproximadamente 200k conexões) e 250 exemplos de treinamento, consegui obter 5k de propagação em um dia. Freqüentemente, isso foi suficiente para ajustar demais os dados ou ajustar-se perfeitamente ao conjunto de treinamento (mas isso dependerá do conjunto de dados e de outros fatores mencionados acima). Se os dados tiverem padrões fortes e menos de 10 mil exemplos, muitas vezes você não precisará de tantas iterações. Não é incomum que poucas centenas de iterações de pré-treinamento e aperfeiçoamento levem a bons resultados. Portanto, sim, seu laptop é bom o suficiente e você pode executar experimentos significativos que levam várias horas.
Eu sugiro escolher conjuntos de dados menores com padrões fortes. E recomendo analisar técnicas de pré-treinamento, como codificadores automáticos, porque geralmente exigem menos iterações para alcançar melhores resultados. Comece com a propagação de volta e construa a partir daí, tente diferentes arquiteturas, tipos de neurônios, use regularização, auto-codificadores, abandono, ...
Também certifique-se de escolher uma linguagem ou biblioteca de alto desempenho para suas experiências.
fonte