対角成分・自己ループとは？


## 対角成分と自己ループ

対角成分と自己ループは、英語で "diagonal elements"  "self-loops" と呼ばれます。
対角成分と自己ループは、ネットワークや行列において、ある要素がそれ自身に対して持つ結合やつながりを表します。

## 対角成分

隣接行列において、対角成分は要素がそれ自身に接続されているかどうかを示します。

隣接行列 $A$ において、$A_{ii}$ が対角成分（自己ループ）に相当します。例えば、以下のような隣接行列を考えましょう：

$$
A = \begin{pmatrix}
0 & 1 & 0 \
1 & 1 & 1 \
0 & 1 & 0
\end{pmatrix}
$$

この行列の対角成分は、$A_{11} = 0$, $A_{22} = 1$, $A_{33} = 0$ です。$A_{22} = 1$ は、要素2が自分自身に接続されている（自己ループを持つ）ことを示しています。一方、$A_{11} = A_{33} = 0$ は、要素1と要素3が自分自身に接続されていない（自己ループを持たない）ことを示しています。


グラフ理論では、自己ループを持つグラフを「ループを持つグラフ」や「自己ループを許すグラフ」などと呼びます。

```mermaid
graph LR
    1((1))
    2((2)) --> 2
    3((3))
    1 --> 2
    2 --> 1
    2 --> 3
    3 --> 2
```

上の図では、要素2が自分自身に向かう矢印（自己ループ）を持っています。

## 自己ループの扱い

自己ループの扱いは、モデルやアプリケーションによって異なります。例えば、ソーシャルネットワークの分析では、自己ループは通常考慮されません。一方、ニューラルネットワークのモデル化では、自己ループ（自己結合）を含めることがあります。
対角成分（自己ループ）を含めるか否かは、モデル化の目的や対象とするシステムの性質によって決定されます。


## 対角であるということ

Diagonal elements: 対角成分は、正方行列において、左上から右下へ向かう対角線上に位置する要素を指します。例えば、行列 $A$ の対角成分は、$A_{11}, A_{22}, A_{33}, \ldots, A_{nn}$ です。

```mermaid

graph LR
    subgraph MatrixA
        A11((A_11)) --> A12((A_12)) --> A13((A_13)) --> A1n((A_1n))
        A21((A_21)) --> A22((A_22)) --> A23((A_23)) --> A2n((A_2n))
        A31((A_31)) --> A32((A_32)) --> A33((A_33)) --> A3n((A_3n))
        Am1((A_m1)) --> Am2((A_m2)) --> Am3((A_m3)) --> Amn((A_mn))
    end
    
    style A11 fill:#f9d,stroke:#333,stroke-width:3px
    style A22 fill:#f9d,stroke:#333,stroke-width:3px
    style A33 fill:#f9d,stroke:#333,stroke-width:3px
    style Amn fill:#f9d,stroke:#333,stroke-width:3px

```
## 例

構造工学の剛性行列： 構造工学では、構造物の剛性行列の対角成分が、各節点の剛性を表します。例えば、(i, i)成分は、i番目の節点のバネ定数を表します。

この図では、3つの節点（節点1, 節点2, 節点3）からなる簡単な構造物と、その構造物の剛性行列Kを示しています。

```mermaid

graph TB
    subgraph 構造物
        A((節点1)) --- B((節点2))
        B --- C((節点3))
    end
    
    subgraph 剛性行列 K
        K11((K_11)) --> K12((K_12)) --> K13((K_13))
        K21((K_21)) --> K22((K_22)) --> K23((K_23))
        K31((K_31)) --> K32((K_32)) --> K33((K_33))
    end
    
    style A fill:#8ef,stroke:#333,stroke-width:2px
    style B fill:#8ef,stroke:#333,stroke-width:2px
    style C fill:#8ef,stroke:#333,stroke-width:2px
    style K11 fill:#f9d,stroke:#333,stroke-width:3px
    style K22 fill:#f9d,stroke:#333,stroke-width:3px
    style K33 fill:#f9d,stroke:#333,stroke-width:3px

```

```mermaid

graph LR
    A((A)) -->|2| A
    A -->|1| B((B))
    B -->|1| C((C))
    C -->|1| A
    C -->|2| C

    subgraph 隣接行列 M
        M11((2)) --> M12((1)) --> M13((0))
        M21((0)) --> M22((0)) --> M23((1))
        M31((1)) --> M32((0)) --> M33((2))
    end

    style A fill:#8ef,stroke:#333,stroke-width:2px
    style B fill:#8ef,stroke:#333,stroke-width:2px
    style C fill:#8ef,stroke:#333,stroke-width:2px
    style M11 fill:#f9d,stroke:#333,stroke-width:3px
    style M22 fill:#f9d,stroke:#333,stroke-width:3px
    style M33 fill:#f9d,stroke:#333,stroke-width:3px
    
```


## ニューラルネットワークにおける自己ループ

脳科学の観点から、ニューラルネットワークにおける自己ループは、脳内の神経回路におけるフィードバック結合や再帰的な情報処理を表現していると考えることができます。

```mermaid

graph LR
    A[Input] --> B((Neuron))
    B -->|w| B
    B --> C[Output]

    style B fill:#8ef,stroke:#333,stroke-width:2px

```


### フィードバック結合
脳内の神経回路では、ニューロンが自分自身にフィードバック結合を持つことがあります。これは、ニューロンが自分自身の出力を入力として受け取り、自己調整や自己制御を行うことを可能にします。ニューラルネットワークにおける自己ループは、このようなフィードバック結合を模倣しています。

### 再帰的な情報処理
脳は、外部からの入力を処理するだけでなく、内部状態を維持し、過去の情報を保持しながら処理を行います。これは、再帰的な情報処理と呼ばれます。ニューラルネットワークにおける自己ループは、ニューロンが自分自身の過去の状態を入力として受け取ることを可能にし、再帰的な情報処理を実現します。

### ワーキングメモリ
脳のワーキングメモリは、短期的に情報を保持し、操作するための神経基盤です。ニューラルネットワークにおける自己ループは、ニューロンが自分自身の状態を一時的に保持することを可能にし、ワーキングメモリの機能を模倣します。
### 注意機構
脳の注意機構は、関連する情報に選択的に注意を向け、不要な情報を無視する働きがあります。ニューラルネットワークにおける自己ループは、ニューロンが自分自身の状態に基づいて入力を選択的に強調または抑制することを可能にし、注意機構の一部を模倣します。

### 同期的な活動
脳内の神経回路では、ニューロンが同期的に発火することがあります。これは、情報の統合や特定の脳の状態の表現に関連しています。ニューラルネットワークにおける自己ループは、ニューロンが自分自身の状態を維持することで、同期的な活動を促進する可能性があります。