Bora entender por que o Machine Learning (aprendizado de máquina) é TÃO importante? Sacar o valor dessa área e dos seus métodos vai te ajudar a filtrar o que realmente importa e focar nas paradas que cumprem o que prometem! 😉
Ele te dá as ferramentas pra gerar uma solução pra esses problemões complexos, só que mais rápido, mais preciso e numa escala muito maior do que se a gente fosse programar tudo na mão. Demais, né? 🤯
Escrever programas num computador geralmente é tipo automatizar uns processos em cima de uns dados pra gerar um resultado. Quase sempre é uma coisa linear, passo a passo e lógica.
Um programa tradicional é escrito numa linguagem de programação seguindo umas regras, e ele tem umas paradas assim:
- Você sabe ou consegue controlar o que entra no programa.
- Você consegue dizer exatamente como o programa vai alcançar o objetivo dele.
- Você consegue mapear todas as decisões que o programa vai tomar e em quais situações.
- Você consegue testar seu programa e ter certeza de que, como você sabe o que entra e o que sai e testou todas as situações, ele vai fazer o que tem que fazer.
Só que tem uns problemas que a gente tenta botar no computador, mas não rola de escrever um programa tradicional pra resolver. Eles não abrem pra uma solução passo a passo e lógica. Eles têm umas características assim:
- A gente nem sabe tudo que pode entrar no programa de antemão.
- A gente não consegue dizer exatamente como chegar no objetivo do programa, só qual é o objetivo final.
- A gente não consegue mapear todas as decisões que o programa vai precisar tomar pra alcançar o objetivo.
- A gente consegue juntar uns exemplos de dados que vão entrar no programa.
Esses problemas são osso duro de roer pra programação tradicional porque dizer pro computador, na mão, como resolver, ia gastar uma quantidade absurda de tempo e esforço. 💸
Se você é Dev, e talvez um Dev experiente, isso pode parecer meio bizarro, até inacreditável. Como programadores, a gente acredita que se a gente consegue definir o que um programa precisa fazer, a gente confia que consegue definir como ele vai chegar lá. Mas nem sempre é assim! 😉
Um exemplo de um problema do dia a dia que não abre pra gente resolver na mão é decidir se um e-mail é “spam” ou “não spam”.
Como você escreveria um programa pra filtrar os e-mails que chegam na sua caixa e decidir se manda pra lixeira ou pra caixa de entrada?
Dá uma olhada no que eu pensei em fazer:
- Juntar uns exemplos de e-mails que eu sabia que eram spam ou não.
- Ler esses e-mails e anotar os padrões que eu vi em cada grupo de dados.
- Transformar esses padrões em regras mais gerais que eu pudesse programar.
- Procurar e-mails que eu pudesse classificar rapidinho e com certeza como spam ou não spam.
- Escrever uns testes pro meu programa pra garantir que ele tava tomando as decisões certas.
- Ficar de olho no sistema rodando e nas decisões que ele tava tomando.
Eu até conseguiria escrever um programa pra fazer isso, e você também conseguiria. Só que:
- Ia levar MUITO tempo
- Ia ter que ler MUITO e-mail
- Ia ter que pensar MUITO fundo no problema
- Ia gastar MUITO tempo desenvolvendo e testando
- Depois de tudo isso, ia ser um PESADELO pra dar manutenção
A real é que esse processo que eu descrevi também é tipo uma solução de Machine Learning pro problema de separar spam de não spam. A grande sacada é que os métodos de Machine Learning conseguem automatizar esse processo pra você! 🤯
Pensar nesses problemas complexos desse jeito é uma habilidade SUPER valiosa que vai te ajudar MUITO lá na frente, na hora de preparar os dados e escolher o método de Machine Learning certo. Pensar em “como eu escreveria um programa na mão pra resolver isso…” é uma habilidade master que muita gente esquece. 😉
A área do Machine Learning te dá as ferramentas pra tomar decisões automaticamente a partir dos dados, pra alcançar algum objetivo ou fazer o que precisa ser feito.
Quatro motivos que mostram isso são:
Você aprendeu que a promessa do Machine Learning é que ele consegue resolver esses tipos de problemas automaticamente, mais rápido, com mais precisão do que uma solução feita na mão e numa escala muito maior.
Quais são uns problemas complexos que você acha que não abrem pra gente resolver programando na mão? Deixa um comentário aí embaixo! 😉