この章では機械学習における分類問題から始めますが、名前は回帰ですが分類のためのものです。分類問題に関する最も基本的な考え方: たとえば、手書きの数字を認識する場合、モデルは入力画像の 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] にマッピングする必要があります。ここではロジスティクス関数を使用します。関数イメージは図 1 に示されており、[0, 1] にあります。
この関数を使用して、y_hat を必要な間隔にマップします。ロジスティックスはシグモイドとも呼ばれ、pytorch ライブラリではロジスティックスはシグモイドと呼ばれます。深層学習の論文で σ() が表示されている場合は、シグモイド関数で活性化しています。線形回帰との唯一の違いは、σ バイアス が追加されていることです。コードの違いを図 2 に示します。
二値分類問題の損失関数に必要な式は次のとおりです。
この関数は BCE Loss と呼ばれ、コード内では次のように使用されます。
criterion = torch.nn.BCELoss(size_average = False)
コード全体には 2 つの変更しかなく、このようなフレームワーク構造では多数のモデルを作成できます。
次のセクションでは、多次元特徴入力について説明します。