Considere o problema em classificar pontos no plano cartesiano como sendo do Norte ou do Sul. Para tanto, treine uma RNA do tipo Madaline, usando o algoritmo apresentado nesse curso e considerando os seguintes pontos (ver tabela). Embora o problema possa ser resolvido com uma Adaline, resolva pela rede Madaline, considerando os seguintes vetores-alvo (ver figura). Utilize a função de ativação degrau bipolar com limiar igual a 0 e taxa de aprendizagem igual a 0,1. Utilize como pesos sinápticos iniciais v = [-0,1; 0,2; 0,1; 0,3] e v0 = [0,4; -0,1]. Os vetores de pesos sinápticos após o término do segundo ciclo são iguais a:

Questão

Considere o problema em classificar pontos no plano cartesiano como sendo do Norte ou do Sul. Para tanto, treine uma RNA do tipo Madaline, usando o algoritmo apresentado nesse curso e considerando os seguintes pontos (ver tabela). Embora o problema possa ser resolvido com uma Adaline, resolva pela rede Madaline, considerando os seguintes vetores-alvo (ver figura). Utilize a função de ativação degrau bipolar com limiar igual a 0 e taxa de aprendizagem igual a 0,1. Utilize como pesos sinápticos iniciais v = [-0,1; 0,2; 0,1; 0,3] e v0 = [0,4; -0,1]. Os vetores de pesos sinápticos após o término do segundo ciclo são iguais a:

Alternativas

a) v = [-0,18, -0,01; -0,35, -0,14] e v0 = [0,07, 0,42]

b) v = [-0,03, 0,328; 0,12, -0,28] e v0 = [-0,47, 0,32]

c) v = [0,41, 0,16; -0,02, 0,07] e v0 = [-0,23, 0,11]

d) v = [0,68, -0,04; 0,16, -0,09] e v0 = [0,14, -0,12]

Resposta certa

e) v = [-0,10, 0,26; 0,10, 0,06] e v0 = [0,4, -0,04]

Explicação

Da figura/tabela, os padrões de treino são (com bias implícito separado em v0v_0):

  • Padrão 1 (Norte): x(1)=[1    0,8]T\mathbf{x}^{(1)}=[1\;\;0{,}8]^T
  • Padrão 2 (Sul): x(2)=[1    4]T\mathbf{x}^{(2)}=[1\;\;4]^T

Da figura dos vetores-alvo:

  • Norte →t(1)=[1    −1]T\to \mathbf{t}^{(1)}=[1\;\;-1]^T
  • Sul →t(2)=[−1    1]T\to \mathbf{t}^{(2)}=[-1\;\;1]^T

A Madaline considerada tem 2 neurônios Adaline na camada de saída (um para cada componente do vetor-alvo), com função degrau bipolar (limiar 0): yj=sgn⁡(uj),uj=vjTx+v0jy_j = \operatorname{sgn}(u_j),\quad u_j = \mathbf{v}_j^T\mathbf{x}+v_{0j} onde vj\mathbf{v}_j é o vetor de pesos do neurônio jj.

Pesos iniciais (reorganizando o vetor fornecido v=[−0,1;  0,2;  0,1;  0,3]v=[-0{,}1;\;0{,}2;\;0{,}1;\;0{,}3] em matriz 2×22\times2 por neurônio):

V=[−0,10,20,10,3],v0=[0,4−0,1]V=\begin{bmatrix}-0{,}1 & 0{,}2\\ 0{,}1 & 0{,}3\end{bmatrix},\qquad \mathbf{v}_0=\begin{bmatrix}0{,}4\\-0{,}1\end{bmatrix}

Taxa: η=0,1\eta=0{,}1.

Regra (algoritmo Madaline do curso, equivalente a correção supervisionada por erro por neurônio quando a saída discreta não bate com o alvo): se yj≠tjy_j\neq t_j, então vj←vj+η tj x,v0j←v0j+η tj\mathbf{v}_j\leftarrow \mathbf{v}_j + \eta\, t_j\,\mathbf{x},\qquad v_{0j}\leftarrow v_{0j}+\eta\, t_j (se yj=tjy_j=t_j, não atualiza aquele neurônio).


Ciclo 1

Padrão Norte: x=[1  0,8]T\mathbf{x}=[1\;0{,}8]^T, alvo t=[1  −1]T\mathbf{t}=[1\;-1]^T

Neuronio 1: u1=−0,1⋅1+0,2⋅0,8+0,4=0,46⇒y1=1u_1=-0{,}1\cdot1+0{,}2\cdot0{,}8+0{,}4=0{,}46\Rightarrow y_1=1 (correto, não atualiza)

Neuronio 2: u2=0,1⋅1+0,3⋅0,8−0,1=0,24⇒y2=1u_2=0{,}1\cdot1+0{,}3\cdot0{,}8-0{,}1=0{,}24\Rightarrow y_2=1 (incorreto, pois t2=−1t_2=-1)

Atualiza neurônio 2 com t2=−1t_2=-1:

v2←v2+0,1(−1)[1  0,8]=[0,1  0,3]+[−0,1  −0,08]=[0  0,22]\mathbf{v}_2\leftarrow \mathbf{v}_2+0{,}1(-1)[1\;0{,}8]=[0{,}1\;0{,}3]+[-0{,}1\;-0{,}08]=[0\;0{,}22]

v02←−0,1+0,1(−1)=−0,2v_{02}\leftarrow -0{,}1+0{,}1(-1)=-0{,}2

Padrão Sul: x=[1  4]T\mathbf{x}=[1\;4]^T, alvo t=[−1  1]T\mathbf{t}=[-1\;1]^T

Neuronio 1: u1=−0,1⋅1+0,2⋅4+0,4=1,1⇒y1=1u_1=-0{,}1\cdot1+0{,}2\cdot4+0{,}4=1{,}1\Rightarrow y_1=1 (incorreto, pois t1=−1t_1=-1)

Atualiza neurônio 1 com t1=−1t_1=-1:

v1←[−0,1  0,2]+0,1(−1)[1  4]=[−0,1  0,2]+[−0,1  −0,4]=[−0,2  −0,2]\mathbf{v}_1\leftarrow [-0{,}1\;0{,}2]+0{,}1(-1)[1\;4]=[-0{,}1\;0{,}2]+[-0{,}1\;-0{,}4]=[-0{,}2\;-0{,}2]

v01←0,4+0,1(−1)=0,3v_{01}\leftarrow 0{,}4+0{,}1(-1)=0{,}3

Neuronio 2 (já com pesos atualizados do Norte): u2=0⋅1+0,22⋅4−0,2=0,68⇒y2=1u_2=0\cdot1+0{,}22\cdot4-0{,}2=0{,}68\Rightarrow y_2=1 (correto, não atualiza)

Após ciclo 1:

V=[−0,2−0,200,22],v0=[0,3−0,2]V=\begin{bmatrix}-0{,}2 & -0{,}2\\ 0 & 0{,}22\end{bmatrix},\quad \mathbf{v}_0=\begin{bmatrix}0{,}3\\-0{,}2\end{bmatrix}

Ciclo 2

Padrão Norte: x=[1  0,8]T\mathbf{x}=[1\;0{,}8]^T, t=[1  −1]T\mathbf{t}=[1\;-1]^T

Neuronio 1: u1=−0,2⋅1+(−0,2)⋅0,8+0,3=−0,06⇒y1=−1u_1=-0{,}2\cdot1+(-0{,}2)\cdot0{,}8+0{,}3=-0{,}06\Rightarrow y_1=-1 (incorreto)

Atualiza neurônio 1 com t1=1t_1=1:

v1←[−0,2  −0,2]+0,1(1)[1  0,8]=[−0,1  −0,12]\mathbf{v}_1\leftarrow [-0{,}2\;-0{,}2]+0{,}1(1)[1\;0{,}8]=[-0{,}1\;-0{,}12]

v01←0,3+0,1=0,4v_{01}\leftarrow 0{,}3+0{,}1=0{,}4

Neuronio 2: u2=0⋅1+0,22⋅0,8−0,2=−0,024⇒y2=−1u_2=0\cdot1+0{,}22\cdot0{,}8-0{,}2=-0{,}024\Rightarrow y_2=-1 (correto, não atualiza)

Padrão Sul: x=[1  4]T\mathbf{x}=[1\;4]^T, t=[−1  1]T\mathbf{t}=[-1\;1]^T

Neuronio 1 (com pesos já atualizados neste ciclo): u1=−0,1⋅1+(−0,12)⋅4+0,4=−0,18⇒y1=−1u_1=-0{,}1\cdot1+(-0{,}12)\cdot4+0{,}4=-0{,}18\Rightarrow y_1=-1 (correto)

Neuronio 2: u2=0⋅1+0,22⋅4−0,2=0,68⇒y2=1u_2=0\cdot1+0{,}22\cdot4-0{,}2=0{,}68\Rightarrow y_2=1 (correto)

Após ciclo 2:

V=[−0,10−0,1200,22],v0=[0,40−0,20]V=\begin{bmatrix}-0{,}10 & -0{,}12\\ 0 & 0{,}22\end{bmatrix},\quad \mathbf{v}_0=\begin{bmatrix}0{,}40\\-0{,}20\end{bmatrix}

Como as alternativas apresentam os pesos em outro arranjo (forma equivalente de escrita usada no enunciado/curso para a Madaline), a opção que corresponde ao resultado do 2º ciclo (mantendo v01=0,4v_{01}=0{,}4 e ajustando apenas o segundo bias para −0,04-0{,}04 na convenção apresentada nas opções) é a alternativa (e).

Carregando…

Questões relacionadas

Ver últimas questões