{"id":12986,"date":"2018-03-16T09:17:31","date_gmt":"2018-03-16T12:17:31","guid":{"rendered":"https:\/\/king.host\/blog\/?p=12986"},"modified":"2024-06-03T17:01:47","modified_gmt":"2024-06-03T20:01:47","slug":"machine-learning-uma-introducao","status":"publish","type":"post","link":"https:\/\/king.host\/blog\/glossario\/machine-learning-uma-introducao\/","title":{"rendered":"Machine Learning: Uma Introdu\u00e7\u00e3o"},"content":{"rendered":"<p><strong>Machine Learning \u00e9 um subcampo de Intelig\u00eancia Artificial (IA)<\/strong> e tem como principal abordagem a de aprender atrav\u00e9s da experi\u00eancia para encontrar padr\u00f5es em conjunto de dados.<\/p>\n<p>Envolve ensinar um computador, atrav\u00e9s de exemplos, a reconhecer padr\u00f5es em vez de program\u00e1-lo com regras espec\u00edficas.<\/p>\n<h2>Exemplo de Machine Learning<\/h2>\n<p>Vamos a um exemplo para tornar a defini\u00e7\u00e3o acima mais clara, digamos que um programa de e-mail fique observando quais os e-mails que chegam e s\u00e3o marcados pelo usu\u00e1rio como spam ou n\u00e3o spam para aprender dessa forma filtrar melhor os pr\u00f3ximos.<\/p>\n<p>Logo, nosso <strong>T (Tarefas) seria a de classificar emails como spam ou n\u00e3o spam<\/strong>, nosso <strong>E (Experi\u00eancia) seria a observa\u00e7\u00e3o sobre a rotula\u00e7\u00e3o de e-mails como spam ou n\u00e3o spam<\/strong> e nosso <strong>P (Performance) seria a medida de e-mails corretamente classificados como spam ou n\u00e3o spam<\/strong>.<\/p>\n<p>Sendo assim, nosso classificador aprenderia a filtrar melhor, reconhecendo os padr\u00f5es de Spam ou n\u00e3o Spam, atrav\u00e9s da medida de erros que obtivesse e da experi\u00eancia adquirida, quanto maior a experi\u00eancia, mais chance de a performance ser melhor e ser mais assertivos quanto marcar corretamente um e-mail como Spam ou n\u00e3o Spam.<\/p>\n<p>O exemplo a seguir \u00e9 apenas uma representa\u00e7\u00e3o bem simples do que seria um programa normal e suas regras e outro com Machine Learning.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\"># programa tradicional\nif \"Promo\u00e7\u00e3o\" in email:\n    marque_como_spam()\nif \"ofertas\" in email:\n    marque_como_spam()\nif \"b\u00f4nus\" in email:\n    ...<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\"># programa com machine learning\n\nfor emails:\n  classifique_emails(emails)\n  reduz_erros_aprende(performance)\n  ...<\/pre>\n<p>Em <strong>Machine Learning h\u00e1 tr\u00eas principais classifica\u00e7\u00f5es<\/strong> no que diz respeito aos algoritmos usados e o tipo de aprendizagem deles, s\u00e3o elas:<\/p>\n<ul>\n<li>Aprendizagem Supervisionada.<\/li>\n<li>Aprendizagem N\u00e3o Supervisionada.<\/li>\n<li>Aprendizagem Por Refor\u00e7o.<\/li>\n<\/ul>\n<p><strong>A<\/strong> <strong>escolha de qual das tr\u00eas usar<\/strong> <strong>vai depender do conjunto de dados que se tem e do problema que deseja resolver.<\/strong><\/p>\n<p>Em geral quase qualquer problema pode ser atribu\u00eddo a uma das duas classifica\u00e7\u00f5es: Aprendizagem Supervisionada e Aprendizagem N\u00e3o Supervisionada.<\/p>\n<h2>Machine Learning: Aprendizagem Supervisionada<\/h2>\n<p>A maioria das pr\u00e1ticas de Machine Learning utiliza a aprendizagem supervisionada.<\/p>\n<p>Na aprendizagem supervisionada<strong> \u00e9 dado um conjunto de dados<\/strong> e <strong>sabemos como deve ser o resultado correto de retorno<\/strong>, visto que entre a entrada e a sa\u00edda existe uma rela\u00e7\u00e3o, ou seja, voc\u00ea tem as entradas (X) e as sa\u00eddas (Y) e utiliza o algoritmo para a mapear a fun\u00e7\u00e3o de aprendizado que ir\u00e1 fazer a imagem da entrada (X) para a sa\u00edda (Y).<\/p>\n<p>Y =f(X)<\/p>\n<p><strong>O objetivo \u00e9 que quando voc\u00ea tenha uma nova entrada (X) seja poss\u00edvel prever qual \u00e9 a sa\u00edda (Y)<\/strong>, a partir do modelo produzido contendo regras aprendidas da fun\u00e7\u00e3o de aprendizado.<\/p>\n<p>\u00c9 chamado de Aprendizagem Supervisionada porque o <strong>processo de aprendizagem de um algoritmo em rela\u00e7\u00e3o ao conjunto de dados pode ser acompanhado<\/strong>, como um professor acompanhando o processo de aprendizado. Sabe-se as respostas certas, o algoritmo faz as predi\u00e7\u00f5es sobre o conjunto de dados e vamos corrigindo-o a medida que suas respostas n\u00e3o s\u00e3o de acordo o resultado esperado.<\/p>\n<p>Os problemas que envolvem a Aprendizagem Supervisionada podem ser agrupados em problemas de classifica\u00e7\u00e3o e\/ou regress\u00e3o.<\/p>\n<ul>\n<li><strong>Classifica\u00e7\u00e3o:<\/strong> em um problema de classifica\u00e7\u00e3o a sa\u00edda (Y) \u00e9 um valor entre 0 e 1, onde a aproxima\u00e7\u00e3o de 0 ou de 1 determinam o qu\u00e3o mais pr\u00f3ximo se encontra o que se \u00e9 avaliado, por exemplo, classificar um c\u00e2ncer se \u00e9 maligno ou benigno, se um email \u00e9 spam ou n\u00e3o \u00e9 spam.<\/li>\n<li><strong>Regress\u00e3o:<\/strong> em uma regress\u00e3o a sa\u00edda (Y) \u00e9 um valor real, exemplo o pre\u00e7o de uma casa em rela\u00e7\u00e3o a pre\u00e7os de casas vistas e seu tamanho ou mesmo o valor de um carro de acordo ano e modelo.<\/li>\n<\/ul>\n<h2>Machine Learning: Aprendizagem N\u00e3o Supervisionada<\/h2>\n<p>Na Aprendizagem N\u00e3o Supervisionada tem-se apenas a entrada (X) de dados e n\u00e3o a sa\u00edda (Y) correspondente.<\/p>\n<p><strong>O objetivo nesse caso \u00e9 modelar a estrutura ou distribui\u00e7\u00e3o subjacente dos dados para saber mais sobre os mesmos.<\/strong><\/p>\n<p>A Aprendizagem N\u00e3o Supervisionada \u00e9 chamada assim, porque n\u00e3o h\u00e1 um feedback com base nos resultados de previs\u00e3o como no caso anterior, na verdade n\u00e3o se sabe a sa\u00edda e n\u00e3o h\u00e1 um professor. Os algoritmos s\u00e3o deixados por seus pr\u00f3prios mecanismos para descobrir e apresentar a estrutura de dados, isso nos permite abordar problemas com pouca ou nenhuma ideia sobre os resultados.<\/p>\n<p>Problemas de Aprendizagem N\u00e3o Supervisionada podem ser agrupados em Agrupamento (Clustering) e Associa\u00e7\u00e3o (Association).<\/p>\n<ul>\n<li><strong>Agrupamento:<\/strong> em um problema de agrupamento deseja-se descobrir os grupos inerentes ao conjunto de dados, como agrupar clientes por comportamento de compras.<\/li>\n<li><strong>Associa\u00e7\u00e3o:<\/strong> em um problema de aprendizagem com regras associativas, deseja-se descobrir regras que descrevam grandes por\u00e7\u00f5es de seus dados, como pessoas que compram um determinado produto A, tendem a comprar o produto B.<\/li>\n<\/ul>\n<h2>Machine Learning: Aprendizagem Por Refor\u00e7o<\/h2>\n<p>Tentativa e erro, m\u00e9todo de recompensa para os acertos \u00e9 como podemos descrever a Aprendizagem Por Refor\u00e7o. <strong>Sua abordagem \u00e9 semelhante a de um beb\u00ea aprendendo coisas novas.<\/strong><\/p>\n<p>A m\u00e1quina n\u00e3o conhece nada no come\u00e7o. Ela ent\u00e3o tentar\u00e1 algo e, de acordo com os resultados, decidir\u00e1 se foi uma decis\u00e3o boa ou ruim. Ap\u00f3s in\u00fameras tentativas, se o modelo for bem aprendido, a m\u00e1quina se tornar\u00e1 melhor e melhor e, eventualmente, apenas tomar\u00e1 boas decis\u00f5es.<\/p>\n<p>Na Aprendizagem por refor\u00e7o um ambiente fornecer\u00e1 dados aos quais um \u201cagente\u201d ir\u00e1 tomar decis\u00f5es passo a passo de acordo eles. Esse ambiente ir\u00e1 responder com uma recompensa (que indicar\u00e1 se a a\u00e7\u00e3o foi boa ou n\u00e3o, estado da a\u00e7\u00e3o), essa recompensa determinar\u00e1 a altera\u00e7\u00e3o de regras de decis\u00e3o feita pelo \u201cagente\u201d para atuar melhor no futuro. <strong>O objetivo a longo prazo da aprendizagem por refor\u00e7o \u00e9 maximizar as recompensas.<\/strong><\/p>\n<p>A dificuldade reside no fato de que as a\u00e7\u00f5es tomadas pelo agente podem mudar o ambiente, e o agente pode obter sua recompensa muito tempo depois de sua a\u00e7\u00e3o. Ent\u00e3o, torna-se dif\u00edcil saber quais a\u00e7\u00f5es levaram a qual recompensa.<\/p>\n<p>Um bom exemplo de uso de aprendizagem por refor\u00e7o s\u00e3o para ensinar novos comportamentos aos rob\u00f4s, como no v\u00eddeo a seguir onde um rob\u00f4 est\u00e1 aprendendo a virar panquecas atrav\u00e9s da aprendizagem por refor\u00e7o.<\/p>\n<p><iframe src=\"https:\/\/www.youtube.com\/embed\/W_gxLKSsSIE\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Esse post fez uma pequena introdu\u00e7\u00e3o sobre as principais abordagens de Machine Learning, me refiro pequena porque dentro de cada uma delas existem v\u00e1rias fun\u00e7\u00f5es e algoritmos h\u00e1 aprender e utilizar em um problema que se deseja resolver. Espero que possa ajudar, a quem tem curiosidade sobre a \u00e1rea, a entender melhor seu esse mundo fascinante em minha opini\u00e3o. Para continuar acompanhando novidades a respeito deste e outros assuntos, siga o nosso <a href=\"https:\/\/king.host\/blog\/\" target=\"_blank\" rel=\"noopener noreferrer\">Blog da KingHost<\/a>. At\u00e9 breve!<\/p>\n<p><em>Fontes pesquisadas:<br \/>\n* <a href=\"https:\/\/www.coursera.org\/learn\/machine-learning\" target=\"_blank\" rel=\"noopener noreferrer\">Coursera<\/a><br \/>\n* <a href=\"https:\/\/docs.google.com\/presentation\/d\/1kSuQyW5DTnkVaZEjGYCkfOxvzCqGEFzWBy4e9Uedd9k\/mobilepresent?slide=id.g168a3288f7_0_58\" target=\"_blank\" rel=\"noopener noreferrer\">MachineLearning101<\/a><br \/>\n<\/em>* <a href=\"http:\/\/www.cs.cmu.edu\/~tom\/\" target=\"_blank\" rel=\"noopener noreferrer\">CS\/Tom<\/a><br \/>\n* <a href=\"https:\/\/www.saagie.com\/blog\/machine-learning-pour-les-grand-meres\" target=\"_blank\" rel=\"noopener noreferrer\">Saagie<\/a><br \/>\n* <a href=\"https:\/\/machinelearningmastery.com\/master-machine-learning-algorithms\/\" target=\"_blank\" rel=\"noopener noreferrer\">MachineLearning Mastery<\/a><br \/>\n<em>Imagens: <a href=\"https:\/\/twitter.com\/saagie_io\/status\/960829477071802368\" target=\"_blank\" rel=\"noopener noreferrer\">fontes pesquisadas.<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Machine Learning \u00e9 um subcampo de Intelig\u00eancia Artificial (IA) e tem como principal abordagem a de aprender atrav\u00e9s da experi\u00eancia para encontrar padr\u00f5es em conjunto de dados. Envolve ensinar um computador, atrav\u00e9s de exemplos, a reconhecer padr\u00f5es em vez de program\u00e1-lo com regras espec\u00edficas. Exemplo de Machine Learning Vamos a um exemplo para tornar a [&hellip;]<\/p>\n","protected":false},"author":315,"featured_media":13031,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1308],"tags":[1363],"class_list":["post-12986","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-glossario","tag-tecnologia"],"_links":{"self":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/12986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/users\/315"}],"replies":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/comments?post=12986"}],"version-history":[{"count":15,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/12986\/revisions"}],"predecessor-version":[{"id":35541,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/12986\/revisions\/35541"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/media\/13031"}],"wp:attachment":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/media?parent=12986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/categories?post=12986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/tags?post=12986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}