Tópico feito por Gustavo Vinícius Paulino. ====== O que é Aprendizado de Máquina ====== Aprendizado de máquina, ou //Machine Learning//, é a área do desenvolvimento de algoritmos onde os computadores são utilizados para realizar tarefas sem instruções explícitas, sendo “ensinados” a partir do reconhecimento de padrões em **muitos** e diferentes dados. Tendo em vista esses aspectos, o computador pode receber diversos exemplares de dados e, então, identificar os padrões e as relações entre eles. Assim, quando a máquina receber dados desconhecidos, ela tentará definir características e antecipar comportamentos sobre eles, se baseando nos modelos e conexões que aprendeu anteriormente. Quanto maior o número de informações utilizadas para ensinar o computador - chamadas de conjunto de treinamento ou dados de treinamento (//training set// ou //training data//) - maior será a precisão do modelo criado a partir da instrução do algoritmo. ====== Por que o Aprendizado de Máquina é importante ====== A interpretação de dados é essencial para a tomada de decisões sobre um cliente para uma empresa. Por conta do grande volume de dados existentes necessários e a necessidade de obtê-los a partir de diferentes fontes, é muito difícil para uma empresa analisar essas informações e tomar integralmente decisões sem o aprendizado de máquina. O //Machine Learning// automatiza e otimiza esse processo. Ao usar um software que analisa grandes volumes de dados em alta velocidade, as empresas podem obter resultados mais rapidamente. ====== O funcionamento do Aprendizado de Máquina ====== ===== Aprendizado Supervisionado ===== No aprendizado supervisionado, cada exemplo dos dados de treinamento é composto por uma entrada (//input//) e a sua saída correspondente (//output//). Essas entradas (também chamadas de //features//) podem ser vistas como variáveis ou atributos que levam a um //label// (rótulo), que seria a saída vinculada a aquela variável. É dito que no aprendizado supervisionado os dados de treinamento estão rotulados, já que cada entrada está vinculada a uma saída específica. Dois algoritmos de aprendizado supervisionado são os de **classificação** e **regressão**. **No algoritmo de classificação**, existe um número limitado de rótulos, ou //labels//, para serem vinculados as //features//. Um exemplo de um modelo de classificação, seria um modelo para detectar se um email deve ir para a caixa de spam ou para a caixa de entrada. Baseado no treinamento com exemplo de features que levam um email a receber a label spam ou caixa de entrada, o modelo aprende a diferenciar um tipo de email do outro e consegue classificá-lo com uma das //labels// existentes. **No algoritmo de regressão**, o objetivo é treinar um modelo para que ele entenda a relação entre uma variável independente, uma //feature//, e uma variável dependente, uma saída, e então possa aplicar essa relação em novas entradas que não foram vistas durante o treinamento. Assim como no modelo de classificação, os dados de treinamentos são rotulados, então cada //feature// dos dados passados ao computador possuem uma //label//. Então, baseado nos dados de treinamento, o modelo consegue definir a relação entre as entradas e as saídas. Ao contrário do modelo de classificação, o modelo de regressão pode ter infinitas //labels// a partir de suas //features//. Um exemplo de modelo de regressão é dado abaixo: - O modelo recebe como dados de treinamento o conjunto de features X = {x1: 1, x2: 2, x3: 3} e o conjunto de labels Y = {y1: 2, y2: 4, y3: 6}, onde a feature xn possui como label yn, sendo n a posição do elemento dentro do seu conjunto. - Ao analisar esses dados de treinamento, o modelo aprende que a relação entre a variável independente x, a feature, e a variável dependente y, a label, é y = 2 * x. - Agora, se o modelo receber como entrada o valor 5, ele atribuirá como saída correspondente o valor 10. Aqui, o objetivo é fazer previsões sobre futuras saídas com alta precisão. No entanto, rotular as features é um processo caro, demorado e que exige um profissional, ainda mais quando se tem um grande volume de dados. ===== Aprendizado Não Supervisionado ===== No aprendizado de máquina não supervisionado, o modelo recebe como dados apenas os //inputs//, ou //features//, não rotulados. Por não serem rotuladas, essas //features// não possuem uma //label// correspondente. A ideia principal é que o modelo analise e agrupe esses conjuntos de dados para detectar padrões e grupos escondidos sem a intervenção humana. **Agrupamento**, ou //clustering//, é uma técnica para agrupar //unlabeled data// (dados sem rótulos), em grupos a partir de padrões e semelhanças em suas informações. O próprio modelo decide como agrupar esses dados. Alguns métodos para agrupar unlabeled data são: //Exclusive Clustering// (Agrupamento Exclusivo), //Overlapping Clustering// (Agrupamento Sobreposto), //Hierarchical Clustering// (Agrupamento Hierárquico). **Associação**, ou //association//, é uma técnica que descobre relações entre diferentes //unlabeled data// num conjunto de dados. **Redução de dimensionalidade**, ou //dimensionality reduction//, é uma técnica de aprendizado de máquina não supervisionado para diminuir o volume de //features// num conjunto de dados quando o volume é muito alto. Essa técnica mantém a integridade dos dados. No Aprendizado Não Supervisionado, o objetivo é extrair informações que seriam de difícil ou demorada percepção por humanos. Por lidar com //unlabeled data//, a taxa de precisão pode ser menor se comparada com a do Aprendizado Supervisionado se não tiver uma intervenção humana para validar os resultados. ===== Aprendizado de Máquina Supervisionado vs Não Supervisionado ===== * No aprendizado supervisionado, o objetivo principal é fazer previsões precisas sobre as saídas para os dados. Já no não supervisionado, o objetivo é extrair informações sobre o conjunto de dados e o próprio modelo decide como ele fará isso. * Aprendizado supervisionado possui menor complexidade. Aprendizado não supervisionado são mais complexos porque necessitam de um grande conjunto de dados de treinamento para chegar a previsões desejadas e precisam de ferramentas poderosas para lidar com o alto volume de dados * As //labels// para o aprendizado supervisionado devem ser escolhidas corretamente, exigem tempo e o modelo exige tempo para ser treinado. Por outro lado, aprendizado não supervisionado pode gerar resultados sem precisão se não tiverem intervenção humana. ===== Aprendizado Semi-Supervisionado ===== O aprendizado de máquina semi-supervisionado se baseia na ideia de passar uma pequena quantidade de //labeled data// (dados rotulados) para aumentar a precisão de um modelo não supervisionado. Inicialmente, o modelo é treinado parcialmente com os dados rotulados e depois ele mesmo rotula os dados não rotulados (esse processo é chamado de pseudo-rotulagem) Com esse método, não é preciso que se tenha uma abundância de dados rotulados e a precisão aumenta. ====== Inteligência Artificial e Aprendizado de Máquina ====== É importante saber que o Aprendizado de Máquina se trata de uma subárea, ou método, da Inteligência Artificial, área que busca fazer computadores emularem “tarefas humanas”, que é responsável por produzir modelos capazes de aprender a partir de dados. ====== Vantagens do Aprendizado de Máquina ====== * Identificam tendências e padrões de dados que os humanos podem perder * Conseguem trabalhar sem intervenção humana constante após serem configurados * É escalável já que quanto maior a quantidade de dados disponíveis, maior será a precisão. ====== Desvantagens do Aprendizado de Máquina ====== * O treinamento inicial é caro e demorado. É preciso uma grande quantidade de dados * Pode ser difícil interpretar os resultados corretamente e eliminar a incerteza sem a ajuda de um especialista. ====== Como começar no Aprendizado de Máquina? ====== São requisitos para aprender Aprendizado de Máquina conhecimentos matemáticos como Álgebra Linear, Cálculo com múltiplas variáveis e Estatística. Python é a linguagem mais utilizada no aprendizado de máquina. A partir disso, se deve aprender os conceitos do //Machine Learning//, como termos e os tipos de aprendizado de máquina. ====== Grandes Nomes ====== {{:a:arthur_l_samuel.jpg?200|}} ** Arthur Lee Samuel ** Arthur foi pioneiro na pesquisa em inteligência artificial, e em 1959 popularizou o termo "Aprendizagem de máquina". Seu principal trabalho de pesquisa foi o desenvolvimento de uma IA que eventualmente em 1961, conseguiu vencer do Campeão estadual de Damas do estado americano de Connecticut. Em 1987, ganhou o prêmio de Pioneiro da Computação do Institute of Electrical and Electronics Engineers (IEEE) por Processamento não numérico adaptativo. {{:a:fei-fei-li_profilephoto_1_.jpg?200|}} ** Fei-Fei Li ** Li é Professora de Ciência da Computação pela Universidade de Stanford, na Califórnia. Já publicou cerca de 200 artigos científicos e atualmente trabalha no Campo de Pesquisa sobre sistemas inteligentes para prestação de serviços de saúde. De Janeiro de 2017 até Setembro de 2018, foi Vice-Presidente da Google e Atuou como Chief-Scientist de Inteligência Artificial/Aprendizagem de máquina na Google Cloud. ---- ====== Fontes ====== - **O que é machine learning?**, por Amazon AWS. Disponível em: [[https://aws.amazon.com/pt/what-is/machine-learning/]] - **Machine Learning: O que é e qual sua importância?**, por SAS. Disponível em: [[https://www.sas.com/pt_br/insights/analytics/machine-learning.html]] - **Os Três Tipos de Aprendizado de Máquina**, por Hugo Honda, Matheus Facure e Peng Yaohao. Disponível em: [[https://lamfo-unb.github.io/2017/07/27/tres-tipos-am/]] - **Dicas de aprendizado supervisionado**, por Afshine Amidi e Shervine Amidi. Disponível em: [[https://stanford.edu/~shervine/l/pt/teaching/cs-229/dicas-aprendizado-supervisionado]] - **Aprendizado Supervisionado ou Não Supervisionado**, por Didática Tech. Disponível em: [[https://didatica.tech/aprendizado-supervisionado-ou-nao-supervisionado/]] - **How to Start Learning Machine Learning**, por GeeksforGeeks. Disponível em: [[https://www.geeksforgeeks.org/how-to-start-learning-machine-learning/]] - **Computer Scientist Explains Machine Learning in 5 Levels of Difficulty | WIRED**, por WIRED. Disponível em:[[https://www.youtube.com/watch?v=5q87K1WaoFI&t=1227s]] - **Tutorial 73 - What are features in machine learning?**, por Apeer Micro. Disponível em: [[https://www.youtube.com/watch?v=40Fm-E2hITM&t=191s]] - **How Machine Learning Works**, por DataRoboot. Disponível em: [[https://www.datarobot.com/blog/how-machine-learning-works/]] - **Unsupervised Learning**, por IBM Cloud Education[[https://www.ibm.com/cloud/learn/unsupervised-learning#toc-applicatio-omDVIJIs]] . - **Supervised vs. Unsupervised Learning: What's the Difference**, por Julianna Delua, SME, IBM Analytics, Data Science/Machine Learning[[https://www.ibm.com/cloud/blog/supervised-vs-unsupervised-learning]] - **Machine Learning**, por Wikipedia contributors [[https://en.wikipedia.org/wiki/Machine_learning]] - **Biografia de Arthur Samuel, IEEE:** https://www.computer.org/profiles/arthur-samuel - **Biografia de Fei-Fei Li, Universidade de Stanford:** https://profiles.stanford.edu/fei-fei-li