


A transformada de Hadamard (também conhecida como transformada de Walsh–Hadamard, transformada de Hadamard–Rademacher–Walsh, transformada de Walsh, ou transformada de Walsh–Fourier) é um exemplo de uma classe generalizada de transformadas de Fourier. Ela realiza uma operação linear simétrica, involutiva, linear sobre 2m números reais (ou complexos, ou hipercomplexos, embora as próprias matrizes de Hadamard sejam puramente reais).
A transformada de Hadamard pode ser considerada como sendo construída a partir de transformadas discretas de Fourier (DFT) de tamanho 2, e é de fato equivalente a uma DFT multidimensional de tamanho 2 × 2 × ⋯ × 2 × 2. Ela decompõe um vetor de entrada arbitrário em uma superposição de funções de Walsh.
A transformada recebe o nome do matemático francês Jacques Hadamard (fr), do matemático teuto-americano Hans Rademacher e do matemático americano Joseph L. Walsh.
A transformada de Hadamard Hm é uma matriz 2m × 2m, a matriz de Hadamard (escalonada por um fator de normalização), que transforma 2m números reais xn em 2m números reais Xk. A transformada de Hadamard pode ser definida de duas maneiras: recursivamente, ou usando a representação binária (base-2) dos índices n e k.
Recursivamente, definimos a transformada de Hadamard 1 × 1 H0 pela identidade H0 = 1, e então definimos Hm para m > 0 por: onde a divisão por 2m/2 é uma normalização que às vezes é omitida.
Para m > 1, também podemos definir Hm por: onde representa o produto de Kronecker. Assim, exceto por este fator de normalização, as matrizes de Hadamard são compostas inteiramente por 1 e −1.
Equivalentemente, podemos definir a matriz de Hadamard por sua entrada (k, n) escrevendo
onde os kj e nj são os elementos de bit (0 ou 1) de k e n, respectivamente. Note que para o elemento no canto superior esquerdo, definimos: . Neste caso, temos:
Esta é exatamente a DFT multidimensional , normalizada para ser unitária, se as entradas e saídas são consideradas como matrizes multidimensionais indexadas pelos nj e kj, respectivamente.
Alguns exemplos das matrizes de Hadamard seguem. onde é o produto escalar bit a bit das representações binárias dos números i e j. Por exemplo, se , então , concordando com o acima (ignorando a constante global). Note que o elemento da primeira linha, primeira coluna da matriz é denotado por .
H1 é precisamente a DFT de tamanho 2. Também pode ser considerada como a transformada de Fourier no grupo aditivo de dois elementos de Z/(2).
As linhas das matrizes de Hadamard são as funções de Walsh.
De acordo com a definição acima da matriz H, aqui deixamos H = H[m,n]
Na transformada de Walsh, apenas 1 e −1 aparecerão na matriz. Os números 1 e −1 são números reais, portanto não há necessidade de realizar um cálculo com números complexos.
A DFT precisa de multiplicação irracional, enquanto a transformada de Hadamard não. Nem mesmo multiplicação racional é necessária, pois apenas inversões de sinal são necessárias.
Na matriz da transformada de Walsh, cada linha e cada coluna é uma função de Walsh, na qual o número de mudanças de sinal aumenta consecutivamente. Isto é, na primeira linha e primeira coluna, há zero mudanças de sinal (todas as entradas são iguais a 1). Na segunda, há uma mudança de sinal; na terceira, duas mudanças de sinal; e assim por diante. Compare isso com uma transformada discreta de Fourier , na qual cada linha i contém cruzamentos por zero.
Em uma transformada discreta de Fourier, quando m é igual a zero (correspondendo à primeira linha), o resultado também é 1. Para linhas subsequentes, podemos observar uma característica da matriz de que a frequência do sinal começa baixa na primeira matriz linha e aumenta nas linhas seguintes, até a última linha.
A transformada de Hadamard é de fato equivalente a uma DFT multidimensional de tamanho 2 × 2 × ⋯ × 2 × 2.
Outra abordagem é ver a transformada de Hadamard como uma transformada de Fourier no grupo booleano . Usando a transformada de Fourier em grupos (abelianos) finitos, a transformada de Fourier de uma função é a função definida por onde é um caráter de . Cada caráter tem a forma para algum , onde a multiplicação é o produto escalar booleano em strings de bits, então podemos identificar a entrada de com (dualidade de Pontryagin) e definir por
Esta é a transformada de Hadamard de , considerando a entrada de e como strings booleanas.
Em termos da formulação acima, onde a transformada de Hadamard multiplica um vetor de números complexos à esquerda pela matriz de Hadamard , a equivalência é vista tomando para receber como entrada a string de bits correspondente ao índice de um elemento de , e tendo como saída o elemento correspondente de .
Compare isso com a transformada discreta de Fourier usual que, quando aplicada a um vetor de números complexos, usa em vez disso caracteres do grupo cíclico .
No domínio clássico, a transformada de Hadamard pode ser computada em operações (), usando o algoritmo da transformada rápida de Hadamard.
No domínio quântico, a transformada de Hadamard pode ser computada em tempo , pois é uma porta lógica quântica que pode ser paralelizada.
A transformada de Hadamard é extensivamente usada em computação quântica. A transformada de Hadamard 2 × 2 é a porta lógica quântica conhecida como porta de Hadamard, e a aplicação de uma porta de Hadamard a cada qubit de um registrador de qubits em paralelo é equivalente à transformada de Hadamard .
Em computação quântica, a porta de Hadamard é uma rotação de um qubit, mapeando os estados da base de qubits e para dois estados de superposição com peso igual dos estados da base computacional e . Normalmente as fases são escolhidas de modo que
em notação de Dirac. Isso corresponde à matriz de transformação na base , também conhecida como base computacional. Os estados e são conhecidos como e respectivamente, e juntos constituem a base polar em computação quântica.
Uma aplicação da porta de Hadamard em um qubit 0 ou 1 produzirá um estado quântico que, se observado, será 0 ou 1 com igual probabilidade (como visto nas duas primeiras operações). Isso é exatamente como jogar uma moeda justa no modelo probabilístico padrão de computação. No entanto, se a porta de Hadamard for aplicada duas vezes em sucessão (como é efetivamente feito nas duas últimas operações), então o estado final é sempre o mesmo que o estado inicial.
Calcular a transformada de Hadamard quântica é simplesmente a aplicação de uma porta de Hadamard a cada qubit individualmente devido à estrutura de produto tensorial da transformada de Hadamard. Este resultado simples significa que a transformada de Hadamard quântica requer operações, comparado ao caso clássico de operações.
Para um sistema de qubits, portas de Hadamard agindo em cada um dos qubits (cada um inicializado para ) pode ser usado para preparar estados de superposição quântica uniforme quando é da forma . Neste caso com qubits, a porta de Hadamard combinada é expressa como o produto tensorial de portas de Hadamard:
O estado de superposição quântica uniforme resultante é então: Isso generaliza a preparação de estados quânticos uniformes usando portas de Hadamard para qualquer .
A medição deste estado quântico uniforme resulta em um estado aleatório entre e .
Muitos algoritmos quânticos usam a transformada de Hadamard como um passo inicial, pois como explicado anteriormente, ela mapeia n qubits inicializados com para uma superposição de todos os 2n estados ortogonais na base com peso igual. Por exemplo, isso é usado no algoritmo de Deutsch–Jozsa, no algoritmo de Simon, no algoritmo de Bernstein–Vazirani e no algoritmo de Grover. Note que o algoritmo de Shor usa tanto uma transformada de Hadamard inicial quanto a transformada quântica de Fourier, que são ambos tipos de transformadas de Fourier em grupos finitos; a primeira em e a segunda em .
A preparação de estados de superposição quântica uniforme no caso geral, quando ≠ é não trivial e requer mais trabalho. Uma abordagem eficiente e determinística para preparar o estado de superposição com uma complexidade de portas e profundidade de circuito de apenas para todos foi recentemente apresentada. Esta abordagem requer apenas qubits. Importantly, nem qubits ancilla nem quaisquer portas quânticas com múltiplos controles são necessários nesta abordagem para criar o estado de superposição uniforme .
A transformada de Hadamard encontrou aplicações em aprendizado de máquina quântico, particularmente em redes neurais híbridas quântico-clássicas. Pesquisadores da Universidade de Illinois Chicago demonstraram uma abordagem inovadora que implementa operações de rede neural convolucional no domínio da frequência usando hardware quântico.
A abordagem é baseada no teorema da convolução da transformada de Hadamard, que afirma que a convolução diádica entre dois vetores é equivalente à multiplicação elemento a elemento de suas representações da transformada de Hadamard. Esta propriedade permite o cálculo eficiente de camadas convolucionais em computadores quânticos, uma vez que calcular a transformada de Hadamard requer apenas a aplicação de uma porta de Hadamard a cada qubit individualmente.
Em uma arquitetura de rede neural convolucional híbrida quântico-clássica, os cálculos da transformada de Hadamard podem ser descarregados para hardware quântico enquanto mantém o processamento clássico para outras operações. Esta abordagem, apresentada na Conferência Internacional sobre Aprendizado de Máquina (ICML) 2023, demonstrou melhorias na eficiência computacional: no conjunto de dados MNIST, a rede baseada na transformada de Hadamard alcançou 99,31% de precisão de teste com 57,1% menos operações de multiplicação-acumulação (MACs) em comparação com CNNs convencionais, enquanto no ImageNet-1K, uma ResNet-50 baseada na transformada de Hadamard excedeu a precisão da linha de base em 0,59% usando 11,5% menos parâmetros e 12,6% menos MACs.
A vantagem quântica decorre da paralelizabilidade das portas de Hadamard. Enquanto o cálculo clássico da transformada de Hadamard requer O(n log n) operações usando o algoritmo da transformada rápida de Hadamard, a implementação quântica pode calcular a transformada em tempo O(1) aplicando portas de Hadamard a todos os qubits simultaneamente. Esta aceleração exponencial na etapa da transformada torna a convolução no domínio da frequência particularmente atraente para aplicações de aprendizado de máquina quântico.
A transformada de Hadamard pode ser usada para estimar árvores filogenéticas a partir de dados moleculares. A Filogenética é o subcampo da biologia evolutiva focado em entender as relações entre os organismos. Uma transformada de Hadamard aplicada a um vetor (ou matriz) de frequências de padrões de sítio obtidas a partir de um alinhamento de sequências múltiplas de DNA pode ser usada para gerar outro vetor que carrega informações sobre a topologia da árvore. A natureza invertível da transformada filogenética de Hadamard também permite o cálculo de verossimilhanças de sítio a partir de um vetor de topologia de árvore, permitindo usar a transformada de Hadamard para estimativa de máxima verossimilhança de árvores filogenéticas. No entanto, esta última aplicação é menos útil do que a transformação do vetor de padrões de sítio para o vetor de árvore porque existem outras maneiras de calcular verossimilhanças de sítio que são muito mais eficientes. No entanto, a natureza invertível da transformada filogenética de Hadamard fornece uma ferramenta elegante para a filogenética matemática.
A mecânica da transformada filogenética de Hadamard envolve o cálculo de um vetor que fornece informações sobre a topologia e comprimentos de ramo para a árvore usando o vetor ou matriz de padrão de sítio .
onde é a matriz de Hadamard do tamanho apropriado. Esta equação pode ser reescrita como uma série de três equações para simplificar sua interpretação:
A natureza invertível desta equação permite calcular um vetor (ou matriz) de padrão de sítio esperado da seguinte forma:
Podemos usar o modelo de substituição de dois estados de Cavender–Farris–Neyman (CFN) para DNA codificando os nucleotídeos como caracteres binários (as purinas A e G são codificadas como R e as pirimidinas C e T são codificadas como Y). Isso torna possível codificar o alinhamento de sequências múltiplas como o vetor de padrão de sítio que pode ser convertido em um vetor de árvore , como mostrado no seguinte exemplo:
| Índice | Padrão binário | Padrões de alinhamento | ||||
|---|---|---|---|---|---|---|
| 0 | 0000 | RRRR e YYYY | −0.475 | 0 | 1 | 0.6479 |
| 1 | 0001 | RRRY e YYYR | 0.2 | −0.5 | 0.6065 | 0.1283 |
| 2 | 0010 | RRYR e YYRY | 0.025 | −0.15 | 0.8607 | 0.02 |
| 3* | 0011 | RRYY e YYRR | 0.025 | −0.45 | 0.6376 | 0.0226 |
| 4 | 0100 | RYRR e YRYY | 0.2 | −0.45 | 0.6376 | 0.1283 |
| 5* | 0101 | RYRY e YRYR | 0 | −0.85 | 0.4274 | 0.0258 |
| 6* | 0110 | RYYR e YRRY | 0 | −0.5 | 0.6065 | 0.0070 |
| 7 | 0111 | RYYY e YRRR | 0.025 | −0.9 | 0.4066 | 0.02 |
O exemplo mostrado nesta tabela usa o esquema simplificado de três equações e é para uma árvore de quatro táxons que pode ser escrita como ((A,B),(C,D)); no formato newick. Os padrões de sítio são escritos na ordem ABCD. Esta árvore particular tem dois ramos terminais longos (0.2 substituições de transversão por sítio), dois ramos terminais curtos (0.025 substituições de transversão por sítio) e um ramo interno curto (0.025 substituições de transversão por sítio); assim, seria escrita como ((A:0.025,B:0.2):0.025,(C:0.025,D:0.2)); no formato newick. Esta árvore exibirá atração de ramo longo se os dados forem analisados usando o critério de máxima parársimonia (assumindo que a sequência analisada é longa o suficiente para que as frequências de padrões de sítio observadas estejam próximas das frequências esperadas mostradas na coluna ). A atração de ramo longo reflete o fato de que o número esperado de padrões de sítio com índice 6 — que suportam a árvore ((A,C),(B,D)); — excede o número esperado de padrões de sítio que suportam a árvore verdadeira (índice 4). Obviamente, a natureza invertível da transformada filogenética de Hadamard significa que o vetor de árvore corresponde à árvore correta. A análise de parcimônia após a transformação é, portanto, estatisticamente consistente, assim como seria uma análise de máxima verossimilhança padrão usando o modelo correto (neste caso, o modelo CFN).
Note que o padrão de sítio com 0 corresponde aos sítios que não mudaram (após codificar os nucleotídeos como purinas ou pirimidinas). Os índices com asteriscos (3, 5 e 6) são "informativos para parcimônia". Os índices restantes representam padrões de sítio onde um único táxon difere dos outros três táxons (então eles são equivalentes aos comprimentos de ramos terminais em uma árvore filogenética de máxima verossimilhança padrão).
Se alguém deseja usar dados de nucleotídeos sem recodificar como R e Y (e, finalmente, como 0 e 1), é possível codificar os padrões de sítio como uma matriz. Se considerarmos uma árvore de quatro táxons, há um total de 256 padrões de sítio (quatro nucleotídeos elevados à quarta potência). No entanto, simetrias do modelo de três parâmetros de Kimura (ou modelo K81) nos permitem reduzir os 256 padrões de sítio possíveis para DNA para 64 padrões, tornando possível codificar os dados de nucleotídeos para uma árvore de quatro táxons como uma matriz 8 × 8 de maneira semelhante ao vetor de 8 elementos usado acima para padrões de sítio de transversão (RY). Isso é realizado recodificando os dados usando o grupo de Klein quatro:
| Nucleotídeo 1 | Nucleotídeo 2 | Nucleotídeo 3 | Nucleotídeo 4 |
|---|---|---|---|
| A (0,0) | G (1,0) | C (0,1) | T (1,1) |
| C (0,0) | T (1,0) | A (0,1) | G (1,1) |
| G (0,0) | A (1,0) | T (0,1) | C (1,1) |
| T (0,0) | C (1,0) | G (0,1) | A (1,1) |
Como com os dados RY, os padrões de sítio são indexados em relação à base no primeiro táxon escolhido arbitrariamente, com as bases nos táxons subsequentes codificadas em relação a essa primeira base. Assim, o primeiro táxon recebe o par de bits (0,0). Usando esses pares de bits, pode-se produzir dois vetores semelhantes aos vetores RY e então preencher a matriz usando esses vetores. Isso pode ser ilustrado usando o exemplo de Hendy et al. (1994), que é baseado em um alinhamento de sequências múltiplas de quatro pseudogenes de hemoglobina de primatas:
| 0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | |
|---|---|---|---|---|---|---|---|---|
| 0 | 8988 | 9 | 10 | 12 | 24 | 90 | ||
| 1 | 41 | 9 | ** | |||||
| 2 | 45 | 13 | ||||||
| 3 | 54* | 14 | 3 | |||||
| 4 | 94 | 20 | ||||||
| 5 | 1 | |||||||
| 6 | 2 | 2 | ||||||
| 7 | 356 | 1 | 1 | 75 |
O número muito maior de padrões de sítio na coluna 0 reflete o fato de que a coluna 0 corresponde a diferenças de transição, que se acumulam mais rapidamente do que diferenças de transversão em praticamente todas as comparações de regiões genômicas (e definitivamente se acumulam mais rapidamente nos pseudogenes de hemoglobina usados para este exemplo trabalhado). Se considerarmos o padrão de sítio AAGG, ele seria codificado como padrão binário 0000 para o segundo elemento do par de bits do grupo de Klein e 0011 para o primeiro elemento. neste caso, o padrão binário baseado no primeiro elemento corresponde ao índice 3 (então linha 3 na coluna 0; indicado com um asterisco simples na tabela). Os padrões de sítio GGAA, CCTT e TTCC seriam codificados exatamente da mesma maneira. O padrão de sítio AACT seria codificado com padrão binário 0011 baseado no segundo elemento e 0001 baseado no primeiro elemento; isso produz índice 1 para o primeiro elemento e índice 3 para o segundo. O índice baseado no segundo par de bits do grupo de Klein é multiplicado por 8 para produzir o índice da coluna (neste caso, seria a coluna 24). A célula que incluiria a contagem de padrões de sítio AACT é indicada com dois asteriscos; no entanto, a ausência de um número no exemplo indica que o alinhamento de sequências não inclui padrões de sítio AACT (da mesma forma, padrões de sítio CCAG, GGTC e TTGA, que seriam codificados da mesma maneira, estão ausentes).
A transformada de Hadamard também é usada em criptografia de dados, bem como em muitos algoritmos de processamento de sinais e compressão de dados, como JPEG XR e MPEG-4 AVC. Em aplicações de compressão de vídeo, geralmente é usada na forma da soma das diferenças transformadas absolutas. Também é uma parte crucial de um número significativo de algoritmos em computação quântica. A transformada de Hadamard também é aplicada em técnicas experimentais como RMN, espectrometria de massa e cristalografia. É adicionalmente usada em algumas versões de hash sensível à localidade, para obter rotações de matriz pseudo-aleatórias.