As arquiteturas de redes neurais profundas englobam os estágios de extração de carac- terísticas e de classificação em uma só estrutura. No início da estrutura, a extração de características é normalmente feita por camadas convolucionais, camadas de max-pooling, camadas de normalização em lote e transformações não lineares. As camadas de clas- sificação ao final das redes utilizam técnicas convencionais de redes neurais artificiais. Nesse caso, esta seção apresentará as principais características das camadas de extração de características.
Camadas Convolucionais
O operador das camadas convolucionais é a convolução. Nessas camadas, pequenas matri- zes (normalmente 3 ⇥ 3, 5 ⇥ 5 ou 7 ⇥ 7) chamadas de filtros são definidas. Na convolução,
uma operação matemática entre o filtro e uma pequena região da entrada é aplicada. Feito isso, o filtro é deslocado, tanto horizontalmente quanto verticalmente, de modo que, ao final do processo, as convoluções são aplicadas na imagem como um todo, pedaço por pedaço.
A Figura 2.3 ilustra a aplicação de convolução entre uma matriz de entrada 4 ⇥ 4 e um filtro 2 ⇥ 2. As operações matemáticas que geram uma saída de tamanho 3 ⇥ 3 são mostradas nas células da matriz de saída. A matriz de saída é também chamada de mapa de características (do inglês feature map).
a b c d
e f g h
i j k l
m n o p
x y
z w
ax+by+ez+fw
bx+cy+fz+gw
cx+dy+gz+hw
ex+fy+
iz+jw
fx+gy+jz+kw
gx+hy+kz+lw
ix+jy+
mz+nw
jx+ky+nz+ow
kx+ly+oz+pw
Entrada
Filtro
Saída da Convolução
Figura 2.3: Representação de uma convolução aplicada em uma matriz de entrada 4 ⇥ 4 com um filtro 2 ⇥ 2.
Nas redes neurais convolucionais, o conteúdo dos filtros é atribuído durante o treina- mento. Em outras palavras, os valores x, y, z e w na Figura 2.3 serão conhecidos ao final do processo de treinamento. Cada camada é composta por diversos filtros, o que implica dizer que temos diversas variáveis cujos pesos precisam ser associados no treinamento. Isso requer tanto uma grande quantidade de instâncias de treino quanto uma alta carga de poder computacional.
Os filtros são capazes de contabilizar diferenças nas vizinhanças de um pixel, um fator útil por possibilitar identificar, por exemplo, contornos dos objetos. Camadas mais profundas poderão utilizar os padrões assimilados pelas camadas iniciais para gerar o reconhecimento de padrões mais complexos, sendo esta a grande vantagem de se empilhar múltiplas camadas.
Camadas de Pooling
Um outro tipo de camada comum para extração de características é chamada de pooling. Essas camadas são aplicadas geralmente após uma camada de convolução e combinam várias células vizinhas em um só resultado. Isso faz com que o tamanho do mapa de características seja reduzido, o que tende a diminuir a quantidade de parâmetros para os quais precisam ser atribuídos pesos, resultando em redes menos complexas e com risco reduzido de overfitting (memorização dos dados de treino).
As camadas de pooling podem ser aplicadas de várias maneiras. Por exemplo, um pooling poderia ser obtido ao computar a média de uma determinada vizinhança, outro
poderia computar o mínimo, enquanto que outro poderia computar o máximo. Este último caso é chamado de max-pooling e costuma ser o tipo mais comum. A Figura 2.4 ilustra a aplicação do max-pooling em uma rede de entrada de tamanho 4 ⇥ 4. Neste exemplo, uma vizinhança de tamanho 2 ⇥ 2 é definida e apenas o valor máximo nessa vizinhança é selecionado. Feito isso, um deslocamento de duas células realizado para se obter uma nova vizinhança de tamanho também 2⇥2. Tanto o tamanho da região quanto o tamanho do deslocamento são parâmetros da operação.
1
1
2
1
5
4
6
8
3
2
1
0
1
2
3
4
Vizinhanças
1
1
2
1
5
4
6
8
3
2
1
0
1
2
3
4
Entrada
5
8
3
4
Max-pooling
Figura 2.4: Exemplo de uma operação e max-pooling em vizinhanças de tamanho 2 ⇥ 2 e deslocamento de duas células.
Camadas de Normalização em Lote
As camadas de normalização em lote (do inglês batch normalization) são camadas que dividem um resultado individual do mapa de características na saída de uma camada por uma função que agrega todos os resultados naquela camada. Como a saída de uma camada é a entrada da camada seguinte, a distribuição da entrada muda a cada iteração, o que pode ser problemático por forçar cada camada intermediária a se adaptar continuamente às mudanças de distribuição das entradas.
A normalização limita a variação na distribuição entre uma iteração e outra do algo- ritmo de treinamento. Em geral, a normalização faz com que a média se torne zero e o desvio padrão seja fixado em uma unidade, o que permite às camadas intermediárias a aprender uma distribuição mais estável de entradas.
Transformações Não Lineares
O mapa de características gerado por uma camada de convolução pode passar por uma função não linear chamada de função de ativação (do inglês, activation function). A presença de funções não lineares faz com que o poder de representação das redes neurais seja aumentado. As escolhas mais comuns são a tangente hiperbólica, a função sigmóide e a função ReLU (acrônimo para Rectified Linear Unit).
A tangente hiperbólica é uma função trigonométrica suave definida entre 1 e +1, e dada pela fórmula: tanh(x) = sinh(x)
cosh(x) =
ex e x
ex+e x. A função sigmóide é uma função suave
definida entre 0 e 1, e dada pela fórmula: sigmoid(x) = 1
1+e x. A função ReLU é a mais
comum, a mesma não causa nenhum impacto nos elementos não negativos da entrada, mas elimina todos os elementos negativos, tranformando-os em zero: ReLU(x) = max(0, x).
Nesta tese, foram usadas 10 arquiteturas modernas de deep learning, cada um con- tendo diferenças em relação ao posicionamento dos elementos acima mencionados e, em algumas delas, novos elementos são adicionados. A seguir, as principais características das arquiteturas utilizadas neste trabalho são identificadas.