José Luís Pedroso Vieira - Universidade do Minho · pelo Facebook e pela Google. No terceiro...
Transcript of José Luís Pedroso Vieira - Universidade do Minho · pelo Facebook e pela Google. No terceiro...
José Luís Pedroso Vieira
Algoritmos Inteligentes para a deteção de
padrões na sociedade dos serviços
Projeto de Dissertação
Mestrado em Engenharia e Gestão de Sistemas de Informação
Trabalho efetuado sob a orientação do/da/de
Professor Doutor Carlos Filipe da Silva Portela
Professor Doutor Manuel Filipe Vieira Torres dos Santos
Fevereiro de 2018
iii
RESUMO
Todos os dias surgem novas tecnologias que cada vez mais são direcionadas para a sociedade
e para as necessidades humanas. Quando se fala de necessidades humanas, fala-se numa perspetiva
quotidiana da vida, de necessidades ao nível da saúde, de quando se precisa de um mecânico porque
aconteceu uma avaria no carro ou quando se precisa de um carpinteiro para colocar uma prateleira no
armário de casa. Estes são alguns exemplos de serviços fornecidos por pessoas para suprimir as nossas
necessidades. No mundo tecnológico, não existe uma única plataforma capaz de permitir a um utilizador
resolver os problemas anteriormente referidos em tempo real, abrindo-se assim uma nova perspetiva no
mundo digital. A aproximação e comunicação entre alguém que necessita de um serviço, o procura
através de um meio tecnológico e tenta encontrar um prestador do mesmo, que no caso desta
dissertação é realizado através de uma plataforma, é designada como Sociedade dos Serviços. A
Inteligência Artificial é uma área vasta e que se encontra em constante crescimento, nela podemos
encontrar e desenvolver Algoritmos Inteligentes que sejam capazes de aprender e ao serem integrados
em máquinas ou tecnologias permitam a um determinado utilizador obter respostas para as suas
necessidades.
Com a elaboração deste projeto de dissertação pretende-se o desenvolvimento de um Algoritmo
Inteligente que possa ser implementado numa plataforma que está a ser desenvolvida pela IOTech e que
permita a um utilizador efetuar um pedido para um determinado serviço. Esse algoritmo deverá perceber
qual a necessidade do utilizador e devolver a resposta desejada pelo mesmo, disponibilizando um leque
de profissionais que possam realizar o serviço pretendido, bem como, um conjunto de informações que
seja útil á tomada de decisão sobre qual prestador de serviços o utilizador prefere. Esta dissertação
divide-se em três atividades principais, nomeadamente: a elaboração do projeto de dissertação, da
dissertação e de artigos científicos. Neste documento apresenta-se como metodologias o “Design Science
Research”, e “Scrum”. Também podemos observar o Plano de Trabalho, os Objetivos e Resultados
Esperados e uma revisão de Literatura na área de AI e áreas subjacentes.
Palavras-Chave: Inteligência Artificial, Algoritmos Inteligentes, Sociedade dos Serviços, Application
Programming Interface
v
ABSTRACT
Every day recent technologies emerge in order in improve human necessities, as well as society
in general. When one talks about human necessities, one speaks in an everyday perspective of life, of
needs related to health, of when a mechanic is wanted because a car has been damaged in some way
or when a carpenter is required to put a shelf in the house’s cupboard. These are some examples of
services supplied by people to satisfy our needs. In the technological world, there is not a single platform
able to allow a user to solve problems previously told in real time, thus opening a new perspective in the
digital world. The approach and communication between someone who needs a service, seeks it through
a technological means and tries to find a provider, which in the case of this dissertation is carried out
through a platform, is designated as Service Society. Artificial Intelligence is a vast and growing area
where we can find and develop Intelligent Algorithms that can acquire knowledge and when integrated in
machines or technologies allow a given user to obtain answers to their needs.
This dissertation project intends to develop an Intelligent Algorithm that can be implemented in
a platform that is being developed by IOTech which allows a user to make an order for a certain service.
This algorithm should be able understand the user's need and return the desired response by providing
a range of professionals who can perform the intended service, as well as a set of information that is
useful in deciding about which service provider the user prefers. This dissertation is divided in three main
activities, namely: the elaboration of the project of the dissertation, dissertation and scientific articles. In
this document, "Design Science Research" and "Scrum" are presented as methodologies. We can also
observe the Work Plan, the Expected Objectives and Results and a literary review in AI and the underlying
areas.
Keywords: Artificial Intelligence, Intelligent Algorithms, Service Society, Application Programming
Interface
vii
ÍNDICE
Resumo.............................................................................................................................................. iii
Abstract............................................................................................................................................... v
Índice ................................................................................................................................................ vii
Lista de Figuras .................................................................................................................................. ix
Lista de Tabelas ................................................................................................................................. xi
Lista de Abreviaturas, Siglas e Acrónimos ......................................................................................... xiii
1. Introdução .................................................................................................................................. 1
1.1 Enquadramento e Motivação ............................................................................................... 1
1.2 Objetivos e Resultados Esperados ........................................................................................ 2
1.3 Estrutura do Documento...................................................................................................... 3
2. Revisão de Literatura .................................................................................................................. 4
2.1 Prestação e Sociedade de Serviços ...................................................................................... 4
2.2 Inteligência Artificial, Machine Learning e Deep Learning ..................................................... 5
2.2.1 Inteligência Artificial ..................................................................................................... 5
2.2.2 Machine Learning ...................................................................................................... 11
2.2.3 Deep Learning ........................................................................................................... 18
2.3 Algoritmos Inteligentes ...................................................................................................... 18
2.3.1 Algoritmos do Facebook ............................................................................................. 19
2.3.2 Algoritmos da Google ................................................................................................. 19
3. Abordagens Metodológicas ........................................................................................................ 22
3.1 Design Science Research .................................................................................................. 22
3.2 Scrum ............................................................................................................................... 24
4. Trabalho Realizado.................................................................................................................... 28
4.1 Zaask ................................................................................................................................ 28
4.2 BCLEVR ............................................................................................................................ 29
4.3 Sobert ............................................................................................................................... 30
4.4 Knok ................................................................................................................................. 30
4.5 Matriz de Funcionalidades ................................................................................................. 31
viii
4.6 Características da Plataforma ............................................................................................ 32
5. Planeamento ............................................................................................................................ 34
5.1 Atividades ......................................................................................................................... 34
5.2 Lista de Riscos .................................................................................................................. 36
6. Conclusão ................................................................................................................................ 38
Bibliografia ....................................................................................................................................... 39
Anexo I – Matriz de Conceitos ........................................................................................................... 42
Anexo II – Diagrama de Gantt ........................................................................................................... 44
ix
LISTA DE FIGURAS
Figura 1- Interação de um Utilizador com um Sistema Inteligente ........................................................ 7
Figura 2 - Crescimento da Área de Inteligência Artificial ....................................................................... 8
Figura 3 - Abordagens de Machine Learning ...................................................................................... 12
Figura 4 - Reinforcement Learning Process ....................................................................................... 14
Figura 5 - Neurónio Biológico ............................................................................................................ 15
Figura 6 - Árvore de Decisão binária .................................................................................................. 16
Figura 7 - Fluxo de Trabalho de Machine Learning ............................................................................. 17
Figura 8- Metodologia Design Science Research ................................................................................ 22
Figura 9 - Diagrama de Gantt ............................................................................................................ 44
xi
LISTA DE TABELAS
Tabela 1 - Dados não rotulados e problemas de rotulagem ................................................................ 13
Tabela 2 - Sprints do Projeto ............................................................................................................. 25
Tabela 3 - Análise SWOT ao Zaask .................................................................................................... 29
Tabela 4 - Análise SWOT ao BCLEVR ................................................................................................. 30
Tabela 5 - Análise SWOT ao Knok ..................................................................................................... 31
Tabela 6 - Matriz de Funcionalidades e Características do Sistema .................................................... 31
Tabela 7 - Atividades do Projeto ........................................................................................................ 34
Tabela 8 - Lista de Riscos ................................................................................................................. 36
Tabela 9 - Matriz de Conceitos .......................................................................................................... 42
xiii
LISTA DE ABREVIATURAS, SIGLAS E ACRÓNIMOS
AInt- Algoritmo Inteligente
ANN- Artificial Neural Network
DSR- Design Science Research
DL- Deep Learning
DT- Decision Tree
GNB- Gaussian Nave Bayes
IA- Inteligência Artificial
KNN- K-nearest Neighbors
ML- Machine Learning
PS- Prestação de Serviços
RL- Reinforcement Learning
SL- Supervised Learning
SS- Sociedade dos Serviços
SSL- Semi-Supervised Learning
UL- Unsupervised Learning
1
1. INTRODUÇÃO
Neste capitulo serão abordados o enquadramento e a motivação para a execução do projeto, os
objetivos e resultados esperados e também a estrutura do documento.
1.1 Enquadramento e Motivação
Os serviços enquadram-se no desenvolvimento deste Projeto de Dissertação como a área de
intervenção principal. Se fizermos uma curta reflexão rapidamente iremos perceber que estamos
rodeados de serviços no nosso dia-a-dia e muito do que fazemos é sustentado pelos mesmos. Os serviços
satisfazem muitas das nossas necessidades e têm a capacidade de poder resolver parte dos nossos
problemas. Para o serviço realmente existir é necessário que exista um prestador do mesmo. A Prestação
de Serviços (PS) consiste nos serviços prestados por um profissional que tenha a capacidade de realizar
esse mesmo serviço com um determinado nível de qualidade podendo esse serviço ter um valor
monetário ou não.
A PS é realizada com o intuito de resolver problemas da sociedade. A Sociedade dos Serviços (SS)
permite caracterizar a prestação de serviços através de meios tecnológicos, ou seja, a SS representa a
aproximação entre um prestador de serviços e alguém que pretenda utilizar o seu serviço através de uma
qualquer plataforma ou aplicação, utilizando meios do mundo digital.
Uma das áreas do mundo digital que está em grande crescimento é a Inteligência Artificial (IA)
que segundo Pannu (2015) é o estudo e desenvolvimento de software capaz de raciocinar, aprender,
reunir conhecimento, comunicar, manipular e perceber objetos tornando os sistemas inteligentes. A IA
oferece-nos um conjunto de soluções que ao serem aplicadas têm a capacidade de executar tarefas que,
sendo executadas por seres humanos, seriam consideradas como inteligentes (Widman & Loparo, 1990).
Com a IA podemos desenvolver Algoritmos Inteligentes (AInt) que são armazenados dentro do software
(Hanne & Dornberger, 2017).
Tendo por base o pressuposto anterior este projeto de dissertação consiste no desenvolvimento,
conjuntamente com IOTech, de um AInt que seja capaz de fornecer informação relevante para que seja
possível uma aproximação entre os prestadores de serviços e um utilizador que requer um determinado
serviço através da plataforma.
2
A IOTech é uma empresa que tem como objetivo resolver problemas da sociedade em geral,
desenvolvendo soluções inovadoras e inteligentes com capacidade de simplificar a vida das pessoas e
conecta-las a um mundo interativo.
A motivação para a realização desta dissertação prende-se, primeiramente, pelo interesse na área
de IA. Depois, pelo impacto que o desenvolvimento do AInt terá na área da SS e concretamente na
performance da plataforma. A SS ainda é pouco explorada nos dias de hoje e necessita de um salto
qualitativo que pode ser alcançado com a conceção esta plataforma.
1.2 Objetivos e Resultados Esperados
Para a elaboração deste projeto de dissertação foi identificada a seguinte pergunta de investigação:
“É possível utilizar algoritmos inteligentes para relacionar os clientes e os prestadores de serviços?”.
Para responder a esta questão, será desenvolvido um Algoritmo Inteligente que seja capaz de ser
integrado numa plataforma e que devolva as respostas desejadas ao cliente que utiliza uma aplicação
de fornecimento de serviços. Esta aplicação será desenvolvida em conjunto com a IOTech. Desta forma
foi definido um objetivo estruturante principal que permitem dar resposta à questão de investigação, bem
como alguns objetivos estruturantes secundários que foram definidos da seguinte forma:
• Desenvolver o Algoritmo
1. Identificar plataformas já existentes e levantamento das suas características
2. Identificar “atributos” chave e conceção do algoritmo
3. Prova de conceito do algoritmo desenvolvido.
Como resultado espera-se desenvolver um algoritmo que seja capaz de aprender e ser cada vez mais
eficiente nas suas respostas. Para que o processo de desenvolvimento do algoritmo corra como esperado
irá ser realizada uma revisão de literatura que abrange os conceitos de Inteligência Artificial (IA), Machine
Learning (ML), e Deep Learning (DL) e Algoritmos Inteligentes (AInt).
Espera-se com esta revisão adquirir conhecimento quanto a tecnologias, ferramentas e técnicas que
auxiliem na conceção do algoritmo para posteriormente ser realizada uma prova de conceito para avaliar
a capacidade do mesmo.
3
1.3 Estrutura do Documento
O documento do projeto de dissertação encontra-se dividido em seis capítulos. O primeiro capitulo,
onde se encontra este tópico, tem como objetivo contextualizar o tema da dissertação. Através deste
capitulo podemos perceber o enquadramento do projeto bem como os objetivos e resultados esperados.
O segundo capitulo irá focar-se nas áreas que serão utilizadas para a elaboração do trabalho
proposto e de que forma estas estarão presentes no projeto dissertação. Essas áreas são a IA, o ML e o
DL. Esta secção contará também com uma exposição de algoritmos inteligentes que foram desenvolvidos
pelo Facebook e pela Google.
No terceiro capitulo irão ser abordadas as duas metodologias a utilizar para o desenvolvimento do
projeto, são elas o Design Science Research como metodologia de investigação e o Scrum que será
utilizado para o desenvolvimento do projeto.
O quarto capitulo está relacionado com o trabalho de pesquisa que foi efetuado para fazer o
levantamento de requisitos e características de plataformas semelhantes à que irá ser desenvolvida em
conjunto com a IOTech.
O quinto capitulo contém o planeamento do projeto, apresentam-se as atividades a realizar e os
riscos inerentes ao mesmo.
No sexto capitulo irão ser tecidas considerações finais sobre o projeto de dissertação bem como
o trabalho futuro.
O documento termina com a lista de referências bibliográficas que foram utilizadas para a
conceção do mesmo e documentos anexos que sejam relevantes para a compreensão do projeto.
4
2. REVISÃO DE LITERATURA
A Revisão de Literatura deste Projeto de Dissertação foi realizado nas seguintes plataformas:
Google Scholar, Scopus, RepositóriUM e B-On. Para efetuar a seleção da literatura privilegiou-se artigos
recentes, avaliando também o tipo e a qualidade do documento. A data a restringir inicialmente
contemplava artigos da presente década, mas com a necessidade de fornecer informações históricas na
contextualização de algumas áreas surgiu a necessidade de recorrer a documentos de datas mais
antigas. O tipo de documentos que foram selecionados foram artigos científicos, livros e referencias web.
Em relação à qualidade dos documentos, primeiramente era analisado o abstract e depois o conteúdo
de forma mais abrangente dos mesmos.
A Revisão de Literatura foi sendo realizada com a pesquisa de várias palavras fundamentais para
a realização deste Projeto de Dissertação sendo elas “Inteligência Artificial”, “Deep Learning”, “Machine
Learning”, “Algoritmos Inteligentes” e “Prestação de Serviços” e “Serviços”.
A recolha de literatura começou a 25 de Outubro 2017 e terminou no dia 4 de Fevereiro de 2018
e foi efetuado na língua inglesa sendo isso refletido ao longo da revisão pelo o uso de inúmeros termos
em inglês. Para uma melhor perceção da revisão efetuada foi criada uma matriz de conceitos que pode
ser analisada no Anexo I – Matriz de Conceitos em que são relacionados os documentos analisados e a
sua área de intervenção.
2.1 Prestação e Sociedade de Serviços
O termo Prestação de Serviços (PS) é reconhecido no artigo nº 1154 do Código Civil1 como um
contrato “em que uma das partes se se obriga a proporcionar à outra certo resultado do seu trabalho
intelectual ou manual, com ou sem retribuição”. Segundo Meirelles, (2006) serviço é definido como um
“trabalho na sua aceção ampla e fundamental, podendo ser realizado não só através dos recursos
humanos (trabalho humano) como também através das máquinas e equipamentos (trabalho mecânico)”.
São exemplo de serviços um canalizador para reparar um cano que vazou em casa, uma consulta médica
ao domicílio, uma empresa de construção civil para fazer obras, etc. As tecnologias encontram-se cada
1 http://www.stj.pt/ficheiros/fpstjptlp/portugal_codigocivil.pdf
5
vez mais presentes no quotidiano da sociedade sendo utilizadas para as mais diversas finalidades. Por
vezes, aparecem-nos pequenos obstáculos que com a ajuda da tecnologia podem ser solucionados,
essas tecnologias são idealizadas a pensar nas pessoas. Com base na definição de PS surge o termo
Sociedade dos Serviços (SS). A SS pode definir-se como serviços prestados em prol da sociedade e dos
cidadãos, sendo o contacto gerado através de uma aplicação ou tecnologia.
A aplicação que será desenvolvida, e onde o Algoritmo Inteligente (AInt) será incorporado, tem como
objetivo aproximar o prestador e o requerente do serviço através da tecnologia. A aproximação será
efetuada em tempo real, o que permitirá ao requerente do serviço transmitir todas as informações
necessárias ao prestador do serviço de forma a que esta tenha uma melhor perceção das necessidades
do requerente, com o objetivo de poder dar algum orçamento, ou marcar uma visita ao local para resolver
alguma situação.
Enquadra-se desta forma o título da dissertação “Algoritmos Inteligentes para a deteção de padrões
na sociedade dos serviços".
2.2 Inteligência Artificial, Machine Learning e Deep Learning
Neste subcapítulo irão ser abordados os tópicos de Inteligência Artificial (IA), Machine Learning (ML)
e Deep Learning (DL), sendo IA a principal área do projeto de dissertação. O ML surge neste tema de
dissertação como sendo subárea de IA, e o DL como sendo uma subárea de ML.
2.2.1 Inteligência Artificial
a) Contextualização e Definições
A sociedade passa parte do seu dia interagindo com sistemas inteligentes e a Inteligência Artificial
(IA) é o núcleo de tudo isto, tornando-se cada vez mais parte do estilo de vida moderno. Estes sistemas
são aplicações complexas que podem ir desde simples campos de pesquisa na internet até ao
reconhecimento facial ou de voz sendo que a IA utiliza a matemática e algoritmos para a conceção de
sistemas Inteligentes (Joshi, 2017). A IA foi introduzida em 1956 por John McCarthy, na conferência de
Dartmouth e foi originalmente inspirada no teste de Turing, sendo uma ciência de pesquisa de teorias e
metodologias que podem ajudar máquinas a compreender o mundo e a reagirem de forma adequada,
6
da mesma forma como reage um humano. Várias definições sobre esta área da computação foram
surgindo ao longo do tempo (Li & Jiang, 2017). A IA é uma forma de “fazer as máquinas pensarem e se
comportarem de forma inteligente. Estas máquinas são controladas pelo seu próprio software, sendo
que a IA tem muito a fazer com os programas de software inteligente que controlam essas máquinas”
(Joshi, 2017). Já segundo Pannu (2015) a “IA é o estudo e desenvolvimento de máquinas e software
que podem raciocinar, aprender, reunir conhecimento, comunicar, manipular e perceber os objetos.
Widman e Loparo (1990) defendem que a IA são programas que efetuam tarefas que ao serem
executadas por um ser humano seriam consideradas inteligentes. Para Li e Jiang (2017) o termo IA
continua um pouco vago, “a IA ainda não tem uma definição única”, no entanto estes autores defendem
que “acredita-se que a IA é uma disciplina que estuda o processo de simulação computacional de certos
comportamentos humanos inteligentes, como a perceção, aprendizagem, raciocínio, comunicação e
atuação.”, aproximando-se assim da definição de Pannu.
A área de IA abrange uma grande variedade de tópicos como a lógica, planeamento, visão de
máquina e processamento de linguagem natural (Antonsson & Cagan, 2001). Serão agora abordadas
algumas áreas de IA, como por exemplo, o Reconhecimento de voz, Sistemas Inteligentes, Jogos, etc.,
segundo (Joshi, 2017):
• Visão Computacional: sistemas que lidam com dados visuais como imagens e vídeos.
Estes sistemas compreendem o conteúdo e extraem informação com base no caso de uso.
A Google usa a pesquisa de imagem reversa para procurar imagens visualmente similares
na Web.
• Processamento de Linguagem Natural: este campo lida com compreensão de texto.
Podemos interagir com uma máquina escrevendo frases de linguagem natural. Os motores
de busca utilizam-na extensivamente para fornecer os resultados de pesquisa corretos.
• Reconhecimento de voz: estes sistemas são capazes de ouvir e compreender as palavras
emitidas por um utilizador. Um exemplo disso é a Siri2, que não é mais do que um assistente
pessoal inteligente que devolve informação ou realiza uma acção consoante o que ouve por
parte do Utilizador.
• Sistemas Inteligentes: utilizam técnicas de IA para fornecer conselhos ou tomar decisões.
Normalmente utilizam bases de dados de áreas de conhecimento específico. São exemplos
2 https://www.apple.com/ios/siri/
7
as áreas das finanças, medicina e o marketing. Na Figura 1 podemos analisar como um
Sistema Inteligente (SI) interage com o utilizador e os fluxos que ocorrem entre os dois.
• Jogos: a IA é consideravelmente utilizada na indústria dos videojogos. É utilizada para
conceber agentes inteligentes que possam competir com humanos. Por exemplo o AlphaGO3
é um programa que possibilita jogar o jogo de estratégia Go. Também utilizamos IA em outro
tipo de jogos, jogos onde seja expectável que o computador se comporte de forma
inteligente.
• Robótica: os sistemas robóticos combinam vários conceitos de IA e são capazes de
executar diferentes tarefas. Dependendo das situações, os robôs têm sensores que podem
fazer diferentes coisas, como por exemplo, ver o que está à sua frente, medir temperaturas,
identificar zonas de calor e detetar movimentos. Estes robôs contêm processadores que
calculam várias coisas em tempo real e têm a capacidade de se adaptarem a novos
ambientes.
b) O crescimento da IA nas últimas décadas
Neste tópico irá ser analisado de forma geral o crescimento da IA desde o seu inicio, passando pela
introdução do Machine Learning (ML) e terminando no aparecimento do Deep Learning (DL). Como
referido anteriormente a IA surgiu em 1956 na conferencia de Dartmouth e foi originalmente inspirada
3 https://deepmind.com/research/alphago
Figura 1- Interação de um Utilizador com um Sistema Inteligente (adaptado de (Joshi,2017))
8
no teste de Turing (Li e Jiang, 2017). Segundo Copleand (2016), ao longo das últimas décadas esta área
foi evoluindo, apesar de alternadamente anunciada como a chave para o futuro mais brilhante da
sociedade e outras vezes, como algo que se fosse demasiado desenvolvido poderia ser um problema.
Na década de 80 nasce uma subárea da IA, o Machine Learning (ML).
O ML foi criado com o objetivo de habilitar as máquinas para realizar tarefas usando software
inteligente (Mohammed, Kan, & Bashier, 2017). Segundo Copeland (2016) o ML utiliza algoritmos para
analisar dados e depois conseguir fazer previsões com os mesmos sobre algo do mundo real, sendo
desta forma desnecessário programar tarefas manualmente, pois com grandes quantidades de dados e
algoritmos consegue-se dar a capacidade a um sistema de realizar tarefas. O Deep Learning (DL)
capacitou as aplicações práticas de ML e por extensão o campo geral da IA.
O DL, segundo Kim (2016), começou a ser utilizado em aplicações comercias a partir dos anos 90,
no entanto, Copeland (2016) defende que o DL teve grande impacto a partir de 2010. O surgimento do
DL potenciou várias novas tecnologias como: carros que conduzem de forma autónoma, cuidados
médicos preventivos, recomendações de filmes, etc. (Copeland, 2016). Na Figura 2 podemos observar
cronologicamente o aparecimento das diferentes subáreas da IA, sendo elas o ML e o DL.
Figura 2 - Crescimento da Área de Inteligência Artificial (adaptado de (Copeland, 2016))
9
c) Aplicações da IA
No mundo moderno, a IA é utilizado em muitas vertentes e de diferentes formas (Joshi, 2017).
Neste tópico serão abordadas diferentes aplicações de IA em várias áreas são elas: a medicina, indústria
do petróleo, indústria aeroespacial,
• Medicina: o diagnóstico médico é um processo em que se aplica uma grande intensidade
de conhecimento e de experiência. Por vezes ocorrem pequenas mudanças em exames que
são difíceis de detetar, especialmente para os profissionais mais jovens que não têm tanta
experiência, podendo resultar num diagnóstico menos preciso do que o esperado. Os
avanços na área da Visão Computacional, neste caso, relativo ao reconhecimento de
imagens e de padrões contribuem para o diagnóstico médico baseado em imagens como
ressonâncias magnéticas (Li & Jiang, 2017). Stoitsis et al. (2006), introduziu o método fuzzy
c-means e métodos baseados em algoritmos genéticos para extrair recursos a partir de
imagens médicas. Essas imagens juntamente com tecnologias de IA são uma ferramenta
que permite alcançar uma análise quantitativa precisa bem como uma análise qualitativa
dos dados médicos. A ressonância magnética é uma ferramenta de diagnóstico importante
para a deteção precoce do cancro sendo que, foram desenvolvidas técnicas de visão
máquina para decidir se um determinado tumor é benigno ou maligno através da análise e
reconhecimento de imagem. Zygmut e Napieralski (2015) introduziram um sistema
baseado em Artificial Neural Networks (ANN) para diagnosticar a probabilidade de um
utente poder vir a ter uma disfunção cerebral através do reconhecimento da fala, sendo que
os utentes utilizados para testar este sistema sofrem de desordem motora da fala. A IA
também tem aplicações ao nível de doenças cardiovasculares, Adeli e Neshat (2010)
conceberam um sistema inteligente fuzzy para diagnosticar doenças do coração, tendo
como exemplo treze dados médicos de entrada tais como: dor no peito, pressão sanguínea,
colesterol, etc. O resultado é a probabilidade de um utente sofrer uma doença do coração.
• Indústria do Petróleo: a aplicação de tecnologia de IA nesta área tem crescido bastante
nos últimos anos. Diferentes técnicas de IA foram sendo utilizadas para otimizar a
perfuração dos solos ou prever uma possibilidade de derrame num campo de petróleo. A
utilização destes sistemas de IA, superiorizou-se aos métodos tradicionais como por
exemplo, métodos baseados em hardware e métodos biológicos (Li & Jiang, 2017).
10
Manshad et al., (2016), desenvolveu um método com dois modelos para otimizar a
perfuração dos solos utilizando uma dupla camada de redes neuronais de perceção. O
primeiro modelo tem como objetivo a escolha da broca de perfuração mais indicada para
um determinado tipo de solo, o segundo tem como objetivo prever a profundidade máxima
da penetração da broca no solo. Desta forma os modelos forneceram uma maior eficiência
e precisão ao sistema com o intuito de otimizar a taxa de perfuração. Já Singha et al.,
(2012), demonstram que as ANN podem ser utilizadas em sistemas de classificação de
derramamento de óleo utilizando segmentação de dados e classificação de recursos. Esta
abordagem propõe dois modelos de ANN diferenciados, o primeiro para segmentar as
imagens identificando pixels dos recursos de óleo, a segunda rede tem como objetivo
classificar objetos em derrames de óleos com base nos seus recursos.
• Indústria Aeroespacial: existem várias tarefas complexas inacabadas nesta indústria que
com uma utilização apropriada de tecnologias de IA podem ser concluídas. Nesta área as
aplicações de IA incluem diagnóstico para aeromotores, controlo das condições e do
desgaste de uma aeronave, otimização de parâmetros-chave de metais aeroespaciais entre
outras (Li & Jiang, 2017).Oroumieh et al., (2013) introduziu modelos de IA para a
construção de aeronaves demonstrando que com a utilização de modelos fuzzy logic e ANN
pode ajudar a selecionar associações adequadas de parâmetros-chave das aeronaves, com
as ferramentas de IA, o ciclo de vida de um projeto de conceção de uma aeronave foi
reduzido. Já Ma et al. (2014) construi um modelo baseado em algoritmos imunes para
diagnosticar a condição de desgaste do motor de uma aeronave. O autor utilizou o principio
da seleção negativa para treinar os detetores usando dados referentes a amostras de falhas.
Foram detetados três tipos de falhas de desgaste incluindo sobrecarga da engrenagem,
desgaste de rolamentos e aglutinação ou arranhões na engrenagem dos motores.
• Indústria da Energia: garantir a “saúde” dos dispositivos na área da energia é uma
questão chave pois a inatividade ou interrupção da sua atividade pode causar um grande
dano mesmo que a falha seja mínima. Foram realizados vários estudos com o objetivo de
serem utilizadas técnicas de IA no diagnóstico de falhas de transformadores de potência e
no diagnóstico de falhas de máquinas (Li & Jiang, 2017). Fenge et al. (2016) concebeu um
modelo de Deep Neural Networks (DNN), com o intuito de diagnosticar máquinas rotativas
para poder extrair características de falhas disponíveis e classificar tipos de falhas com
precisão. Já Ismail et al. (2016), optou por utilizar modelos ANN e algoritmos genéticos
11
para deteção e diagnóstico de falhas para utilizar num sistema inteligente de deteção de
falhas numa estação de energia.
2.2.2 Machine Learning
a) Contextualização e Definições
Existem várias definições da área de ML, Mohammed et al., (2017) entende que Machine Learning
(ML) é um ramo da IA que tem como objetivo habilitar as máquinas a realizar as suas tarefas usando
software inteligente e surge como uma consequência natural da junção da área da ciência da
computação e da estatística. Segunfo Alpaydin (2010) o ML é” a tarefa de programação de computadores
para otimizar um critério de desempenho usando dados ou experiência”. O ML é o estudo e a modelação
computacional de processos de aprendizagem nas suas múltiplas manifestações (Camastra & Vinciarelli,
2008). Com o ML “surgiu a auto programação e algoritmos de auto ajuste que superaram o problema
dos conjuntos estáticos de instruções.” (Arlitsch & Newell, 2017). Estes mesmo autores defendem que
os algoritmos sofisticados que surgem da área de IA, combinados com grandes quantidades de dados e
um poder de processamento avançado, permitem uma qualidade de decisão ao nível de um humano.
Em ML existem duas entidades que desempenham um papel crucial, são elas o professor e o aluno.
O professor porque possui o conhecimento necessário para executar uma determinada tarefa. O aluno
porque é a entidade que precisa de obter o conhecimento para poder executar a tarefa com sucesso
(Trigueiros, Ribeiro, & Reis, 2012).
b) Abordagens
Todas as instâncias em qualquer dataset utilizado por um algoritmo de ML são representadas pelo
mesmo conjunto de características. Essas características poderão ser categóricas ou binárias. Se as
instâncias forem fornecidas com “etiquetas” ou resultado conhecido (correspondem a outputs
corretos) então a aprendizagem é considerada Supervised Learning (SL), caso contrário, a
aprendizagem é considerada Unsupervised Learning (UL), onde as instâncias não têm um resultado
conhecido (Kotsiantis, 2007). Outras técnicas abordadas serão o Semi-Supervised Learning (S-SL) e
o Reinforcement Learning (RL). A S-SL é uma mistura das abordagens de SL e UL combinando dados
rotulados com dados não rotulados. Na RL não existe resposta chave, o agente tem que decidir como
12
agir e vai aprendendo com a experiência (Maini & Sabri, 2017). Na Figura 3pode observar-se as
várias abordagens existentes em ML e o tipo de dados que cada uma delas utiliza como por exemplo
o SL que utiliza dados classificados.
A seguir é apresentado de forma mais detalhada cada uma das abordagens referenciadas,
segundo (Mohammed et al., 2017):
• Supervised Learning (SL): o objetivo do SL ou Aprendizagem Supervisionada é inferir uma
função ou mapeamento de dados de treino. Estes dados de treino consistem num vetor de input
X e num vetor de output Y com uma tag sendo a tag do output Y a explicação do seu respetivo
input X. Juntos estes vetores formam um exemplo de treino. A definição de SL advém do vetor
Y conter rótulos para cada exemplo de treino. Esse “rótulo” é fornecido por um supervisor. A
maior parte das vezes os supervisores são humanos, mas as máquinas também podem ser
usadas para fazer rotulagem. O SL contém dois grupos ou categorias de algoritmo, sendo eles
a regressão e a classificação. O julgamento humano é mais dispendioso do que o de uma
máquina, mas tem uma taxa de erro de dados rotulados inferior à de uma máquina. De qualquer
modo, em alguns casos as máquinas são consideradas fiáveis para rotulagem. Na Tabela 1
demonstram-se cinco exemplos de dados não rotulados e como os mesmo podem ser rotulados
de diferentes maneiras, quer seja por um humano ou por uma máquina, sendo que, o primeiro
Figura 3 - Abordagens de Machine Learning (adaptado de (Mohammed et. al., 2017))
13
é uma análise ou sentimento de um tweet. A SL será a abordagem utilizada para o
desenvolvimento do AInt.
Tabela 1 - Dados não rotulados e problemas de rotulagem (adaptado de Mohammed et. al (2017))
• Unsupervised Learning (UL): quando utilizamos a UL ou Aprendizagem não
Supervisionada, não existe um supervisor ou dados de treino, ou seja, apenas temos dados
não rotulados. O objetivo da UL é encontrar uma estrutura escondida nos dados. Com
inúmeros dispositivos para recolha de dados, esta área está a atingir um volume de dados
sem precedentes. A variedade, velocidade e volume são as dimensões nas quais o Big Data
é analisado e o objetivo de quem pratica o ML é conseguir extrair algo de concreto e produtivo
desses dados. Os algoritmos alocados a esta técnica são algoritmos de clustering.
• Semi-Supervised Learning (SSL): na SSL ou o Aprendizagem Semi-Supervisionada, os
dados fornecidos são uma mistura de dados classificados e não classificados. Esta
combinação é utilizada para gerar um modelo apropriado para classificação de dados. Na
maior parte das situações os dados não rotulados aparecem em grande abundância ao
contrário dos dados rotulados que são escassos. O objetivo da SSL é aprender um modelo
que preveja classes de dados em testes futuros de forma mais efetiva do que apenas com
a utilização de dados rotulados.
• Reinforcement Learning (RL): o objetivo do RL ou Aprendizagem por Esforço é utilizar
um conjunto de observações a partir da interação do agente com o ambiente para serem
Dados Não
Rotulados
Julgamento para a
Rotulagem
Possíveis Rótulos Possível Supervisor
Tweet Sentimento do Tweet Positivo/Negativo Humano/Máquina
Foto Contém casa e carro Sim/Não Humano/Máquina
Gravação de Áudio A palavra futebol foi
ouvida Sim/Não Humano/Máquina
Vídeo São usadas armas
neste vídeo? Sim/Não Humano/Máquina
Raio-X Presença de tumor no
raio-X Presente/Ausente Especialista/Máquina
14
tomadas ações que maximizem a recompensa ou minimizem o risco. De forma a produzir
programas inteligentes (também chamados de agentes inteligentes), esta técnica incide nos
seguintes passos:
1. Estado do input é observado pelo agente.
2. Função de tomada de decisão é utilizada para fazer com que o agente execute uma
ação.
3. Após a execução da ação, o agente recebe recompensa ou reforço do ambiente.
4. A informação do par estado-ação sobre a recompensa é armazenada.
Usando a informação armazenada, a ação para um estado específico pode ser ajustada,
ajudando dessa forma o agente na tomada de decisão ideal. No processo de RL, o agente observa
o ambiente, efetua uma ação e recebe uma recompensa positiva ou negativa, podendo este
processo ser observado na Figura 4.
c) Modelos/Algoritmos
Os algoritmos ou modelos a explorar neste tópico são apenas de SL pois os dados que serão
utilizados para o desenvolvimento deste projeto serão dados rotulados e o que se pretende prever é uma
classificação, neste caso uma área ou serviço específico da Prestação de Serviço (PS). No SL existem
inúmeros modelos que podem ser aplicados neste projeto de dissertação, nomeadamente: Artificial
Neural Network, Boosting, Decision Tree, Gaussian Nave Bayes, K-nearest Neighbors, Logistic
Figura 4 - Reinforcement Learning Process (adaptado de (Maini e Sabri, 2017))
15
Regression, Random Forest, e SVM. Explana-se neste tópico alguns dos modelos referidos acima segundo
Mohammed et. al., (2017) , e para o modelo de Decision Tree será analisa segundo Kotsiantis (2007):
• Artificial Neural Network (ANN): uma ANN ou Rede Neuronal Artificial é um modelo de
raciocínio inspirado pelas redes neuronais biológicas que é o sistema nervoso central de
cérebro de um animal. O cérebro humano consiste num grande número de células nervosas
(neurónios) interligadas. A principal função das dendrites é receber mensagens de outros
neurónios, o sinal viaja para o corpo celular principal conhecido como soma como podemos
analisar na Figura 5. O sinal sai da soma e viaja para a sinapse através do axônio, chegando
à outra extremidade do neurónio e depois para o espaço entre os neurónios podendo assim
ser passada a mensagem para outro neurónio. O cérebro humano contém cerca de dez
biliões de neurónios e sessenta triliões de conexões e sinapses entre eles. O primeiro modelo
neuronal surgiu em 1943 por McCulloch e Pitts. Eles descrevem o conceito de neurónio
como uma célula individual que comunica com outras células através de uma rede. Esta
abordagem é considerada uma das mais eficientes ferramentas de classificação.
Figura 5 - Neurónio Biológico (retirado de (Mohammed, 2017))
• Decision Tree (DT): DT ou Árvores de Decisão, são árvores que classificam instâncias
com base no valor dos seus recursos. Cada nó de uma árvore representa um recurso de
uma instância para ser classificado e cada ramo apresenta um valor que o nó poderá
assumir. Estas instâncias são classificadas a partir do nó da raiz e ordenadas de acordo com
os valores dos seus recursos. Preferencialmente o recurso que melhor divide os dados de
treino será o nó da raiz da árvore, mas existem imensos métodos para encontrar o recurso
que melhor divide os dados de treino. Pode-se analisar na Figura 6, uma DT para uma
classificação binária de “Sim” ou “Não. Existem duas abordagens comuns que o algoritmo
16
de indução de DT podem usar para evitar a superação de dados de treino, a primeira é parar
o algoritmo de treino antes que ele atinja um ponto em que se encaixe perfeitamente nos
dados de treino, a segunda é organizar a arvore de decisão. Se as duas árvores aplicarem o
mesmo tipo de testes e tiverem a mesma precisão de previsão é normalmente preferido a
que tem menos folhas. A maioria dos algoritmos usa um método de poda com o objetivo de
melhorar a taxa de acerto do modelo.
Figura 6 - Árvore de Decisão binária (retirado de (Kotsiantis et. al, 2007))
• Gaussian Nave Bayes(GNB): o GNB é um classificador baseado numa probabilidade
aplicada pelo teorema de Bayes com a suposição de independência forte entre recursos. A
equação que indica o teorema em termos matemáticos é dada por: P(A|B)=P(A)P(B|A)P(B),
onde A e B são eventos e P(A) e P(B) são as probabilidades prévias de A e B sem
consideração um do outro (independência). P(A|B) é designado de probabilidade posterior,
é a probabilidade de observar o evento A sendo que B é verdadeiro. P(B|A) é designado de
probabilidade (likelihood) de observar o evento B sendo que A é verdadeiro.
• K-nearest Neighbors (K-NN): este é um método não paramétrico usado para a
classificação e regressão. O input consiste nos k exemplos de treino mais próximos do
recurso, a saída depende da aplicação do algoritmo. No caso deste projeto será utilizada a
classificação, ou seja, o output é um membro da classe. Um objeto é classificado pela
maioria dos votos do seu vizinho, com o objeto a ser atribuído à classe mais comum do
17
método. Normalmente k é um valor pequeno e inteiro. Se o k for um (k=1), significa que o
objeto é atribuído à classe de apenas um vizinho. O K-NN é uma abordagem baseada em
instâncias ou aprendizagem “preguiçosa” (lazy learning), onde a função é apenas
aproximada localmente e toda a computação é adiada até à classificação. Este é um dos
algoritmos mais simples de ML. Neste algoritmo poderá ser útil atribuir um determinado
peso à contribuição dos vizinhos, de modo a que os vizinhos mais próximos contribuam mais
para a média que os vizinhos mais distantes.
d) Fluxo de Trabalho de ML
Para se realizar um bom trabalho utilizando técnicas de ML deve-se seguir um conjunto de práticas
e regras de forma a que o desenvolvimento decorra da forma mais apropriada. Segundo Zheng (2015),
existem várias etapas no processo de desenvolvimento de um modelo de ML, ou seja, existem várias
etapas em que o modelo desenvolvido tem de ser avaliado. A fase inicial é a prototipagem, onde se testa
vários modelos até encontrar o que mais se ajusta á realidade do projeto. Após a seleção do modelo
fazemos a sua implementação, o que em ML designa-se por colocar em produção. Para se poder
perceber a validade do modelo ele precisa de ser avaliado, quer em modo online em que se utiliza as
métricas live com dados live, ou seja, dados gerados pelos acessos realizados, quer em offline onde
utilizamos as métricas do modelo protótipo em dados históricos e por vezes também dados online como
podemos ver na Figura 7. As métricas offline podem medir diferentes métricas como a precisão, ou
precision recall. Métricas online permitem-nos mediar métricas de negócio como por exemplo, o valor do
ciclo de vida de um cliente.
Figura 7 - Fluxo de Trabalho de Machine Learning (adaptado de (Zeng, 2017))
18
2.2.3 Deep Learning
O Deep Learning (DL), é uma subárea do ML que permite ao computador aprender com a
experiência e entender o mundo em termos de hierarquia de conceitos, isto é, o computar aprende
conceitos complexos construindo esse conceito através de conceitos mais simples (Kim, 2016). Já Wang
et al., (2018) defende que o DL nasce não só das tradicionais técnicas de ML mas também da inspiração
da aprendizagem estatística e utiliza a representação de dados para aprender a executar tarefas
transformando os dados em representações abstratas que permitem que os recursos sejam aprendidos.
Os métodos de DL são métodos de representação de aprendizagem com múltiplos níveis que são obtidos
pela composição de módulos simples, mas não lineares, sendo que cada módulo está representado num
nível de abstração aquando da entrada (Input) até chegar a um nível superior de abstração (Lecun,
Bengio, & Hinton, 2015). O mesmo autor defende também que os sistemas de ML são utilizados para
identificar objetos em imagens, transcrever discursos para texto, efetuar recomendações consoante as
pesquisas dos utilizadores e selecionar resultados relevantes de pesquisas, este conjunto de aplicações
utilizam técnicas de DL.
Apesar de apenas se falar há relativamente pouco tempo do DL, as primeiras experiências com
Redes Neuronais (RN), surge na década de 1950 e começou a ser utilizada em aplicações comerciais
na década de 90 sendo que, ao longo do tempo a quantidade de dados foi aumentando
exponencialmente o que leva a que seja cada vez mais fácil utilizar o DL (Kim, 2016).
2.3 Algoritmos Inteligentes
A IA é baseada em algoritmos que não são mais que instruções que dizem a um computador
como terminar uma determinada tarefa. Qualquer tarefa pode ser definida num conjunto de
procedimentos que podem ser automatizados com o uso de algoritmos, sendo que, estes algoritmos são
crucias para algumas aplicações que utilizamos todos os dias como por exemplo: email, aplicações para
smartphones, mapas e GPS, transações financeiras, sistemas de recomendações, sites de viagens, etc.
(Arlitsch & Newell, 2017). Com o uso de IA podemos desenvolver Algoritmos Inteligentes (AInt) que são
armazenados dentro do software (Hanne & Dornberger, 2017). Estes algoritmos têm um ou mais agentes
inteligentes. Segundo Gori (2017), um agente inteligente interage com o ambiente a partir do qual é
19
expectável que aprenda, com o objetivo de efetuar determinadas tarefas. Existem também agentes de
software, que são designados por robôs de software ou softbots (Russell et al., 1995).Segundo Suresh
et al. (2015), os robôs estão presentes no dia-a-dia das pessoas, não só na industria, mas também em
nossas casas pois existem robôs de serviço como, aspiradores, assistência a pessoas com deficiências,
etc. Os mesmos autores defendem também que os robôs podem ser controlados por humanos ou
executar tarefas pré-definidas.
De seguida serão apresentados alguns exemplos de AInt desenvolvidos pelo Facebook e pela
Google.
2.3.1 Algoritmos do Facebook
Durante este subcapítulo serão abordados dois tópicos de AInt realizados pelo Facebook, o
primeiro será sobre uma otimização de noticia no Feed de Notícias. O segundo está relacionado com
dois chatbots que pareciam conversar entre si numa linguagem estranha.
Segundo a Wallaroo (2018) o Facebook fez atualizações recentes ao seu algoritmo que seleciona
a informação que observamos no Feed de Notícias, focando-se em noticias locais confiáveis. Se algum
utilizador seguir este tipo de páginas locais ou se um amigo partilhar uma noticia local certamente a
publicação irá aparecer no Feed.
Segundo (Griffin, 2017) os dois chatbots, Alice e Bob, criaram uma linguagem própria para
comunicarem entre si facilitando a forma como ambos trabalham. Estes dois robôs negoceiam entre si
num ambiente de comércio tentando trocar chapéus, bolas e livros. Estes robôs foram instruídos a
descobrir como negociar entre eles e a melhorar as trocas que iam fazendo, no entanto, não lhes foi dito
que deveriam utilizar um inglês compreensivo para comunicarem, criando eles próprios a sua taquigrafia.
Foram alcançados resultados positivos conseguindo ser efetuadas algumas trocas entre os robôs,
negociando na linguagem que os próprios desenvolveram. O Facebook acabou por terminar este
processo pois o seu objetivo era que os robôs conseguissem falar com humanos.
2.3.2 Algoritmos da Google
Durante este tópico irão ser abordados dois algoritmos desenvolvidos pela empresa Google, um
deles e talvez o mais famoso é o seu algoritmo de pesquisa e um segundo relacionado com o Gmail, que
fornece a possibilidade de respondermos a um email de forma simples e rápida.
20
O campo de pesquisa da Google, seleciona as respostas a devolver de entre centenas de milhares
de milhões de páginas baseado no seu sistema de classificação. Este sistema de classificação é
constituído por vários AInt que analisam a pesquisa do utilizar e selecionam as informações a devolver.
No seu site a Google (2018) referencia algumas formas de como utiliza estes algoritmos:
• Analisar as Palavras: para as respostas serem eficazes o algoritmo tem de perceber
o significado das palavras, para isso foram criados modelos de idiomas para tentar
decifrar as strings que devem ser pesquisadas. Para aperfeiçoar a pesquisa foram
criados mecanismo para deteção de erros de ortografia e para tentar compreender o
tipo de consulta foram aplicadas técnicas ao nível da compreensão de linguagem
natural.
• Correspondência na pesquisa: os Alnt da Google procuram os termos inseridos no
campo de pesquisa com o objetivo de encontrar as páginas mais adequadas para a
resposta, analisando a frequência e o local onde essas palavras-chave são colocadas na
página web, mais especificamente, se estão no titulo, num cabeçalho, ou no corpo do
texto. Estes algoritmos também têm a capacidade de perceber a relevância de imagens
ou vídeos referentes à pesquisa que está a ser feita sendo que o processo termina dando
prioridade a páginas que estejam no idioma preferido do utilizador.
• Classificação das páginas: de forma a perceber a utilidade das páginas na pesquisa,
existem algoritmos que avaliam vários parâmetros relativamente à qualidade da
informação apresentada. São exemplos destes parâmetros a atualidade dos conteúdos
ou o número de vezes que as palavra-chave aparecem nesse mesmo conteúdo. Estes
AInt conseguem perceber que sites foram consultados por outros utilizadores com
pesquisas idênticas e detetam também a quantidade de vezes que um site é
referenciado noutro site da mesma área, sendo esse, segundo a Google, um indicador
de que a qualidade da informação é elevada. Foram também criados algoritmos para
detetar sites spam que utilizam técnicas como repetir várias vezes a palavra-chave ou
compra de links para aumentar a classificação da sua página, o objetivo destes
algoritmos é o de não ser criada uma má experiencia ao utilizador.
• Considerar o contexto: informações como a localização, pesquisas anteriores e
definições de pesquisa influenciam os resultados devolvidos pelo algoritmo. Por exemplo
21
se pesquisarmos futebol em Londres, irão ser obtidas respostas relacionadas com o
campeonato principal de Inglaterra.
• Devolução de Resultados: para finalizar o processo de pesquisa, a Google analisa
como as informações relevantes se relacionam, verificando se existe apenas um ou mais
tópicos entre os resultados de pesquisa ou se várias páginas se focam numa
interpretação restrita. Também é um objetivo deste AInt devolver informações nos
formatos mais úteis para o tipo de pesquisa.
O outro algoritmo, está relacionado com a criação do Gmail Smart Reply, um algoritmo que
sugere três respostas aos emails recebidos usando técnicas de ML. Segundo (Strope & Kurzweil, 2017)
o conteúdo da linguagem é profundamente hierárquico, desde letras a palavras, de palavras a frases,
frases a parágrafos e assim sequencialmente. Analisando o exemplo, “Aquela pessoa interessante do
café que gostamos, lançou-me um olhar” os pedaços hierárquicos da frase podem ser muito variáveis.
O sujeito da frase é a pessoa do café, o modificar “interessante” diz algo sobre experiências do passado,
sabe-se que está a acontecer algo no café. Cada palavra faz parte de uma hierarquia ou mais que uma,
por exemplo um café é um tipo de restaurante que é um tipo de loja que é um tipo de estabelecimento,
etc. Para uma resposta apropriada para esta mensagem devemos considerar o significado de lançar um
olhar que pode ser ambíguo pois não sabemos se é algo positivo ou negativo. Muita quantidade de dados
sobre o mundo e a capacidade de julgamento fundamentado são necessários para fazer distinções subtis.
Estas distinções são alcançadas através de abordagens de ML com exemplos suficientes de linguagem.
22
3. ABORDAGENS METODOLÓGICAS
Tendo em conta que o processo de elaboração deste Projeto de Dissertação tem uma
complexidade elevada irão ser utilizadas duas metodologias, a metodologia principal é designada de
Design Science Research (DSR). Posteriormente na parte prática irá ser utilizada o Scrum que é uma
metodologia direcionada para o desenvolvimento de Software.
3.1 Design Science Research
Design Science, tal como foi conceituada por Simon, suporta um paradigma de pesquisa pragmática
que requer a criação de artefactos inovadores para resolver problemas do mundo real (Hevner &
Chatterjee, 2010).
O DSR tem diversas fases que podem ser analisadas na Figura 8 e que posteriormente serão
explicadas de forma mais detalhada, por exemplo podemos verificar que na fase de Identificação do
Problema deve-se definir o problema e mostrar a sua importância.
A escolha desta metodologia deve-se primeiramente, à flexibilidade do seu processo de iteração que
permite regressar a fases anteriores e depois porque são definidos o problema e os objetivos de forma
clara. Segue-se uma explicação detalhada das várias fases desta metodologia segundo Peffers et al.
(2007):
1. Identificação do Problema e Motivação: define-se o problema específico da pesquisa
e fundamenta-se o valor da solução, podendo ser necessário fragmentar conceptualmente
o problema de forma a que o autor capte a complexidade da solução. A partir do momento
em que o problema é definido, inicia-se o desenvolvimento de um artefacto que forneça de
Figura 8- Metodologia Design Science Research (adaptado de (Peffers et al., 2007))
23
forma efetiva uma solução. Relativamente a esta dissertação, esta fase representa a
definição do tema e a motivação para o surgimento e desenvolvimento do mesmo.
2. Definir os Objetivos da Solução: através da definição do problema e conhecimento do
que é possível fazer inferimos o objetivo da solução. Os objetivos poderão ser quantitativos
(a solução desejável seria melhor do que a atual) ou qualitativos (um novo artefacto onde é
esperado que sejam suportadas soluções que não foram abordadas até agora para um
determinado problema). Assim sendo e relativamente à conceção desta dissertação, nesta
fase procede-se à definição dos objetivos e resultados esperados.
3. Conceção e Desenvolvimento: esta é fase de conceção do artefacto, tal artefacto pode
ser potencialmente construções, modelos, métodos ou instanciações. Neste ponto define-
se a funcionalidade desejada para o artefacto bem como a sua arquitetura e criação. O
recurso necessário para esta fase são o conhecimento da literatura escolhida.
Relativamente a esta dissertação esta fase está relacionada com a conceção e
desenvolvimento do Algoritmo Inteligente.
4. Demonstração: demonstração da utilidade do artefacto para resolver um ou mais
problemas que apareçam na fase anterior, podendo envolver experiências, simulações,
casos de estudo, provas de conceito, ou qualquer atividade apropriada. No caso desta
dissertação será realizada uma prova de conceito ao algoritmo a desenvolver.
5. Avaliação: observar e medir o quão bem o artefacto suporta a solução do problema. Esta
atividade envolve a comparação dos resultados dos objetivos da solução atual a partir do
uso do artefacto na fase de demonstração. Isto requere o conhecimento de métricas
relevantes e análise das técnicas utilizadas.
6. Comunicação: comunicar o problema e a sua importância na forma de artefacto,
demonstrando a sua utilidade e novidade, o rigor da sua conceção e eficácia para outros
investigadores ou outros púbicos relevantes, bem como, para profissionais quando
apropriado. No caso desta dissertação, os resultados serão comunicados através do
documento de dissertação bem como com a realização de artigos científicos.
24
3.2 Scrum
Segundo Lei, et al., (2017) Scrum é baseado na teoria empírica do controlo de processos, sendo
uma metodologia iterativa e incremental de gestão de projeto para controlar o risco e otimizar a
previsibilidade de um projeto.
Os três pilares em que assenta o processo SCRUM são a Transparência, Inspeção e Adaptação. A
Transparência significa que o processo tem de ser visível a todas as pessoas que estão envolvidas no
projeto. A Inspeção deve ser efetuada permanentemente de forma a que sejam identificados potenciais
erros numa fase inicial. O terceiro pilar é adaptação, caso um inspetor determine que algum aspeto do
projeto não é aceitável ou que esteja fora do âmbito do mesmo, o processo terá de ser ajustado de forma
a evitar problemas posteriores.
“Scrum consiste em equipas Scrum, eventos, artefactos e regras. As regras são essenciais para ligar
equipas, eventos e artefactos juntos durante o projeto.” (Lei et al., 2017). Explica-se agora de forma mais
especifica os vários componentes desta metodologia segundo Schwaber e Sutherland (2017):
• Equipa Scrum: as equipas Scrum têm duas características fundamentais, uma delas é
serem auto-organizadas, ou seja, escolhem a melhor forma de realizar o seu trabalho. A
outra característica é serem equipas multifuncionais, isto é, possuem todas as
competências necessárias para realizar o trabalho da melhor forma. Estas duas
características fazem com que a equipas Scrum sejam completamente independentes de
outras equipas. Este modelo de equipa foi pensado de forma a otimizar a flexibilidade,
criatividade e produtividade. A equipa Scrum é composta por:
o Dono do Produto: responsável por maximizar o valor do produto e também o
trabalho da equipa de desenvolvimento, a forma como o faz depende de cada
pessoa, organizações e equipas. O Dono do Produto é a IOTech- Innovation on
Technology sendo também responsável pela gestão do Backlog de Produtos.
o Equipa de Desenvolvimento: constituída por profissionais que entregam
incrementos de qualidade a um determinado produto. Estas equipas para além de
serem auto-organizadas e multifuncionais são constituídas apenas pelo cargo de
desenvolvedor, não contêm subequipas e apesar de poderem ter membros de
diferentes áreas as responsabilidades são imputadas á equipa como um todo.
Relativamente a esta dissertação a equipa será constituída pelos criadores da
25
plataforma no qual o autor deste documento está inserido concebendo o Algoritmo
Inteligente da mesma.
o Mestre Scrum: responsável por garantir que o Scrum é entendido por todos,
certificando-se que os constituintes da equipa aderem á teoria, práticas e regras.
Ajuda também as pessoas ou entidades externas que tenham um entendimento
do que é ou não útil numa possível interação com a equipa Scrum. O Mestre
Scrum é o CEO da empresa parceira neste projeto.
• Eventos: os eventos no Scrum existem no sentido de criar alguma regularidade,
minimizando a necessidade de reuniões que não estejam previstas. Os eventos são
planeados numa caixa temporal, dividida em vários eventos e é definido o tempo máximo
desse evento, as várias caixas temporais são designadas de Sprint. Todos os eventos no
Scrum são olhados como mais uma oportunidade para a inspeção e adaptação. Esta
metodologia agrega os seguintes eventos:
o Sprint: considerado como o núcleo do Scrum, é o espaço temporal que no
máximo dura um mês onde deve ser criado algo de valor, um incremento para o
cliente. Um Sprint só começa quando termina o anterior. Para o desenvolvimento
deste projeto foram definidos os seguintes Sprints que podem ser observados na
Tabela 2 sendo que o primeiro Sprint é referente à validação das features e inicia a
5 de Fevereiro terminando a dia 9 do mesmo mês.
Tabela 2 - Sprints do Projeto
Sprint
ID
Sprinalt Inicio Fim
1 Validação dos Features (Recursos) 05/02/18 09/02/18
2 Elaboração do Modelo de Machine Learning 12/02/18 16/03/18
3 Conceber campo de pesquisa com sugestão 05/03/18 30/03/18
4 Sugestão caso a pesquisa não encontre equivalência 02/04/18 27/04/18
5 Identificação do melhor Prestador de Serviços para
determinado Serviço
30/04/18 25/05/18
6 Integração do Algoritmo na Plataforma 28/05/18 15/06/18
7 Desenvolvimento da API 18/06/18 29/06/18
26
o Sprint Planning: é um encontro realizado com todos os elementos da equipa
Scrum, onde se planeia de forma colaborativa o que que se vai fazer no Sprint e
deve demorar um máximo de oito horas caso se esteja a planear um Sprint de um
mês. O Scrum Master é responsável por marcar o local da reunião e garantir que
todos entendem o seu propósito.
o Sprint Goal: é um conjunto de objetivos para um determinado sprint que pode
ser alcançado através da implementação do Product Backlog. Permite á Equipa de
Desenvolvimento perceber porque está a fazer aquele incremento, o que poderá
trazer alguma flexibilidade. É criado durante o Sprint Planing.
o Daily Scrum: evento diário que dura no máximo 15 minutos para a equipa de
desenvolvimento sincronizar atividades e planear o que fazer nas próximas 24
horas. Este evento tem a presença do Scrum Master e baseia-se em 3 perguntas:
O que fiz ontem que ajudou a equipa a atingir objetivo? O que vou fazer hoje para
ajudar a equipa a atingir o objetivo? Existe algum impedimento que não permita a
mim e à equipa conseguir atingir o objetivo?
o Sprint Review: é uma reunião informal que acontece no fim de um Sprint para
inspecionar o Incremento adicionado e adaptar o Product Backlog caso seja
necessário. Caso esteja tudo bem, então tenta-se perceber o que se pode fazer
mais para acrescentar valor ao projeto. O objetivo é receber o feedback dos
stakeholders e fomentar a colaboração entre as partes.
o Sprint Restrospective: a Equipa Scrum faz uma análise do que aconteceu no
Sprint anterior. Ocorre depois do Sprint Review e tem como objetivo criar um plano
para se poder implementar as melhorias que a Equipa acha que devem ser feitas
na forma como desenvolve o seu trabalho.
• Artefactos: representam o trabalho ou valor realizados com o objetivo de maximizar a
transparência de informações chave de forma a que, toda a gente entenda o artefacto
sendo mais uma oportunidade para a inspeção e para a adaptação. Os artefactos
desenvolvidos são os seguintes:
o Product Backlog: este artefacto guarda uma lista ordenada de todos os
requisitos do produto bem como,
o qualquer alteração que seja necessária ser feita. O Dono do Produto é
responsável pelo conteúdo deste artefacto bem como pela sua disponibilidade e
27
ordenação dos requisitos. Os atributos desta lista são a descrição do requisito,
ordem, estimativa que é feita pela equipa de desenvolvimento e valor. Este
artefacto pode estar em constantes alterações ao longo do tempo.
o Sprint Backlog: é o conjunto de requisitos selecionados do Product Backlog para
o Sprint bem como um plano de como entregar esse requisito. É feita uma
previsão do trabalho que será necessário realizar pela equipa para conseguir o
incremento a entregar.
o Incremento: é a soma de todos os requisitos do Product Backlog que foram
concluídos durante um determinado Sprint.
28
4. TRABALHO REALIZADO
Neste tópico serão expostas as plataformas de fornecimento de serviços que foram analisadas
para o desenvolvimento do projeto. Para cada plataforma foi realizada uma descrição das características
e funcionamento da mesma bem como, uma análise SWOT. A Análise SWOT tem como objetivo
identificar as forças e fraquezas de uma organização e as oportunidades e ameaças do ambiente.
Identificando esses fatores, desenvolve-se a estratégia, aproveita-se os pontos fortes, elimina-se as
fraquezas, explora-se as oportunidades e contrariam-se as ameaças (Dyson, 2004).
O objetivo desta análise na execução do projeto é perceber as mais valias criadas pelas
plataformas que foram analisadas, deste modo, criou-se uma matriz de funcionalidades/características
onde podemos analisar de forma mais clara o funcionamento de cada plataforma. No tópico seguinte,
define-se um conjunto de funcionalidades que se interpretam como relevantes para o desenvolvimento
do algoritmo e para o funcionamento da plataforma a desenvolver em conjunto com a IOTech.
4.1 Zaask
A plataforma Zaask funciona através de contacto por email, mensagem ou contacto telefónico
entre o fornecedor do serviço e o seu consumidor.
Quando entramos na plataforma temos a possibilidade de escolher entre duas formas o serviço
que necessitamos. A primeira é um campo de pesquisa que, à medida que vamos escrevendo vai
sugerindo serviços que possam ser aquele que o utilizador procura, caso não exista correspondência a
plataforma sugere opções ao utilizador que se aproximam do que foi escrito no campo de pesquisa. A
segunda forma é através das categorias em que os serviços estão alocados, no caso do Zaask encontram-
se as seguintes categorias principais: serviços para a casa, bem-estar, eventos, aulas e outros. Dentro
dessas categorias principais existem subcategorias, por exemplo, ao escolher a categoria principal
“Serviços para a Casa”, encontramos as subcategorias: Projetos Gerais, Projetos de Interior, Projetos de
Exterior e Reparações e assistência técnica. Em todas as categorias encontra-se também os projetos
mais populares, sendo exemplos: Canalizadores, Serralharia, Mudanças, Trabalhos de Eletricidade, etc.
Após o requerente do serviço escolher o serviço que pretende tem de responder a um conjunto
de questões de forma a especificar da melhor forma possível qual o problema que tem. Posteriormente
a isso, será contactado via email por no máximo cinco fornecedores do tipo de serviço requerido que
estejam interessados em efetuar o trabalho.
29
Terminando o questionário a plataforma pede o nome do utilizador e cria uma conta
automaticamente, aí o utilizador poderá ver o progresso do seu pedido que tem 4 fases: a primeira é a
publicação do pedido; a segunda é obter propostas onde as propostas poderão ter uma estimativa de
preço, o perfil e avaliações do prestador de serviços e uma mensagem; a terceira fase é a fase de
contacto com os profissionais; a quarta fase é onde se seleciona o profissional desejado para a execução
do serviço.
Tabela 3 - Análise SWOT ao Zaask
Strenghts Weaknesses
• Varias áreas de atuação na plataforma • Aplicação Mobile para o fornecedor de
serviços • Plataforma User-Friendly
• Processo moroso • Sem contacto instantâneo • Lacuna na área da Saúde
Opportunities Threats
• Melhorar as sugestões quando a pesquisa não tem uma equivalência
• Explorar mais a área da saúde • Apostar em publicidade para divulgar a
plataforma devido á emergência deste mercado
• Aparecimento de outras plataformas
4.2 BCLEVR
O BCLEVR é uma plataforma de serviços que possibilita o contacto entre o prestador de serviços
e o requerente, este contacto acontece via email.
Ao entrar na plataforma temos a possibilidade de escrever num campo de pesquisa o serviço
pretendido, sendo que, à medida que o utilizador escreve a plataforma vai dando sugestões. Existe
também a possibilidade de encontrar o serviço pretendido entrando nas várias categorias que a
plataforma possui, são elas: aulas e explicações; bens e produtos; construção, casa e jardim, festas e
eventos; freelancers e outros serviços; imóveis e alojamento; moda e lifestyle; saúde e bem-estar;
transportes e mudanças; fazer obras em casa e pilotos e drones.
30
Quando o utilizador especifica o serviço desejado tem de responder a um conjunto de perguntas
de forma a que o serviço requerido seja o mais explicito possível, facilitando assim aos fornecedores de
serviços perceber exatamente a necessidade do utilizador
Tabela 4 - Análise SWOT ao BCLEVR
Strenghts Weaknesses
• Variedade de áreas na plataforma • Possibilidade de adicionar fotos para
melhor entendimento das necessidades • Sem necessidade de criar conta
• Só podemos selecionar as sugestões • Sem contacto instantâneo • Não tem área da Saúde
Opportunities Threats
• Apostar em publicidade para divulgar a plataforma devido á emergência deste mercado
• Explorar mais a área da saúde
• Aparecimento de outras plataformas
4.3 Sobert
Durante o levantamento das plataformas existentes foi também encontrada a Sorbert. Esta
plataforma está ainda em desenvolvimento, mas tem como objetivo fazer a organização das
necessidades de serviços que um determinado utilizador tenha. O utilizador apenas diz o que pretende,
a plataforma trata de escolher o profissional ideal para realizar o serviço e o utilizador vai analisando
esse processo na plataforma. Devido a não se conseguir utilizar a plataforma não foi realizada a análise
SWOT da mesma.
4.4 Knok
O Knok é uma aplicação mobile que funciona apenas na área da saúde. O objetivo desta aplicação
é permitir marcar uma consulta ao domicilio ou por videochamada com um médico à escolha do
utilizador.
Quando entramos na aplicação criamos o nosso perfil com o nome, idade, a localização da nossa
residência e um cartão de crédito para o pagamento de consultas. O processo de marcação da consulta
inicia com uma descrição do problema do utilizador que pretende obter a consulta para que a aplicação
possa sugerir qual o tipo de médico (a sua área de intervenção) que o cliente necessita. A aplicação irá
sugerir vários médicos tendo em conta a localização do utilizador e do médico, bem como informações
31
do preço das consultas, percurso académico e cursos que tenha frequentado, podendo assim o utilizador
escolher o profissional de saúde que preferir. Posteriormente à escolha, o utilizador terá de efetuar o
pagamento da consulta através de um cartão de crédito que estará associado à conta do utilizador. Na
aplicação é marcada a consulta e existe a possibilidade no fim avaliar o profissional de saúde que prestou
o serviço.
Tabela 5 - Análise SWOT ao Knok
Strenghts Weaknesses
• Plataforma Mobile • Possibilidade de efetuar videochamada
como consulta • Pagamento por cartão
• Só podemos selecionar as sugestões • Sem contacto instantâneo • Mau calculo das distâncias • O website não funciona para pedirmos o
serviço
Opportunities Threats
• Apostar em publicidade para divulgar a plataforma devido á emergência deste mercado
• Aparecimento de outras plataformas
4.5 Matriz de Funcionalidades
Para uma melhor perceção das funcionalidades que devem ser incluídas na plataforma que irá
ser desenvolvida em conjunto com a IOTech, cria-se na Tabela 6 uma Matriz de Funcionalidades e
Características existentes em cada uma das plataformas analisadas de forma a existir uma melhor
triagem do que realmente é relevante e deve ser incluído na plataforma a desenvolver. Foram também
realizados pedidos de serviços para perceber o tempo de resposta das plataformas.
Tabela 6 - Matriz de Funcionalidades e Características do Sistema
Funcionalidades e
Características
Plataformas
Zaask BCLEVR Knok
Campo de pesquisa
com sugestão Sim Sim Não contém
Sugestão caso a
pesquisa não encontre
equivalência
Sim Não contém Não contém
32
Funcionalidades e
Características
Plataformas
Zaask BCLEVR Knok
Plataforma organizada
por categorias Sim Sim Não contém
Exemplos de serviços
dentro das categorias Sim, diversas Sim, diversas Não contém
Adicionar ficheiros
multimédia para uma
melhor analise da
situação
Sim, após iniciar a
troca de mensagens
Sim, no ato de
requisição do serviço Não contém
Análise do Estado do
Pedido Sim Não Sim
Resposta em Tempo
Real Não Não Sim
Localização,
distâncias,
proximidade
Não calcula Não calcula Calcula de forma
errada
4.6 Características da Plataforma
Consoante o estudo que foi feito às plataformas, definiu-se algumas
características/funcionalidades que irão ser dividas em duas partes, uma parte para com enfoque
apenas na conceção do algoritmo e outra na conceção da plataforma.
Para a conceção da plataforma propõe-se que esta tenhas as seguintes características:
• seja user-friendly
• contenha um campo de pesquisa onde estará integrado o Algoritmo Inteligente a
desenvolver
• na página principal exista uma área reservada ao cliente e outra ao prestador de serviços
• os utilizadores devem ter a possibilidade de escolher e posteriormente visualizar quais os
prestadores de serviços preferidos
33
• as trocas de mensagens entre as partes devem ficar armazenadas durante um período
mínimo de um mês e deve ser possível adicionar conteúdos multimédia.
Relativamente ao algoritmo propõe-se que este seja capaz de:
• devolver as informações corretas quando um utilizar precisa de um determinado serviço
bem como informações relevantes quanto aos prestadores de serviços como a sua
localização e as avaliações ao mesmo.
• caso a pesquisa não tenha match o algoritmo deve conseguir perceber qual a
necessidade do utilizador e devolver uma resposta adequada.
34
5. PLANEAMENTO
Neste capitulo irá ser abordado o planeamento do projeto, apresentam-se as atividades a realizar
ao longo do projeto, bem como, os riscos inerentes à realização do mesmo com as respetivas ações
atenuantes.
5.1 Atividades
Neste tópico serão definidas as atividades do projeto de dissertação bem como, as datas da sua
realização e as precedências entre as mesmas. As atividades estão organizadas pelas várias fases da
metodologia Design Science Research (DSR) e pelos momentos de entrega dos documentos do Plano de
Trabalho, Projeto de Dissertação e Dissertação. Na Tabela 7 são apresentadas as várias atividades a
realizar. No Anexo II – Diagrama de Gantt encontra-se o Diagrama de Gantt, onde podemos ter uma
perspetiva temporal das atividades e analisar as suas precedências. As atividades que contém um
losango são as milestones definidas na metodologia de desenvolvimento Scrum.
Tabela 7 - Atividades do Projeto
ID Atividade Início Conclusão Precedência
1 Plano de Atividades 21/09/17 21/12/18
1.1 Plano de Trabalho 22/09/17 02/10/17
1.1.1 Elaboração do Resumo 23/09/17 24/09/17
1.1.2 Elaboração do Enquadramento 24/09/17 24/09/17
1.1.3 Descrição das Abordagens Metodológicas 25/09/17 27/09/17
1.1.4 Definição dos Objetivos e Resultados
Esperados
27/09/17 27/09/17
1.1.5 Elaboração da Calendarização 28/09/17 29/09/17
1.1.6 Elaboração e Revisão do Plano de Trabalho 29/09/17 01/10/17
1.1.7 Submissão do Plano de Trabalho 02/10/17 02/10/17 1.1.6
1.2 Projeto de Dissertação 03/10/17 22/01/18 1.1
1.2.1 Identificação do Problema e Motivo 03/10/17 05/10/17
1.2.1.1 Elaborar Enquadramento e Motivação 03/10/17 05/10/17
35
1.2.2 Definição dos Objetivos da Solução 06/10/17 20/10/17 1.2.1
1.2.2.1 Elaborar Objetivos e Resultados
Esperados
06/10/17 08/10/17 1.2.1.1
1.2.2.2 Pesquisa e Seleção da Literatura 09/10/17 20/10/17 1.2.2.1
1.2.3 Elaboração do Documento do Projeto de
Dissertação
23/10/17 18/01/18 1.2.2.2
1.2.4 Revisão do Documento do Projeto de
Dissertação
19/01/18 20/01/18 1.2.3
1.2.5 Submissão do Documento do Projeto de
Dissertação
22/01/18 22/01/18 1.2.4
1.3 Dissertação 23/01/18 21/12/18 1.2
1.3.1 Realização de Tutoriais de Phyton 23/01/18 31/01/18
1.3.2 Conceção e Desenvolvimento do
Artefacto
05/02/18 28/06/18
1.3.2.1 Validação dos Features (Recursos) 05/02/18 09/02/18
1.3.2.2 Elaboração do Modelo de Machine
Learning
12/02/18 16/03/18
1.3.2.3 Conceber campo de pesquisa com
sugestão
05/03/18 30/03/18
1.3.2.4 Sugestão caso a pesquisa não encontre
equivalência
02/04/18 27/04/18
1.3.2.5 Identificação do melhor Prestador de
Serviços para determinado Serviço
30/04/18 25/05/18
1.3.2.6 Integração do Algoritmo na Plataforma 28/05/18 15/06/18
1.3.2.7 Desenvolvimento da API 18/06/18 29/06/18
1.3.3 Demonstração 02/07/18 13/07/18 1.3.2
1.3.3.1 Prova de Conceito 02/07/18 13/07/18
1.3.4 Avaliação 16/07/18 27/07/18 1.3.3
1.3.4.1 Verificação da Qualidade de Resposta do
Algoritmo
16/07/18 27/07/18
36
1.3.5 Elaboração e Revisão do Documento de
Dissertação
05/02/18 20/10/18
1.3.6 Comunicação 16/04/18 12/11/18 1.3.4
1.3.6.1 Escrita e Revisão de Artigos Científicos 16/04/18 12/11/18
1.3.7 Submissão do Documento de Dissertação 22/10/18 22/10/18 1.3.5
1.3.8 Apresentação da Dissertação 23/10/18 21/12/18 1.3.7
1.4 Reunião Semanal com o Orientador 25/09/17 20/10/18
5.2 Lista de Riscos
Todos os projetos têm os seus riscos que devem ser identificados de forma a serem atenuados. Na
Tabela 8 apresentam-se os riscos do projeto, a possibilidade de acontecerem e o impacto que poderão
ter na execução do projeto sendo a multiplicação destas características a severidade do risco. Cada risco
tem um determinado no projeto e terá uma ação atenuante. Os valores variam entre 1 e 5, sendo que 1
é muito baixo e 5 muito alto. As siglas P, I e S correspondem a “Probabilidade”, “Impacto” e “Severidade”
respetivamente.
Tabela 8 - Lista de Riscos
Risco P I S Impacto Acção Atenuante
Complexidade
elevada do projeto
2 5 10 Problemas com o uso das
ferramentas a serem
utilizadas no projeto.
Explorar as ferramentas,
analisar documentação e
realizar tutoriais para
melhor compreensão.
Falta de comunicação
com o orientador
1 4 4 Pode provocar atrasos nos
prazos e má interpretação
dos resultados obtidos ao
longo da execução do
projeto.
Reuniões periódicas
definidas com o professor.
Definir meios de
comunicação para
esclarecimentos pontuais.
37
Risco P I S Impacto Acção Atenuante
Alteração dos
objetivos e dos
resultados esperados
2 3 6 Caso o orientador entenda
que é necessário proceder
à alteração dos objetivos e
dos resultados esperados,
obrigando desta forma à
alteração do planeamento.
Ajustar o plano de trabalho
à nova realidade.
Má interpretação dos
objetivos e dos
resultados esperados
2 4 8 Se os objetivos e
resultados esperados
forem mal interpretados o
resultado não será o
esperado.
Reunir com o orientador
para analisar o estado do
projeto e esclarecimento de
duvidas.
Fraca qualidade dos
dados
2 4 8 Caso os dados não sejam
os melhores o algoritmo
não será testado da
melhor forma
comprometendo assim a
qualidade final do projeto.
Analisar os dados para
descobrir erros ou
incoerências nos dados.
Perca de Ficheiros 1 4 4 Caso exista algum
problema com a máquina
poderão ser perdidos
ficheiros e informação
relevante atrasando assim
a realização do projeto.
Realizar Backups.
Ajustar planeamento.
Avaria da Máquina 1 3 3 Caso a máquina avarie
poderá existir perca de
informação e o plano pode
sofrer atrasos.
Fazer Backups.
Ter máquina de reserva.
Ajustar planeamento.
38
6. CONCLUSÃO
Com o objetivo de responder à questão de investigação, “É possível utilizar algoritmos inteligentes
para relacionar os clientes e os prestadores de serviços?”, procedeu-se à seleção e estudo da literatura
de áreas que permitam solucionar esta questão. Com base nesta literatura foi possível perceber a lacuna
que existe no mundo digital de plataformas de aproximação em tempo real entre prestadores de serviços
e clientes. Com o crescimento da Inteligência Artificial (IA) e as várias áreas de aplicação em que a
mesma pode ser inserida, percebeu-se que, com a criação de um Algoritmo Inteligente (AInt) podemos
conseguir que um sistema aprenda e que consiga dar as respostas esperadas a um determinado
utilizador. Como auxílio foi feito um levantamento de plataformas já existentes na área de forma a
perceber o que existe já desenvolvido na área da Prestação de Serviços (PS) e o que se pode fazer para
criar algo de novo.
A literatura sobre o desenvolvimento de AInt na área da PS é inexistente, e mesmo em outras
áreas é reduzida apesar de existirem vários exemplos de aplicações de IA, não é demonstrada a forma
como foram concebidos os AInt, como foram treinados com modelos de Machine Learning (ML) e
posteriormente como são implementados nos softwares.
Relativamente ás abordagens de investigação descritas, optou-se pelo Design Science Research
(DSR) como metodologia principal e o Scrum pois é uma metodologia mais detalhada ao nível do
desenvolvimento de software, complementando assim a fase do DSR referente à conceção e
desenvolvimento do artefacto.
Foi também realizado um levantamento de plataformas existentes na área da Prestação de
Serviços (PS) de forma a existir uma melhor perceção daquilo que é feito nesta área, tentando assim,
perceber de que forma se poderá criar uma plataforma que marque a diferença, aplicando soluções
inteligentes à mesma.
Concluindo a literatura revista permitiu identificar, conceitos, metodologias, modelos e aplicações
que servirão como base ao desenvolvimento prático do Projeto de Dissertação. Nessa vertente prática
será desenvolvido o AInt em conjunto com a IOTech utilizando a metodologia Scrum. Para isso foram
definidas algumas funcionalidades que se consideram indispensáveis ao bom funcionamento do AInt e
consequentemente da plataforma a desenvolver. Para além do desenvolvimento do AInt, serão também
elaborados artigos científicos de forma a colmatar a falta de literatura existente nesta área.
39
BIBLIOGRAFIA
Adeli, A., & Neshat, M. (2010). A fuzzy expert system for heart disease diagnosis. In Lecture Notes in
Engineering & Computer Science (Vol. 1, pp. 1–6).
Alpaydin, E. (2010). Inroduction to Machine Learning.
https://doi.org/10.1016/j.neuroimage.2010.11.004
Antonsson, E. K., & Cagan, J. (2001). Formal engineering design synthesis.
Arlitsch, K., & Newell, B. (2017). Thriving in the Age of Accelerations: A Brief Look at the Societal Effects
of Artificial Intelligence and the Opportunities for Libraries. Journal of Library Administration, 57(7),
789–798. https://doi.org/10.1080/01930826.2017.1362912
Camastra, F., & Vinciarelli, A. (2008). Machine Learning for Audio, Image and Video Analysis. Young,
413–430. https://doi.org/10.1007/978-1-84800-007-0
Copeland, M. (2016). Difference Bewteen Artificial Intelligence, Machine Learning, and Deep Learning.
Retrieved January 20, 2018, from https://blogs.nvidia.com/blog/2016/07/29/whats-difference-
artificial-intelligence-machine-learning-deep-learning-ai/
Dyson, R. G. (2004). Strategic development and SWOT analysis at the University of Warwick. European
Journal of Operational Research, 152(3), 631–640. https://doi.org/10.1016/S0377-
2217(03)00062-6
Feng, J., Lei, Y., Lin, J., & Al., E. (2016). Deep neural networks: A promising tool for fault characteristic
mining and intelligent diagnosis of rotating machinery with massive data. Mechanical Systems &
Signal Processing, 72–73, 303–315.
Google. (2018). Como funcionam os Algoritmos de Pesquisa. Retrieved January 5, 2018, from
https://www.google.com/search/howsearchworks/algorithms/
Gori, M. (2017). Machine Learning: A Constraint-Based Approach.
Griffin, A. (2017). Facebook’s Artificial Intelligence Robots shut down after they start talking to each other
in their own language. Retrieved January 30, 2018, from http://www.independent.co.uk/life-
style/gadgets-and-tech/news/facebook-artificial-intelligence-ai-chatbot-new-language-research-
openai-google-a7869706.html
Hanne, T., & Dornberger, R. (2017). Computational Intelligence in Logistics and Supply Chain
Management. (Springer, Ed.).
Hevner, A., & Chatterjee, S. (2010). Design Research in Information Systems, 22, 9–23.
40
https://doi.org/10.1007/978-1-4419-5653-8
Ismail, R. I. B., Alnaimi, F. B. I., & Alqrimli, H. F. (2016). Artificial intelligence application in power
generation industry: initial considerations,. IOP Conference Series Earth and Environmental Science,
32, 1–4.
Joshi, P. (2017). Artificial Intelligence with Python-Packt Publishing - ebooks Account (2017).
Kim, K. G. (2016). Deep Learning Book Review. Healthc Inform Res.
https://doi.org/10.4258/hir.2016.22.4.351
Kotsiantis, S. B. (2007). Supervised Machine Learning: A Review of Classification Techniques. Emerging
Artificial Intelligence Applications in Computer Engineering. Retrieved from
http://books.google.com/books?hl=en&lr=&id=vLiTXDHr_sYC&pgis=1
Lecun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436–444.
https://doi.org/10.1038/nature14539
Lei, H., Ganjeizadeh, F., Jayachandran, P. K., & Ozcan, P. (2017). A statistical analysis of the effects of
Scrum and Kanban on software development projects. Robotics and Computer-Integrated
Manufacturing, 43, 59–67. https://doi.org/10.1016/j.rcim.2015.12.001
Li, X., & Jiang, H. (2017). Artificial Intelligence Technology and Engineering Applications, 32(5), 381–
389.
Ma, A., Li, Y., Cao, Y., & Al., E. (2014). Intelligent diagnosis for aero-engine wear condition based on
immune theory. In Artificial intelligence application in power generation industry: initial
considerations.
Maini, V., & Sabri, S. (2017). Machine Learning for Humans. Medium.
Manshad, A., Rostami, H., Toreifi, H., & et al. (2016). Optimization of Drilling Penetration Rate in Oil
Fields Using Artificial Intelligence Technique (Nova Scien). NY, USA.
Meirelles, D. S. E. (2006). O conceito de Serviço, 26(1), 119–136.
Mohammed, M., Kan, M. B., & Bashier, E. B. M. (2017). Machine learning : algorithms and applications.
Oroumieh, M., Malaek, S., Ashrafizaadeh, M., & et al. (2013). No Title. Aerospace Science & Technology,
26, 244–258.
Pannu, A. (2015). Artificial Intelligence and its Application in Different Areas. Certified International
Journal of Engineering and Innovative Technology, 9001(10), 2277–3754.
https://doi.org/10.1155/2009/251652
Peffers, K., Tuunanen, T., Rothenberger, M. A., & Chatterjee, S. (2007). A Design Science Research
Methodology for Information Systems Research. Journal of Management Information Systems,
41
24(3), 45–77. https://doi.org/10.2753/MIS0742-1222240302
Russell, S. J., Norvig, P., Canny, J. F., Malik, J. M., Edwards, D. D., & Jonathan, S. J. S. (1995). A Modern
Approach. Theory and Practice (Vol. 13). https://doi.org/10.1007/s11894-010-0163-7
Schwaber, K., & Sutherland, J. (2017). The Scrum Guide - The Definitive Guide to Scrum: The Rules of
the Game. Retrieved from https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-
Guide-US.pdf
Singha, S., Bellerby, J., & Trieschmann, O. (2012). Detection and classification of oil spill and lookalike
spots from SAR imagery using an artificial neural network. In IEEE Geoscience and Remote Sensing
Symposium (pp. 5630–5633).
Stoitsis, J. et al. (2006). Computer aided diagnosis based on medical image processing and artificial
intelligence methods, Nuclear Instruments & Methods in Physics Research.
Strope, B., & Kurzweil, R. (2017). Efficient Smart Reply, now for Gmail. Retrieved January 10, 2018, from
https://research.googleblog.com/2017/05/efficient-smart-reply-now-for-gmail.html
Suresh, L. P., Dash, S. S., & Panigrahi, B. K. (2015). Artificial Intelligence and Evolutionary Algorithms in
Engineering Systems. (L. P. Suresh, S. S. Dash, & B. K. Panigrahi, Eds.) (Vol. 324). New Delhi:
Springer India. https://doi.org/10.1007/978-81-322-2126-5
Trigueiros, P., Ribeiro, F., & Reis, L. P. (2012). A comparison of machine learning algorithms applied to
hand gesture recognition. Information Systems and Technologies (CISTI), 2012 7th Iberian
Conference on, 1–6.
Wallaroo. (2018). Facebook Newsfeed Algorithm History. Retrieved February 1, 2018, from
https://wallaroomedia.com/facebook-newsfeed-algorithm-change-history/
Wang, J., Ma, Y., Zhang, L., Gao, R. X., & Wu, D. (2018). Deep learning for smart manufacturing: Methods
and applications. Journal of Manufacturing Systems, 1–13.
https://doi.org/10.1016/j.jmsy.2018.01.003
Widman, L. E., & Loparo, K. A. (1990). Artificial Intelligence, Simulation, and Modeling, 1990(April 1990),
48–66.
Zheng, A. (2015). Evaluating Machine Learning Models: A Beginner’s Guide to Key Concepts and Pitfalls.
O’Reilly.
Zygmunt, C., & Napieralski, A. (2015). Artificial intelligence in medical diagnosis of some brain
dysfunctions. International Journal of Microelectronics and Computer Science, 6, 1–5.
42
ANEXO I – MATRIZ DE CONCEITOS
A matriz de Conceitos que se encontra refletida na Tabela 9, tem como objetivo uma melhor
perceção da relação entre autores e as áreas em que foram citados ao longo deste documento.
Tabela 9 - Matriz de Conceitos
Autor
Conceitos
Inteligência
Artificial
Machine
Learning
Deep
Learning
Algoritmos
Inteligentes
Adeli e Neshat (2010) X
Alpaydin (2004) X
Arlitsch e Newell (2017) X X
Canastra e Vinciarelli (2008) X
Fenge et al. (2016) X
Goodfellow et al. (2016) X
Hanne e Dornberger, 2017 X
Ismail et al. (2016) X
Joshi (2017) X
(Kim, 2016) X
Kotsiantis (2007) X
LeCun et al., 2015 X
Li e Jiang (2017) X
Ma et. al (2013) X
Manshad et al. (2016) X
Marini e Sabri (2017) X
Mohammed et. al (2017) X X
Oroumieh et al. (2013) X
Pannu (2015) X
Russel e Norving (1995) X
Singah et al. (2012) X
Stoitsis et al. (2006) X
Suresh et al. (2014) X
43
Autor
Conceitos
Inteligência
Artificial
Machine
Learning
Deep
Learning
Algoritmos
Inteligentes
Trigueiros et. al, 2012 X
Turing (1950) X
Wang et al. (2018) X
Zeng (2015) X
Zygmut e Napieralski (2015) X