Hinton Diagram

8173 단어 neurosciencePython

Hinton Diagram


조합 행렬의 시각화를 실행합니다.여기에는 뉴런의 결합을 가설한다.시뮬레이션에서 1~M은 excitatory neuron, M~N은 inhibitory neuron, 왼쪽은 excitatory의 결합, 오른쪽은 inhibitory의 결합으로 보기 쉽다.
가로축은 pre, 세로축은 post이다.

주요하다


다음 함수는 excitatory의 결합을 빨간색, inhibitory의 결합을 파란색으로 씁니다.
python
def hinton(matrix, max_weight=None, ax=None):
    """結合行列を描画"""
    ax = ax if ax is not None else plt.gca()

    if not max_weight:
        max_weight = 2 ** np.ceil(np.log(np.abs(matrix).max()) / np.log(2))
    N = len(matrix)
    ax.patch.set_facecolor('gray')
    ax.set_aspect('equal', 'box')
    ax.set_xticks(np.arange(1, N+1))
    ax.set_yticks(np.arange(1, N+1))
    ax.set_xlim([0.5, N+0.5])
    ax.set_ylim([0.5, N+0.5])

    for (x, y), w in np.ndenumerate(matrix):
        color = 'red' if w > 0 else 'blue'
        size = np.sqrt(np.abs(w) / max_weight)
        rect = plt.Rectangle([x+1 - size / 2, y+1 - size / 2], size, size,
                             facecolor=color, edgecolor=color)
        ax.add_patch(rect)

    ax.autoscale_view()
    ax.invert_yaxis()
실제로 그렸을 때plt.style.use("ggplot") 느낌이 좋았다.
다음은araypsppsp[i][j]에 대응하는 결합.
plot
plt.style.use("ggplot")
plt.figure(figsize=(6,6))
hinton(psp.T)
plt.xlabel("pre")
plt.ylabel("post")
plt.savefig("hinton_diagram.pdf", bbox_inches="tight", pad_inches=0)

예제


이것은 무작위 수로 조합 행렬을 만들고 히튼 다이어그램으로 그린 결과입니다.사각형의 크기만 봐도 결합의 강도를 알 수 있다.

참고 자료


다음 코드를 기반으로 만듭니다.
https://matplotlib.org/gallery/specialty_plots/hinton_demo.html

좋은 웹페이지 즐겨찾기