Operações matriciais | 12 operações de matriz para aprendizagem profunda

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon

Introdução

Se começar a aprender o aprendizado profundo, A primeira coisa a que você será exposto são os conceitos de álgebra linear que fornecem uma melhor intuição sobre como os algoritmos realmente funcionam nos bastidores., permitindo que você tome melhores decisões. En Deep Learning, uma neuronal vermelho de avanço é uma rede muito simples e muito útil. Underhood, a rede neural de alimentação direta é apenas uma função composta, que multiplica algumas matrizes e vetores juntos.

1pi5c92acx6burmzet8uqyq-1029944

Fonte da imagem: Ligação

Não é que vetores e matrizes sejam a única maneira de realizar essas operações, mas eles se tornam altamente eficientes se você fizer. As estruturas de dados centrais por trás do aprendizado profundo incluem

  • Escalares
  • Vetor de desenho animado,
  • Matrizes e
  • Tensores.

As operações de matriz são usadas na descrição de muitos algoritmos de aprendizagem profunda.

1pur-9ctugamgjswow_ku-a-9057750

Fonte da imagem: Ligação

Então, se você realmente deseja ser um profissional na área de Deep Learning, você não pode parar de dominar alguns desses conceitos. Então, neste artigo, Discutiremos operações matriciais de álgebra linear importantes que são usadas na descrição de métodos de aprendizado profundo..

Tabela de conteúdo

Os tópicos que discutiremos neste artigo são os seguintes:

  • O que são matrizes?
  • Como adicionar e subtrair diferentes matrizes?
  • Como encontrar a forma e o tamanho de uma determinada matriz?
  • Como converter uma matriz densa em uma matriz esparsa?
  • Como encontrar a transposição de uma matriz?
  • Como encontrar o meio, a variância e o desvio padrão de uma matriz?
  • Como encontrar o traço de uma matriz?
  • Como extrair elementos mínimos e máximos de uma matriz?
  • Como encontrar o determinante de uma matriz?
  • Como multiplicar as matrizes fornecidas?
  • Como aplicar a operação específica a cada elemento de uma matriz?
  • Como encontrar o inverso de uma matriz?
  • Como remodelar a matriz para um tamanho diferente?

O que são matrizes?

Matrizes são matrizes retangulares que consistem em números e podem ser vistas como 2Dakota do Norte-ordem dos tensores. Se m e n forem inteiros positivos, quer dizer, m, n ∈ ℕ então a matriz m × n contém m * n número de elementos, com m número de linhas e n número de colunas.

A representação pictórica de uma matriz m × n é mostrada abaixo:

1x0q53aiuug4i6u7bmjjuzg-1440737

Fonte da imagem: Ligação

As vezes, em vez de descrever os componentes completos do array, usamos a seguinte abreviatura de uma matriz:

1rgmyzl1tmf4so67kxyuf1g-1913955

Por exemplo-

Neste exemplo, com a ajuda da biblioteca numpy, vamos criar um array. E também verifique o dimensão da matriz formada.

importar numpy como np
matrix = np.array([[45,34],[67,58]])
# Crie uma matriz
imprimir("A matriz original é dada por n", matriz)
# Verifique a dimensão da matriz
imprimir("A dimensão da matriz dada é", matrix.ndim)

Produção:

A matriz original é dada por 
 [[45 34]
 [67 58]]
A dimensão da matriz dada é 2

Adição e subtração de matriz

adição de matriz-8367395

Fonte da imagem: Ligação

Nesta secção, vamos realizar adição e subtração de matrizes usando o métodos adicionar e subtrair. Esses métodos recebem dois argumentos e retornam a soma e a diferença dessas matrizes, respectivamente. Se a forma das matrizes não for a mesma, ele lança um erro que diz, adição ou subtração não é possível.

matrix_1 = np.array([[45,34],[67,58]])
matriz_2 = np.array([[35,24],[57,48]])
# Adicione as duas matrizes
imprimir("O resultado após adicionar a matriz 1 e matriz 2 é dado por n" , np.add(matrix_1, matriz_2))
# Subtraia uma matriz das outras matrizes
imprimir("O resultado após a subtração da matriz 1 da matriz 2 é dado por n" , np.subtract(matrix_1, matriz_2))
imprimir("O resultado após a subtração da matriz 2 da matriz 1 é dado por n" , np.subtract(matriz_2, matrix_1))

Produção:

O resultado após adicionar a matriz 1 e matriz 2 É dado por 
 [[ 80  58]
 [124 106]]
O resultado após a subtração da matriz 1 da matriz 2 É dado por 
 [[10 10]
 [10 10]]
O resultado após a subtração da matriz 2 da matriz 1 É dado por 
 [[-10 -10]
 [-10 -10]]

Forma e tamanho de uma matriz

Nesta secção, nós encontraremos o caminho, quer dizer, o número de linhas e colunas na matriz fornecida e o tamanho, quer dizer, o número de elementos na matriz de uma determinada matriz.

matrix = np.array([[45,34,75],[67,58,89]])
# Encontrando o número de linhas e colunas na matriz
imprimir("O número de linhas e colunas na matriz dada são " + str(matrix.shape[0]) + " e " + str(matrix.shape[1]) + " respectivamente")
# Número de elementos na matriz
imprimir("O tamanho da matriz dada é" , matrix.size)

Produção:

O número de linhas e colunas na matriz dada são 2 e 3 respectivamente
O tamanho da matriz dada é 6

Converter uma determinada matriz densa em uma matriz esparsa

Vamos primeiro entender o que exatamente significa matriz esparsa e densa.

Uma matriz esparsa é uma matriz que consiste principalmente em valores zero. E matrizes esparsas são diferentes de matrizes com valores principalmente diferentes de zero, que são conhecidas como matrizes densas.

sparse_matrix-3700565

Fonte da imagem: Ligação

de importação scipy esparso
# Crie uma matriz densa
dense_matrix = np.array([[0,0],[0,17],[78,0]])
# Converter matriz densa em matriz esparsa
sparse_matrix = sparse.csr_matrix(matriz densa)
imprimir("A matriz esparsa correspondente a uma dada matriz densa é dada por n" , matriz esparsa)

Produção:

A matriz esparsa correspondente a uma dada matriz densa é dada por 
   (1, 1)	17
  (2, 0)	78

Transposição de matriz

En Matrix Transpose, podemos converter um vetor linha em vetor coluna e vice-versa, quer dizer, linha torna-se colunas e colunas tornam-se linhas.

Se tivermos a matriz A = [umaeu j]mxn, então a transposta desta matriz é AT = [umade]n × m

1vubyxk3gxhnuqvstmcs2gg-1953878Fonte da imagem: Ligação

importar numpy como np
matrix = np.array([[45,34],[67,58]])
imprimir("A matriz original é dada por n" , matriz)
imprimir("A matriz transposta da matriz dada é n" , matrix.T)

Produção:

A matriz original é dada por 
 [[45 34]
 [67 58]]
A matriz transposta da matriz dada é 
 [[45 67]
 [34 58]]

meios de comunicação, variância e desvio padrão de uma matriz

Nesta secção, vamos tentar encontrar algumas coisas estatísticas relacionadas a um array. Aqui nós calculamos a média, a variância e o desvio padrão da matriz usando as funções numpy.

importar numpy como np
matrix = np.array([[45,34],[67,58], [23,89]])
# Encontrando a média dos elementos da matriz
imprimir("A média dos elementos de uma matriz é igual a", np.mean(matriz))
# Encontrando a Variância dos elementos da matriz
imprimir("A variância dos elementos de uma matriz é igual a", np.var(matriz))
# Encontrando o Desvio Padrão de elementos da matriz
imprimir("O desvio padrão dos elementos de uma matriz é igual a", por exemplo, std(matriz))
imprimir("O desvio padrão dos elementos de uma matriz é igual a", np.sqrt(np.var(matriz)))

Produção:

A média dos elementos de uma matriz é igual a 52.666666666666664
A variância dos elementos de uma matriz é igual a 473.5555555555555
O desvio padrão dos elementos de uma matriz é igual a 21.761331658599286
O desvio padrão dos elementos de uma matriz é igual a 21.761331658599286

Traço de uma matriz

matrix-trace-example-8898186

Fonte da imagem: Ligação

Nesta secção, tentará encontrar o traço de uma matriz, quer dizer, a soma de todos os elementos diagonais presentes em uma dada matriz.

importar numpy como np
matrix = np.array([[1,2,3],[4,5,6], [7,8,9]])
# Obtenha os elementos diagonais de uma matriz
imprimir("Os elementos diagonais de uma dada matriz são n", matriz.diagonal())
# Encontrando o traço da matriz
imprimir("O traço de uma dada matriz é igual a", matriz.diagonal().soma())

Produção:

Os elementos diagonais de uma dada matriz são 
 [1 5 9]
O traço de uma dada matriz é igual a 15

Encontre elementos mínimos e máximos de uma matriz

Nesta secção, vamos tentar encontrar os elementos mínimos e máximos de uma matriz, quer dizer, o item com o maior e o menor valor entre todos os itens.

importar numpy como np
matrix = np.array([[1,2,3],[4,5,6], [7,8,9]])
# Encontre o elemento mínimo da matriz
imprimir("O elemento mínimo em uma determinada matriz é", por exemplo, min(matriz))
# Encontre o elemento máximo da matriz
imprimir("O elemento máximo em uma determinada matriz é", np.max(matriz))

Produção:

O elemento mínimo em uma determinada matriz é 1
O elemento máximo em uma determinada matriz é 9

Determinante de uma matriz

b2f18ad26042cabfa7a4aa15d62e752c-6279776

Fonte da imagem: Ligação

Nesta secção, vamos tentar encontrar o determinante de uma matriz. Aqui, calcular o determinante, usamos o módulo de álgebra linear presente no pacote Numpy.

importar numpy como np
matrix = np.array([[1,2,4],[3,4,6], [7,8,5]])
# Encontre o determinante da matriz
imprimir("O determinante da matriz dada é igual a", np.linalg.det(matriz))

Produção:

O determinante da matriz dada é igual a 9.999999999999993

Multiplicação da matriz

Uma matriz de formas (mxn) e uma matriz B de forma (nxp) multiplicada da C de forma (mxp). Lembre-se que ao multiplicar as matrizes é que o número de colunas na primeira matriz é o mesmo que o número de linhas na segunda matriz para realizar a multiplicação sem erros.

196qrphcvxbvm01i1luks8g-4855839

Fonte da imagem: Ligação

Nesta secção, vamos tentar encontrar a multiplicação de duas matrizes.

importar numpy como np
matrix_1 = np.array([[45,34],[67,58]])
matriz_2 = np.array([[35,24],[57,48]])
imprimir("A multiplicação da matriz de duas matrizes dadas é dada por n", por exemplo, matmul(matrix_1, matriz_2))

Produção:

A multiplicação da matriz de duas matrizes dadas é dada por 
 [[3513 2712]
 [5651 4392]]

Operações inteligentes com elementos usando uma função embutida (Lambda)

Neste exemplo, vamos tentar adicionar um certo valor a cada um dos elementos de um array.

importar numpy como np
matrix = np.array([[1,2,4],[3,4,6], [7,8,5]])
adição = lambda i:i + 5
add_5_vec = np.vectorize(Adição)
imprimir("A matriz após adicionar 5 para todos os seus elementos é n", add_5_vec(matriz))

Produção:

A matriz após adicionar 5 para todos os seus elementos é 
 [[ 6  7  9]
 [ 8  9 11]
 [12 13 10]]

Inverso de uma matriz

Nesta secção, vamos tentar encontrar o inverso de uma matriz.

importar numpy como np
matrix = np.array([[1,2,4],[3,4,6], [7,8,5]])
# Encontrando o inverso de uma matriz
imprimir("A matriz inversa de uma dada matriz é n", np.linalg.inv(matriz))

Produção:

A matriz inversa de uma dada matriz é 
 [[-2.8  2.2 -0.4]
 [ 2.7 -2.3  0.6]
 [-0.4  0.6 -0.2]]

Remodele uma determinada matriz

Nesta secção, vamos tentar remodelar uma dada matriz, quer dizer, mude a forma da matriz dada. Mas aqui temos que notar que o tamanho permanece constante após remodelar a matriz, quer dizer, o número de elementos permanece o mesmo.

importar numpy como np
matrix = np.array([[1,2,4],[3,4,6],[7,8,5],[9,2,1]])
imprimir("A matriz remodelada é dada por n", matrix.reshape(6,2))

Produção:

A matriz remodelada é dada por 
 [[1 2]
 [4 3]
 [4 6]
 [7 8]
 [5 9]
 [2 1]]

Outros posts meus

Você também pode verificar minhas postagens anteriores.

Postagens anteriores do blog de ciência de dados.

LinkedIn

Aqui está meu perfil do Linkedin no caso de você querer se conectar comigo. Ficarei feliz em estar conectado com você.

Correio eletrônico

Para qualquer consulta, você pode me enviar um e-mail em Gmail.

Notas finais

Obrigado pela leitura!

Espero que tenha gostado do artigo. Se você gosta, compartilhe com seus amigos também. Qualquer coisa não mencionada ou você deseja compartilhar suas idéias? Sinta-se à vontade para comentar abaixo e eu entrarei em contato com você. 😉

A mídia mostrada neste artigo não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker