• Nenhum resultado encontrado

Decodificação de códigos de comprimento curto usando redes neurais profundas

N/A
N/A
Protected

Academic year: 2021

Share "Decodificação de códigos de comprimento curto usando redes neurais profundas"

Copied!
84
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Jorge Kysnney Santos Kamassury

Decodificação de Códigos de Comprimento Curto usando Redes

Neurais Profundas

Florianópolis 2020

(2)
(3)

JORGE KYSNNEY SANTOS KAMASSURY

DECODIFICAÇÃO DE CÓDIGOS DE COMPRIMENTO CURTO

USANDO REDES NEURAIS PROFUNDAS

Dissertação submetida ao Programa de Pós-Graduação em Engenharia Elétrica da Univer-sidade Federal de Santa Catarina como parte dos requisitos para a obtenção do Grau de Mestre em Engenharia Elétrica.

Orientador: Prof. Danilo Silva, Ph.D.

Florianópolis

2020

(4)

Ficha de identificação da obra elaborada pelo autor,

através do Programa de Geração Automática da Biblioteca Universitária da UFSC.

Kamassury, Jorge Kysnney Santos

Decodificação de códigos de comprimento curto usando redes neurais profundas / Jorge Kysnney Santos Kamassury ; orientador, Danilo Silva, 2020.

82 p.

Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Engenharia Elétrica, Florianópolis, 2020.

Inclui referências.

1. Engenharia Elétrica. 2. Códigos de comprimento curto. 3. Decodificadores baseados em síndrome. 4. Deep Learning. 5. Códigos BCH. I. Silva, Danilo. II. Universidade Federal de Santa Catarina. Programa de Pós-Graduação em Engenharia Elétrica. III. Título.

(5)

Jorge Kysnney Santos Kamassury

DECODIFICAÇÃO DE CÓDIGOS DE COMPRIMENTO CURTO USANDO REDES NEURAIS PROFUNDAS

O presente trabalho em nível de mestrado foi avaliado e aprovado por banca examinadora composta pelos seguintes membros:

Prof. Glauber Gomes de Oliveira Brante, Dr.

Universidade Tecnológica Federal do Paraná

Prof. Richard Demo Souza, Dr.

Universidade Federal de Santa Catarina

Certificamos que esta é a versão original e final do trabalho de conclusão que foi

julgado adequado para obtenção do título de Mestre em Engenharia Elétrica.

Prof. Bartolomeu Ferreira Uchôa Filho, Ph.D.

Coordenador do Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal de Santa Catarina

Orientador: Prof. Danilo Silva, Ph.D.

Universidade Federal de Santa Catarina

(6)
(7)

Para a minha mãe, Francisca Glória Kamassury, pelo amor e inigualável dedicação aos filhos.

(8)
(9)

Agradecimentos

Gostaria de elencar formalmente meu reconhecimento a todos que de modo direto ou indire-tamente colaboraram para que esse trabalho fosse realizado. Em especial,

À minha mãe, pelo amor incondicional e pela transmissão de valiosos ensinamen-tos tão onipresentes na minha jornada, e aos meus irmãos Kennedy Kamassury e Mateus Kamassury pelo constante apoio (e pelas boas risadas que compartil-hamos). Essa dissertação é inegavelmente fruto do apoio de vocês;

ao professor Danilo Silva, pela sua competente e distinta orientação, pela solic-itude, paciência e dedicação inesgotáveis para o desenvolvimento dessa disser-tação. Suas leituras críticas, sugestões e correções foram imprescindíveis para o progresso e melhoria dessa pesquisa;

aos professores Glauber Gomes de Oliveira Brante e Richard Demo Souza, mem-bros da banca examinadora, pelas leituras, sugestões e correções desta disser-tação, tornando-a melhor;

à Ana Carolina, pelo amor, companheirismo e reciprocidade que tornam meus dias mais felizes. Estendo ainda meus agradecimentos à sua família pelo acolhimento; aos amigos que a UFSC me proporcionou, Carla Patrícia, Kenny Vinente, Israel Torres e Vinícius de Oliveira, cujas conversas e risadas tornaram mais tranquilo o período do mestrado;

aos amigos da época de graduação, Pablo dos Santos, Wandesson Duarte, Si-mone Carvalho e Aguinaldo Alves pelos singelos momentos de convivência que inspiraram divertidas e importantes reflexões;

aos insubstituíveis amigos Jozinei Ferreira Lopes e Pablo Xavier pelo eterno apoio, pelas discussões científico-filosóficas, pelas constantes atualizações sobre o rock internacional e claro pelos domingos descendo o rio Tapajós;

à Universidade Federal de Santa Catarina e ao Programa de Pós-graduação em Engenharia Elétrica, pelo excelente suporte à pesquisa científica e pela recon-hecida qualidade dos servidores e docentes;

ao Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), pelo financiamento direto (132881/2018-7) que tornou possível a realização deste tra-balho.

(10)
(11)

“Perhaps thinking should be measured not by what you do but by how you do it”. (Richard Hamming)

(12)
(13)

Resumo da Dissertação apresentada à UFSC como parte dos requisitos necessários para obtenção do grau de Mestre em Engenharia Elétrica

Decodificação de Códigos de Comprimento Curto usando Redes

Neurais Profundas

Jorge Kysnney Santos Kamassury 05 de Março de 2020

Orientador: Prof. Danilo Silva, Ph.D.

Área de concentração: Comunicações e Processamento de Sinais

Palavras-chave: Códigos de comprimento curto, redes neurais, decodificadores basea-dos em síndrome, aprendizado profundo, códigos BCH

Os códigos de comprimento curto têm sido alvo de estudos recentes, em grande parte, devido às exigências de tecnologias emergentes por requisitos específicos de comunicação. A tecnologia 5G, por exemplo, visa atender serviços que demandam comunicação ultraconfiável e de baixa latência como é o caso de sistemas de trans-portes inteligentes, internet tátil e telecirurgia.

Nesses cenários de interesse, os códigos de comprimento muito longo são inapro-priados devido ao requisito de latência, o que vem potencializando o interesse pela aplicação de códigos de comprimento curto. Manifestando-se como um importante candidato para atender esses requisitos, os códigos BCH, por sua vez, têm se de-frontando com uma decodificação custosa quando se usa o algoritmo OSD (Ordered Statistics Decoder ) que possui desempenho quase ótimo. Recentemente, uma alter-nativa interessante aos algoritmos tradicionais de decodificação consiste no uso de decodificadores baseados em redes neurais.

Atrelado a esse contexto, apresenta-se nesta dissertação uma revisão acerca da evolução das propostas de decodificadores neurais, com enfoque às abordagens que fazem uso do conhecimento da síndrome do vetor recebido no processo de treina-mento/inferência da rede neural. A partir de técnicas modernas no âmbito do apren-dizado profundo, antigos e recentes trabalhos são revisitados e novas redes densas são propostas para lidar com a decodificação de códigos BCH para os canais BSC e AWGN. Além disso, introduz-se um novo decodificador neural que também faz uso

(14)

do conhecimento da síndrome. Diferentemente das abordagens existentes, o decodifi-cador proposto atua estimando, posição por posição, o padrão de erro através de uma rede neural previamente treinada, possuindo a vantagem de ser flexível em relação à rede empregada.

De fato, para todos os códigos BCH avaliados, o desempenho do decodificador proposto supera os melhores resultados da literatura vigente no contexto dos decodi-ficadores baseados em redes neurais, inclusive, aproximando-se do desempenho ML para alguns casos.

(15)

Abstract of Dissertation presented to UFSC as a partial fulfillment of the requirements for the degree of Master in Electrical Engineering

Decoding of short-length codes using deep neural networks

Jorge Kysnney Santos Kamassury March 5th, 2020

Advisor: Prof. Danilo Silva, Ph.D.

Area of concentration: Communications and Signal Processing

Keywords: Short-length codes, neural networks, syndrome-based decoders, deep learning, BCH codes

Short-length codes have been the subject of recent studies, largely due to the de-mands of emerging technologies for specific communication requirements. 5G technol-ogy, for example, aims to provide services that demand ultra-reliable and low-latency communication, such as intelligent transport systems, tactile internet and telesurgery.

In these scenarios of interest, codes of very long length are inappropriate due to the latency requirement, which has been increasing the interest in the application of codes of short length. Being an important candidate that fulfills these requirements, the BCH codes, in turn, have been faced with a costly decoding when using the OSD (Ordered Statistics Decoder) algorithm that has near-optimal performance. Recently, an inter-esting alternative to traditional decoding algorithms is the use of decoders based on neural networks.

In this context, this dissertation presents a review of the evolution of the proposals for neural decoders, focusing on approaches that use the knowledge of the vector syndrome received in the training/inference process of the neural network. Based on modern techniques in the context of deep learning, old and recent works are revisited and new dense networks are proposed to deal with the decoding of BCH codes for the BSC and AWGN channels. In addition, a new neural decoder is introduced that also uses the knowledge of the syndrome. Unlike the existing approaches, the proposed decoder estimates, position by position, the error pattern through a previously trained neural network, having the advantage of being flexible in relation to the network used.

(16)

In fact, for all evaluated BCH codes, the performance of the proposed decoder surpasses the best results in the current literature in the context of decoders based on neural networks, even approaching ML performance in some cases.

(17)

Lista de Figuras

2.1 Modelo de um sistema de comunicação digital codificado . . . 31

2.2 Modelo simplificado de sistema de comunicação digital codificado . . . 32

2.3 Estrutura da palavra-código sistemática . . . 34

2.4 Arquitetura DNN do tipo perceptron com camadas de entrada, ocultas e de saída. . . 39

2.5 Taxa de aprendizado muito grande. . . 41

2.6 Taxa de aprendizado muito pequena. . . 42

2.7 α ideal. . . 42

2.8 Mínimo local e mínimo global. . . 43

2.9 Taxa de aprendizado cíclica de perfil triangular. . . 43

2.10 Representação da convolução 1D. . . 45

2.11 Sistema de comunicação usando o canal BSC. . . 46

2.12 Decodificador baseado em síndrome proposto por Tallini e Cull . . . 47

2.13 Sistema de comunicação usando o canal AWGN. . . 47

2.14 Decodificador neural baseado em síndrome proposto por Bennatan et al. 48 3.1 DNN-I: Rede densa usada no decodificador neural para o canal BSC. . 52

3.2 Decodificador neural baseado em síndrome proposto. . . 53

3.3 DNN-II: Arquitetura simplificada em relação à rede proposta em[27]. . . 53

3.4 DNN-III: Arquitetura simplificada em relação à rede proposta em[28]. . 54

3.5 DNN-IV: DNN para o código BCH(63,45). . . 55

3.6 CNN-I: CNN simplificada para os códigos BCH(63,36) e BCH(63,45). . 55

3.7 CNN-II: CNN para os códigos BCH(63,36) e BCH(63,45). . . 56

3.8 CNN-III: CNN para o código BCH(127,64). . . 56

4.1 Desempenhos da arquitetura DNN-I e do algoritmo neural-max para o código BCH (15,5) transmitindo em um canal BSC. . . 63

(18)

4.2 Desempenhos da arquitetura DNN-I e do algoritmo neural-max para o código BCH (15,7) transmitindo em um canal BSC. . . 63 4.3 Desempenhos da arquitetura DNN-I e do algoritmo neural-max para o

código BCH (31,11) transmitindo em um canal BSC. . . 64 4.4 Desempenhos da arquitetura DNN-I e do algoritmo neural-max para o

código BCH (31,16) transmitindo em um canal BSC. . . 64 4.5 Comparação dos desempenhos da rede proposta (DNN-II) e da

arquite-tura projetada em[27]para o código BCH (63,45). . . 65 4.6 Comparação dos desempenhos da rede proposta (DNN-III) e da

arquite-tura projetada em[28]para o código BCH (63,45). . . 66 4.7 Desempenhos das rede DNN-IV (com e sem a aplicação do algoritmo

neural-max ) para o código BCH (63,36) em comparação aos resultados da literatura. . . 67 4.8 Desempenhos das rede CNN-I e CNN-II (com e sem a aplicação do

algoritmo neural-max ) para o código BCH (63,36) em comparação aos resultados da literatura. . . 68 4.9 Desempenhos da rede DNN-IV (sem e com o algoritmo neural-max )

para o código BCH (63,45) em comparação aos resultados da literatura. 68 4.10 Desempenhos das rede CNN-I e CNN-II (sem e com o algoritmo

neural-max ) para o código BCH (63,45) em comparação aos resultados da literatura. . . 69 4.11 Desempenhos da arquitetura CNN-III e do algoritmo neural-max para

o código BCH (127,64) propostos em comparação aos resultados da literatura. . . 69 A.1 Desempenho de decodificação em relação à função de ativação para o

código BCH(63,36). . . 81 A.2 Desempenho de decodificação em relação à função de ativação para o

(19)

Lista de Tabelas

1.1 Alguns dos principais trabalhos que abordam os decodificadores basea-dos em NNs. . . 28 2.1 Funções de ativação mais comuns. . . 40 4.1 Códigos BCH avaliados para uma transmissão usando o canal BSC. . . 62 4.2 Quantidade de parâmetros das redes propostas. . . 66

(20)
(21)

Sumário

1 Introdução 21

1.1 Tecnologia 5G e URLLC . . . 22

1.2 Códigos de comprimento curto . . . 23

1.3 Trabalhos Relacionados . . . 24

1.4 Contribuições . . . 28

1.5 Organização . . . 29

2 Preliminares 31 2.1 Códigos corretores de erros . . . 31

2.2 Definições e conceitos para códigos de bloco . . . 32

2.2.1 Descrição matricial . . . 33

2.3 Síndrome . . . 35

2.3.1 Decodificação via síndrome . . . 36

2.4 Códigos BCH . . . 38

2.5 Aprendizado profundo . . . 38

2.5.1 Redes neurais profundas . . . 38

2.5.2 Taxa de aprendizado . . . 41

2.5.3 Redes neurais convolucionais . . . 43

2.5.4 Normalização em lote . . . 44

2.6 Decodificadores neurais baseados na síndrome . . . 46

2.6.1 Canal BSC . . . 46 2.6.2 Canal AWGN . . . 47 3 Contribuições 51 3.1 Arquiteturas propostas . . . 51 3.1.1 Canal BSC . . . 51 3.1.2 Canal AWGN . . . 52

(22)

3.1.2.1 Estrutura do decodificador neural . . . 52 3.1.2.2 Simplificações . . . 53 3.1.2.3 Novas redes . . . 54 3.2 Decodificador neural-max . . . 55 3.2.1 Neural-max: BSC . . . 57 3.2.2 Neural-max: AWGN . . . 58 4 Resultados e discussões 61 4.1 Canal BSC . . . 61 4.2 Canal AWGN . . . 63 4.2.1 Arquiteturas simplificadas . . . 65 4.2.2 Arquiteturas robustas e algoritmo neural-max . . . 66

5 Conclusão 71

5.1 Trabalhos futuros . . . 72 5.2 Suporte financeiro . . . 73

Referências 75

Apêndice 79

(23)

1

Introdução

Nos últimos anos, investigações sobre projetos de códigos de comprimento curto têm adquirido notabilidade, particularmente, em razão de serviços/aplicações que tec-nologias mais recentes visam atender/viabilizar. A tecnologia 5G, por exemplo, almeja atender serviços que demandam comunicação ultraconfiável e de baixa latência como é o caso de redes elétricas inteligentes, telecirurgia e automação fabril. Todavia, a comunicação sob essas condições não é uma tarefa trivial haja vista que os próprios requisitos são altamente estritos e conflitantes.

Os atuais estudos no contexto dos Códigos Corretores de Erros (Error Correcting Codes, ECCs) têm evidenciado que a abordagem clássica que faz uso de códigos de comprimento muito longos é inadequada diante do requisito da latência. Nesse cenário, as pesquisas têm sido direcionadas para avaliar possíveis códigos curtos candidatos em relação a parâmetros como comprimento (k < 1000 bits), confiabili-dade, latência e complexidade algorítmica. Dentre esses códigos (onde estão inclu-sos, códigos polares, códigos LDPC, códigos convolucionais, etc.), os códigos BCH estão entre aqueles que apresentam os resultados mais promissores. Entretanto, um dos grandes desafios enfrentados pelos códigos BCH está relacionado ao fato de que sua decodificação é complexa. Ademais, para taxas de código baixas, o algoritmo OSD (Ordered Statistics Decoder ), amplamente usado para essa decodificação, tem sua complexidade significativamente aumentada[1].

Uma alternativa interessante aos algoritmos tradicionais de decodificação consiste no uso de redes neurais (Neural Networks, NNs). De fato, ainda que não seja re-cente o emprego das NNs com esse enfoque, o interesse por elas tem sido retomado, especialmente em razão do considerável potencial do Aprendizado Profundo (Deep

(24)

22 CAPÍTULO 1. INTRODUÇÃO

Learning).

Atualmente, boa parte das arquiteturas de redes profundas para decodificação tem se defrontado com o problema de overfitting das palavras-código durante a fase de treinamento, o que compromete severamente a capacidade de generalização das re-des. Além disso, apesar de algumas propostas contornarem esse impasse, elas fazem uso de NNs estruturalmente restritivas quanto à flexibilidade da arquitetura.

Uma recente arquitetura baseada no conhecimento da síndrome — cujo poten-cial reside na eliminação da necessidade de simular palavras-código durante o treina-mento — consegue superar ambas as dificuldades assim como obter resultados mais promissores, embora não alcance os resultados obtidos via OSD (ordem 2), acusando assim a necessidade de desenvolvimento/implementação de outras arquiteturas de redes, além de etapas de processamento (pré e/ou pós) capazes de obter resultados superiores aos atuais.

1.1

Tecnologia 5G e URLLC

Inegavelmente, há uma expectativa elevada de que a tecnologia 5G potencialize uma gama de aplicações. A União Internacional de Telecomunicações (International Telecommunication Union, ITU) classificou os serviços de rede móvel 5G em três categorias, a saber [2]: banda larga móvel ampliada (enhanced mobile broadband, eMBB), comunicação massiva do tipo máquina (massive machine-type communica-tion, mMTC) e comunicação ultraconfiável e de baixa latência (ultrareliable and low-latency communications, URLLC).

A URLLC, em particular, visa atender além de aplicações como redes elétricas inteligentes, sistemas de transportes inteligentes, automação de processos e internet tátil (que demandam confiabilidade da ordem de 10−3 a 10−6 e latência entre 1 ms a 100 ms), outras com requisitos ainda mais críticos como telecirurgia e automação fabril que exigem latência inferior a 1 ms e taxa de erro de bloco (frame error rate, FER) de 10−9 [1, 3].

Do ponto de vista da camada física, o projeto da URLLC é reconhecidamente de-safiador para as redes 5G visto que deve satisfazer requisitos rigorosos e conflitantes

[1]. Se por um lado, a minimização da latência pode ser alcançada fazendo uso de pacotes curtos [4] ou com a ampliação da largura de banda (embora essa última al-ternativa não seja sempre possível, especialmente para determinadas aplicações em

(25)

1.2. CÓDIGOS DE COMPRIMENTO CURTO 23

controle industrial que podem operar sobre o espectro não-licenciado), por outro, o alcance do requisito de confiabilidade demanda mais recursos (redundância e retrans-missões) que acarretam no aumento da latência.

Desse modo, o enfoque atual visa alcançar um trade-off entre latência e confi-abilidade que atenda as aplicações emergentes potencializadas pela tecnologia 5G. Estudos mais recentes vêm demonstrando que para muitas aplicações, a abordagem clássica — onde códigos de comprimento muito longos são usados — não é adequada para atender esse trade-off, indicando a necessidade do uso de esquemas/estratégias de codificação e decodificação para pacotes curtos. Alinhado a esse contexto, muitas pesquisas atuais têm se voltado ao projeto de códigos de blocos de comprimento curto e médio (30 < k < 1000 bits)[5].

1.2

Códigos de comprimento curto

Importantes investigações têm analisado o projeto de códigos de comprimento curto para URLLC. Em[1, 5] são observados o desempenho de vários códigos can-didatos para tal propósito, incluindo: códigos polares, códigos turbo, códigos LDPC, códigos convolucionais e códigos BCH.

Em[1],particularmente, a comparação entre os códigos candidatos é realizada em termos de confiabilidade, desempenho da taxa e complexidade algorítmica. No que se refere à confiabilidade, os códigos BCH superam todos os outros candidatos devido às grandes distâncias mínimas que são características desse tipo de código. Em relação à taxa, os códigos BCH também superam os demais, tangenciando o benchmark da aproximação normal[1].

Uma observação importante decorre do fato de que, para taxas de código baixas, o uso do decodificador OSD, que retorna desempenho quase-ótimo, manifesta ordem de reprocessamento elevada, o que aumenta significativamente a complexidade da decodificação[1].

O quadro comparativo apresentado em [1, 5] sinaliza assim que os códigos BCH são excelentes candidatos para o projeto de códigos de comprimento curto, exigindo para tanto melhorias no projeto da etapa de decodificação.

(26)

24 CAPÍTULO 1. INTRODUÇÃO

1.3

Trabalhos Relacionados

O uso de NNs para a tarefa de decodificação não é algo recente; ainda na década de 80, alguns trabalhos já visavam a criação e análise (matemática e computacional) de arquiteturas/algoritmos capazes de realizar tal tarefa.

Um dos primeiros trabalhos com esse enfoque foi apresentado por Lippmann [6]

em meados da década de 80. Em[6],Lippmann evidenciou que uma rede neural sim-ples (Hamming Net) poderia ser modelada para reconhecer qual padrão, em relação a um conjunto de padrões binários, possuía a distância mínima de Hamming para uma determinada entrada. Essa rede era um modelo linear com uma unidade de saída cor-respondente à cada padrão possível. Não havia treinamento nessa rede, de modo que os pesos dos neurônios eram simplesmente computados diretamente dos padrões a serem reconhecidos.

Empregando a Hamming Net apresentada em [6], Zeng et al. [7] aprofundou as considerações acerca do uso dessa arquitetura, observando que a referida rede pode-ria ser usada para decodificar tanto códigos lineares quanto códigos não-lineares. Em razão da própria arquitetura, reconhece-se que essa abordagem é impraticável, pois para um grande valor de k são necessárias 2kunidades de saídas. De fato, essa

com-plexidade O(2k) não é surpreendente pois o método de decodificação descrito era

análogo à decodificação ML (maximum likelihood ).

Um outro trabalho, ampliando as conexões entre NNs e ECCs, foi apresentado por Bruck e Blaum [8], onde demonstrou-se que a decodificação ML dos ECCs é equivalente à maximização da energia de uma rede Hopfield[9]. Nesse contexto, para um dado código de bloco linear, uma rede Hopfield pode ser construída de modo que todo máximo local da função de energia dessa rede corresponda a uma palavra-código e vice-versa.

No início da década de 90, usando uma arquitetura com n entradas, uma única ca-mada oculta e k saídas, Caid e Means[10], abordaram o problema de decodificação prevendo diretamente a mensagem transmitida a partir do vetor recebido. Vale atentar que essa abordagem representou uma melhoria considerável em relação às aborda-gens anteriores (que requerem 2k saídas). A rede proposta pelos autores [10] foi a

primeira do tipo feedforward totalmente conectada usando descida gradiente e retro-propagação. Os resultados obtidos eram eficazes tanto para o código de Hamming

(27)

1.3. TRABALHOS RELACIONADOS 25

(7,4) quanto para pequenos códigos convolucionais. Conforme evidenciado em [11– 13],as redes do tipo feedforward permitem que a rede aprenda qualquer mapeamento arbitrário; no caso dos decodificadores, um mapeamento entre os padrões de entrada ruidosos e as palavras-código. Nesse sentido, nenhuma suposição sobre as estatísti-cas do ruído do canal é necessária, pois a rede é teoricamente capaz de aprender o mapeamento ou extrair as características do canal a partir dos exemplos do conjunto de treinamento.

Apesar das contribuições de Caid e Means [10], dois importantes aspectos não foram contemplados pelos autores: a possível robustez da rede para códigos maiores e a capacidade de generalização dessa para palavras-código não vistas no treina-mento. Enfocando na capacidade de generalização da rede, Stefano et al. [14] verifi-cou que uma rede neural é malsucedida ao decodificar um código de Hamming para as palavras-código não observadas durante a etapa de treinamento. Esse insucesso na capacidade de generalização sinaliza a necessidade da rede aprender conceitos de decodificação que se aplicam a todas as palavras-código.

Outra rede do tipo feedforward, também com uma única camada oculta, foi apre-sentada por Ortuno et al. [15] para decodificar o código de Hamming (7,4). Porém, nesse trabalho, foi considerado um canal com ruído gaussiano não branco, ou seja, ruído correlacionado entre amostras. A rede não exigia qualquer modificação espacial para lidar com o ruído, indicando assim que as redes são flexíveis para canais com distribuições de ruído incomuns.

À luz das conclusões em [14], Esposito et al. [16], considerando uma transmis-são em um canal binário simétrico, mostraram que para alguns casos, a estrutura do código permite que sejam necessárias |C|

2 palavras-código na etapa de treinamento em vez de |C| palavras-código. Com efeito, embora não reduzisse consideravelmente a quantidade de palavras-código no treinamento, Esposito et al. sinalizaram a im-portância de se incorporar o conhecimento do código no algoritmo de aprendizado.

Diferentemente de boa parte dos trabalhos que usavam o vetor recebido para al-imentar a rede neural, Tallini e Cull [17] projetaram uma rede com duas camadas ocultas que usava a síndrome como entrada e produzia a estimativa do padrão de erro. Os autores empregaram a rede na decodificação do código de Hamming (7,4) e código de Reed-Muller de 2a

¯ ordem (32,16).

(28)

26 CAPÍTULO 1. INTRODUÇÃO

foram propostas. El-Khamy et al. [18],por exemplo, desenvolveram uma rede neural com atraso de tempo, onde os vetores recebidos passavam por atrasos temporais de modo que a entrada da rede fosse uma sequência correspondente a uma janela de tempo fixo que se deslocava ao longo do comprimento do bloco. Redes neurais do tipo recorrente também foram propostas através dos trabalhos de Hämäläinen e Henriksson[19]e Abdelbaki et al. [20].

Em virtude do pouco progresso das arquiteturas e algoritmos de aprendizagem das NNs entre meados da década de 90 e início do século XXI, além das limitações/disponi-bilidade de hardware com razoável poder de processamento, o interesse no desen-volvimento de novos decodificadores também foi reduzido. De fato, esse interesse é retomado diante do advento do aprendizado profundo, incluindo a evolução da com-putação paralela e das GPUs (graphical processing units).

Em um contexto, no qual, o aprendizado profundo já vinha sendo bem-sucedido em várias aplicações, Nachmani et al. [21] propuseram um decodificador baseado em NNs a fim de melhorar o desempenho do algoritmo Belief Propagation (BP) na decodificação de códigos BCH de comprimento curto. Na abordagem proposta, os autores converteram o algoritmo BP com l iterações em 2l camadas ocultas em uma arquitetura densa, onde cada camada oculta contém o mesmo número de neurônios que, por sua vez, representam as arestas do gráfico de Tanner. Nessa arquitetura, a entrada e a saída são respectivamente a LLR (log-likelihood ratio) da palavra-código e a palavra-código estimada. Embora o desempenho do decodificador reduza para códigos de comprimentos maiores, ainda assim supera a performance do algoritmo BP convencional para esses casos.

Posteriormente, Nachmani et al. [22] revisitaram o problema do trabalho anterior

[21],porém através de um decodificador baseado em RNN (recurrent neural network ), onde, os pesos em cada iteração são unificados e as saídas das camadas de paridade alimentam as entradas nas camadas variáveis. Nesse caso, a quantidade de etapas é igual a das iterações. Essa nova arquitetura reduziu significativamente o número de parâmetros, mantendo desempenho comparável ao do decodificador anterior[21].

Um estudo ampliado e otimizado dos trabalhos[21, 22]foi desenvolvido em [23].

Uma análise sobre as redes feedforward profundas para decodificar códigos lin-eares aleatórios e estruturados de 16 bits foi desenvolvido por Gruber et al. [24]. Na arquitetura apresentada, as LLRs das palavras código ruidosas alimentam uma rede

(29)

1.3. TRABALHOS RELACIONADOS 27

com três camadas ocultas que, por sua vez, estimam k bits de informações. Os resul-tados obtidos demonstram que quando parte do conjunto das palavras-código é retida durante o treinamento, o decodificador neural para códigos aleatórios tem desem-penho prejudicado. Por outro lado, para códigos estruturados (no caso, códigos po-lares), a rede é razoavelmente bem-sucedida para decodificar novas palavras-código, sugerindo assim que a rede aprende a estrutura do código em questão. Ainda no mesmo trabalho, os autores sugerem a existência de uma SNR ideal para o treina-mento da rede, bem como argumentam que mais épocas de treinatreina-mento podem levar a um melhor desempenho. Uma extensão do trabalho de Gruber et al.[24]é realizada por Lyu et al. [25], no qual, são estudados os desempenhos de outras arquiteturas, mostrando que ao custo de maior complexidade, as redes convolucionais e recorrentes alcançam desempenhos superiores à arquitetura MLP (multilayer perceptron).

Uma outra abordagem foi apresentada por Bennatan et al. [26], onde é proposta uma nova estrutura de decodificador que possui três etapas (pré-processamento, es-timativa via rede neural e pós-processamento). Nessa estrutura, a rede é alimentada pela confiabilidade e síndromes das sequências recebidas e atua na estimativa do ruído; por fim, a etapa de pós-processamento estima a palavra-código transmitida. Uma grande vantagem dessa estrutura é que a rede neural pode ser projetada livre-mente, isto é, sem as restrições presentes em [21–23] que limitam o uso de outras arquiteturas. Algumas simplificações da rede neural original (especificamente, a MLP) proposta por Bennatan et al. [26]são apresentadas em[27, 28], objetivando a imple-mentação em hardware.

Recentemente, Lugosch e Gross [29] revisitaram a arquitetura proposta em [23],

introduzindo uma função de perda baseada na relaxação da síndrome, onde são pe-nalizadas as estimativas que não correspondam às palavras-código válidas. A combi-nação dessa função com a entropia cruzada binária melhora a FER para códigos BCH de comprimento curto. Um dos aspectos vantajosos dessa nova função de perda é a possibilidade do uso de aprendizado não-supervisionado.

Em uma proposta que faz uso da técnica de Aprendizado Ativo (Active Deep), Be’ery et al. [30]orientam seus estudos para a amostragem inteligente do conjunto de treinamento, acentuando que além da SNR (signal-to-noise ratio), outros parâmetros podem ser úteis para a obtenção de conhecimento adequado dos dados; observa-se que o uso do aprendizado ativo melhora o deobserva-sempenho do decodificador WBP

(30)

28 CAPÍTULO 1. INTRODUÇÃO

(Weighted Belief Propagation).

A tabela 1.1 elenca resumidamente alguns dos principais trabalhos e suas respec-tivas características no contexto dos decodificadores baseados em NNs. De modo geral, verifica-se que os trabalhos, na sua maioria, seguem duas abordagens distintas segundo às entradas e saídas da rede, a saber:

• Decodificadores onde os vetores recebidos (ou suas LLRs) alimentam a entrada da rede e possuem como saída as palavras-código estimadas;

• Decodificadores que usam o conhecimento da síndrome na entrada da rede, estimando como saída o padrão de erro.

Tabela 1.1: Alguns dos principais trabalhos que abordam os decodificadores baseados em NNs.

Ref. Abordagem Canal Código(s) Vetor recebido/LLR Síndrome

Sem BP Com BP BSC AWGN

[10] 4 4 Convolucional (1,2,3)Hamming (7,4) [14] 4 4 Hamming (7,4) [16] 4 4 Reed-Muller (1,3) [17] 4 4 Reed-Muller (32,16)Hamming (7,4) [18] 4 4 Hamming (7,4) [19] 4 4 Convolucional (1,2,9)Convolucional (1,3,9) [20] 4 4 Hamming (7,4) [21] 4 4 BCH (63,36), BCH (63,45)BCH (127,106) [23] 4 4 BCH (127,64), BCH (127,99)BCH (63,36), BCH (63,45)

[24] 4 4 truturados com n = 8, 16, 32Códigos aleatórios e

es-[26] 4 4 BCH (63,45), BCH (127,64) [27, 28] 4 4 BCH (63,45) [29] 4 4 BCH (63,36), BCH (63,45) Polar (128,64), LDPC (16,8) LDPC (200,100) [30] 4 4 BCH (63,36), BCH (63,45)BCH (127,64)

1.4

Contribuições

Nesta dissertação, temos como foco, os decodificadores neurais que fazem uso do conhecimento da síndrome tanto para o canal BSC quanto para o canal AWGN. À luz

(31)

1.5. ORGANIZAÇÃO 29

dos decodificadores propostos em[17]e[26],nossas principais contribuições são: • Redução da complexidade das arquiteturas neurais propostas em [27, 28],

man-tendo ou superando os desempenhos dessas redes;

• Proposta de um novo algoritmo de decodificação intitulado neural-max por meio do qual a rede prediz, uma por uma, as posições do padrão de erro;

• Extensão da abordagem apresentada por Tallini e Cull[17]para os códigos BCH com n 6 31, usando uma nova rede densa e o algoritmo neural-max para o canal BSC;

• Propostas de arquiteturas DNN e CNN para a estimativa do padrão de erro em uma estrutura de decodificação similar àquela apresentada por Bennatan et al.

[26]em conjunto com o algoritmo neural-max para o canal AWGN.

1.5

Organização

Essa dissertação está organizada do seguinte modo:

• No Capítulo 2, introduzimos resumidamente aspectos gerais sobre os ECCs para os códigos de bloco lineares; ademais, revisamos as principais características do aprendizado profundo (redes profundas, treinamento, função de perda, taxa de aprendizado, redes convolucionais, etc.). Por fim, discutimos os decodificadores neurais baseado no conhecimento da síndrome para os canais BSC e AWGN; • No Capítulo 3, apresentamos nossas principais contribuições como as

simpli-ficações de DNNs para o código BCH(63,45), as novas redes (DNN e CNN) para os códigos BCH(63,36), BCH(63,45) e BCH(127,64) e a introdução do al-goritmo/decodificador neural-max ;

• No capítulo 4, apresentamos as configurações para o treinamento das redes de acordo com o canal de interesse, mostrando os resultados das simulações relacionadas às nossas contribuições, endossando os ganhos de codificação — em relação ao estado da arte — alcançados com as novas redes e decodificador propostos;

(32)

30 CAPÍTULO 1. INTRODUÇÃO

• Por fim, no Capítulo 5, elencamos as nossas considerações finais e algumas sugestões para trabalhos futuros.

(33)

2

Preliminares

Nesse capítulo, introduzimos importantes conceitos sobre os Códigos Corretores de Erros e Aprendizado Profundo que serão úteis para uma compreensão efetiva so-bre os decodificadores baseados em NNs abordados nesta dissertação.

2.1

Códigos corretores de erros

De início, consideremos um modelo de sistema de comunicação digital codifi-cado ilustrado na figura 2.1. Nesse esquema, uma sequência de dígitos q-ária ger-ada por uma fonte é subdividida em blocos de k dígitos cger-ada, denotados pelo vetor u = [u0, u1, · · · , uk−1] que, por sua vez, alimentam o codificador; a ação do

codifi-cador resume-se, sob certas regras, em adicionar redundância ao vetor u, produzindo um vetor c = [c0, c1, · · · , cn−1] denominado de palavra-código, onde n ≥ k. Para o

conjunto (qk) de todas as palavras-código atribuí-se o nome de código de bloco.

Figura 2.1: Modelo de um sistema de comunicação digital codificado.

Após a geração das palavras-código, o bloco modulador transforma o vetor codifi-cado c em um vetor de sinal modulado x apropriado para transmissão usando canais

(34)

32 CAPÍTULO 2. PRELIMINARES

analógicos (links de rádio de alta frequência, links de satélites, linhas telefônicas, etc.). Como os canais estão sujeitos a várias fontes de erros e (ruídos aleatórios, interferên-cias e falhas), a saída do canal y pode ser diferente do vetor de entrada x.

No lado do receptor, o bloco demodulador executa uma operação inversa e produz uma saída r = [r0, r1, · · · , rn−1]. Em razão dos possíveis erros durante a transmissão,

o bloco decodificador faz uso da redundância no vetor c para corrigir esses erros no vetor recebido y e assim obter uma estimativa ˆu = [ˆu0, ˆu1, · · · , ˆuk−1].

De modo geral, o projeto de codificação/detecção/correção de erros deve lidar com três aspectos fundamentais:

• Criação de um código com propriedades de redundância desejadas;

• Estabelecer um algoritmo de decodificação para que a informação possa ser reproduzida, com determinada confiabilidade, na saída do decodificador;

• Tornar o sistema de codificação o mais eficiente possível, de modo que seja transmitida uma quantidade mínima de informações redundantes.

Para efeitos de simplificação, os detalhamentos das seções seguintes estão basea-dos no esquema da figura 2.2, onde os blocos modulador, canal e demodulador estão combinados em um único bloco intitulado canal de codificação, para o qual, a entrada e saída são denotadas por c e r, nessa ordem[31]. Ademais, lidaremos apenas com códigos de bloco lineares binários (q = 2).

Figura 2.2: Modelo simplificado de um sistema de comunicação digital codificado.

2.2

Definições e conceitos para códigos de bloco

Para uma compreensão efetiva dos códigos de bloco, elencamos previamente al-gumas definições.

(35)

2.2. DEFINIÇÕES E CONCEITOS PARA CÓDIGOS DE BLOCO 33

Definições para códigos de bloco

Definição 1.1: Um código de bloco de comprimento n e 2k palavras-código é

dito um código linear (n, k) se e somente se suas 2k palavras-código formarem

um subespaço k-dimensional do espaço vetorial de todas as n-tuplas sobre GF(2).

Definição 1.2: O peso de Hamming (ou simplesmente peso) de c, denotado

por w(c), é definido como o número de elementos não-nulos do vetor c.

Definição 1.3: A distância de Hamming d(a, b), entre dois vetores a e b de

comprimento n, é compreendida como o número de posições em que as se-quências diferem. Nesse sentido, dado um código de bloco C, pode-se calcular dentre quaisquer duas palavras-código distintas.

Definição 1.4: A distância mínima de Hamming dmin de um código C corres-ponde a menor distância de Hamming entre duas palavras-código distintas, ou seja:

dmin = min {w(a + b) : a, b ∈ C, a 6= b} (2.1)

Caso o código C seja linear, a soma de duas palavras-código resulta em uma palavra-código também pertencente ao código C.

Definição 1.5: A taxa do código Rcé o número de bits de informação presentes em cada palavra-código dividido pelo comprimento do código, isto é:

Rc =

k

n (2.2)

Definição 1.6: Um código de bloco com distância mínima dmin garante a cor-reção de todos padrões de erros de t = b(dmin− 1) /2c ou menos erros, onde o

parâmetro t é denominado de capacidade de correção de erros do código.

2.2.1

Descrição matricial

Em virtude da linearidade do código, é possível selecionar k palavras-código linear-mente independentes G0, G1, G2, · · · , Gk−1 formando uma base de um espaço linear

(36)

com-34 CAPÍTULO 2. PRELIMINARES

binação linear das k palavras-código da base. Essas k palavras-código podem ser obtidas fazendo uso da matriz geradora denotada por G. Desse modo, para k e n quaisquer, temos:

c = u0G0 + u1G1+ u2G2+ · · · + uk−1Gk−1 = uG (2.3)

Pode-se ainda incluir os dígitos de informação inalterados na palavra-código. Um código de bloco com essa característica é chamado de sistemático (vide figura 2.3). Nesse caso, a palavra-código é denotada por

c = [c0, c1, · · · , cn−k−1, u0, u1, · · · , uk−1] (2.4)

e a matriz G possuirá a forma

Gk×n = [Pk×n−k|Ik] (2.5)

onde I é a matriz identidade de ordem k e P é a matriz de paridade e representa os dígitos utilizados para detecção e/ou correção de erro.

Figura 2.3: Estrutura da palavra-código sistemática.

Da teoria de espaços lineares, é conhecido ainda a existência de uma matriz H com dimensão (n − k) × n cujas n − k são linhas linearmente independentes tal que:

GHT = 0 , cHT = 0 (2.6)

Segue a partir da equação 2.6 que qualquer palavra-código c gerada por G é ortogonal às linhas de H; conclui-se assim que uma n-upla c é uma palavra-código de C se e somente se respeitar a equação 2.6, onde H é conhecida como matriz de verificação de paridade do código linear C, sendo denotada (na forma sistemática) por:

Hn−k×n = In−k|PT



(37)

2.3. SÍNDROME 35

De modo geral, a equação geradora/codificadora 2.3 e a equação de verificação de paridade 2.6 representam a base para a descrição operacional dos códigos de bloco lineares. Resumidamente, enquanto no transmissor a matriz G é usada na codificação, a matriz H é aplicada no receptor para o processo de decodificação.

2.3

Síndrome

Consideremos uma palavra-código c transmitida por um canal ruidoso, cujo vetor

recebido r seja expresso por

r = c + e (2.8)

onde e é denominado de padrão de erro ou vetor de erro. Conforme discutido na seção 2.1, a tarefa do decodificador será estimar ˆu a partir de r. Comumente, inicia-se o algoritmo utilizado para essa etapa de decodificação computando o vetor denominado síndrome. Nesse contexto, a síndrome é formalmente definida por

s = rHT (2.9)

e possui as seguintes propriedades:

i) Propriedade 1: o vetor síndrome depende unicamente do padrão de erro e não

da palavra-código transmitida.

s = (c + e) HT = cHT + eHT

= eHT (2.10)

ii) Propriedade 2: Todos os padrões de erro que diferem por uma palavra-código

têm a mesma síndrome.

De forma resumida, consideremos k dígitos de informação. Nesse caso, há 2k

palavras-código distintas denotadas por ci onde 0 ≤ i ≤ 2k− 1. Analogamente,

para qualquer e, define-se 2kvetores distintos e

i como se segue:

(38)

36 CAPÍTULO 2. PRELIMINARES

O conjunto de ei é chamado de coset do código C e possui 2k elementos que

diferem no máximo por uma palavra-código. Em outras palavras, um código linear C(n, k) tem 2n−k cosets possíveis. Nesse sentido, verifica-se facilmente

que

eiHT = eHT + ciHT

= eHT

é independente do índice i. Isto posto, conclui-se que cada coset é caracterizado por uma única síndrome.

De fato, ambas as propriedades da síndrome podem ser analisadas a partir da equação 2.10. Sob essa perspectiva e usando a forma sistemática da matriz H, pode-mos verificar que os (n − k) elementos da síndrome são combinações lineares dos n elementos do padrão de erroe, isto é:

s0 s1 sn−k−1 = = .. . = e0 + en−kp00 + en−k+1p01 + . . . + en−kpk−1, 0 e1 + en−kp01 + en−k+1p11 + . . . + en−kpk−1, 1 en−k−1 + en−kp0, n−k−1 + en−k+1pn−k−1 + . . . + en−kpk−1, n−k+1

O conjunto dessas (n − k) equações evidenciam que a síndrome contém infor-mação sobre os padrões de erros e, portanto, pode ser usado para detecção de erros.

2.3.1

Decodificação via síndrome

Seja o vetor recebido c com 2n valores possíveis, a ação do decodificador implica

em particionar esse conjunto 2nem 2k subconjuntos disjuntos Ω

1, · · · , Ω2k de tal forma que Ωi corresponda à ci para 1 ≤ i ≤ 2k.

Com efeito, para que a decodificação seja bem-sucedida, r deve estar no sub-conjunto que pertence a ci que realmente foi enviada. Os conjuntos 2k constituem o

arranjo padrão de um código de bloco linear, cujas etapas para sua construção podem ser consultadas em[31].

(39)

2.3. SÍNDROME 37

Para fins de exemplificação, consideremos a seguinte estrutura genérica de um arranjo padrão. c1 = 0 c2 c3 . . . ci . . . c2k e2 c2+ e2 c3+ e2 . . . ci+ e2 . . . c2k + e2 .. . ... ... ... ... ... ej c2+ ej c3+ ej . . . ci+ ej . . . c2k + ej .. . ... ... ... ... ... e2n−k c2+ e2n−k c3+ e2n−k . . . ci+ e2n−k . . . c2k + e2n−k

As colunas de 2kdessa matriz representam os subconjuntos disjuntos, enquanto as

linhas 2n−kconsistem nos cosets do código, sendo seus primeiros elementos e

2, e3, · · · ,

e2n−k denominados de líderes de cosets.

Na prática, para um certo canal de transmissão, a probabilidade de erro de decodi-ficação é reduzida quando os padrões de erro mais prováveis são selecionados como líderes de cosets. No caso de um canal simétrico binário, quanto menor o peso de Hamming w, maior a probabilidade de ocorrência de erro. Por consequência, o arranjo padrão é construído tendo como líderes de cosets os vetores com os menores pesos de Hamming.

De forma resumida, o processo de decodificação possui as seguintes etapas:

Algoritmo de decodificação via síndrome

i) De posse do vetor recebido r, computa-se a síndrome: s = rHT;

ii) Se s = 0, considera-se que r está livre de erro. Caso contrário, a par-tir do arranjo padrão, avalia-se o coset caracterizado por s, identificando o coset líder (padrão de erro com maior probabilidade de ocorrência) e denotando-o por e0;

(40)

38 CAPÍTULO 2. PRELIMINARES

2.4

Códigos BCH

Umas das classes mais importantes e poderosas de códigos de bloco lineares são os códigos BCH. Descobertos por Bose, Chaudhuri e Hocquenghem[32–34],são códigos cíclicos com uma ampla variedade de parâmetros; na prática, os códigos BCH binários primitivos são os mais comuns, sendo caracterizados pelos parâmetros inteiros e positivos m e t que respeitam as seguintes condições:

• Comprimento do bloco: n = 2m− 1;

• Quantidade de bits de mensagem: k ≥ n − mt; • Distância mínima: dmin ≥ 2t + 1

Esses códigos, em específico, possuem capacidade de correção de t erros, ou seja, podem detectar e corrigir múltiplos erros, sendo assim considerados uma gene-ralização dos códigos de Hamming. Além disso, possuem flexibilidade na escolha de parâmetros do código como comprimento e taxa de código. Essas características tornam os códigos BCH extremamente atrativos, especialmente, para cenários que demandam códigos de comprimento curto.

2.5

Aprendizado profundo

2.5.1

Redes neurais profundas

Em termos gerais, as Redes Neurais Profundas (Deep Neural Networks, DNN) consistem em aproximações de funções compostas por uma série de camadas, onde cada camada representa alguma transformação de ativações de entrada para saída com base em uma função de transferência paramétrica com um determinado conjunto de pesos aprendidos.

Genericamente, uma rede profunda do tipo perceptron com L camadas representa um mapeamento f (r0; θ) : RN0 7→ RNL de um vetor de entrada r

0 ∈ RN0 para um vetor

de saída rL∈ RNL por meio de L etapas iterativas, tal que:

rl = fl(rl−1; θl) , l = 1, · · · , L (2.12)

(41)

2.5. APRENDIZADO PROFUNDO 39

camada (vide figura 2.4) tem o mapeamento descrito pela seguinte forma:

fl(rl−1; θl) = g (Wlrl−1+ bl) (2.13)

onde:

• Wl ∈ RNl×Nl−1 é a matriz de pesos da respectiva camada l;

• bl∈ RNl denota o vetor de bias;

• g (·) representa a função de ativação, em geral, aplicada individualmente a cada elemento de entrada da camada, isto é [g(z)]i = g(z)i;

• θl= {Wl, bl} é o conjunto de parâmetros da camada l.

Figura 2.4: Arquitetura DNN do tipo perceptron com camadas de entrada, ocultas e de saída. Com efeito, a principal característica da arquitetura ilustrada na figura 2.4 reside no fato de que cada neurônio recebe na entrada a contribuição de cada neurônio da camada anterior e alimenta sua saída para todos os neurônios da próxima camada.

Vale mencionar que a função de ativação g(.) presente na equação 2.13, ao in-troduzir uma não-linearidade contribui significativamente para a capacidade de apren-dizagem/mapeamento da rede. De fato, na ausência da não-linearidade, o empil-hamento de camadas característico das redes profundas não resultaria em grande vantagem[35]. Algumas das funções das ativações mais populares[36]estão listadas na tabela 2.1.

(42)

40 CAPÍTULO 2. PRELIMINARES

Tabela 2.1: Funções de ativação mais comuns. Função g(z)i Contradomínio

Linear zi (−∞, ∞)

Tanh eezizi−e+e−zi−zi (−1, 1)

Sigmoid 1

1+e−zi (0, 1) ReLU max (0, zi) [0, ∞)

No contexto do aprendizado de máquina, reconhece-se que o poder das NNs re-side intimamente na sua configurabilidade. Normalmente, a rede é configurada por um determinado procedimento de treinamento que depende de um conjunto de dados de amostra, consistindo de entradas e, no caso de treinamento supervisionado, de saí-das desejasaí-das (conhecisaí-das como rótulos). Desse modo, o processo de treinamento de uma rede neural é essencialmente realizado usando dados rotulados, isto é, um conjunto de pares de vetores entrada-saída r0,j, r†L,j para j ∈ [1, · · · , N], onde r†L,j

é o valor da saída desejada.

Nesse sentido, o objetivo do treinamento incorre em minimizar a função de custo

J (θ) = 1 N N X j=1 L r†L,j, rL,j  (2.14)

em relação ao conjunto de parâmetros θ em que L : RNL × RNL 7→ R corresponde à função de perda. Na prática, o processo de aprendizagem de uma arquitetura neural consiste em alcançar bons conjuntos de parâmetros θ de forma a minimizar a equação 2.14[37]. Um dos mais populares algoritmos para encontrar esses conjuntos é o gra-diente descendente estocástico (stochastic gradient descent, SGD) combinado com o método de backpropagation, no qual, para um valor inicial aleatório θ = θ0, a

atualiza-ção iterativa dos parâmetros θ é denota por

θt+1 = θt− α∇ ˆJ (θt) (2.15)

onde α é o parâmetro que define a taxa de aprendizado (learning rate), isto é, o tamanho do passo que será dado na direção apontada pelo gradiente, que por sua vez, é calculado através do algoritmo de backpropagation [38]. Na equação 2.15,

ˆ

J (θ) consiste na aproximação da função custo computada para exemplos aleatórios de treinamento (mini-batches) Γt⊆ {1, · · · , N } de tamanho fixo Γtpara cada iteração,

(43)

2.5. APRENDIZADO PROFUNDO 41 isto é: ˆ J (θ) = 1 Γt X j∈Γt L r†L,j, rL,j  (2.16)

Na prática, devido ao fator aleatório inerente, o SGD fornece uma aproximação grosseira do gradiente descendente, resultando em uma convergência não suave. Ademais, para conjuntos de dados grandes, o SGD é custoso computacionalmente em razão das constantes atualizações exigidas por este. Por esses motivos, outras variantes como RMSProp, AdaGrad, AdaDelta e Adam são mais utilizadas[35].

2.5.2

Taxa de aprendizado

Considerado um dos mais importantes hiperparâmetros para o treinamento das redes neurais profundas[39],a taxa de aprendizado α controla a magnitude do “passo” na direção do gradiente (vide equação 2.15).

Embora, em alguns casos, as redes possam obter resultados razoáveis ao serem treinadas por um número fixo de épocas sem alterar o valor de α, na prática, essa não é a abordagem mais empregada e isso se deve ao fato de que não temos conheci-mento de qual α é mais apropriada[35]. Conforme ilustra a figura 2.5, o uso de taxas de aprendizado elevadas causam atualizações que conduzem ao comportamento di-vergente do processo de minimização da função perda. Com taxas de aprendizado muito pequenas, por sua vez, o treinamento exigirá muitas atualizações para alcançar as regiões de valores mínimos da função de perda (vide figura 2.6).

Figura 2.5: α muito grande.

(44)

42 CAPÍTULO 2. PRELIMINARES

obtenha um bom conjunto θ inicial que posteriormente será otimizado conforme o treinamento avance com α sendo reduzido através de alguma programação especí-fica, como é o caso do decaimento linear ou polinomial de α (vide figura 2.7). Todavia, ao usar as técnicas convencionais de redução monotônica de α, a minimização de J (θ) pode ficar retida em pontos de sela ou mínimos locais, onde α com valor muito pequeno pode ser insuficiente para escapar dessas regiões conforme ilustra a figura 2.8.

Figura 2.6: α muito pequeno.

Figura 2.7: α ideal.

Outro aspecto a ser considerado é que tanto a rede quanto o otimizador podem ser altamente sensíveis ao valor inicial de α. Desse modo, diante de uma má escolha inicial de α, a minimização de J (θ) pode não evoluir.

Uma das formas de contornar ambos problemas é através da taxa de aprendizado cíclica [40], no qual, em vez que diminuir monotonicamente α, estabelece-se que α

(45)

2.5. APRENDIZADO PROFUNDO 43

oscile entre dois limites (lrmin e lrmax), aumentando e diminuindo lentamente após

cada atualização de batch. A figura 2.9 mostra como a taxa de aprendizado cíclica funciona.

Figura 2.8: Mínimo local e mínimo global.

Figura 2.9: Taxa de aprendizado cíclica de perfil triangular.

2.5.3

Redes neurais convolucionais

As CNNs são redes neurais que empregam a convolução em vez da multiplicação geral de matrizes em pelo menos uma de suas camadas [35]. O emprego da opera-ção de convoluopera-ção, que é linear, permite que as CNNs explorem informações em es-truturas organizadas no tempo e no espaço. Dessa forma, essas redes são capazes de aprenderem representações invariantes à escala, translação, rotação e transfor-mação. Em geral, as arquiteturas das CNNs são constituídas de três tipos de ca-madas: camada convolucional, camada de agrupamento (pooling) e camada densa (fully connected ).

Em detalhe, as camadas convolucionais possuem filtros (núcleos de convolução) para processar o sinal recebido, onde para cada filtro, um neurônio está conectado à apenas um subconjunto dos neurônios da camada anterior. Os filtros são os respon-sáveis pela formação dos mapas de características.

(46)

44 CAPÍTULO 2. PRELIMINARES

Para compreendermos como esses núcleos de convolução atuam, suponhamos que a l-ésima camada de uma rede seja uma camada convolucional, para a qual, Nk l

e Tk

l denotam a quantidade e o tamanho dos filtros, enquanto Ns e Tls correspondem

à quantidade e ao tamanho das entradas da referida camada. De modo genérico, a operação de convolução na l-ésima camada é definida como se segue

hkl = g Wlkrk+bkl (2.17) onde: Wklrki = ∞ X a=−∞ Wkl(i − a)r(a) (2.18)

Nas equações acima: • r ∈ RNs×Ts

l é o conjunto de entradas; • W ∈ RNk

l×T s

l representa o conjunto dos filtros; • b ∈ RNs

denota o bias para cada saída.

Tipicamente, as camadas convolucionais são 1D, 2D ou 3D e suas devidas apli-cações dependem essencialmente do tipo de dado a ser processado. Para uma oper-ação de convolução unidimensional, por exemplo, a equoper-ação 2.18 pode ser reescrita como y[i] = Nc X c=1 Tk−1 X m=0 Wkc,l[i + m]rc,l[m] (2.19)

em que Nc corresponde à quantidade de canais. Nesse caso, i é a posição da

se-quência onde a convolução é realizada, m indica a posição dos termos da convolução e o subíndice c refere-se ao canal em que se aplica tal operação. A figura 2.10 ilustra como ocorre a convolução 1D para uma entrada com Nccanais.

2.5.4

Normalização em lote

A camada de normalização em lote (batch normalization, BN) atua acelerando o Aprendizado Profundo da rede a partir da redução interna da covariância, alterando assim a distribuição de saída de cada camada durante a etapa de treinamento[41].

(47)

2.5. APRENDIZADO PROFUNDO 45

Figura 2.10: Representação da convolução 1D com filtros de tamanho T para uma entrada com Nc

canais.

Para entendermos a ação da camada BN, considere um único mini-lote dado por B = {x1, x2, · · · , xd} e a saída da camada BN como yi. Nesse caso, sejam a média

(µB) e a variância (σB2) para B dadas por:

µB = 1 d d X i=1 xi , σ2B = 1 d d X i=1 (xi− µB)2 (2.20)

A normalização será obtida pela relação

ˆ xi = xi− µB pσ2 B+  (2.21)

e a saída yi alcançada através da seguinte expressão

yi = γ ˆxi+ β (2.22)

onde γ e β devem ser aprendidos durante o treinamento da arquitetura. O termo  é uma pequena quantidade usada para evitar a divisão por zero.

(48)

46 CAPÍTULO 2. PRELIMINARES

2.6

Decodificadores neurais baseados na síndrome

2.6.1

Canal BSC

De início, consideremos um sistema de comunicação cuja transmissão utiliza um código linear C com taxa de codificação k

n, onde uma mensagem original de k bits denotada por u ∈ GF(2)k é codificada para uma palavra-código c de n bits, através da

relação

c = uG , c ∈GF(2)n (2.23)

onde G ∈ GF(2)n×k é a matriz geradora. Para um canal de comunicação BSC (binary

simmetric channel) com probabilidade de erro de transição  conforme ilustra a figura 2.11, o algoritmo de decodificação atuará estimando ˆca partir de r.

Figura 2.11: Sistema de comunicação usando o canal BSC.

Uma estratégia de decodificação que usa a síndrome no treinamento de uma rede neural para estimar os padrões de erro em uma transmissão sob o canal BSC foi originalmente apresentada por Tallini e Cull [17]. Ilustrado na figura 2.12, o esquema proposto em[17]pode ser resumido em três etapas:

i) Para uma palavra ruidosa r computa-se a síndrome s = rHT;

ii) De posso do vetor síndrome, estima-se através de uma rede neural o padrão de erro mais provável (ˆe), ou seja, àquele com o peso mínimo;

iii) Computa-se a estimativa ˆcda palavra-código enviada c: ˆc = r + ˆe.

Nesse sentido, o objetivo em[17]resume-se à encontrar uma rede neural que ex-plore a capacidade de correção de erros do código linear C. Conforme mencionado no capítulo anterior, usando esse decodificador, Tallini e Cull foram bem-sucedidos para lidar com códigos curtos como Hamming(7,4) e Reed-Muller de 2a

(49)

2.6. DECODIFICADORES NEURAIS BASEADOS NA SÍNDROME 47

seção de resultados, utilizamos a mesma estrutura de decodificação, porém, visando exclusivamente códigos BCH curtos.

Figura 2.12: Decodificador baseado em síndrome proposto por Tallini e Cull[17].

2.6.2

Canal AWGN

Para uma transmissão usando o canal AWGN (additive white gaussian noise), o sistema de comunicação pode ser simplificadamente representado pela figura 2.13, onde usamos o esquema de modulação digital BPSK (binary phase shift keying), ma-peando assim a palavra-código para o formato bipolar:

x = 1 − 2c , x ∈ {−1, +1}n (2.24)

Uma vez transmitida, o vetor recebido r é expresso por

r = x + z , z ∼ N 0, σ2 (2.25)

onde σ2 corresponde à variância e z é estatisticamente independente de x.

Figura 2.13: Sistema de comunicação usando o canal AWGN.

Conforme discutido anteriormente, os algoritmos de decodificação atuam estimando ˆc(ou diretamente ˆu) a partir de r, visando alcançar uma função de mapeamento ideal que satisfaça o critério de máxima a posteriori (MAP).

Considerando o sistema de comunicação da seção 2.6.2, o decodificador neural baseado na síndrome proposto por Bennatan et al. [26] está ilustrado na figura 2.14,

(50)

48 CAPÍTULO 2. PRELIMINARES

onde |r| corresponde ao valor absoluto de r e rs e rb são denotados por:

rs=sign(r) =      +1, se r ≥ 0 −1, se r < 0 , rb =bin(rs) = 1 − rs 2 (2.26)

Figura 2.14: Decodificador baseado em síndrome proposta por Bennatan et al.[26].

A estrutura desse decodificador compreende três etapas, a saber:

• Pré-processamento: estágio no qual são computados |r| e rbHT (síndrome),

onde H é a matriz de verificação de paridade do código C;

• Estimativa do ruído: onde a rede neural profunda (DNN ou RNN), estima ˆe a partir das entradas |r| e rbHT;

• Pós-processamento: realiza-se o produto de Hadamard (rs ˆe), cujo sinal é

admitido como a estimativa de ˆc.

Enfatiza-se que diferentemente de boa parte das abordagens encontradas na lit-eratura, a rede neural desse decodificador atua na estimativa do ruído do canal. De fato, a estrutura desse decodificador (figura 2.14) não resulta em perda de otimalidade no que se refere às métricas BER (bit error rate) ou MSE (mean squared error ), de modo que se pode alcançar decodificação MAP. Outro aspecto a ser acentuado é que independente da arquitetura implementada para estimar o ruído, as métricas são in-variantes à palavra-código transmitida. As demonstrações dessas conclusões podem ser consultadas em[26].

(51)

2.6. DECODIFICADORES NEURAIS BASEADOS NA SÍNDROME 49

Essa abordagem de decodificação, baseada na estimativa do ruído, é válida para a classe de canais BISO (binary-input symmetric-output) que engloba, os canais AWGN e BSC, por exemplo.

(52)
(53)

3

Contribuições

Nesse capítulo, elencamos as propostas desta dissertação. Inicialmente, apresen-tamos uma proposta de arquitetura simples do tipo densa para a estrutura de decodifi-cação baseada em síndrome voltada ao canal BSC. Para o código BCH(63,45) trans-mitido via canal AWGN, são apresentadas duas arquiteturas densas com complexida-de simplificada para implementação em hardware; além disso, propomos arquiteturas DNN e CNNs (com complexidades reduzidas e elevadas) para os códigos BCH(63,36), BCH(63,45) e BCH(127,64). Por fim, introduzimos o algoritmo neural-max.

3.1

Arquiteturas propostas

3.1.1

Canal BSC

Para o canal BSC e baseado na mesma estrutura de decodificação discutida na seção 2.6.1, propomos a arquitetura densa ilustrada na figura 3.1, constituída de cinco camadas (quatro ocultas e uma de saída), onde as quatro primeiras camadas pos-suem 8n neurônios cada, enquanto a última camada (saída) possui n neurônios, sendo no comprimento da palavra-código do código em questão. Na figura 3.1, o símbolo || representa a operação de concatenação.

Conforme exige o decodificador neural para o canal BSC, essa rede é alimentada pela síndrome do vetor r e estima o padrão de erro ˆe. Em todas as camadas, usa-mos a função de ativação sigmóide para os neurônios e distribuição normal para a inicialização dos parâmetros da rede.

De fato, em boa parte das atuais pesquisas no contexto do Aprendizado de Máquina, a função de ativação ReLU (rectified linear unit) é a mais utilizada[42]. Contudo, após testes com essa e outras funções (tanh, elu, hard sigmoid, etc.), nossos melhores

(54)

52 CAPÍTULO 3. CONTRIBUIÇÕES

resultados foram alcançados utilizando a função sigmóide (vide o apêndice A).

Figura 3.1: DNN-I: Rede densa usada no decodificador neural para o canal BSC.

3.1.2

Canal AWGN

3.1.2.1 Estrutura do decodificador neural

Para o canal AWGN, inicialmente, propomos uma versão modificada da estrutura de decodificação (vide seção 2.6.2) apresentada por Bennatan et al. [26]. Ilustrada na figura 3.2, as principais alterações são:

• Pré-processamento:

– A entrada da rede passa a ser o par (rHT, sig (−|r|)) em vez de (rHT, |r|). A mudança de |r| para sig (−|r|) foi realizada visando normalizar a entrada |r|, alterando o contradomínio de [0, ∞[ para [0,1

2]. O uso conjunto da en-trada (rHT, sig (−|r|) com as camadas de normalização aceleram a etapa de treinamento sem prejudicar o desempenho da rede1.

• Pós-processamento:

– Obtém-se a palavra-código estimada ˆca partir da soma em módulo-2 entre re ˆe; vale recordar que no esquema de decodificação em[26],ˆcé obtido a partir do sinal do produto de Hadamard entre ˆrs e ˆe.

(55)

3.1. ARQUITETURAS PROPOSTAS 53

Figura 3.2: Decodificador neural baseado em síndrome proposto.

3.1.2.2 Simplificações

Uma vez definida a nova estrutura de decodificação, propomos duas redes densas com complexidades reduzidas em comparação àquelas usadas em [27, 28]. Nesse caso, compreende-se como complexidade a quantidade de parâmetros da rede.

Em [27], Kavvousanos et al., sem comprometer o desempenho de decodificação

para o código BCH(63,45), reduz a complexidade da DNN proposta em[26],obtendo os melhores resultados a partir de uma rede densa com 658.539 parâmetros (uma re-dução de quase 60% em relação à DNN original). Nesse sentido, visando diminuir ainda mais a complexidade de uma rede DNN que retorne, no mínimo, o mesmo de-sempenho da rede apresentada em [27], propomos a rede da figura 3.3 que possui 519.813parâmetros e é constituída de cinco camadas densas (quatro ocultas e uma de saída) onde para as quatro primeiras usamos 8n neurônios.

Figura 3.3: DNN-II: Arquitetura simplificada em relação à rede proposta em[27].

É válido observar ainda na figura 3.3 que as quatro primeiras camadas densas são todas acompanhadas de uma camada BN, responsável por acelerar substancialmente

(56)

54 CAPÍTULO 3. CONTRIBUIÇÕES

o treinamento da rede. Assim como a rede proposta para o canal BSC, utilizamos a função de ativação sigmóide para todas as camadas assim como inicializamos os valores dos parâmetros da rede com uma distribuição normal.

Uma outra arquitetura DNN, possuindo 502.263 parâmetros, foi projetada por Kavvo-usanos e Paliouras [28]para a decodificação do código BCH(63,45) com enfoque na implementação em hardware. Objetivando uma rede menos complexa e que tenha desempenho equivalente (ou melhor) que essa DNN, propomos a arquitetura ilustrada na figura 3.4 que possui 403.092 parâmetros e é composta por seis camadas densas (cinco ocultas e uma de saída), onde as cinco primeiras camadas possuem 4n + k neurônios. Da mesma forma que na rede da figura 3.3, aplicamos a função sigmóide para ativação dos neurônios nas camadas densas.

Figura 3.4: DNN-III: Arquitetura simplificada em relação à rede proposta em[28].

3.1.2.3 Novas redes

Nessa seção, propomos novas redes avaliando o desempenho dessas na decodi-ficação de três diferentes códigos, a saber: BCH(63,36), BCH(63,45) e BCH(127,64). Para os códigos mais curtos, i.e, BCH(63,36) e BCH(63,45) apresentamos três no-vas redes (uma DNN e duas CNNs-1D), enquanto que para o código BCH(127,64), propomos uma CNN-1D específica.

A DNN proposta está ilustrada na figura 3.5 e possui oito camadas densas (sete camadas ocultas e uma de saída), com 8n neurônios cada, exceto a última camada que possui n neurônios. As arquiteturas CNNs-1D para os códigos mais curtos, por sua vez, estão esboçadas nas figuras 3.6 e 3.7, nas quais, os valores abaixo das camadas convolucionais indicam, respectivamente, a quantidade e o tamanho dos

(57)

3.2. DECODIFICADOR NEURAL-MAX 55

filtros utilizados nessas camadas. Para todas as camadas (convolucionais e densas), empregamos a função de ativação sigmóide, sendo que nas camadas convolucionais usamos a função glorot uniform para a inicialização dos pesos.

Figura 3.5: DNN-IV: DNN para os códigos BCH(63,36) e BCH(63,45).

Figura 3.6: CNN-I: CNN simplificada para os códigos BCH(63,36) e BCH(63,45).

Em relação ao código BCH(127,64), a arquitetura proposta (vide figura 3.8) é cons-tituída de seis camadas (cinco convolucionais e uma densa).

3.2

Decodificador neural-max

Nos decodificadores descritos na seções 2.6.1 e 2.6.2, presume-se que a NN seja capaz de estimar o vetor de erro por completo, ou seja, todas as possíveis posições dos erros. Entretanto, o sucesso dessa estimativa pode ser comprometido por padrões de erros que provocam inconsistências durante o processo de treinamento.

(58)

palavra-56 CAPÍTULO 3. CONTRIBUIÇÕES

Figura 3.7: CNN-II: CNN (com seis camadas convolucionais) para os códigos BCH(63,36) e BCH(63,45).

Figura 3.8: CNN-III: CNN para o código BCH(127,64).

código c0 ∈ C dada por:

c0 =h 0 0 1 0 0 0 1 0 1 0 0 1 0 0 i

Nesse caso, é fácil verificar que dois possíveis padrões de erros tal que c0 = e1+ e2

são e1 = h 0 0 1 0 0 0 0 0 0 0 0 0 0 0 i e2 = h 0 0 0 0 0 0 1 0 1 0 0 1 0 0 i

com síndromes s1 = s2, onde w(e1) < w(e2). Conforme discutido anteriormente, na

etapa de treinamento a NN aprende a estimar o padrão de erro com base nos exem-plos observados. Dessa forma, para uma síndrome s1, a rede é treinada para estimar

ˆ

e1, enquanto que para a síndrome s2, a rede deve predizer ˆe2. De fato, a

Referências

Documentos relacionados

Este artigo está dividido em três partes: na primeira parte descrevo de forma sumária sobre a importância do museu como instrumento para construção do conhecimento, destaco

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

Depois de considerar a confidência, conteúdo, distribuição, e assuntos de oportunidade associadas com a distribuição de um relatório, um controlador pode, então,

O TBC surge como uma das muitas alternativas pensadas para as populações locais, se constituindo como uma atividade econômica solidária que concatena a comunidade com os

Para Cylindrocladium sp., os extratos de flor de jambu, alfavaca, noni, nim, erva- -cidreira, cipó-d’alho, gengibre, coramina, capim-santo, mastruz, batata-doce, folha de

Mas ele é ( verbo ser, no Presente do Indicativo ) apenas um gato e não tinha tido ( verbo ter, no Pretérito Mais-Que-Perfeito Simples do Indicativo ) tempo de aprender (

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-