順伝播の実行

PyTorchで学ぶIntroduction to Deep Learning

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

順伝播とは?

$$

  • 入力データが層を順に通過
  • 各層で計算を実行
  • 最終層が出力を生成

$$

  • 出力は重みバイアスに基づく
  • 学習予測に使用

順伝播の図解

PyTorchで学ぶIntroduction to Deep Learning

順伝播とは?

$$

可能な出力:

  • 二値分類
  • 多クラス分類
  • 回帰

最終出力を強調した順伝播の図

PyTorchで学ぶIntroduction to Deep Learning

二値分類:順伝播

コメント付きコードブロック

# 二値分類モデルの作成
model = nn.Sequential(
  nn.Linear(6, 4), # 第1線形層
  nn.Linear(4, 1), # 第2線形層
  nn.Sigmoid() # Sigmoid 活性化関数
)
PyTorchで学ぶIntroduction to Deep Learning

二値分類:順伝播

# 入力データをモデルに通す
output = model(input_data)
print(output)
tensor([[0.5188], [0.3761], [0.5015], [0.3718], [0.4663]], 
    grad_fn=<SigmoidBackward0>)
  • 出力:各動物に対する0〜1の確率が5つ

  • 分類(しきい値 0.5):

    • 値が0.5以上ならクラス=1(哺乳類)(0.51880.5015
    • 0.5未満ならクラス=0(非哺乳類)(0.37610.37180.4633
PyTorchで学ぶIntroduction to Deep Learning

多クラス分類:順伝播

  • クラス1 - 哺乳類、クラス2 - 鳥類、クラス3 - 爬虫類
n_classes = 3


# 多クラス分類モデルの作成 model = nn.Sequential( nn.Linear(6, 4), # 第1線形層 nn.Linear(4, n_classes), # 第2線形層
nn.Softmax(dim=-1) # Softmax 活性化 )
# 入力データをモデルに通す output = model(input_data) print(output.shape)
torch.Size([5, 3])
PyTorchで学ぶIntroduction to Deep Learning

多クラス分類:順伝播

多クラスの例

  • 各行の合計は1
  • 予測ラベル=最も高い確率のクラス
  • 行1=クラス1(哺乳類)、行2=クラス1(哺乳類)、行3=クラス3(爬虫類)
PyTorchで学ぶIntroduction to Deep Learning

回帰:順伝播

# 回帰モデルの作成
model = nn.Sequential(
  nn.Linear(6, 4), # 第1線形層
  nn.Linear(4, 1) # 第2線形層
)

# 入力データをモデルに通す
output = model(input_data)

# 出力を表示
print(output)
tensor([[0.3818],
        [0.0712],
        [0.3376],
        [0.0231],
        [0.0757]], 
        grad_fn=<AddmmBackward0>)
PyTorchで学ぶIntroduction to Deep Learning

Ayo berlatih!

PyTorchで学ぶIntroduction to Deep Learning

Preparing Video For Download...