Machine Learning Para Leigos
Durante algum tempo tenho trabalhado na area de desenvolvimento de software, fiz desde desenvolvimento de aplicações moveis (nativas e usando frameworks) até desenvolvimento de APIs e otimização de base de dados.
Recentemente decidi focar minhas energias nesse grande tópico, Machine Learning, e durante o processo partilhar com a comunidades todo aprendizado ou material que julgue importante.
Porquê desse título?
Não se sinta inferiorizado ou ofendido pelo tema se está aqui a ler o presente artigo, a razão do tema meio controverso é mesmo apresentar os tópicos presentes nesse artigo de forma mais básica possível, que até minha irmãzinha de 5 anos consiga entender depois de algumas leituras.
E a confusão começa!
Afinal o que realmente é Machine Learning? Pensei que fosse a mesma coisa que Artificial Intelligence. Ainda temos algo chamado Deep Learning? No início da minha pesquisa, fiz estes a muitos outros questionamentos, difícil entender logo no início afinal qual é a diferença entre ML e AI.
Vamos começar pelo básico, as definições:
Machine Learning é o campo de estudo que dá aos computadores a capacidade de aprender sem serem explicitamente programados.
1959 Arthur Samuel
Mas o que isso significa? Quando tentamos resolver um problema com base na programação tradicional, basicamente escrevemos uma função de tal forma que com os parâmetros fornecidos ao computador ele apresente uma solução. Contudo, Machine Learning funciona de maneira diferente, o que fornecemos ao computador são os parâmetros e o resultado esperado de tal forma que ele desenhe (ou descubra) a função. o que o computador faz na verdade é encontrar padrões nos dados fornecidos de tal forma que ele consiga prever o resultado de dados que lhe serão dados futuramente com base na experiência adquirida.
Bem, prometi que até minha irmãzinha de 5 anos devia entender os conceitos apresentados nesse artigo, então vamos a um exemplo de modo que seja fácil perceber.
Vamos imaginar que queremos que o computador (máquina) prepare uma refeição deliciosa para nós, nesse caso, teríamos de fornecer ao computador os parâmetros (ingredientes), a função (modo de preparo) para que ele apresente o resultado esperado (Prato principal, ou frango com batatas fritas se preferir :)).
Para cada prato principal que quiséssemos que a máquina preparasse, teríamos de sempre fornecer os ingredientes e o modo de preparo. Machine Learning funciona de forma um pouco diferente.
Olhando para o exemplo acima, se quiséssemos resolvê-lo usmado Machine Learning, forneceríamos a máquina um conjunto de resultados (pratos principais) e os seus respetivos ingredientes (parâmetros) de modo que a máquina aprendesse o modo de preparo dos alimentos para produzir os nossos pratos principais. Depois de treinada, a nossa máquina seria capaz de com apenas os ingredientes (parâmetros) apresentar o modo de preparo adequado dos alimentos para ter como resultado os nossos pratos deliciosos. Isso sim é Machine Learning.
Agora vamos falar um pouco sobre AI.
Artificial Intelligence (AI) é a capacidade de um computador ou máquina de executar tarefas que normalmente requerem inteligência humana. Artificial Intelligence engloba muitas outras disciplinas para simular o processo de pensamento com sucesso. Além de Machine Learning a Artificial Intelligence normalmente inclui:
Processamento de Linguagem Natural: Permite a entrada de linguagem e colocar em uma forma que um computador possa usar.
Compreensão de Linguagem Natural: Decifra a linguagem de forma a coletar o ensinamento fornecido.
Representação de conhecimento: Habilidade de organizar a Informacao de forma que seja possível o seu acesso rápido.Robótica: Habilidade de responder a requisições de utilizadores de alguma forma física.
Essas são apenas algumas disciplinas que compõem AI, Machine Learning é apenas uma Porcão do que um sistema precisa para ser considerado AI. Pensa no que forma a sua inteligência, ela é formada com base nos aprendizados que tens com o andar do tempo (Machine Learning), mas para que essa experiência se acumule até formar um aprendizado, vários outros elementos devem entrar na jogada.
Por favor, olhe com atenção a imagem abaixo.
O que representa essa image?
Espero que a sua resposta tenha sido Caderno (Livro de anotações) ou algo parecido, caso contrário eu estaria um pouco preocupado :). Mas voltando ao que interessa, porque a sua resposta foi essa? e não tapete, a sua resposta baseou-se na sua experiência, a exposição que ja teve durante a sua vida permite que consiga com facilidade encontrar todas as propriedades que tornam um caderno diferente de um tapete, essa mesma logica é aplicada nas máquinas, nós expomos elas a um conjunto de dados necessários de forma que a máquina consiga encontrar esses padrões.
E agora Deep Learning?
Pense no Deep Learning como uma evolução do Machine Learning. Deep Learning é uma técnica de Machine Learning que coloca algoritmos e unidades de computação — ou neurônios — no que é chamado de rede neural artificial. Essas redes neurais se inspiram na estrutura do cérebro humano. Os dados passam por essa teia de algoritmos interconectados de maneira não linear, assim como nosso cérebro processa informações.
Então basicamente, se fosse para representar todo conhecimento adquirido nesse artigo numa imagem seria a seguinte:
Vamos dar uma pausa
Por questão de simplicidade, muitos termos técnicos e muitos conceitos foram colocados de lado nesse artigo, com certeza escreverei artigos mais técnicos e mais específicos. Precisamos ainda discutir a aplicabilidades de ML atualmente e os diferentes algoritmos usados nos dias de hoje.
Se o tema lhe interessa continue por favor a acompanhar os meus artigos que mais conteúdo vem por aí, partilhe o presente artigo com o maior número de amigos de modo a garantir o crescimento da comunidade de Machine Learning.