Você está na página 1de 12

LUIZ WAGNER DA ROSA

Inteligência Artificial: Assistentes pessoais e problemas causados pela


interpretação de comandos

Cascavel

Set./2022

1. INTRODUÇÃO

Atualmente temos a Inteligência artificial ao nosso redor e nem nos damos conta
disso, abrangendo desde assistentes pessoais a sugestões de conteúdos na
internet. Uma área que já se desenvolveu muito, mais que ainda há muito o que ser
explorado e aprimorado. Tem por finalidade ajudar nas tarefas corriqueiras do dia a
dia, como na sugestão de melhorias em processos industriais auxiliando na tomada
de decisões, na análise de dados coletados de vários dispositivos, influenciando na
aquisição de produtos ou serviços, e como assistentes pessoais auxiliando o usuário
com lembretes na agenda, realização de chamadas telefônicas, informações sobre o
clima e trânsito entres outros.
Os problemas que podem ser trabalhados por uma IA, podem ser de
classificação, previsão ou otimização. Para a resolução desses problemas, usamos
técnicas que englobam áreas como estatística, matemática, algoritmos e lógica de
programação.
Quando tratamos de assistentes pessoais, estamos usando uma IA voltada
para nos auxiliar nas tarefas cotidianas, e com isso disponibilizando acesso a
informações pessoais sensíveis. Nesse contexto, quando é solicitada uma ação ao
assistente pessoal, o mesmo a realiza, retornando ao usuário uma resposta
proveniente de um processamento dos dados. Se essa resposta for a esperada pelo
usuário, a IA classificará como correta e usará métricas para referencia-la em
consultas futuras. Caso a resposta não seja a esperada pelo usuário, também será
classificada, ganhando peso menor do que a resposta correta, servindo também
como referencial de consultas futuras.

1
Um problema que ocorre muito com IA utilizadas em assistentes pessoais,
são ações não autorizadas pelo usuário, onde assistentes pessoais como Alexa da
Amazon, a Siri da Apple ou a Cortana da Microsoft estão realizando compras de
itens pela internet utilizando dados financeiros e pessoais de seus usuários, sem
que recebam uma ordem expressa para isso.
Uma solução para tal problema poderá estar relacionado com o refino na
técnica de classificação utilizada pela IA, onde poderá assim ser evitado que o
usuário sofra com cobranças indevidas e principalmente não tenha que perder
tempo para corrigir a ação executada pelo seu assistente pessoal. Isso sem levar
em conta que seus dados pessoais ficaram expostos na internet sem seu
consentimento, podendo ocasionar penalidades conforme disposto pela LGPD (Lei
Geral de Proteção de Dados).
Será abordado o contexto histórico da IA, o emprego da IA nos assistentes
pessoais mais utilizados atualmente, métodos de classificação que podem ser
utilizados, os problemas gerados pela uso da IA com relação a assertividade dos
comandos do usuário e uma sugestão de como lidar com esse problema de
classificação da IA.
Essa pesquisa tem como propósito ir mais a fundo sobre os métodos de
classificação, demonstrando qual poderá ser o mais adequado na solução do
problema de interpretação que ocorre nos assistentes pessoais, buscando minimizar
assim a exposição de dados sensíveis do seu usuário e principalmente aumentando
a confiabilidade de seu uso.
2. REFERENCIAL TEÓRICO

Inteligência Artificial foi criada no inicio do século 20, tendo como definição a
resposta de uma máquina ao observar o seu ambiente, contrastando com a
inteligência natural dos animais e a dos seres humanos. Sofreu mudanças ao longo
do tempo em seu escopo. Um exemplo disso está relacionado com o
reconhecimento de caracteres, o qual costumava ser um grande desafio para a IA,
onde atualmente tornou-se uma rotina, não sendo mais considerado com parte de
uma IA. Conforme descobrimos novos usos para a Inteligência artificial, estes são
integrados a sua base de referência do que é considerado como normal, ampliando
assim seu escopo para qualquer nova função que possa surgir.

Aprendizado de máquina é considerado um subconjunto específico da


inteligência artificial, referindo-se a ação de possibilitar a uma máquina aprender a
partir de um ciclo de respostas. Sua definição como termo existe desde os anos de
1980, mas somente recentemente, nos últimos 10 a 15 anos conseguimos obter os
recursos necessários para o processamento e armazenamento dos dados,
implementando assim o aprendizado de máquina em escala (NORMAN, 2021).

Redes Neurais Artificiais (RNA) é uma das técnicas utilizadas pelo


aprendizado de máquina na qual tem se obtido grande sucesso para a solução de
problemas. São modelos matemáticos inspirados em estruturas neurais biológicas,
possuindo capacidade computacional adquirida pelo aprendizado. A informação é
processada em uma RNA através de neurônios artificiais, definidos como neurônico
McCulloch e Pitts (ou modelo MCP).

O Perceptron é considerado o modelo mais simples do aprendizado de


máquina utilizando Redes Neurais, sendo definido em 1957 por Frank Rosemblat,
resolvendo problemas simples linearmente separáveis, sendo composto por uma
estrutura de uma camada única e unidades básicas denominadas de neurônios
MCP, possuindo uma regra para o aprendizado. Seu algoritmo utiliza a correção de
erros como base, existindo assim uma fase para o treinamento e uma fase para o
teste do algoritmo.

Quando está na fase de treinamento, os exemplos são rotulados e


submetidos ao algoritmo, onde os parâmetros da rede (pesos) são modificados
quando ocorre a apresentação de um novo exemplo á rede. Após o ajuste dos
parâmetros nessa fase, ocorre a avaliação do sistema.

Visando a resolução de problemas mais complexos, faz-se necessário a


utilização de redes de Perceptrons os quais são organizados em múltiplas camadas
MLP (Multi-Layer Perceptrons), tendo o algoritmo mais utilizado para treinamento
denominado como Backpropagation, o qual resolveu muitos problemas (LUDEMIR,
2021).

3. METODOLOGIA

Para a realização desse trabalho de pesquisa científica será utilizada o


método da pesquisa bibliográfica em livros e artigos científicos.

4. Teoria sobre Redes Neurais Artificiais

Quando falamos em redes neurais artificiais, estamos no referenciando sobre


a criação de um modelo computacional, o qual tem por objetivo abstrair uma
estrutura anatômica real, mais especificamente um ou mais neurônios, os quais são
as células que compõem o nosso sistema nervoso central e as conexões que
existem entre eles.
O nosso sistema nervoso a nível celular, constitui-se por neurônios, os quais
realizam conexões que são denominadas de sinapses. Um neurônio básico é uma
estrutura, onde a partir de reações bioquímicas que visam estimula-lo, geram um
potencial elétrico o qual será transmitido através de suas conexões, criando padrões
entre os mesmos ativando algum processo de outro subsistema ou tecido, ou ainda
para simplesmente guardar esses padrões de sinapses, os quais podem ser
convencionalmente entendidos como nossa memória.

Em eletrônica se usa um princípio muito parecido quando há componentes


eletrônicos, os quais se comunicam em circuitos através de carga de pulso elétrico
gerado, o qual pode ser convertido e propagado de forma controlada, possuindo
diferentes intensidades com a finalidade de desencadear alguma ação ou processo.

Na computação digital, há modelos os quais a nível de linguagem de


máquina, ou muito próximo a ela, realizam o chaveamento de pulsos elétricos,
traduzindo informações através do código binário, onde a ausência de um pulso
elétrico sobre portas lógicas, ou a sua presença, podem ativa-las dentro de um
circuito, independente de sua função ou robustez.

Quando falamos a nível de programação, primeiramente precisamos entender


o que é um Perceptron. O Perceptron é denominado como um neurônio artificial, o
qual funcionará como um modelo lógico, possuindo a capacidade de interpretar
dados matemáticos de entrada, pesos aplicados sobre esses dados, e funções para
ativação ao final do processo, muito semelhante a um neurônio real, onde
poderemos saber se o mesmo será ativado ou não em meio a um processo.

Redes neurais artificiais possui como conceito básico, a utilização de uma


classe de algoritmos com a finalidade de encontrar e processar padrões complexos
a partir de bases de dados utilizando para isso as estruturas lógicas denominadas
Perceptrons, possuindo como estrutura básica as entradas, camadas de
processamento, funções de ativação e saídas.
A rede neural artificial é geralmente composta por neurônios artificiais, os
quais podem ser alimentados pelo usuário ou retroalimentada dentro da rede através
de dados das conexões com outros neurônios, aplicando alguma função nesses
dados, gerando saídas, as quais podem representar uma tomada de decisão, a
realização de uma classificação, uma desativação ou ativação, entre outros
processos.

É fundamental entender que como em uma rede neural biológica, na rede


neural artificial haverá meios de comunicação entre os neurônios, onde haverá a
possibilidade de utilizar esses processos os quais são denominados sinapses, para
realizar a atribuição de valores e funções sobre a mesma. A sinapse normalmente
possui um sub estrutura lógica com o nome de Bias, a qual pode ser utilizada para a
realização de alterações intermediárias aos neurônios no processo considerado
como essencial no aprendizado de máquina, pois é nessa camada onde ocorrem as
atualizações dos valores para o aprendizado da rede.

Referenciando os neurônios artificiais e suas conexões, podemos separa-los


virtualmente em camadas de processamento, pois dependendo da aplicação da
rede, ela poderá ter apenas uma camada, mais de uma camada, ou possuir
camadas sobre camadas. Em um modelo básico de rede neural, a mesma será
composta por uma camada de entrada, onde a mesma poderá ser alimentada
manualmente pelo usuário, ou utilizar uma base de dados.

Mas em alguns modelos, haverá o que denominamos como camadas ocultas,


as quais são intermediárias, aplicando funções de ativação ou agindo como filtros
sobre os dados processados. Assim desde os modelos mais básicos até os mais
avançados sempre existirá uma ou mais camadas de saída, as quais representam o
final do processamento dos dados dentro da rede depois de aplicadas todas as suas
funções.

Na literatura, tem-se a definição da interação entre as camadas de neurônios


artificiais, a utilização de pesos e função de soma, onde um neurônio de entrada
possui um valor atribuído a ele mesmo, e em sua sinapse, ou seja, em sua conexão
com outro neurônio subsequente, terá um peso com o valor gerado aleatoriamente,
onde o mesmo será aplicado sobre o valor inicial desse neurônio em forma de
multiplicação. O resultado dessa multiplicação irá definir o valor do próximo neurônio
que estiver na próxima camada. Se houver vários neurônios por camada além dessa
mencionada anteriormente, ocorrerá a soma dessas multiplicações.

Exemplo:

1 neurônio Z = entradas x pesos

N neurônios Z = (entrada1 x peso1) + (entrada2 x peso2) + etc...

No fim do processamento das camadas, será executada uma função final, a


qual é denominada como função de ativação, onde o valor final gerado poderá
definir uma tomada de decisão, uma ativação (ou desativação) ou uma classificação.
Nesta etapa também podemos relacionar a decisão de problemas lineares como 0
ou 1, True ou False, Ligado ou Desligado, ou não lineares como a probabilidade de
0 ou a probabilidade de 1, os quais também podem ser chamados de binários ou
multiclasse.

Problema Linear (ReLU) é aquele onde o valor atribuído a X é maior que 0, e


consequentemente ocorre a ativação do neurônio, caso contrário o neurônio não é
ativado. Comumente se utiliza da Função Degrau (Step Function) a qual define que
se o valor do parâmetro de X for igual ou maior a esse valor o neurônio é ativado,
caso contrário não.

Problema não Linear (Sigmoid) possui como característica a probabilidade de


ocorrer ou não a ativação ou a classificação de acordo com a proximidade do valor
de X ao valor de 0 ou 1. Apresenta e considera os valores intermediário entre 0 e 1
de forma probabilística, tendendo a 0 ou a 1 conforme o desfecho. (FELTRIN, 2019)
4.1 Aprendizado de Máquina

Em computação, apesar de se utilizar o nome “máquina”, o que se faz


realmente é a criação de modelos lógicos, os quais possibilitam simular uma
inteligência computacional, onde o software é alimentado com dados de entrada, e a
partir destes, reconhecer padrões, realizando assim tarefas diferentes sobre eles,
realizando a aprendizagem a partir da experiência e extraindo informações as quais
desencadearão a tomadas de decisões a partir dos mesmos, onde ao final teremos
um algoritmo funcional, o qual foi treinado aprendendo a atingir um objetivo tendo
como base os dados ao qual foi alimentado.

Não percebemos, mais a primeira mudança ocorrida na web, foi quando


tivemos sites dinâmicos, os quais tinham com dispositivo de validação os famosos
captcha, os quais possuem um conceito genial por trás. Pois ao pedir ao usuário
para realizar um simples teste com o objetivo de provar que o mesmo não é um
robô, está na verdade ocorrendo o treinamento de um robô para reconhecer os
padrões, criando com isso uma espécie de inteligência artificial. Toda vez que um
captcha é respondido, o usuário sinaliza um objeto ou uma pessoa na imagem,
contribuindo assim para o aprendizado de uma máquina.

Quando se cria um modelo de algoritmo para realizar a análise e


interpretação de dados (independente do tipo), inicialmente os fazemos de forma
manual, codificando um modelo, o qual poderá ser usado e reutilizado
posteriormente para outros problemas computacionais semelhantes (identificação,
classificação, regressão, previsão, entre outros).

No processo de aprendizado de máquina dispomos basicamente de três


tipos: o aprendizado supervisionado, o aprendizado não supervisionado e o
aprendizado por reforço.
O aprendizado supervisionado é um método o qual basicamente temos os
dados de entrada e de saída, e o que se faz é treinar manualmente uma rede neural
artificial para realizar o reconhecimento e aprendizagem dos padrões que originaram
a saída. Podemos citar como exemplo o método usado indiretamente em um
captcha. Nesse modelo temos os dados de entrada e sabemos a solução do
problema, onde o que se faz é a codificação da rede de uma forma que será
possível mostrar como a mesma irá chegar na reposta correta, onde esse padrão
será aprendido e replicado em novos testes.

Já no aprendizado não supervisionado, temos dados acumulados com


informações diversas de cada amostra, onde poderemos fazer o seu processamento
através de uma rede neural, com o objetivo que a rede reconheça e faça o
agrupamento das informações quanto ao seu tipo, ou realize uma classificação ou
determine um padrão de forma natural. Após as características serão reconhecidas,
ocorrendo a separação das amostras quanto as suas particularidades, realizando o
agrupamento conforme sua similaridade, e apenas isso, uma vez que a mesma não
saberá o que fazer com essas classificações, a não ser realizar a classificação de
novas amostras.

Outro método de aprendizado é o aprendizado por reforço, onde uma rede


neural fará o processamento de padrões dos dados com base na sua forma e estado
atual, assim como o do ambiente, possuindo um objetivo para ser alcançado, como
por exemplo, descobrir o caminho mais eficiente para se deslocar de um ponto A até
um ponto B, e a partir disto, realizar várias tentativas para alcançar o objetivo, tendo
como base tentativa e erro, repetindo o processo até alcançar uma margem
satisfatória ou o objetivo proposto. Comumente o aprendizado ocorre quando a rede
identifica os acertos e os erros, recebendo recompensas ou penalidades, com o
intuito de que se aprendam quais foram as ações corretas e incorretas, salvando os
padrões em uma memória de experiência para que a mesma possa ser replicada.
(FELTRIN, 2019)
4.1 Perceptrons

O Perceptron é considerado a estrutura básica de uma rede neural artificial, e


ao mesmo tempo é o ponto inicial para programar visando problemas de menos
complexidade, os quais são recebem a denominação de linearmente separáveis.
Abaixo teremos a representação do modelo didático de um perceptron, o qual possui
3 espaços alocados para entradas (X, Y, Z), os quais se conectam com uma
estrutura central a qual possui o símbolo Sigma ∑ , o qual é normalmente utilizado
para atribuição de uma função Soma, sendo uma operação aritmética bastante
comum, onde finalmente está irá se comunicar com uma última estrutura lógica, a
qual possui o símbolo de uma Função de Ativação f(x).

Essas três estruturas lógicas serão a base mínima para qualquer trabalho que
se pretenda utilizar uma rede neural. Haverão outros modelos muito mais complexos
os quais serão diferentes em suas estruturas. O que devemos compreender é que
todo o perceptron possuirá entradas, operações que serão realizadas sobre estas e
uma função a qual resultará na ativação ou não desse neurônio em seu contexto.

Conforme esse modelo é possível resolver de uma forma computacional os


problemas denominados como linearmente separáveis. Tal conceito pode ser
compreendido como um tipo de problema computacional, o qual terá como resultado
apenas um valor para uma tomada de decisão. Através desse modelo foi criada uma
pequena rede neural, com uma capacidade de realizar um processamento de dados
para ativar ou não um neurônio, um abstração da condição realizada com
operadores lógicos, onde uma tomada de decisão resulta em 0 ou 1, True ou False,
return x ou return y, onde o que se torna importante é uma opção ou outra. De forma
prática, atribuímos valores e funções para essa estrutura, com o objetivo de
entender de uma forma objetiva o processamento da rede neural:

REFERÊNCIAS BIBLIOGRÁFICAS

NORMAN, Alan T. Aprendizado de Máquina em ação: Um manual para leigos, guia para
iniciantes. São Paulo: Tektime, 2021.
LUDERMIR, Teresa Bernarda. Inteligência Artificial e Aprendizado de Máquina: estado atual e
tendências, São Paulo, Fev 2021. Disponível em:
<https://www.scielo.br/j/ea/a/wXBdv8yHBV9xHz8qG5RCgZd/?lang=pt. > Acessado em: 04 Set. 2022.

Você também pode gostar