컨볼루션 신경망(CNN)에서 그래프 컨볼루션 신경망(GCN)까지 자세히 알아보기

목차

1. CNN과 GCN의 관계

2. "그림"에 대한 예비 지식

3. 그래프 합성곱 신경망(GCN)

4. 초분광 이미지 분류를 위한 네트워크 최적화

5. 주파수 영역에서 컨벌루션 신경망 그래프


        최근에 하이퍼스펙트럼 이미지 분류 작업을 처리하기 위해 그래프 컨벌루션 네트워크를 사용하는 매우 높은 인용 수의 기사를 봤습니다. 매우 빠르고 매우 높은 데이터. Graph Convolutional Neural Network를 접해본 결과, 대부분의 정보가 중간 수식 부분을 수학적 추론 방식으로 설명하려고 하여 이 네트워크를 전반적으로 이해하고 파악하고 사용하는 데 특정 장애물이 있음을 발견했습니다. 보다 거시적인 관점에서 이 네트워크를 이해하고 천천히 수학적 내용을 추가하여 이 네트워크를 원활하게 이해하고 배우기 위해 노력하십시오.

1. CNN과 GCN의 관계

       전통적인 데이터 구조를 가진 데이터 세트의 경우 사진, 비디오, 오디오 등과 같이 모두 유클리드 공간에 속하며 불규칙한 모양의 행렬로 변환될 수 있습니다. 이러한 데이터 구조는 컨볼루션 커널이 또한 매우 규칙적인 행렬입니다.

그림 1.1 CNN의 컨볼루션 프로세스

           

그러나 비유클리드 공간의 데이터 구조에서는 사회적 관계 네트워크, 트래픽 네트워크 다이어그램, 화학 분자 구조 등과 같은 이러한 종류의 컨볼루션을 실현할 수 없습니다.

그림 1.2 대인관계망

그림 1.3 화학 분자 구조

        각 데이터 노드에는 서로 다른 노드를 연결하는 N개의 에지가 있으며 이러한 N은 동일하지 않습니다. 분명히 이러한 데이터 구조는 크기가 언제든지 불규칙하게 변할 수 있는 컨볼루션 커널을 찾을 수 없기 때문에 전통적인 컨볼루션 처리를 수행할 수 없습니다. 그렇다면 이러한 데이터의 특징을 컨볼루션을 통해 학습하고 싶다면 어떻게 해야 할까요 이때 이 글의 주인공인 그래프 컨볼루션 신경망인 GCN을 제안합니다. 이러한 종류의 네트워크는 1. 컴퓨터로 처리할 수 있습니다(매트릭스와 같은 데이터 구조를 규칙적으로 만들기 위해). 2. 각 노드의 정보를 유지하는 것 외에도 인접 노드의 정보도 포함해야 합니다.

2. "그림"에 대한 예비 지식

       그래프 신경망(GNN)은 위에서 언급한 대인 네트워크 및 화학 분자 구조와 같은 데이터 구조 유형인 "그래프"를 처리합니다. 이를 다음 그래프로 요약하면 화살표가 가리키는 방향이 없는 그래프를 무방향 그래프라고 하는데, 이는 두 노드 사이의 양방향 통신을 의미합니다. GNN에서는 거의 이런 종류의 무향 그래프만 사용합니다. 화살표가 있는 또 다른 단방향 구조를 유향 그래프라고 합니다.

2.1 무방향 그래프

        2.1로 표현되는 그래프에는 4개의 절점이 있는데 "그래프"에서는 이러한 종류의 절점을 꼭짓점이라고 하고 꼭짓점 사이의 연결을 "에지"라고 합니다. 차수는 꼭짓점이 연결하는 에지의 수를 나타냅니다. 예를 들어 2.1에서 그래프는 4개의 정점 V1, V2, V3, V4를 포함하고 V3의 차수는 2, V1의 차수는 3, V2의 차수는 1... 입니다. V2, V3, V4와 같이 서로 직접 연결된 꼭짓점을 1차 이웃 꼭짓점이라고 하고 V1의 1차 이웃 꼭짓점을 중간에 하나 이상의 꼭짓점이 있는 것을 2차 이웃 꼭짓점이라고 합니다. , 예를 들어 V4는 V2의 2차 이웃 꼭짓점이고, 더 높은 이웃 꼭짓점을 가집니다.

        그래프의 기본 정의

, 우리는 그래프의 구조가 아무리 이상해도 결국 컴퓨터로 전송되어 처리될 것이라고 생각하기 시작했습니다. 처리를 위해 컴퓨터로 보낼 수 있습니다. 그러면 이 행렬은 적어도 두 부분으로 구성되어야 하는데, 첫째, 각 꼭짓점 간의 관계, 즉 연결이 있는지 여부를 나타낼 수 있어야 하며, 이 연결의 강도를 고려하는 것이 가장 좋습니다. 둘째, 각 노드 자체의 정보, 즉 노드 자체가 누구인지 특성화해야 합니다.

        위의 두 가지 가이드라인에 따라 단계별로 깨닫고 첫 번째 조건, 즉 "인접 행렬"의 개념을 도입한 각 꼭지점 간의 관계를 나타내는 첫 번째 조건을 충족하고, 인접 행렬이 무엇을 하는지 살펴보겠습니다. . 2.1을 예로 들면, 각 꼭짓점 사이의 관계를 표현하고자 합니다. 즉, V1에서 (V1, V2, V3, V4) 사이의 관계와 V2에서 (V1, V2, V3, V4) 사이의 관계를 표현해야 합니다. V4와 모두의 관계까지. 2차원이 필요하다는 것을 아는 것은 어렵지 않습니다.

표 2.1 인접 행렬
V1 v2 V3 V4
V1 0 1 1 1
v2 1 0 0 0
V3 1 0 0 1
V4 1 0 1 0

        위의 표는 Vi에서 Vj까지의 관계를 나타낸 것인데, 직접 연결된 꼭지점 관계를 1로, 직접 연결되지 않은 꼭지점 관계를 0으로 하여 인접행렬 A를 구하는데 이는 매우 좋은 관계식을 나타낼 수 있다. 각 정점 사이. 또한 각 가장자리 근처의 가장자리의 강점과 약점을 표시할 수 있으면 (0, 1)을 사용하여 나타내는 대신 이 행렬을 더욱 개선할 수 있습니다. 그림 2.2 및 아래 표

그림 2.2 강한 관계와 약한 관계가 있는 그래프

V1 v2 V3 V4
V1 0 2 5 6
v2 2 0 0 0
V3 5 0 0
V4 6 0 0

       지금까지 첫 번째 문제는 해결되었고, 인접행렬 A를 통해 그래프의 꼭지점 간의 관계를 잘 파악할 수 있었고, 두 번째 문제는 각 꼭지점의 특징을 파악하는 문제를 해결해야 했습니다.

       예를 들어, V1은 사람이고 그의 개인 정보 중 일부는 이 정점에 저장되며 이 정보는 특정 인코딩 방법에 의해 숫자(임베딩)로 표시됩니다. V1의 경우 이름이 239이고 성별이 2라고 가정합니다. 키는 239, 키는 175, 몸무게는 120. V2의 경우 이름은 542, 성별은 1, 키는 168, 몸무게는 100이다. V1의 벡터는 H1(239, 2, 175, 120)이고, V2의 벡터는 H2(542, 1, 168, 100)이며, 이 벡터를 해당 정점의 신호라고 합니다. 그 후, 얻어진 i개의 열 벡터는 행렬 H(H1, H2, H3, H4)⊺로 연결되며, 여기서 H는 하나의 열로 표현되는 블록 행렬입니다.

H1 239 2 175 120
H2 542 1 168 100
H3 937 2 188 150
H4 365 1 163 90

       A 행렬의 첫 번째 행 A1을 취하여 A1에 H를 곱합니다.                

A1\cdot H =(0\times H1 + 2\times H2 + 5\times H3 + 6\times H4)

       이 결과는 V1의 이웃 노드 신호의 가중 합임을 알 수 있으며, 여기서 가중치는 A에서 제공하는 관계 강도의 값이지만 이 가중치는 정규화되지 않았습니다. 노드의 이웃 정점 관계 값이 강할수록 결과가 커지는 현상을 피하기 위해 정규화 작업을 수행했습니다. 노드의 모든 가장자리와 이러한 가장자리의 관계 값은 진정한 의미에서 합이 1인 "가중치"가 됩니다. 그런 다음 필요한 수학적 프로세스는 A의 각 행을 행의 합으로 나누는 것입니다. 여기서 대각 행렬인 새로운 행렬 D를 도입하고 각 행의 대각선에 있는 요소는 A의 이 행 요소의 합, 즉 정점의 차수입니다.

D 매트릭스
13 0 0 0
0 2 0 0
0 0 8 0
0 0 0 9

D^{-1}A즉, A의 각 관계 값을 정규화하여 가중치로 변환하는 작업을         수행하면 결과는 다음과 같습니다.

0 2/13 5월 13일 6/13
2/2 0 0 0
5/8 0 0 3/8
6/9 0 3/9 0

        이때 를 실행 (D^{-1}A)_{i}H, 즉 D^{-1}Ai번째 줄에 H를 곱하면(첫번째 줄인 i를 1로 설정)

D_{1}^{-1}A1\cdot H =(1/13)\times (0\times H1 + 2\times H2 + 5\times H3 + 6\times H4)

        모든 행이 동일한 작업을 수행 ㅇ^{-1}아하면 각 행의 차원이 동일하고 특정 행의 계산 결과가 특별히 과장되지 않습니다. 이때 결과가 무엇인지 생각해 보자 어떤 정점 주변의 모든 정점의 신호를 관계(가중치)에 따라 더(집합)하는 것과 같으며, 이 결과는 주변 노드가 자신에게 미치는 영향을 나타낼 수 있으며, 그리고 매트릭스 연산을 통해 데이터 구조가 매우 규칙적이게 되고 연산에 컴퓨터를 사용할 수 있습니다.

3. 그래프 합성곱 신경망(GCN)

        이 시점에서 우리는 두 가지 질문에 대해 생각해야 합니다.

        첫째 , 이 영향에는 다음과 같은 대상이 필요합니다.

        예를 들어 친구가 5명 있는데 어떤 친구는 좋은 친구, 어떤 친구는 보통, 어떤 친구는 나쁜 친구이고 학습 능력도 제각각인데 이 다섯 친구를 사귀고 나면 내 성적이 얼마가 될지 알고 싶다. 처럼 보인다. 이 예에서 나는 대상이고, 나는 다섯 명의 친구의 영향력을 견뎌야 하며, 마지막으로 내가 이 다섯 명의 친구를 사귄 결과를 표현해야 합니다. 바로 지금 계산에서 "I"의 참여가 다음과 같이 분명히 누락되었습니다.            

A1\cdot H = (1/13)\times (0\times H1 + 2\times H2 + 5\times H3 + 6\times H4)

        V2, V3, V4의 신호 H1, H2, H3이 모두 가중 합산되어 V1의 신호 H1에 대한 정보가 없음(즉, "I"가 없음)임을 알 수 있다. 내가 교사이고 그들은 그렇지 않다고 가정해 봅시다 그것은 나에게 아무런 영향을 미치지 않거나 학업에 큰 변화를 가져왔고 그들과 친구를 사귀는 것이 나를 크게 향상시켰습니다. 이 경우 우리가 " 친구를 사귀는 결과", 그러면 "I"의 정보가 필수적이므로 친구를 사귈 필요가 있습니다. 인접 행렬 A를 약간 개선하고 "I"의 정보를 추가하여 새로운 행렬을 만듭니다.                     

\와이드틸데{A}= A + I

        동시에 D도 그에 따라 변화하여                                         

\와이드틸데{D}= D+I

        그 중에서 I는 단위행렬이다.이렇게 해서 새로운 계산식은 다음과 같다 \widetilde{D}^{^{-1}}\widetilde{A}H. 나 자신, 즉                   

\widetilde{A}= A + aI

        그 중 a는 intensity 매개변수이고 당연히 D도 그에 따라 변해야 합니다. 그러나 실제로는 이 문제를 고려할 필요가 없습니다. "결과"의 차원과 "점수"의 차원이 일치할 필요가 없기 때문입니다. 새로운 차원 평가 지수로 간주할 수 있으며, 이 지수 하에서 "my"의 가중치는 정도 값의 1/10만 설명하고 "me"의 정보만 고려하면 이 결과가 됩니다. 즉, 나에게 물리적 의미가 있습니다. 영향의 "결과", 즉 영향을받은 후 내가 된 것입니다. 이때 문득 깨달았다. 이 결과가 어느 정도 '새로운 나'가 아닐까? 이러한 계산 후에는 모든 정점이 새로운 자아가 되므로 또 다른 그래프를 얻게 되는데, 새로운 그래프에서는 모든 사람 사이의 관계가 변하지 않고(관계의 에지나 값에 관계없이) 새로운 그래프를 다시 계산할 수 있습니다. 차례. 하지만 이때 new I는 이미 나와 직접 연결된 원래 정점의 정보를 담고 있는데, 예에서와 같이 new V1은 이미 old(V1, V2, V3, V4)의 정보를 담고 있고, new V4는 또한 (V1, V3, V4)의 정보를 포함하지만 첫 번째 계산에서 V4와 V2가 직접 연결되어 있지 않기 때문에 V4는 V2의 정보를 포함하지 않으며 두 번째 영향은 V4로 인해 발생합니다. 그리고 V1 측면이 있습니다. 새 V1에는 원래 V2의 정보가 포함되어 있고 새 V4는 새 V1을 통해 원래 V2의 정보 일부를 얻을 수 있습니다. 1회 전송), 1차 이웃 꼭짓점의 정보만 서로 상호 작용할 수 있습니다. N차 이웃 정점도 발생합니다. 이를 통해 꼭짓점 간의 상호 작용 결과를 나타내는 행렬을 계산할 수 있습니다.

       둘째 , 관계 값은 일반적으로 두 꼭지점 신호 사이의 유클리드 거리에 의해 얻어지는데, 이는 이 두 꼭지점에만 관련되며 2차 이웃의 신호와는 아무런 관련이 없지만 분명히 이웃의 이웃입니다. 나에게 영향을 미칠 수 있습니다. 어느 정도 있어야 하는데, 2차 이웃의 영향을 어떻게 고려해야 할까요?

        예를 들어 제 이름은 V2이고 저는 자폐증 환자입니다 반에 4명이 있습니다 우리만의 신호는 사회적 능력의 가치입니다 저는 V1만 알고 있습니다 V1을 아는 것은 그와 채팅을 할 수 있어서가 아니라 V1은 Sheniu이기 때문에 누구나 V1을 알고 있습니다. 이 예에서 1회 전파 후 V2에 의해 형성된 새로운 V2를 고려하면 로 계산되며 \widetilde{D}^{_{2}^{-1}}\widetilde{A}_{2}H결과는 \widetilde{D}^{_{2}^{-1}}\widetilde{A}_{2}H=(1/3)×(2×H1 + 1×H2 + 0×H3 + 0×H4) =2 /3 H1 + 1/3H2 , 이 시점에서 대부분의 새로운 V2 신호는 원래 V1 신호에서 나온다고 볼 수 있습니다. 전파에 여전히 문제가 있습니다. 2차 이웃과 1차 이웃을 모두 고려하기를 바랍니다. 2차 이웃과 1차 이웃 사이에 큰 차이가 있을 때 , 나는이 효과를 감쇠하고 가능한 한 나만의 신호를 만들고 싶습니다. 다른 사람의 신호와 최대한 분리하면 두 가지 아이디어를 얻기 쉽습니다. 하나는 커뮤니케이션에서 최대한 내 자신의 무게를 유지하는 것입니다. , 다른 사람의 가중치를 줄입니다. 즉, 처리하고 두 번째는 "내" \widetilde{A}신호를 보내는 것입니다. 전파에 따라 특정 선형 변화가 있습니다. 즉, 초의 차이가 클수록 -order neighbours와 first-order neighbours는 내 신호가 작을수록 남들과 구별될 수 있고, 나 또한 나 자신의 독립적인 특성, 즉 신호가 특히 작다는 것을 알 수 있다. GCN에서는 두 번째 아이디어를 따르며 수학의 새로운 전파 과정은 다음과 같이 표현됩니다.                  

\와이드틸데{D}^{-\frac{1}{2}}\와이드틸데{A}\와이드틸데{D}^{-\frac{1}{2}}H

        D와 D는 모두 \와이드틸데{D}^{-\frac{1}{2}}대각행렬이기 때문에 일련의 기본변환을 거친 단위행렬로 볼 수도 있고, 단순히 곱셈의 기본변환만 하여도 된다. 왼쪽 곱셈은 A와 같습니다 \와이드틸데{D}^{-\frac{1}{2}}. \와이드틸데{D}^{-\frac{1}{2}}행 기본 변환을 수행하면 오른쪽 곱셈은 A에서 열 기본 변환을 수행하는 것과 같습니다. 그러면 다음 작업   \와이드틸데{D}^{-\frac{1}{2}}\와이드틸데{A}\와이드틸데{D}^{-\frac{1}{2}}으로 간주할 수 있습니다 .\widetilde{A_{i,j}}

\widetilde{A}_{ij}=\frac{A_{ij}}{\sqrt{D_{ii}},\sqrt{D_{jj}}}

        이와 같이 1차 이웃 꼭짓점 j의 차수(에지의 수, 즉 1차 이웃의 수)가 매우 크면 신호가 한 번의 전파 후에 매우 작아지게 됩니다. 예를 들어, V2의 경우:               

\와이드틸데{D}_{22}^{-\frac{1}{2}}\와이드틸데{A}_{2}\와이드틸데{D}_{11}^{-\frac{1}{2} }H = \frac{1}{\sqrt{3}\sqrt{14}}(2H1 + H2)

        때문에 \frac{1}{3} > \frac{1}{\sqrt{3}\sqrt{14}}새로운 V2의 신호가 감쇠되었음을 알 수 있으며 감쇠 계수는 \frac{1}{\sqrt{D_{ii}},\sqrt{D_{jj}}}분명히 i=j일 때만 가중치 합이 1이고 다른 시간은 <1이고 더 큽니다. i와 j의 차이, 감쇠 계수가 감쇠할수록 더 무자비합니다. 위에서 두 번째 문제도 해결되었습니다.

        지금까지 우리는 그래프의 행렬 표현을 풀었습니다. 이 행렬은 자체 신호를 포함할 뿐만 아니라 각 정점 간의 관계도 포함하고 전파의 각 계층에는 새로운 신호가 생성됩니다. 이러한 새로운 신호는 CNN에서 Y=와 동일합니다. XW+ b의 각 레이어는 X입니다. CNN과 비교할 수 있습니다. 각 이전 전파에서 얻은 값이 각 레이어의 특징이라고 할 수 있습니다. 그래프를 사용하여 컨볼루션 신경망을 훈련하려면 다음이 필요합니다. 정보를 포착할 수 있는 데이터를 추가하기 위해 훈련 매개변수 행렬 W와 b, 그리고 활성화 함수를 통해 컨볼루션 신경망 CNN과 완벽하게 일치하므로 최종 순방향 전파 공식을 얻습니다.                                                     

H^{l+1} = \sigma (\widetilde{D}^{-\frac{1}{2}}\widetilde{A}\widetilde{D}^{-\frac{1}{2}} H^{l}W^{l} + b^{l})

        위는 그래프 길쌈 신경망 전파 공식에 대한 자세한 설명입니다. 그 중 \와이드틸데{D}^{-\frac{1}{2}}\와이드틸데{A}\와이드틸데{D}^{-\frac{1}{2}}고정이며 모든 레이어가 변경되지 않습니다.다음은 완전히 연결된 레이어 구성, 손실 함수, 역전파 및 업데이트 매개변수를 구성하는 완전히 CNN과 동일합니다.

4. 초분광 이미지 분류를 위한 네트워크 최적화

        전체 네트워크의 전파가 도입되었는데 어떤 기능을 구현합니까? 고려해야 할 두 가지 측면으로 나눕니다.

        1. No/semi-supervised: 즉, 샘플을 입력할 때 레이블이 지정되지 않은 샘플(정점 및 해당 신호)을 네트워크에 함께 입력하고 네트워크가 전파될 때마다 이러한 레이블이 지정되지 않은 정점의 신호를 수신할 수 있습니다. 정보 근처의 신호는 새로운 특징을 형성하고 다음 층의 "새로운 자아"가 됩니다. 이것은 실제로 "주홍색에 가까운 것은 빨간색, 잉크에 가까운 것은 검은색"의 전송 방법입니다. 여러 번 전송한 후에는 클러스터링 효과, 즉 특정 꼭지점의 신호가 점점 더 유사하지만 원래 정보의 일부를 유지하여 클러스터링 효과를 달성합니다
       . 이 글에서 사용된 아이디어는 전통적인 GCN이 semi-supervised 및 unsupervised 모드를 채택한다는 것입니다. , 점차 유사화되어 클러스터를 형성하고 훈련 중에 훈련 세트만 사용할 것으로 예상하고 테스트 중에 네트워크를 재훈련하지 않고 새로운 샘플 레이블을 예측할 수 있습니다. 그래서 우리는 CNN의 아이디어를 모방하고 세 가지를 변경했습니다.

        먼저 softmax 분류 기능을 추가합니다.

        둘째, 계산량을 줄인다. 계산량은 우리가 매번 입력하는 샘플 크기와 관련이 있다. 이 예제에서 GCN을 직접 사용하면 모든 샘플을 입력해야 하며 D와 A는 40000×40000 행렬, H는 40000×103 행렬, W는 103×103 행렬이고 계산 복잡도는 (40000)입니다. * 103 * 103), CNN에서 매번 업데이트되는 행렬은 거의 3×3과 5×5가 여러 개 쌓여 있는데, 샘플 크기가 너무 커서 CNN에 비해 메모리를 많이 사용합니다. 이에 따르면, 위에서 언급한 문헌은 문제를 해결하기 위한 아이디어를 제공합니다. . 가리키고 그림을 생성하고 이 작은 영역의 모든 유효한 픽셀이 선택되도록 여러 번 점을 선택한 다음 이 작은 영역의 모든 그림을 배치로 만듭니다. 이와 같이 각 H는 10×103이고 계산 복잡도는 (10*103*103)이므로 계산량이 크게 줄어듭니다. 

       셋째, 훈련된 네트워크를 통해 직접 예측할 수 있도록 훈련되지 않은 샘플을 지원합니다. 두 번째 글을 통해 training set을 batch로 나누어 네트워크를 학습시키는 방법을 알아냈는데, 이때 test set의 데이터를 training set 방식에 따라 region으로 나누어 그래프를 생성하면 된다. 생성된 그래프 이것은 훈련된 네트워크에 입력하여 달성됩니다. 훈련되지 않은 샘플도 훈련된 네트워크에서 예측할 수 있습니다.

      그렇다면 CNN에 대한 GCN의 장점은 무엇입니까? 각 정점의 신호를 샘플의 입력으로 간주하면 GCN은 이러한 기능을 실현할 수 있습니다. 입력 샘플 관계와 그 강도는 네트워크에서 고려할 수 있습니다. 일반적으로 CNN에 의해 ​​입력된 샘플 간의 상관 정보는 네트워크에 입력되지 않습니다. 하이퍼스펙트럴에서는 3D-CNN과 2D-CNN이 공간정보를 추가했지만 원래 하이퍼스펙트럴 데이터의 공간정보 추출은 하나의 패치에만 있지만, 이 팩트는 때때로 다양한 지표 물체를 포함하고 패치의 레이블은 중심점의 픽셀 레이블에 의해 결정되므로 다음과 같은 상황이 발생합니다 중심점 근처의 여러 픽셀이 레이블과 다른 경우 해당 패치는 매우 유사하지만 레이블이 다르므로 훈련 난이도가 높아집니다. 개선된 GCN에서는 입력이 더 이상 패치가 아니라 더 먼 정보를 포함하는 그래프이므로 그래프의 각 신호 포인트도 특정 영역에서 무작위로 선택되어 다른 레이블(pacth)이 있는 그래프의 모양이 너무 유사합니다. 따라서 생성된 예측 결과 그래프에서 경계가 더 명확해집니다.

5. 주파수 영역에서 컨벌루션 신경망 그래프

     원래는 여기서 문제의 끝이었지만 일부 거물들은 주파수 영역의 곱이 공기 영역의 컨볼루션에 해당하고, 곱이 컨볼루션보다 당연히 계산하기 편하므로 컨볼루션할 신호와 컨볼루션 커널을 푸리에 변환 또는 라플라스 변환을 거쳐 주파수 영역으로 변환하고 곱한 다음 다시 공간 영역으로 변환한 결과를 얻었다. 이 때 공간 도메인의 컨볼루션 결과, 즉

g\star f = F^{-1}[F[g]\cdot F[f]]

       여기서 F[·]는 푸리에 변환 또는 라플라스 변환입니다.

       아이디어는 좋은데 수식의 (g,f)는 다 함수에요 푸리에 급수가 있어서 변환을 하는건 당연하지만 우리 그래프 구조의 형태로 푸리에 변환이 뭐죠?

        다음으로 푸리에 변환의 본질을 탐구해야 합니다.먼저 전통적인 푸리에 급수를 살펴보겠습니다.


        到这里我们发现F(w)无非就是在求各个基的系数Cn,而且这个求法就是让f(x)和基的共轭相乘再求积分,把f(x)和基从连续对应到离散里,不就是对应元素相乘再相加,这不正是两个向量的点积吗?通过这种点积就能确定在某一个w下的F(w)的值,分别进行多次不同w下的点积就能求出F(w)了。我们做个总结,求传统的傅里叶变换的本质上,就是再求与正交基的内积的那些系数Cn   

        现在开始进行类比,在图中,要参与卷积计算的是各层的信号,那么“f(x)”就有了,那么只要找到一组正交基就行了。传统的傅里叶变换是对一个函数进行的,将函数离散后是一个一维的数组,所以基是一个关于w的一维函数就行了,而我们需要对顶点进行傅里叶变换,各个顶点之间还需要考虑相互的影响,那我们找的这组正交基就至少需要包含邻接矩阵的信息。那么传统的傅里叶变换是的正交基有那些要求呢?这里穿插一些数学结论,我们之所以能用e^{-jwt}作为基函数,是因为其满足拉普拉斯算子的特征方程,w和特征值有关。我们来看一下特征方程的定义:   

AV=\lambda V

         其中A是一种变换,V是特征向量,λ是特征值。e^{-jwt}满足: 

\Delta e^{-iwt} = \frac{\partial ^{2}}{\partial t^{2}}e^{-iwt} = - w^{2}e^{-iwt}

         其中\델타为拉普拉斯算子,即二阶导算子。可以看出,这个式子中,\델타就是变换法则A,e^{-jwt} 是特征向量V(虽然e^{-jwt}只有一个元素而不是数组),-w^{2} 为特征值λ,故e^{-jwt}满足拉普拉斯特征方程,所以我们选择e^{-jwt}作为基。

        那么我们相对各个信号求傅里叶变换,能否也找出一种包含邻接矩阵A的信息的“拉普拉斯矩阵”,那样的话求其特征向量就行了,但是这组特征向量需要时正交的,那么最好我们找到的这个拉普拉斯矩阵是实对称矩阵,其特征向量就是正交的了,这组基做归一化后就是一组正交基。

         그래프 구조에 그러한 행렬이 있습니까?라는 질문이 있습니다. 대답은 예입니다. 이 행렬을 Laplacian 행렬 L이라고 하고 알고리즘은 L = D - A이고 D는 차수 행렬이고 A는 인접 행렬입니다. 얼마나 간결하게, 어떻게 L이 Laplacian 연산자의 기능을 구현하는지(그래프 구조에서 2차 미분 함수를 찾는 것), 칭화대 출신의 거물이 이 내용을 아주 간단하고 간단하게 설명하면서 아주 잘 썼다는 것을 알았습니다. Laplacian 행렬의 의미와 직관에 대해 설명하고 소개하기에 아주 적합한 예를 제시하여 GCN 초보자가 읽기에 매우 적합합니다. 포털 .

         이 라플라시안 행렬을 사용하여 고유 벡터를 얻을 수 있습니다 u_{i}. 그런 다음 u_{i}이 직교 기저 집합 U를 형성한 다음 특정 신호 f에 대해 푸리에 변환을 수행하여 U의 내적 형식을 얻습니다. 즉, 에프[에프] = 유^{티}에프F[ ]는 푸리에 변환입니다. , 역변환은 유^{T}에프f가 될 것이고, 에프[에프] = 유^{티}에프U는 직교 행렬이기 때문에 왼쪽과 오른쪽에 동시에 U를 곱할 수 있습니다. 따라서 UU^{T} = E역변환 공식은 입니다 에프 = UF[에프].

          이제 우리는 신호 f와 컨볼루션 커널 h를 작동합니다. 여기서 h\star f = U((U^{T}h)\bigodot (U^{T}f))해당 \bigodot요소의 곱셈을 나타냅니다. (U^{T}h)\bigodot (U^{T}f)여기서 \begin{pmatrix} \theta _{1} \cdots 0 \\ \vdots \ddots \vdots \\ 0 \cdots \theta _{n} \end{pmatrix} \begin{pmatrix} \widetilde{f}_{ 1}\\ \vdots \\ \widetilde{f}_{n} \end{pmatrix}\theta푸리에 변환된 h의 요소이고 n은 신호의 차원 \widetilde{f}이며 f의 Fu 변환된 요소는 diag( \theta) =  로 다시 작성되므로 g_{\theta }다음과 같습니다.

        이 때, 우리는 U의 열의 수가 무한히 많을 수 있음을 발견했습니다. 왜냐하면 \Delta e^{-iwt} = \frac{\partial ^{2}}{\partial t^{2}}e^{-iwt} = - w^{2}e^{-iwt}이 공식에서 w가 두 배가 되는 한 위의 관계가 만족되고 그러면 고유 벡터가 무한히 많으며 u_{i}이렇게 많이 계산하는 비용은 다음과 같기 때문입니다. 1개 또는 2개의 저주파 성분을 사용하여 전체 U를 대체하거나 근사화합니다. 이를 기반으로 몇 가지 근사를 수행합니다. 근사를 통한 시간 영역:

H^{l+1} = \sigma (\widetilde{D}^{-\frac{1}{2}}\widetilde{A}\widetilde{D}^{-\frac{1}{2}} H^{l}W^{l} + b^{l})

근사 과정에서 컨볼루션 커널 h의 정의가 바뀌 었고 중간에 수학적           과정이 생략되었습니다. 대학 보스.

        

추천

출처blog.csdn.net/weixin_42037511/article/details/126271782