• 検索結果がありません。

通信理論に特化した深層学習 第9回ゼミ資料

N/A
N/A
Protected

Academic year: 2021

シェア "通信理論に特化した深層学習 第9回ゼミ資料"

Copied!
7
0
0

読み込み中.... (全文を見る)

全文

(1)

通信理論に特化した深層学習 第9回ゼミ資料

AMP ネットの学習1

豊橋技術科学大学 電気・電子情報工学系

准教授 竹内啓悟

(2)

モジュール

A

𝒙𝒙

A𝑡𝑡

= 𝒙𝒙

B𝑡𝑡

+ 𝑨𝑨

T

𝒛𝒛

𝑡𝑡

,

モジュール

B

𝒙𝒙

B𝑡𝑡+1

= tanh 𝒙𝒙

A𝑡𝑡

𝜎𝜎

2

+ 𝛼𝛼𝑣𝑣

B𝑡𝑡

.

関数を要素ごとに適用

𝒛𝒛

𝑡𝑡

= 𝒚𝒚 − 𝑨𝑨𝒙𝒙

B𝑡𝑡

+ 𝛼𝛼𝛼𝛼

𝑡𝑡−1

𝒛𝒛

𝑡𝑡−1

.

近似的メッセージ伝播法(

AMP)

反復回数

𝑇𝑇

AMP

T

層順伝播型ネットワークとみなして、

パラメータ

𝛼𝛼𝛼𝛼

𝑡𝑡−1

𝛼𝛼𝑣𝑣

B𝑡𝑡をデータから学習したい。

(3)

𝑡𝑡 + 1

層目のレイヤー

𝒚𝒚 𝒛𝒛

𝑡𝑡−1

𝒙𝒙

B𝑡𝑡

𝒚𝒚 − 𝑨𝑨𝒙𝒙

B𝑡𝑡

+ 𝜆𝜆

𝑡𝑡−1

𝒛𝒛

𝑡𝑡−1

tanh 𝒙𝒙

B𝑡𝑡

+ 𝑨𝑨

T

𝒛𝒛

𝑡𝑡

𝜎𝜎

2

+ 𝑣𝑣

𝑡𝑡

𝒚𝒚 𝒛𝒛

𝑡𝑡

𝒙𝒙

B𝑡𝑡+1 注意

通信路行列

𝑨𝑨

は真の値を使い、学習対象としない。

入力層では

𝒛𝒛

−1

= 𝟎𝟎

𝒙𝒙

B0

= 𝟎𝟎

を使用する。

パラメータ

{𝜆𝜆

𝑡𝑡−1

, 𝑣𝑣

𝑡𝑡

}

をデータから学習する。

初期値は

𝜆𝜆

𝑡𝑡−1

= 0

𝑣𝑣

𝑡𝑡

= 0

とする。

残留干渉雑音を無視した場合の並列干渉除去から学習開始

(4)

行ベクトル表現

入力を列ベクトルのシステムから行ベクトルのシステムに変換する。

通信路モデル

𝒚𝒚 = 𝒙𝒙𝑨𝑨 + 𝒘𝒘 ∈ ℝ

1×𝑀𝑀

, 𝒘𝒘 ∼ 𝒩𝒩 𝟎𝟎, 𝜎𝜎

2

𝑰𝑰

𝑀𝑀

.

𝒛𝒛

𝑡𝑡

∈ ℝ

1×𝑀𝑀の再定義

𝒛𝒛

𝑡𝑡

= 𝒚𝒚 − 𝒙𝒙

B𝑡𝑡

𝑨𝑨 + 𝜆𝜆

𝑡𝑡−1

𝒛𝒛

𝑡𝑡−1

𝒙𝒙

B𝑡𝑡+1

∈ ℝ

1×𝑁𝑁の再定義

𝒙𝒙

B𝑡𝑡+1

= tanh 𝒙𝒙

B𝑡𝑡

+ 𝒛𝒛

𝑡𝑡

𝑨𝑨

T

𝜎𝜎

2

+ 𝑣𝑣

𝑡𝑡

𝑨𝑨 ∈ ℝ

𝑁𝑁×𝑀𝑀:通信路行列

(5)

訓練データの生成関数

import numpy as np import tensorflow as tf import math

def MIMOChannel(M, N, L, SNR_dB):

inputs = 1. - 2.*np.random.randint(2, size=(L, N))

#1

または

-1

の一様乱数

inputs = inputs.astype(np.float32)

A_ = np.random.normal(size=[N, M], scale=1.0/math.sqrt(M))

#

平均

0

、標準偏差

scale

のガウス乱数

sigma = math.pow(10., -SNR_dB/20.) outputs = np.matmul(inputs, A_) +

np.random.normal(size=[L,M], scale=sigma) A = tf.constant(A_, dtype='float32')

sigma2 = tf.constant(sigma*sigma, dtype='float32')

#

固定テンソル(パラメータ)の定義

return inputs, outputs, A, sigma2

(6)

AMP

に対応するレイヤー

class AMPLayer(tf.keras.layers.Layer):

def __init__(self, M, N, A, sigma2, **kwargs):

super(AMPLayer, self).__init__(**kwargs) self.M = M

self.N = N self.A = A

self.sigma2 = sigma2

def build(self, input_shape):

self.Lambda = self.add_weight("Lambda",

shape=[1,], initializer='zeros', trainable=True, constraint='non_neg')

self.v = self.add_weight("v", shape=[1,],

initializer='zeros', trainable=True, constraint='non_neg')

#

非負制約

def call(self, inputs):

・・・・

名前の定義に後で使用

(7)

def call(self, inputs):

x = inputs[0]

y = inputs[1]

z = inputs[2]

output_y = y

output_z = tf.linalg.matmul(x, self.A) output_z = tf.math.subtract(y, output_z) onsager = tf.math.multiply(self.Lambda, z) output_z = tf.math.add(output_z, onsager)

output_x = tf.linalg.matmul(output_z, self.A, transpose_b=True) output_x = tf.math.add(x, output_x)

output_x = tf.math.divide(output_x, tf.math.add(self.sigma2, self.v)) output_x = tf.math.tanh(output_x)

return [output_x, output_y, output_z]

AMP

に対応するレイヤーの

call

メソッド

(𝒙𝒙

B𝑡𝑡

, 𝒚𝒚, 𝒛𝒛

𝑡𝑡−1

)

(𝒙𝒙

B𝑡𝑡+1

, 𝒚𝒚, 𝒛𝒛

𝑡𝑡

)

に写像する。

参照

関連したドキュメント

[r]

七,古市町避難訓練の報告会

[r]

A carnet is an international, unified Customs document under an international system based on “Customs Conventions on the Temporary Importation of Private Road Vehicles”

第9図 非正社員を活用している理由

⑤  日常生活・社会生活を習得するための社会参加適応訓練 4. 

□ ゼミに関することですが、ゼ ミシンポの説明ではプレゼ ンの練習を主にするとのこ とで、教授もプレゼンの練習

 本資料は、宮城県に所在する税関官署で輸出通関又は輸入通関された貨物を、品目別・地域(国)別に、数量・金額等を集計して作成したもので