Você está na página 1de 12

Aqui v

CIÊNCIA DA COMPUTAÇÃO

CECÍLIA DIAS

TÍTULO PROVISÓRIO: CARLOS CHAGAS

Sâo Paulo - SP
2023
. CECÍLIA DIAS DE SOUZA

TÍTULO PROVISÓRIO: CARLOS CHAGAS

Trabalho submetido ao (Sua escola) como parte


dos requisitos necessários para a disciplina de ***,
na turma ** 2º ano sob a orientação do Professor/a
****.

Saõ Paulo - SP
2023
SUMÁRIO

1 INTRODUÇÃO……………………………………………………………………………..5

1.1 Biografia………………………………………………………………………… 5

1.2 Nascimento ………………………………………………………………………………. 5

1.3 Início de carreira ………………………………………………………….


6
1.3.1 Objetivo geral…………………………………………………………………………..6

1.3.2 Objetivo específico…………………………………………………………………….


6

1.4 Metodologia……………………………………………………………………………… 6

2 REFERENCIAL TEÓRICO………………………………………………………………. 6

3 DESENVOLVIMENTO DE SISTEMAS COM LINGUAGEM DE PROGRAMAÇÃO


PARA MACHINE LEARNING………………………………………………………………
6

3.1 COMPARATIVO COM OUTRAS LINGUAGENS…………………………………….7

3.2 FRAMEWORKS………………………………………………………………………….8

3.3 PROJETOS EXISTENTES…………………………………………………………… 10

3.3.1 Waymo……………………………………………………………………………….. 10

3.3.2 Plataforma da Netflix……………………………………………………………….. 10

CONSIDERAÇÕES FINAIS……………………………………………………………… 11

REFERÊNCIAS…………………………………………………………………………….12
RESUMO

Este trabalho tem como objetivo a escolha e análise da utilização de linguagens de


programação para Machine Learning relacionada ao desenvolvimento de sistemas.
Inicialmente são apresentados os conceitos básicos do aprendizado de máquina,
sua história e sua relevância na atualidade. Nesse contexto, é apresentado uma
comparação das principais linguagens que são utilizadas destacando seus pontos
positivos e negativos em cada. Além disso, é mostrado os frameworks e exemplos
de projetos já existentes relacionados ao tema. O estudo foi conduzido através de
pesquisas e leitura teórica a fim de atingir o objetivo. Por fim é feito o levantamento
dos principais pontos do estudo e a importância de se escolher a linguagem correta
para o Machine Learning.

Palavras-chave: Machine Learning, linguagem de programação, Python, Julia, R,


Frameworks.

ABSTRACT
This work aims to select and analyze the use of programming languages for Machine
Learning in the context of system development. Initially, the basic concepts of
machine learning, its history, and its relevance in the present are presented. In this
context, a comparison of the main languages used is provided, highlighting their
strengths and weaknesses in each case. Additionally, frameworks and examples of
existing projects related to the topic are showcased. The study was conducted
through research and theoretical reading in order to achieve the objective. Finally,
the main findings of the study are summarized, emphasizing the importance of
selecting the appropriate language for Machine Learning.

Keywords: Machine Learning, programming language, Python, Julia, R, frameworks.


1 INTRODUÇÃO

Machine Learning, ou aprendizado de máquina, é uma tecnologia que revolucionou a


forma como as máquinas adquirem conhecimento permitindo que elas aprendam com grandes
bancos de dados que simulam a cognição humana para realizar tarefas e fornecer respostas
concisas em linguagem natural.
A história do aprendizado de máquina remonta aos primórdios da computação, com
visionários como Alan Turing e Warren McCulloch explorando a possibilidade de criar sistemas
capazes de aprender e se adaptar autonomamente. Desde então, essa tecnologia tem sido
impulsionado por avanços teóricos e computacionais, possibilitando o desenvolvimento de
algoritmos cada vez mais sofisticados e a aplicação em diversas áreas. Durante as décadas de
1960 e 1970, o desenvolvimento do Machine Learning foi impulsionado pelos avanços na
inteligência artificial e pelo crescente interesse em automatizar tarefas. Os algoritmos de
aprendizado supervisionado, como as redes neurais artificiais, foram refinados e aplicados em
áreas como visão computacional e processamento de linguagem natural. No entanto, a falta de
conjuntos de dados adequados e o poder computacional limitado foram desafios significativos a
serem superados. Porém, o verdadeiro salto no campo do Machine Learning ocorreu nas
últimas décadas com o surgimento da internet e o crescimento da disponibilidade de dados que
transformou radicalmente o cenário. Além disso, o aumento da capacidade computacional
permitiu o treinamento de algoritmos cada vez mais complexos em conjuntos de dados
massivos, alavancando o progresso do aprendizado de máquina.

1.1 PROBLEMATIZAÇÃO

Escolher a linguagem de programação certa para um projeto específico pode ser difícil.
Cada idioma tem seus pontos fortes e fracos, e escolher a linguagem errada pode levar a
problemas técnicos, suporte ruim e funcionalidade limitada. A avaliação cuidadosa dos
requisitos do projeto e dos recursos linguísticos disponíveis é essencial para a tomada de
decisões informadas permitindo assim, o desenvolvimento de aplicações inovadoras e soluções
técnicas avançadas em relação ao aprendizado de máquina.

1.2 JUSTIFICATIVA

As linguagens de programação são ferramentas essenciais na área da informática e


desempenham um papel importante no desenvolvimento de software e na criação de soluções
técnicas. Logo, a escolha da linguagem correta facilita e deixa mais acessível a criação de
sistemas de aprendizado de máquina que possam ser aplicados no cotidiano.
1.3 OBJETIVOS

1.3.1 Objetivo Geral

O objetivo geral da linguagem de programação é fornecer uma maneira estruturada e


concisa de expressar instruções e algoritmos que os computadores possam entender e
executar. As linguagens de programação servem como meio de comunicação entre humanos e
máquinas, permitindo que programadores escrevam programas e desenvolvam soluções para
diversos problemas e tarefas.

1.3.2 Objetivo Específico

O objetivo durante nosso trabalho foi encontrar e descrever a melhor linguagem de


Machine Learning, que não é apenas a mais conhecida, mas também a mais utilizada e
eficiente.

1.4 METODOLOGIA

Para realizar este trabalho foi necessário pesquisar sobre o aprendizado de máquina
desde a sua criação até a forma como ela é treinada, além dos algoritmos que foram
desenvolvidos ao longo do tempo e como ela é aplicada atualmente. Junto a isso, foi de suma
importância as discussões em sala e as pesquisas voltadas às linguagens de programação
mais comuns nessa área.

2 REFERENCIAL TEÓRICO

O estudo realizado teve como base a obra “Introduction to Machine Learning with
Python”, dos autores Andreas C. Müller e Sarah Guido, publicada em 26 de setembro de 2016.

3 DESENVOLVIMENTO DE SISTEMAS COM LINGUAGEM DE


PROGRAMAÇÃO PARA MACHINE LEARNING

Neste capítulo esclarecemos que dentre as linguagens de programação, aquela que é


mais adotada para projetos destinados ao âmbito comercial e científico é a linguagem Python.
Python é uma das linguagens de programação mais populares da atualidade, criada em 1991
por Guido van Rossum, é uma linguagem de alto nível que vem ganhando cada vez mais
destaque no mundo da programação. Sua popularidade se deve, em grande parte, à facilidade
de uso e à sintaxe simples. Devido a isso, essa é a linguagem preferida para computação
científica, ciência de dados e aprendizado de máquina. Isso ocorre, também, pois a linguagem
permite o uso de bibliotecas de baixo nível e APIs limpas de alto nível, o que aumenta o
desempenho e a produtividade dos desenvolvedores. Uma das principais vantagens do Python
é a facilidade de implementação de algoritmos de aprendizado de máquina. Essa linguagem
possui bibliotecas poderosas para análise de dados e aprendizado de máquina, como o Scikit-
learn, que se tornou a biblioteca padrão do setor para engenharia de recursos e modelagem
clássica de Machine Learning em conjuntos de dados de pequeno a médio porte.

3.1 COMPARATIVO COM OUTRAS LINGUAGENS

Uma linguagem de programação é um conjunto organizado de elementos, incluindo


símbolos, palavras-chave, regras semânticas e sintáticas, que estabelecem uma forma de
comunicação estruturada entre um programador e uma máquina. Essa forma de comunicação
permite que o programador expresse instruções e comandos de maneira precisa e coerente, a
fim de instruir a máquina a realizar tarefas específicas. É por meio dessas linguagens que o
programador pode criar algoritmos, desenvolver lógica de programação e controlar o fluxo de
execução de um programa, possibilitando a automação de diversas atividades complexas. Com
isso pode-se fornecer uma comparação das principais linguagens utilizadas para Machine
Learning sendo elas Python, R e Julia:

● Python apresenta toneladas de exemplos de códigos-fontes e bibliotecas maiores que


Julia/R.
● É uma linguagem multiuso, tem a sintaxe mais legível que Julia e R, fornecendo um
aprendizado mais fácil.
● Pode ser usada em diferentes partes no processo de desenvolvimento de software
(back-end, front-end).
● Python possui licenças mais permissivas para implementação da linguagem em
produtos com fins comerciais do R.

Julia é uma linguagem de programação que foi criada com a comunidade científica em mente,
mas se mostrou valiosa para os mais variados usos. A linguagem conseguiu unir atributos de
Python e Matlab que tornam o processo e desenvolvimento bastante ágil - algo muito
importante para a realização de protótipos e experimentos científicos - à velocidade de
linguagens como C/C + + utilizadas nos mais variados sistemas. É muito interessante ver como
Julia é flexível e incorpora idéias muito modernas e interessantes, inclusive do paradigma
funcional.

Algumas características que a linguagem Julia se sobrepõem em relação a Phyton e R que


pode se comparar :

● A velocidade superior sobre ambas.


● Executa melhor álgebra linear .

R é uma linguagem de programação estatística e gráfica que vem se especializando na


manipulação, análise e visualização de dados, sendo atualmente consideradas umas melhores
ferramentas para essa finalidade. O R foi criado em 1995 por estatísticos que realizaram sua
implementação a partir da linguagem S da Bell Labs, com a finalidade de obter um melhor
ambiente de software para laboratórios de estatística.

● O R tem uma vantagem sobre ambas no quesito da visualização gráfica.


● R possui mais funções voltadas à análise de dados comparada a python.
● O IDEs do R é superior comparado às outras línguas .
● A linguagem R possui uma documentação detalhada e recursos de aprendizado
extensivos em relação a Julia.

Nessa seção, houve a análise comparativa de três linguagens de programação amplamente


utilizadas em contextos científicos e analíticos e visados ao Machine Learning: Python, Julia e
R. Cada uma dessas linguagens possui características únicas que as tornam apropriadas para
diversas necessidades e aplicações. O Python se destaca por sua flexibilidade, uso simples e
rico ecossistema de bibliotecas. É uma linguagem de programação poderosa para projetar
sites, automação de tarefas, ciência de dados e aprendizado de máquina. Combinando sua
enorme comunidade de desenvolvedores com sua sintaxe fácil de entender, o Python se tornou
uma escolha popular tanto para iniciantes quanto para especialistas.

Julia, por outro lado, se destaca por seu desempenho excepcional e capacidade de se
aproximar muito de línguas de baixo nível. É particularmente adequado para computação
científica e matemática e fornece uma sintaxe simples e atraente. R é reconhecido por muitos
como uma linguagem de programação eficaz para análise de dados e visualização estatística.
A linguagem R fornece ferramentas avançadas para análise de dados e modelagem estatística.
Finalizando, todas as linguagens apresentadas são instrumentos essenciais no contexto
científico e analítico, considerando suas diferenças prós e contras em situações e requisitos
diferentes.

3.2 FRAMEWORKS

O ecossistema Python é carregado com bibliotecas, ferramentas e aplicativos que facilitam o


desenvolvimento de modelos de aprendizado de máquina. Alguns dos Frameworks mais
populares no ramo do Machine Learning incluem TensorFlow, PyTorch e Scikit-learn. Python é
uma linguagem interpretada, o que significa que o programa passa por um interpretador que o
converte em bytecode, para ser então executado por uma máquina virtual. Isso permite que os
desenvolvedores escrevam código rapidamente e iterem em seus modelos com facilidade. A
seguir é discorrido os principais Frameworks para Machine Learning:
● TensorFlow: O TensorFlow, criado pela Google, foi uma ferramenta para construir e
implementar mais facilmente modelos de Machine Learning e para computação
numérica rápida auxiliando desenvolvedores iniciantes e experientes com sua
arquitetura flexível. Esse Framework é o mais popular na atualidade, além de ser
utilizado por grandes empresas como o Spotify, Airbnb e Twitter. Um exemplo de uso
do TensorFlow é no treinamento de um Vision Transformer do zero no banco de dados
CIFAR10. O Vision Transformer é um tipo de rede neural que foi projetado para lidar
com imagens. O banco de dados CIFAR10 é um conjunto de imagens que é
comumente usado para testar algoritmos de aprendizado de máquina.

● PyTorch: Criado pelo Facebook, o PyTorch é um Framework especializado em


diferenciação automática, cálculos de tensores e aceleração de GPU. Um exemplo de
uso do PyTorch é no treinamento de uma rede-Q profunda com TF Agents. Uma rede-
Q profunda é um tipo de rede neural que é usada para resolver problemas de
aprendizado por reforço. TF Agents é uma biblioteca para desenvolvimento de
algoritmos de aprendizado por reforço em TensorFlow.

● Scikit-learn: O Scikit-learn é uma biblioteca de alto nível que integra uma ampla
variedade de algoritmos de aprendizado de máquina de última geração para problemas
supervisionados e não supervisionados de média escala. usada para análise de dados
em Python. Sendo um excelente ponto de partida para introduzir ao ecossistema de
Machine Learning em Python. Se está em busca de ingressar rapidamente ou se está
em busca de uma ferramenta de pesquisa recente e eficiente para Machine Learning,
scikit-learn é uma excelente alternativa por ser um framework bem documentado e
simples de ser utilizado e também apesar de não ser especializada em tal, também
fornece algoritmos de eep learning tradicionais. Por ser versátil scikit-learn também
possui uma boa integração com outras bibliotecas, como matplotlib para plotagem,
numpy para vetorização de arrays.
Dentre os principais recursos estão:Métodos algorítmicos de tomada de decisão,
incluindo:
● Classificação, onde é possível identificar e categorizar dados a partir de
padrões de base.
● Regressão, onde é possível prever e projetar valores dados a partir de uma
média comparativa.
● Agrupamento automatizado de dados semelhantes em grandes conjuntos.
● Algoritmos de análise preditiva supervisionados e não supervisionados de tal
como que oferece suporte desde a regressão linear simples a reconhecimento
de redes neurais computacionais através do módulo “sklearn.neural_network”
3.3 PROJETOS EXISTENTES

Os sistemas feitos com o Machine Learning estão mais presentes em nosso cotidiano
do que podemos imaginar, sendo assim, a seguir é apresentado alguns projetos de machine
learning de empresas conhecidas.

3.3.1 Waymo

A Google adota a diversas linguagens dentre elas Java e C++, entretanto Python se
destaca como uma das linguagens oficiais desta gigantesca empresa, sendo assim Python é
bastante presente em desenvolvimento interno e na criação de bibliotecas de códigos, visando
a criação de projetos mais eficientes e um grande apoio aos seus desenvolvedores.
Desenvolvendo e adquirindo startups, como uma grande locomotiva, a empresa segue
avançando a todo vapor e na atualidade trabalha no projeto Waymo.

Esse se trata o nome dado a empresa da Google que desenvolve o projeto do tão
sonhado carro autônomo, o mesmo nome é dado ao automóvel futurista, que não necessitam
de rede para circular pelas estradas, sendo assim o projeto da Google só estabelece conexões
com o mundo exterior quando necessário e desta forma não há uma conexão contínua que
possibilite invasão por hackers.

A Waymo vem priorizando a segurança durante o desenvolvimento de seu projeto, e


isso se prova a partir dos diversos testes que vêm sendo realizados,testes esses em ambientes
virtuais, a fim de que assim os veículos possam entender melhor sobre rotas e por assim dizer
"aprender" sobre como se portar no trânsito, além disso o veículo é bem equipado, contando
com quase 30 câmeras possibilitando um campo de visão amplo, tão amplo que chega a
distancia de até três campos de futebol em todas as direções, e conseguindo ouvir a sons em
sirenes dentro deste parâmetro, a partir desta avançada tecnologia os veículos conseguem
detectar outros carros, pessoas, árvores e outros elementos presentes. A partir desta detecção,
a tecnologia processa o comportamento mais indicado com base nos dados coletados. Dessa
forma, o Waymo se torna uma empolgante tecnologia para o futuro.

3.3.2 Plataforma da Netflix

Não é segredo que a Netflix chegou para revolucionar o cenário dos serviços de
streaming no mercado, fazendo uso de excelentes estratégias de marketing e de uma
inovadora técnica de fornecimento de conteúdo, basicamente a plataforma fornece conteúdos
personalizados com base no cliente. Fugindo da ideia de uma lista enorme de filmes e séries
organizadas por gêneros, a Netflix oferece um sistema que recomenda filmes e séries de
acordo ao gosto dos usuários, sendo assim cada cliente tem uma página de visualização inicial
personalizada e única com base em seus comportamentos. Isso se dá graças a um conjunto
de algoritmos de aprendizagem de máquina focados em análise de dados de forma inteligente.
Desta forma a Netflix oferta um serviço muito mais objetivo e satisfatório aos seus assinantes,
entregando aquilo que eles muito provavelmente se interessariam em ver sem que o cliente
leve minutos procurando pelo conteúdo na plataforma de streaming.

CONSIDERAÇÕES FINAIS

Esse trabalho visou entender o desenvolvimento de sistemas para Machine Learning


com uma linguagem de programação. Para isso, buscou-se uma linguagem que possua grande
flexibilidade, poderosas bibliotecas, e fácil aprendizagem. A partir das pesquisas sobre o
aprendizado de máquina e o uso como base do livro “Introduction to Machine Learning with
Python” é notória o cumprimento do objetivo geral juntamente ao objetivo específico
demarcado, através do destaque à linguagem Python dentre as demais que são utilizadas para
esse aspecto. Nesse estudo, também é apresentada a forma que essa tecnologia aparece no
cotidiano e destaca-se os grandes frameworks utilizados para auxiliar os desenvolvedores a
deixar o código mais curto e conciso.

REFERÊNCIAS

Mirbabaie, M., Brünker, F., Möllmann Frick, N.R.J. et al. The rise of artificial intelligence –
understanding the AI identity threat at the workplace. Electron Markets 32, 73–99 (2022).
https://doi.org/10.1007/s12525-021-00496-x

NVIDIA, Santa Clara, CA 95051, EUA

Departamento de Comp Sci & Electrical Engineering, University of Maryland, Baltimore County,
Baltimore, MD 21250, EUA

Raschka, S.; Patterson, J.; Nolet, C. Machine Learning in Python: Main Developments and
Technology Trends in Data Science, Machine Learning, and Artificial Intelligence. Information
2020, 11, 193. https://doi.org/10.3390/info11040193

MÜLLER, Andreas C.; GUIDO, Sarah. Introduction to Machine Learning with Python. [S. l.]:
O‘Reilly Media, Inc., 2016. Disponível em: https://www.oreilly.com/library/view/introduction-to-
machine/9781449369880/. Acesso em: 20 jun. 2023.

Você também pode gostar