Álgebra Linear

 
1.Matemática para Machine Learning

   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. Mas, 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 e 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 o aprendizado de máquina. Entretanto, não é necessário ter uma compreensão das operações abstratas subjacentes aos algoritmos para usar o aprendizado de máquina 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 o aprendizado de máquina 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

  • 3(x^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 um 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 são parâmetros

   O gráfico de uma equação linear é uma reta

 

 

 

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 +  2y – z = 1

2x – 2y +  4z = -2

-x + 0,5y – z = 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 que 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 esses 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. Vamos resolver o problema e ver o que acontece.

x +  y +  z = 1   (1)

2x +  y = 1    (2)

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

Da equação (1) obtemos,

z = 1 – x – y     (4)

Substituindo o valor da z na equação (6), 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 as equações (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, e em que cada linha (observação) pode ser pensada como uma equação linear. 

   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 3 variáveis ​​significa que queremos encontrar a interseção desses planos. 

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.

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

Significa que as variáveis x, y e z tem um infinito numero 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.

 

3.Matrizes

 

   Você provavelmente sabe que os computadores são projetados para processamento binário, ou seja, apenas 0 e 1.

 

   Uma imagem com vários atributos é armazenada usando as intensidades de cada pixel em uma construção chamada de matriz. Esta matriz pode ser então  processada para identificar o objeto. Na figura uma parte da boca do gato é representada por uma matriz de números hexadecimais.

 

                                                                                            O computador vê:

 

 

A imagem é classificada:

80% gato

10% cão

8% boné

2% planta

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   Uma matriz A é um conjunto de elementos, organizados em linhas e colunas. Geralmente, as linhas são denotadas por i e as colunas por j. Denotamos um elemento da matriz por a ij  ou  A ij 

 

Por exemplo, na matriz abaixo

 

       a 1,2  = b

 

Para chegar ao resultado, vá pela primeira linha e chegue à segunda coluna. Se uma matriz tiver m linhas e n colunas, a ordem da matriz é (m,n).

4.Álgebra das matrizes para Machine Learning

Adição e Subtração de matrizes

   Para adicionarmos duas ou mais matrizes é preciso que todas elas tenham o mesmo número de linhas e de colunas. A soma dessas matrizes irá resultar em outra matriz que também terá o mesmo número de linhas e de colunas. Os termos deverão ser somados com os seus termos correspondentes. A notação A' é para a matriz transposta que explicaremos a seguir.

Propriedades:

A + B = B + A

A + (B + C) = (A + B) +  C

k(A +  B) = kA +  kB    ( k escalar)

(A + B)' = A' + B'

 

 

 

 

 

Multiplicação de matrizes

   Quando multiplicamos uma matriz por outra, é necessário que o número de colunas da primeira matriz seja igual ao número de linhas da segunda matriz. O resultado dessa multiplicação será uma matriz com o número de linhas da primeira e o número de colunas da segunda.

Am,n Bn,p = C m,p

   A multiplicação das matrizes A2,3  e B4,3 é impossível, pois a primeira possui três colunas e a segunda possui quatro linhas. Como esses valores não são iguais, a multiplicação não ocorre. Agora se pretendemos multiplicar as matrizes A2,3  e B3,2  ,o produto dessas matrizes será uma matriz C2,2.

 

   O produto da primeira linha pela primeira coluna, gera o elemento C1,1.O produto da primeira linha pela segunda coluna, gera o elemento C1,2, etc..

Em geral AB ≠ BA, ou seja, o produto de matrizes não comutativo, pois, 

 

 

 

 

A(BC) = (AB)C

A(B +  C) = AB +  AC

(A +  B)C = AC +  BC

k(AB) =A(kB)

IA = A

Considere o sistema linear com 3 equações e 3 incógnitas:

 

   Denotando estas matrizes por A, X e B, respectivamente, o sistema original de m equações e n incógnitas foi substituído pela única equação matricial:

 

E escrevemos:

AX = B

em que:

Matriz de coeficientes é (A

Matriz-coluna de incógnitas é (X

Matriz-coluna de constantes é (B)

Vejamos um exemplo usando a calculadora de https://matrixcalc.org/. São dadas as três equações lineares

2x - 2y + z = -3

x + 3y - 2z = 1

3x - y - z = 2

Na forma matricial

 

Nossa incógnita é o vetor X, i.e., os valores de x, y e z.

 

pré-multiplicamos ambos os lados por uma matriz inversa dos coeficientes

Ou seja, para resolver um sistema de equações lineares, temos que encontrar o inverso de A e multiplicá-lo por B.

 

5.Tipos mais importantes de  Matrizes

Vetores

   Um vetor, chamado geralmente de array em linguagens de programação, é uma matriz unidimensional sendo a mais simples das estruturas de dados.

Abaixo temos o exemplo de um vetor. Os valores internos são os dados alocados no vetor, enquanto seu tamanho é dado pelo número de casas disponíveis (no caso 5) e o índice representa a posição do dado no vetor (por exemplo podemos definir que 7 tem o índice 0, 2 tem índice 1, 8 tem índice 2 e assim sucessivamente.

Vetor = (1,2,8,9,18)

 

 Um vetor coluna é uma matriz  m × 1, isto é, uma matriz consistente de uma única coluna de m  elementos e um vetor linha uma matriz 1 x m.

Exemplo de construção de um array (vetor) em Python:

                             >>> x = array ([2, 4, -11])      

         >>> y = x +  0.1

 >>> print y

 [2.1   4.1  -10.9]

 

Matrizes quadrada e retangular

 A matriz quadrada tem o número de linhas igual ao número de colunas ( m = n), já na matriz retangular o número de linhas é diferente do de colunas

(m n)

 

 

Matrizes diagonal e  identidade

Numa matriz quadrada em que todos os elementos exceto os da diagonal são zero é chamada uma matriz diagonal

 

A matriz identidade (I) é a matrix diagonal em que todos os elementos da diagonal principal são iguais a 1.

Matrizes transposta e simétrica

  Matriz transposta (A super-escrito T ou A') é a matriz que se obtém da troca de linhas por colunas de uma dada matriz.

 

Propriedades da matriz transposta

(A')'= A

(A +  B)'= A' +  B'

(kA)'= kA'

(AB)'= B'A' 

 

Uma matriz diz-se simétrica se coincidir com a sua transposta, ou seja, se A = A'

Matriz Inversa

  Uma matriz quadrada A é dita invertível quando existe outra matriz denotada por  A sobre-escrito -1  tal que

 

onde I é a matriz identidade.

   Uma matriz é chamada de invertível ou não singular, se e somente se, seu determinante é diferente de zero, por isso uma matriz só pode ser invertível se for uma matriz quadrada com determinante diferente de zero. 

Matriz Ortogonal

   Uma matriz quadrada é dita ortogonal se sua matriz inversa coincide com sua matriz transposta.

Isto é, uma matriz A é ortogonal se

 

Determinantes

   Determinante é uma função matricial que associa a cada matriz quadrada um escalar; ela transforma essa matriz em um número real. Esta função permite saber se a matriz tem ou não inversa, pois as que não têm são precisamente aquelas cujo determinante é igual a 0.

O determinante de uma matriz de segunda ordem é a diferença entre o produto dos termos da diagonal principal e o produto dos termos da diagonal secundária.

det (A) = ad - bc

Para calcular o determinante de matrizes de terceira ordem, utilizamos a chamada regra de Sarrus (exemplo abaixo), 

 

 

 

 

 

 

 

 

 

 

 

e para calcular determinantes de matrizes quadradas de ordem superior a 3 utiliza-se o teorema de Laplace.

Menor de uma matriz

   Um "menor" é o determinante da matriz quadrada formada pela exclusão de uma linha e uma coluna de uma matriz quadrada maior. 

Então menor correspondente a um elemento Aij é o determinante da submatriz formada pela exclusão da coluna i e j da matriz.

Abaixo D11 D21 e D22 são menores da matriz A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cofatores

   Na discussão acima sobre menores, se considerarmos os sinais de termos menores, o resultante que obtemos é chamado o cofator de uma matriz. Para atribuir o sinal, basta somar os índices do elemento correspondente. Se for par atribua sinal positivo, caso contrário atribua sinal  negativo.

No exemplo acima teríamos:

D11 = 6 pois  i = 1 e j =1, i +  j = 2 é par

D22 = 9 pois  i = 2 e j =2, i +  j = 4 é par

D21 = -4 pois  i = 2 e j =1, i +  j = 3 é ímpar

 

Matriz de cofatores

   Na matriz original, substitua o elemento original pelo cofator correspondente. A matriz assim encontrada é chamada de matriz cofatorial correspondente à matriz original.

 

Utilizamos a calculadora de http://www.wolframalpha.com para calcular a matriz de cofatores de A

Matriz adjunta

  Matriz adjunta de uma matriz quadrada é a transposta de sua matriz dos cofatores.

 

 

 

 

 

 

 

 

 

A importância da matriz dos cofatores e da matriz adjunta reside no fato de que elas são utilizadas para determinar a inversão de uma matriz.

 

Cálculo da matriz inversa

   Inversão de matrizes  é usada extensamente  em problemas de machine learning.

Da álgebra elementar sabemos que se existem dois números de tal forma que sua multiplicação, dê 1, então esses dois números são chamados de inversos um do outro. Por exemplo:

3 x 1/3 = 1

   Da mesma forma, na álgebra linear, se duas matrizes, multiplicadas produzem uma matriz identidade, então as matrizes são chamadas inversas uma da outra.

   Para encontrar o inverso de uma matriz A, temos duas etapas:. 

1. Descubra o adjunto da matriz A pelo procedimento explicado nas seções anteriores.

2. Multiplique a matriz adjunto pelo inverso do determinante da matriz A. A matriz resultante é o inverso de A.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   A boa notícia é  que vetores e matrizes são os elementos básicos das linguagens de programação cientificas, de forma que não há razão para usar as operações da álgebra matricial manualmente. Ou seja, é necessário entender o que fazem estas operações, mas não é necessário executá-las ou programa-las manualmente.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Referências

http://slideplayer.com/slide/6640181/

https://www.quora.com/What-are-the-applications-of-linear-algebra-in-machine-learning

 

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