• Michel

Álgebra Linear para Machine Learning (parte 1)

Atualizado: 3 de Mai de 2018

Uma pergunta comum que recebo é: “Quanto de matemática preciso saber para ser um cientista de dados?”

Infelizmente não há uma resposta simples para a pergunta. Geralmente, digo que, para começar, você precisa saber estatística para ao menos explorar e visualizar os dados.


Depois de ter coberto os conceitos básicos de aprendizado de máquina, você precisará aprender um pouco mais de matemática. Você deve entender como os algoritmos funcionam, quais são as suas limitações e suposições subjacentes. Agora, para um Cientista de Dados, podem haver muitas outras áreas para estudar, incluindo cálculo e principalmente Álgebra Linear, conforme gráfico abaixo obtido em https://towardsdatascience.com.


Álgebra Linear, uma extensão da álgebra, lida principalmente com a representação de dados em conformidade com certas notações e práticas. De um modo geral, os dados de Álgebra Linear são representados na forma de equações lineares. Essas equações lineares são, por sua vez, representadas na forma de matrizes e vetores.

Um vetor pode ser visto como uma matriz unidimensional. Portanto, a Álgebra Linear lida principalmente com a representação de dados na forma de matrizes. Por exemplo, sem entrar em detalhes mostramos abaixo como um conjunto de três equações lineares é transformado em uma única matriz e depois resolvido.


Machine Learning é intensivo em dados e é extremamente pesado em cálculos. Isso ocorre porque, os algoritmos devem ser treinados a operar com grandes conjuntos de dados, variando de centenas a vários milhões de observações. Representar grandes conjuntos de dados na forma de matrizes nos ajuda a visualizar melhor os dados. A principal vantagem de operar com matrizes no lugar de equações simples é que todas as operações executadas em matrizes são processos em lote (batch). Isso significa que, tenhamos dezenas ou milhões de observações, não processamos cada observação individualmente. Geralmente, uma função é aplicada a todo o conjunto de dados ao mesmo tempo, sem se concentrar nas observações individuais. Matrizes nos ajudam a olhar e processar um lote de dados como uma entidade única.

Muitos recomendam a Álgebra Linear como um pré-requisito para Machine Learning. Entretanto, não é necessário ter uma compreensão das operações abstratas subjacentes aos algoritmos para usar Machine Learning como uma ferramenta para resolver problemas. Mas se você quiser entender os algoritmos que são descritos em livros, artigos e sites é necessário ser capaz de ler e escrever notações vetoriais e matriciais. Também, nem toda a Álgebra Linear é relevante para a teoria de aprendizagem de máquina, e ainda menos para Machine Learning aplicado.

Linguagens de programação como o Python e R oferecem maneiras eficientes de implementar a Álgebra Linear diretamente e permitem soluções talvez mais eficientes para algoritmos especialmente desenvolvidos ou modificados para resolver problemas específicos de sua empresa. O próximo desafio é descobrir o que, para um Cientista de Dados, é importante aprender na Álgebra Linear. Você pode se perder na matemática avançada e desnecessária que pode ser bem interessante, mas não vai te ajudar muito.

De uma maneira geral eu diria que um Cientista de Dados que esteja trabalhando em uma empresa com aplicações conhecidas, em que muitos algoritmos já estão prontos para o uso, não será necessário usar Álgebra Linear.

2.Equações lineares

​ Uma equação linear é uma equação algébrica na qual cada termo é uma constante ou o produto de uma constante e uma única variável embora, diferentes variáveis ​​possam ocorrer em termos diferentes. Por exemplo,


​3x + y = 5 é uma equação linear com duas variáveis

3xy + 5 = 1 não é uma equação linear porque o produto xy está contido em um termo

3x^2 - y = 9 não é uma equação linear porque o termo x^2 não é linear


Um exemplo simples de uma equação linear com apenas uma variável x pode ser escrita na forma:

​ax + b = 0 , onde a e b são constantes e a ≠ 0.


​As constantes podem ser números , parâmetros ou até mesmo funções não lineares de parâmetros, e a distinção entre variáveis ​​e parâmetros pode depender do problema (por exemplo, ver regressão linear ). Por exemplo:​


ax + b y + ((a + c)^3)z = 0 é uma equação linear nas variáveis x, y e z e a, b e c são parâmetros


​ O gráfico de uma equação linear é uma reta, como vemos nos dois exemplos abaixo:


Um sistema de equações lineares é um conjunto finito de equações lineares aplicadas num mesmo conjunto, igualmente finito, de variáveis. Por exemplo,


3x + 2yz = 1

2x – 2y + 4z = -2

-x + 0,5yz = 0


​é um sistema de três equações com três variáveis (x, y e z). Uma solução para um sistema linear é uma atribuição de números às variáveis que satisfaz simultaneamente todas as equações do sistema. Uma solução para o sistema acima é dada por​


x = 1, y = -2 e z = -2


​Já que esses valores tornam válidas as três equações do sistema em questão. A palavra "sistema" indica que as equações devem ser consideradas em conjunto, e não de forma individual.

A teoria de sistemas lineares é a base e uma parte fundamental da Álgebra Linear, um tema extensivamente usado na Ciência de Dados.

Vejamos um problema simples de duas equações lineares com duas incógnitas x e y.


​2x + y = 100 (1)

x + 2y = 100 (2)


O problema básico da Álgebra Linear é encontrar os valores de x e y, ou seja, a solução de um conjunto de equações lineares.

A solução é facilmente obtida fazendo y = 100 – 2x em (1) e substituindo em y em (2):


x + 2(100 – 2x) = 100

x = 100/3 e y = -100/3


​A solução para um sistema de equações lineares em duas variáveis ​​é qualquer par ordenado que satisfaça cada equação independentemente.

Veremos que essas equações lineares são, por sua vez, representadas na forma de matrizes e vetores. O número de variáveis, assim como o número de equações, pode variar dependendo da condição, mas a representação será na forma de matrizes e vetores.

Agora, suponha que você receba um conjunto de três condições com três variáveis.


x + y + z = 1 (1)

2x + y = 1 (2)

5x + 3y + 2z = 4 (3)


Da equação (1) obtemos,

z = 1 – xy (4)


Substituindo o valor da z na equação (3), obtemos


​5x + 3y + 2(1 – x - y) = 4 (5)


Substituindo o valor da y de (2) na equação (5), obtemos


​5x + 3(1 – 2x) + 2(1 – x – (1 – 2x)) = 4 (6)


​Agora, podemos resolver a equação (6) e encontrar os valores de x , y e z .

Como você pode ver, adicionar uma variável extra aumentou bastante o trabalho para encontrar a solução do problema. Agora imagine ter 10 variáveis ​​e 10 equações. Resolver 10 equações simultaneamente não é tarefa agradável. Agora pense numa base de dados em que podemos considerar cada observação como uma equação linear e onde temos milhões de observações.

Veremos na parte 2 que as matrizes são justamente usadas para resolver um grande conjunto de equações lineares. Existem três tipos de sistemas de equações lineares em duas variáveis ​​e três tipos de soluções.

Um sistema consistente com equações independentes tem exatamente um par de soluções (x,y). O ponto em que as duas linhas se cruzam é ​​a única solução.


Um sistema inconsistente com equações independentes não tem solução. Observe que as duas linhas são paralelas e nunca se cruzam.


Um sistema consistente com equações dependentes tem infinitas soluções. As linhas são coincidentes. Eles são a mesma linha, então cada par de coordenadas na linha é uma solução para ambas as equações.


Já um sistema de três equações lineares em três variáveis ​​representa o conjunto de todos os pontos cujas coordenadas satisfazem as três equações. Basicamente, uma equação linear em três variáveis ​​representa um plano. Como no caso das duas retas, encontrar soluções para a equação linear de três variáveis ​​significa que queremos encontrar a interseção desses planos, se é que ela existe.

Aqui também existem três possíveis cenários de solução para sistemas de três equações em três variáveis. Sistemas independentes possuem uma solução única. Significa que achamos valores únicos para as variáveis x, y e z. Graficamente, temos um ponto que é a interseção de três planos no espaço e é ​​a solução exclusiva para o sistema. Vejamos um exemplo de um sistema de equações em três variáveis inconsistente.

São dados

x - 3 y + z = 4 ( 1 )

- x + 2 y - 5 z = 3 ( 2 )

5 x - 13 y + 13 z = 8 ( 3 )

Observando os coeficientes de x podemos ver que podemos eliminar x adicionando a equação (1) à equação (2).

-y – 4z = 7 (4)

Em seguida multiplicamos a equação (1) por -5 e adicionamos a equação (3).


5 x + 15 y - 5 z = - 20 ( 1 ) multiplicado por - 5

5 x - 13 y + 13 z = 8 ( 3 )

_______________

2y + 8z = -12


Em seguida multiplicamos a equação (4) por -2 e adicionamos a equação (5).


2y – 8z = 14 (4) multiplicado por 2

2y + 8z = -12

__________

0 = 2


A equação final 0 = 2 é uma contradição, então concluímos que o sistema de equações em inconsistente e, portanto, não tem solução.

As equações de três variáveis podem representar três planos paralelos, dois planos paralelos e um plano de interseção, ou três planos que cruzam os outros dois, mas não no mesmo local. ​

Sistemas independentes possuem uma solução única. Significa que achamos valores únicos para as variáveis x, y e z. Graficamente, temos um ponto que é a interseção de três planos no espaço e é ​​a solução exclusiva para o sistema.


Sistemas dependentes têm um número infinito de soluções.

Significa que as variáveis x, y e z tem um infinito número de soluções. Graficamente, as soluções caem em uma linha ou plano que é a interseção de três planos no espaço.


​​ Sistemas inconsistentes não têm solução. Graficamente, um sistema sem solução é representado por três planos sem nenhum ponto ou reta em comum.

Infelizmente só podemos visualizar as coisas em, no máximo, e três dimensões. Então para lidar com altas dimensões, como por exemplo, sistemas de equações lineares de mais de três variáveis, só podemos recorrer a soluções não visuais, neste caso as Matrizes.

(continua)


3 Dimensões

Inteligência Artificial nas Empresas

Al. das Papoulas, 147 - Santana de Parnaíba - Alphaville, SP 06539-180 - (11) 4153 6004  - (11) 9 9795 9765

michel@3dimensoes.com.br