Algoritmos

O que são e porque é que são importantes

Um algoritmo é uma lista de instruções passo-a-passo concebidas para realizar uma tarefa específica ou resolver um problema específico. Quando se pensa desta forma, os algoritmos são omnipresentes. Uma receita francesa de sopa de cebola, por exemplo, é um algoritmo. Combina estes dados (input) para gerar um resultado (output). Os algoritmos funcionam basicamente da mesma forma com os computadores. Quer estejam a converter números binários em letras para que possa ler o que está no ecrã do seu tablet ou a recomendar stocks com base na sua tolerância ao risco, os algoritmos são fundamentais na computação moderna. Esta página centrar-se-á nos algoritmos de computador.

A breve história dos algoritmos

Os algoritmos podem parecer uma nova invenção, mas o termo remonta a um milénio atrás, quando o matemático persa Muḥammad ibn Mūsā al-Khwārizmī (latinizado como "Algoritmi") fez contribuições significativas em matemática. O conceito foi posteriormente adotado nos anos 1800, quando o matemático alemão Carl Friedrich Gauss inventou um simples algoritmo para determinar o dia do ano do calendário a que calha a Páscoa.

Algoritmos apareceram pela primeira vez em computação a meio do século XX , quando o famoso cientista de computadores britânico, Alan Turing, concebeu uma teoria sobre como as máquinas podiam executar um conjunto complexo de instruções. Apesar do rudimentar algoritmo do jogo de xadrez "Turochamp" nunca ter vencido um humano durante o tempo de vida de Turing, formou a base daquilo a que hoje conhecemos como inteligência artificial.

Como o poder da computação acelerou durante as décadas seguintes, aumentou também a necessidade de algoritmos mais complexos. Hoje em dia, os algoritmos são fundamentais para a computação moderna, ajudando-nos a conduzir de A a B, a decidir o próximo filme a ver, ou mesmo a apaixonarmo-nos.

Muitos programas de computador são essencialmente uma sequência de algoritmos escritos de uma forma que o computador pode compreender.

Indústria transformadora

A análise preditiva e a IA proporcionam uma experiência de cliente vencedora

O Orlando Magic utiliza dados de aplicações móveis e algoritmos de machine learning para personalizar a experiência dos fãs e conseguir um salto quádruplo nas compras pela aplicação.

Algoritmos no mundo atual

À medida que os algoritmos substituem cada vez mais as decisões humanas na sociedade, alguns têm o potencial de mudar vidas. Por esta razão, alguns argumentam que devemos explorar mais a equidade nos algoritmos, particularmente na justiça penal e nos cuidados de saúde.

Curioso sobre quem está a desenvolver os algoritmos que estão a transformar a sociedade mesmo à frente dos seus olhos? Este documento técnico da Harvard Business Review foca-se nas pessoas por detrás dos avanços ao nível computacional e de automatização que estão a levar o mundo a dar um passo em frente.

Os algoritmos até podem ajudar a salvar a floresta tropical. Ao analisar milhões de imagens diariamente procurando sinais iniciais de desflorestação, os algoritmos de visão computacional podem ajudar os legisladores pertencentes ao governo e organizações de apoio a intervir para proteger florestas em perigo antes que seja tarde demais.

O algoritmo da Netflix

Quando vê Netflix, os algoritmos veem-no a si. O Motor de Recomendação da Netflix, como é chamado, é composto por sofisticados algoritmos do proprietário que têm em conta o que a empresa sabe sobre si para prever a probabilidade de que irá ver um determinado título no seu catálogo. Hoje, 80% do tempo de ecrã na Netflix é alcançado através da personalização. Os dados de entrada do algoritmo incluem o seu histórico de visualizações, géneros favoritos e a hora do dia a que assiste. Quanto mais conteúdo consumir na Netflix, mais precisos os algoritmos se tornam, o que o encoraja a ver mais Netflix, e assim sucessivamente. 

Como funcionam os algoritmos

Os algoritmos devem ter cinco propriedades para poderem funcionar:

  1. Inputs: Dados bem definidos que serão transformados durante a computação. 
  2. Outputs : Dados resultantes da computação. 

  3. Definibilidade: Etapas computacionais específicas. 
  4. Eficácia: Passos computacionais exequíveis. 
  5. Finitude Um número finito de passos.

Isto leva-nos a algoritmos com bases matemáticas e baseados em regras.

Algoritmos com base em matemática
Porque a maioria dos algoritmos são numéricos por natureza, não é surpresa que muitos sejam baseados em matemática. Considere o exemplo mais simples: 1 + 1 = 2. Este é um algoritmo com base na matemática em que os 1 são os inputs e o 2 é o output. Extrapole este exemplo e irá obter alguns dos mais importantes algoritmos utilizados hoje, incluindo algoritmos que decompõem sinais em código de frequência de computadores e até para determinar a classificação de busca do Google para um website.

Algoritmos baseados em regras
À medida que os humanos aprendem mais sobre AI, vemos que algumas coisas não podem ser puramente explicadas por construções matemáticas. Se estiver a desenvolver software de análise de texto, por exemplo, e precisar de um algoritmo para pluralizar um substantivo, não pode apenas adicionar um "S" a cada substantivo. Pense em exceções como matriz e matrizes. Temos regras para essas ocasiões especiais. Algoritmos baseados em regras são melhores para analisar dados contendo uma mistura de atributos numéricos e qualitativos.

Claro que pode utilizar mais que um tipo de algoritmo para resolver um determinado problema – por exemplo, prever o rendimento de alguém. Para desempenhar esta computação, poderia utilizar um algoritmo baseado na matemática no qual pondera variáveis como a idade, localização, educação, etc. Também poderia utilizar um algoritmo baseado em regras, que prevê o rendimento através da idade e código postal, por exemplo. Então qual é o melhor?

Isso leva-nos a algoritmos concorrentes. Os algoritmos são frequentemente colocados uns em oposição aos outros para ver qual é o mais eficaz. Regressando ao nosso exemplo da sopa, pode ter receitas concorrentes e todas resultam numa sopa de cebola francesa. O mesmo se aplica aos algoritmos de um computador. Talvez o algoritmo A seja mais lento e mais exato que o algoritmo B. No entanto, o B é mais fácil de validar. O algoritmo certo para determinada tarefa acaba por resumir-se aos vários critérios que utiliza para a julgar. Cumpriu a tarefa? Cumpriu a tarefa rapidamente? Cumpriu a tarefa eficientemente?

Inspirado pela natureza

A maioria dos projetos de IA atuais dependem de múltiplas tecnologias da ciência de dados. De acordo com Gartner, à utilização de uma combinação de diferentes técnicas de IA para alcançar o melhor resultado dá-se o nome de IA composta.

Os algoritmos podem ser vistos como um atalho para o pensamento humano. Como tal, são muitas vezes inspirados por elementos da natureza. Algoritmos genéricos, por exemplo, copiam a biologia de como organismos evoluem ao longo do tempo. Estes algoritmos irão gerar pontos combinados de decisão em conjunto para criar descendência de acordo com os traços dos seus progenitores. De forma semelhante, as redes neurais são inspiradas pelo cérebro biológico e são utilizadas para resolver determinados e diferentes problemas, como a visão computacional e o processamento da linguagem natural.

Tipos de algoritmos populares

Os algoritmos podem ser razoavelmente enquadrados em categorias básicas e avançadas.

Básico
Pode não se aperceber, mas os algoritmos acionam até as funções de computador mais básicas. Aqui fica uma ideia sobre três algoritmos básicos amplamente utilizados atualmente.

Algoritmos de compressão
Quando a maioria das pessoas usa um computador, está a fazer algo básico, como ler um artigo ou ver imagens. Isto deve-se a algoritmos que comprimem ficheiros para que possam ser vistos, partilhados e restaurados. Pense num ficheiro JPG. Quando está a ver uma imagem da nova casa da árvore do seu sobrinho, está na realidade a olhar para uma imagem bitmap que foi executada através de um algoritmo de compressão com perdas para converter milhões de representações numéricas de pixels na imagem indutora de sorrisos no seu ecrã. 

Algoritmo de procura binária
Procura binária é um algoritmo de procura rápida que funciona na base do dividir e conquistar. Imaginemos que está à procura do ficheiro declaraçãodeimposto2020.PDF no seu portátil. Com uma procura binária, o algoritmo escolhe uma observação no meio do conjunto de dados e verifica se a id do ficheiro encontrado corresponde ao respetivo ficheiro desejado. Se assim for, o algoritmo pára. Caso contrário, como a tabela é ordenada, o algoritmo pode determinar se a observação desejada está acima ou abaixo da que foi encontrada e redefinir o intervalo de procura para ser metade do ficheiro original. O algoritmo escolhe então a observação no meio do novo intervalo de procura, e o processo repete-se até o PDF ser encontrado. Sim, de facto não pagou todos os impostos estatais do ano passado. 

Algoritmo de multiplicação
Os algoritmos tornam-se ainda mais simples que os acima. De facto, um dos algoritmos mais populares é o que multiplica números. Quase qualquer coisa que faça com um algoritmo requer a multiplicação de dois ou mais números. Mesmo até num campo baseado em palavras, como análise de texto, estará a avaliar coisas tais como frequências de palavras e frequências de documentos, e há muitas vezes um multiplicador presente. 

Avançado
No extremo oposto do espectro estão os algoritmos avançados. Estes desenvolvem-se a partir de algoritmos básicos, mas com novas ideias. E muitas vezes implicam processar enormes conjuntos de dados

Algoritmos de machine learning
Machine learning utiliza algoritmos que recebem e analisam dados de entrada para prever valores de saída dentro de um intervalo aceitável. O que é bom nestes algoritmos é que aprendem com outros algoritmos. À medida que novos dados são enviados para os algoritmos de machine learning, eles aprendem e otimizam as suas operações para melhorar o desempenho, desenvolvendo inteligência ao longo do tempo. Existem quatro tipos de algoritmos de machine learning: supervisionados, semi-supervisionados, não supervisionados e reforço.

Algoritmos de deep learning
Algoritmos de Deep learningutilizam camadas múltiplas para progressivamente extrair características de nível mais alto dos dados de entrada. Emulando o cérebro humano, estes algoritmos tentam obter conclusões semelhantes às dos humanos ao analisar continuamente dados utilizando as chamadas redes neurais artificiais. O output / resultado destes algoritmos complexos pode ser a mudança de vida, tais como permitir a auto-condução de carros ou a tradução de livros de inglês para árabe num piscar de olhos.

Algoritmos de reforço de gradiente
Modelos preditivos ajudam as empresas a fazer coisas como previsão de vendas e preços de mercadorias com base na procura esperada. O reforço de gradiente é um algoritmo poderoso para desenvolver estes modelos de previsão. Funciona ao fortalecer árvores de decisão fracas para árvores de decisão fortes, melhorando desta forma, a exatidão de uma previsão. O algoritmo é conhecido pela sua velocidade e exatidão, especialmente em conjuntos de dados grandes e complexos. 

Que algoritmo deve utilizar?

Os principiantes normalmente querem saber qual o algoritmo a utilizar. A resposta depende de muitos fatores, incluindo:

  • O tamanho, a qualidade e a natureza dos dados. 
  • O tempo computacional disponível. 
  • A urgência da tarefa. 
  • O que quer fazer com os dados.

Mesmo um cientista de dados experiente não conseguirá dizer que algoritmo irá ter o melhor desempenho antes de experimentar diferentes algoritmos. Quando estiver a escolher um algoritmo, é inteligente ter em atenção os seguintes aspetos: exatidão, tempo de treino e facilidade de utilização. Muitos utilizadores põem a exatidão em primeiro lugar, enquanto os iniciantes tendem a focar-se nos algoritmos que conhecem melhor. Quando diante de um conjunto de dados, a primeira coisa a considerar é como obter resultados, não importa qual a aparência desses resultados. Assim que obtém resultados e se familiariza com os dados, poderá escolher gastar mais tempo a utilizar algoritmos mais avançados para fortalecer a sua compreensão dos dados, e por conseguinte, melhorar os resultados. Aprenda mais sobre a seleção de algoritmos.

Próximos Passos

Se quer aprender mais sobre Algoritmos, o SAS é o lugar certo para o fazer.

Há apenas uma década, trabalhar com algoritmos requeria um grau avançado e uma compreensão enciclopédica de matemática e ciência computacional. Hoje, os algoritmos mais sofisticados do mundo estão cuidadosa e perfeitamente incorporados em software, sendo que os utilizadores podem desenvolver um trabalho inovador, avançado, sem terem de mexer em fórmulas.  

Uma dessas soluções é SAS®Visual Data Mining e Machine Learning. Incluídos neste produto existem alguns dos algoritmos mais avançados do planeta, permitindo aos utilizadores de todos os contextos resolver problemas de análise complexos. O software altamente classificado oferece uma abundância de algoritmos para o ajudar a fazer coisas como desenvolver modelos preditivos e identificar oportunidades de lucro num negócio.

Connect with SAS and see what we can do for you.