【Pytorch】学習記録(5) ロジスティック(シグモイド)回帰

この章では機械学習における分類問題から始めますが、名前は回帰ですが分類のためのものです。分類問題に関する最も基本的な考え方: たとえば、手書きの数字を認識する場合、モデルは入力画像の 10 個のカテゴリを予測し、10 個の確率を与えます。予測結果として最も確率が高いものを選択します。これが多分類です。

ここでは、pytorch からダウンロードできる古典的なデータセット minist を使用します。コードは次のとおりです。

import torchvision
train_set = torchvision.datasets.MNIST(root=’../dataset/mnist',train=FTrue,download=True)
test_set  = torchvision.datasets.MNIST(root='../dataset/mnist',train=False,download=True)

CIFAR-10 データセットは pytorch でも提供されます。これは、10 のカテゴリを持つ 50,000 のトレーニング セットと 10,000 のテスト セットを含む、32×32 の小さな画像の束です。

 y∈R は y=wx+b で予測されますが、出力確率は [0, 1] である必要があるため、予測結果を[0, 1] にマッピングする必要があります。ここではロジスティクス関数を使用します\frac{1}{1+e^{-x}}。関数イメージは図 1 に示されており、[0, 1] にあります。

図1 物流機能

 この関数を使用して、y_hat を必要な間隔にマップします。ロジスティックスはシグモイドとも呼ばれ、pytorch ライブラリではロジスティックスはシグモイドと呼ばれます。深層学習の論文で σ() が表示されている場合は、シグモイド関数で活性化しています。線形回帰との唯一の違いは、σ バイアス が追加されていることですコードの違いを図 2 に示します。

図 2 コードの違い

二値分類問題の損失関数に必要な式は次のとおりです。

loss=-(ylog\hat{y}+(1-y)log(1-\hat{y}))

この関数は BCE Loss と呼ばれ、コード内では次のように使用されます。

criterion = torch.nn.BCELoss(size_average = False)

コード全体には 2 つの変更しかなく、このようなフレームワーク構造では多数のモデルを作成できます。

次のセクションでは、多次元特徴入力について説明します。

おすすめ

転載: blog.csdn.net/m0_55080712/article/details/122893586