Habilidades de engenharia de aprendizagem profunda | 5 habilidades necessárias para ser um engenheiro DL

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon

"O que está por trás dos carros sem motorista? Inteligência artificial ou, mais especificamente, aprendizado profundo ”- Dave Waters Quando

Introdução

entrando no campo de Deep Learning e eu diria a você as tecnologias que você precisa aprender para obter uma melhor compreensão do campo, para este propósito, este artigo não vai ser muito formal e técnico, para que você possa fazer qualquer pergunta na seção de comentários, terei o maior prazer em respondê-las.

Na Índia, ao redor de 700 mil alunos se formam por ano, e os alunos que desejam perseguir seus sonhos no lado do desenvolvimento da ciência da computação devem escolher um domínio, Deep Learning é um deles. Conforme as tecnologias crescem, interesse dos alunos em aprendizado de máquina / o aprendizado profundo também aumenta. Um grande problema que todos enfrentam é que todos sabem que existe um bom escopo no campo da IA, mas o que falta é por onde começar e em que direção devem concentrar sua energia, eles testam uma tecnologia e depois de alguns dias , eles pulam no outro deixando o último sem praticar.

A maioria dos praticantes de aprendizado profundo temem que os grandes gigantes da tecnologia estejam trabalhando em alguns algoritmos que automatizarão todo o processo de aprendizado profundo e que não haveria nenhuma postagem como engenheiro de aprendizado profundo. Então, deixe-me confirmar uma coisa que não vai acontecer, agora não tenho certeza. A automação está tomando conta do lugar, mas ainda há um longo caminho a percorrer.

Se você sabe que é bom com números e deseja trabalhar em algumas tecnologias interessantes, Aprendizado profundo é certamente para você, neste tutorial, direi o caminho que você pode seguir para ser um engenheiro de aprendizagem profunda aplicada de sucesso.

O que é aprendizado profundo?

Aprendizado profundo é o subconjunto do aprendizado de máquina que lida principalmente com redes neurais (NN). Oferece soluções para quase todos os tipos de dados, como imagens, texto, audio, etc. As redes neurais tentam imitar o cérebro para produzir resultados da mesma forma que a mente humana.. Você já conhece esta parte da teoria, então deixe-me pular direto para as coisas sobre as quais você é cético. Eu sei que você pode ter dúvidas se precisa de um mestrado ou deve ser de Harvard ou MIT para ser um bom candidato para o aprendizado profundo, deixe-me responder isso para você. Existem duas funções no Deep Learning, um chamado Deep Learning Researcher e outro chamado Applied Deep Learning Engineer. O primeiro trata de ter mais estatísticas e insights baseados em matemática que podem ajudá-lo a entender os conceitos de Deep Learning e, eventualmente, levá-lo a descobrir novos algoritmos. / tecnologias, enquanto a outra lida com o que já foi implementado pelos pesquisadores de Deep Learning que acabaram de usar. isso e aplique em algum lugar, onde posso reduzir o esforço humano.

39180deep_learning_content-1884319
Fonte: Levity.ai

Agora você sabe que se você não pertence a alguma universidade de nível 1, ainda pode ser um engenheiro de aprendizado profundo, Então, vamos dar uma olhada em todas as tecnologias de que você precisa para ser um engenheiro de aprendizado profundo bem-sucedido.

Resumo das habilidades necessárias:

Enquanto trabalhava no aprendizado de máquina / Aprendizado Profundo, não é como se você apenas tivesse que conhecer alguns algoritmos e aplicá-los aos dados que obterá. Vai começar na fase de requisitos, quer dizer, primeiro você identificará o problema para o qual encontrará a solução. Mais uma coisa importante é que nem todos os problemas requerem soluções de Deep Learning., tente analisar o problema e ver se ele pode ser resolvido usando algoritmos tradicionais., vai economizar muita energia e recursos, pelo contrário, você pode escolher uma solução de aprendizado profundo.

1. Uma linguagem de programação adequada para IA / ML / DL

Eu sei que você pode estar se perguntando por que estou dizendo isso quando você já deve saber, mas escolher a linguagem de programação é a primeira tarefa que o coloca no caminho do aprendizado profundo. Linguagens comuns preferidas para DL são Python e R (pessoalmente eu uso python).

64742python_r-1212278
Fonte: Datacamp.com

Ambas as línguas têm suas especialidades, não é como quando você usa um, você pode ignorar completamente o outro, saber de ambos é a cereja do bolo. Quando você começa a aprender qualquer uma dessas linguagens de programação, tente se concentrar totalmente em um idioma e depois de dominá-lo, outro será muito fácil para você. Tente dominar o máximo de bibliotecas que puder, uma vez que isso é feito, é muito fácil para você trabalhar em projetos do mundo real.

Problemas enfrentados:

Enquanto qualquer pessoa começa a aprender uma linguagem de programação, o principal problema que você enfrenta é o conhecimento dos recursos que irão reduzir o processo de aprendizagem. Eu também enfrentei o mesmo problema ao fazer o mesmo. A maneira como eu dominei a linguagem Python foi concluindo as aulas primárias de learnpython.org e eles concluindo várias aulas em vídeo da Udemy e Coursera. Uma sugestão importante que você certamente faria é não assistir a aulas em vídeo apenas para obter certificados e desfrutar de seu perfil vinculado, vê-los, obter insights que eventualmente o ajudarão a ser um desenvolvedor melhor.

2. Fundamentos de computação e estruturas de dados

Conheça algoritmos de aprendizado de máquina / Aprendizado profundo não é suficiente, você também precisará de conhecimento de habilidades de engenharia de software, como estruturas de dados, ciclo de vida de desenvolvimento de software, Github, algoritmos (classificação, busca e otimização).

50869computer_science-3034540
Fonte: reachcambridge.com

Quando você trabalha em qualquer projeto no mundo real, o cliente não precisaria de nenhum modelo de aprendizado de máquina, o que seria necessário é uma solução na forma de um serviço ou aplicativo para o qual você precisa ter uma compreensão mais profunda desses conceitos.

Problemas enfrentados:

A maioria dos entusiastas da ciência de dados pensa que se eles vão trabalhar no campo da IA / ML / DL só terá que aprender um monte de algoritmos que eles obterão em algum pacote de qualquer maneira, e outros conceitos não são uma estrutura de dados muito importante espacialmente. Então, deixe-me deixar uma coisa clara para você ao trabalhar em qualquer projeto ao vivo, onde você terá que otimizar seu código para ser mais eficiente em memória e tempo., e sempre que falamos sobre eficiência, a estrutura de dados aparece. O que mais, ao trabalhar em projetos ao vivo, deve trabalhar em prazos, para entregar projetos aos clientes dentro do prazo, deve ter uma compreensão adequada do SDLC. Também estudei esses conceitos apenas na faculdade e quando estava trabalhando na POC (Prova de conceitos) também não tinha uma compreensão adequada desses conceitos no mundo real, mas desde que tenho feito parte de alguns projetos, esses conceitos ficaram claros para mim. , então, se você conhece esses conceitos e tem medo de não saber como aplicá-los no mundo real, não se preocupe, pois você aprenderá apenas quando fizer parte de um projeto.

3. Matemática para Aprendizado de Máquina

Se você é um engenheiro de software, pode facilmente codificar qualquer solução, mas quando se trata de aprendizado de máquina, você deve ter uma compreensão dos conceitos matemáticos e estatísticos que o ajudarão a analisar qualquer algoritmo e ajustá-lo de acordo com suas necessidades.

51631matemática-5848840
Fonte: theconversation.com

Para o Treinamento y la inferencia también necesitará tener conocimiento de conceptos como Gradient Descent, Matrizes de distância, Quer dizer, Mediana e Modo, etc.

Problemas enfrentados:

Segundo eu, Isso é algo importante que alguém deve aprender antes de entrar no campo do Deep Learning. A maioria de nós pensa que quando a maioria dos algoritmos já estão implementados e vamos aplicá-los a diferentes campos, Por que aprender conceitos matemáticos? Então, como eu experimento toda vez que você trabalha em qualquer algoritmo de aprendizado profundo, você terá que ajustá-lo de acordo com o seu caso de uso e para isso, você precisa desses conceitos. Já trabalhei em vários projetos e, Atenciosamente, a 95% da época, esses conceitos foram úteis para eu ajustar o algoritmo, o outro 5% Eu usei algoritmos como estão.

4. Serviços de implantação e tecnologia de interface de usuário / interface de usuário

Quando você tiver sua solução de aprendizado de máquina pronta, você precisa representá-lo para outras pessoas na forma de alguns gráficos ou visualizações porque a pessoa para a qual você está explicando pode não ter o conhecimento desses algoritmos e o que ela deseja é a solução de trabalho para o seu problema. . Então, o que pode melhorar este processo de desenvolvimento é o conhecimento de qualquer tecnologia de interface de usuário como Django, Flask y, Sim é necessário, JavaScript, seu código de aprendizado de máquina seria o back-end, enquanto você criará um frontend para o mesmo.

32127frontend-7662796
Fonte: yashints.dev

Assim que a solução completa estiver pronta, você precisa implementar essa solução em algum lugar, então você precisa aprender tecnologias como o Apache, Wamp, etc.

Problemas enfrentados:

Esta tecnologia é essencial para trabalhar em projetos de Deep Learning, se você faz parte de uma organização muito grande, existem desenvolvedores de front-end e back-end dedicados, então não se preocupe se você trabalha apenas na parte de back-end, mas se você faz parte de uma pequena organização. ou uma pequena equipe, você provavelmente terá que lidar com o desenvolvimento de front-end e back-end.

5. conhecimento de plataformas de computação em nuvem

À medida que avançamos na tecnologia, a quantidade de dados está aumentando enormemente, você não pode gerenciar esses dados em seu servidor local, então ele deve migrar para tecnologias de nuvem. Essas plataformas fornecem serviços muito bons, desde a preparação de dados até o desenvolvimento de modelos.

26721cloud_computingjpg-1548125
Fonte: Forbs.com

Algumas dessas plataformas de computação possuem algumas soluções baseadas em Deep Learning que são de ponta. As plataformas preferidas são AWS e Azure e você também pode experimentar o Google Cloud.

Estas são as tecnologias que devemos aprender enquanto trabalhamos como engenheiros de aprendizagem profunda, claro, também pode aprender outras tecnologias, mas estes são os essenciais.

Problemas enfrentados:

Trabalhar em computação em nuvem pode ser difícil, pois você terá que trabalhar nesta tecnologia enquanto trabalha em outras 4 tecnologias, mas se você estiver interessado em aprender algumas coisas adicionais, isso certamente é para Deep Learning Engineer.

Recurso:

Você pode usar os seguintes recursos para começar a aprender essas tecnologias:

Linguagem de programação: https://www.learnpython.org/

Estrutura de dados: https://www.geeksforgeeks.org/data-structures/

Matemática para Aprendizado de Máquina: https://www.coursera.org/specializations/mathematics-machine-learning

Tecnologias de front-end: https://www.djangoproject.com/start/, https://www.fullstackpython.com/flask.html

Tecnologias de nuvem: https://aws.amazon.com/getting-started/, https://docs.microsoft.com/en-us/learn/azure/

Obrigado por ler este artigo. Se você aprendeu algo novo, fique à vontade para comentar! Até a próxima! !!! ❤️

A mídia mostrada neste artigo não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker