Não é necessário aprender Machine Learning

Aprenda a criar software usando modelos de aprendizado de máquina


imagem

Isenção de responsabilidade: Este artigo é baseado apenas nas minhas observações de equipes de desenvolvimento no campo de aprendizado de máquina e não é o resultado de uma revisão científica da indústria. Para referência, estou ajudando a desenvolver o Cortex , uma plataforma de código aberto para lançar modelos em produção.

Se você é um desenvolvedor, pelo menos tem um interesse passageiro no aprendizado de máquina. O conceito de um algoritmo que os alunos aprendem a fazer previsões mais tarde é simplesmente ... legal.

No entanto, se você decidir começar a estudar ML seguindo todos os cânones, é provável que, depois de duas semanas de álgebra linear e análise multivariada, saia desta lição.

A razão reside no fato de que a maioria dos materiais introdutórios sobre ML está focada não nos desenvolvedores, mas nos pesquisadores - o que é um problema para os desenvolvedores que desejam apenas criar produtos de aprendizado de máquina.

Deseja criar produtos ou pesquisar?


Até o final dos anos 2000, o aprendizado de máquina era quase exclusivamente um problema de pesquisa. Simplesmente não havia muitas empresas que realmente usariam o aprendizado de máquina na produção.

Assim, muitos dos materiais de familiaridade disponíveis no aprendizado de máquina são baseados em uma abordagem de pesquisa. Tudo começa com uma explicação das redes neurais do ponto de vista matemático e a teoria subjacente ao aprendizado de máquina. Coisas são dadas, como o método de propagação de retorno e redes adversárias.

Até os materiais não relacionados à universidade, em certa medida, seguem esse padrão. Por exemplo, isso é retirado diretamente da biblioteca "Início rápido para iniciantes" do TensorFlow:

imagem

Se você acha que estou agindo de forma seletiva, sugiro que leia o seguinte .

Se você já conhece o aprendizado de máquina subjacente da matemática ou gosta de estudá-lo, essa abordagem é adequada para você. No entanto, se você estiver interessado principalmente em criar coisas com o aprendizado de máquina, provavelmente não é exatamente isso que você está procurando.

Usar a programação como um complemento à matemática é o mesmo que aprender a escrever código aprendendo primeiro o assembler. Nenhum desenvolvedor aprenderá dessa maneira.

Nota: Se você de alguma forma aprendeu a codificar na linguagem assembly, admito todos os comentários ruins do meu lado e estou impressionado por ter encontrado um navegador em sua distribuição Linux indistinta.

Quando você aprendeu a codificar, provavelmente fez isso escrevendo “olá mundo” em um idioma de alto nível. Então, à medida que os projetos se tornaram mais complexos, você começou a estudar programação de baixo nível.

Esse modelo de treinamento é bem-sucedido entre as pessoas que criam software porque define claramente as prioridades ao trabalhar em um projeto. Se você está mais interessado em criar um sistema de recomendação do que em publicar um artigo, é assim que você deve abordar o estudo do aprendizado de máquina.

Como aprender ML criando software


Se você é o tipo de pessoa que aprende melhor por meio de cursos, o melhor recurso para promover essa abordagem de cima para baixo para aprender e processar o trabalho com o ML é o curso em fast.ai Aprendizagem profunda prática para codificadores .

O objetivo do artigo não é anunciar fast.ai, mas vale a pena notar que os fundadores da plataforma (Jeremy Howard e Rachel Thomas) organizaram vários cursos para desenvolvedores com treinamento profundo, que literalmente forçam a criar coisas, aprofundando-se na teoria principal, uma vez que diretamente conectado com o projeto. Para entender melhor o estilo de aprendizagem deles, assista a um vídeo de Rachel Thomas.



Por outro lado, se você pertence ao tipo de pessoa que estuda melhor imergindo e criando coisas por conta própria, pode começar a dominar o aprendizado de máquina como em qualquer outro campo da programação. Basta escolher um projeto que lhe interessa - montei uma lista gigante de projetos de processamento de linguagem natural para iniciantes - escolha.

Para entender melhor o que é a criação de software com ML (se você seguir esse caminho):

  1. Defina uma meta, por exemplo, crie preenchimento automático para um campo de texto ou identificador de placa.
  2. Encontre um modelo pré-preparado adequado para o seu projeto - os modelos GPT-2 ou YOLOv3 também funcionarão com os projetos mencionados anteriormente.
  3. Se desejar, você pode usar a biblioteca como gpt-2-simple para ajustar (personalizar com seus próprios dados) seu modelo.
  4. Por fim, implante o modelo como um microsserviço.


Depois que o modelo é implantado como uma API, você pode solicitá-lo, como qualquer outro serviço da Web, e criar seu aplicativo em torno dele.

Você pode ver a aplicação real desse processo em um projeto criado por um engenheiro de aprendizado de máquina solo.



Graças a esse método de aprendizado, você pode se familiarizar com várias arquiteturas populares de modelos, aprender sobre outras abordagens do aprendizado de máquina e para quais aplicativos eles se destinam. Igualmente importante é o fato de você aprender sobre a infraestrutura de aprendizado de máquina necessária para criar produtos do mundo real com base em modelos.

Assim que você puder criar produtos baseados em ML, comece a aprender teoria


Como engenheiro, você provavelmente já implementou alguma forma de autenticação anteriormente, o que significa que você (espero) hash senhas.

Ao configurar o hash de senha, você escreveu um algoritmo de hash personalizado? Você passou várias semanas estudando criptografia? Ou você acabou de usá-lo bcrypt?

Da mesma forma, quando você criou seu primeiro aplicativo Web, estudou o banco de dados por várias semanas? Você escreveu do zero? Ou você usou o ORM aleatório da sua estrutura favorita?
A mesma lógica se aplica ao aprendizado de máquina. Se você é uma pessoa que gosta de criar software, comece criando um software de aprendizado de máquina e permita-se se desvencilhar da teoria subjacente do ML usando ferramentas, modelos pré-preparados e estruturas de aprendizado de máquina. Então, se você estiver interessado ou se seu projeto exigir mais complexidade, vá mais fundo para ver como tudo funciona.



imagem
Aprenda os detalhes de como obter uma profissão procurada desde o início ou suba de nível em habilidades e salário fazendo cursos on-line SkillFactory:



Consulte Mais informação



All Articles