Álgebra linear básica: escalares, matrizes, vetores e tensores
Para usar NumPy, é importante recapitular alguns conceitos bem básicos de álgebra linear. A compreensão da álgebra linear é essencial para a implementação eficaz de algoritmos de machine learning. Para entender o funcionamento interno das redes neurais e outros algoritmos de IA, precisamos nos sentir confortáveis com a matemática (álgebra linear, probabilidade, cálculo) nas quais eles se fundamentam. O foco deste post será em conceitos básicos de álgebra linear: escalares, vetores, matrizes e tensores. De forma bem simplificada, podemos separar esses conceitos com base em suas dimensionalidades:
- Escalares são elementos de dimensão zero.
- Os vetores são unidimensionais.
- Matrizes são bidimensionais.
Os tensores podem ter qualquer número de dimensões.
A seguir, abordaremos esses conceitos com mais profundidade.
Imagem ilustrando as diferenças entre escalar, vetor, matriz e tensor (fonte).
Escalar
Um escalar é simplesmente um único número. Não tem direção ou magnitude, apenas um valor. Por exemplo, temperatura e peso são exemplos de escalares.
Vetores
Um vetor é uma matriz unidimensional de números. Em termos simples, um vetor é uma seta que representa uma quantidade que tem magnitude e direção. O comprimento da seta representa a magnitude e a orientação informa a direção. Os exemplos de vetores incluem: deslocamento (por exemplo, 5 metros para a direita) e força (por exemplo, 10 Newtons para baixo). Para criar um vetor com NumPy, podemos simplesmente fornecer uma lista como argumento para a classe np.array.
import numpy as np
# cria um vetor com numpy
meu_vetor = np.array([10, 11, 13, 11, 14, 15])
Matrizes
Uma matriz é uma estrutura bidimensional de números. É como uma tabela ou grade com linhas e colunas. As matrizes são usadas para representar transformações lineares e sistemas de equações. Exemplos de matrizes incluem: imagens em preto e branco (em que cada píxel é um número que representa a intensidade da cor) e matrizes de correlação (em estatística).
Cada elemento em uma matriz é identificado por dois índices em vez de apenas um. Se uma matriz tem uma altura de m e uma largura de n, então dizemos que ela é uma matriz (m x n), onde m representa suas linhas e n representa suas colunas. No exemplo abaixo, usamos duas listas de 3 elementos cada para criar uma matriz 2 x 3 com NumPy.
# cria uma matriz 2 x 3
minha_matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(minha_matrix.shape) # resultado: (2, 3)
Tensores
Os tensores podem ser simplesmente entendidos como uma matriz n-dimensional com n maior que 2. A notação matemática dos tensores é semelhante à das matrizes. Por exemplo, para armazenar dados de uma imagem colorida, podemos usar um tensor com 3 dimensões: a largura da imagem, sua altura e o número de canais de cores. Já para armazenar dados de vídeos, além desses 3 dimensões precisamos de uma quarta com a sequência de quadros. No trecho abaixo, criamos um tensor 3 x 2 x 3 usando NumPy. Os colchetes ([]) delimitam os elementos de cada dimensão.
# cria uma tensor 3 x 2 x 3
minha_matrix = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])
print(minha_matrix.shape) # resultado: (3, 2, 3)
Os tensores são usados extensivamente em machine learning, particularmente em redes neurais e redes do tipo deep learning.
Veja também:
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.