ハンズオン学習と深い学習-Softmax分類モデル_pytorch

ソフトマックスと分類モデル

コンテンツが含まれています:

  1. ソフトマックスのリターンの基本的な考え方
  2. ファッション・MNISTデータセットと読み出したデータを入手する方法
  3. 回帰モデルを達成するために、ゼロからソフトマックス、実装モデル画像データ区分のファッションMNISTトレーニングセットの1対
  4. 使用pytorch再実装回帰モデルのソフトマックス

ソフトマックスの基本的な考え方

  • 分類
    単純な画像分類、及び高入力画像の幅が2つの画素、グレースケールに色です。
    画像内の4つの画素がX1、X2、X3、x4x1、として表され 、X2、X3、X4。
    犬、猫や鶏のためにその本当のタグを仮定すると、これらのラベルは、離散的な値Y1、Y2、y3y1、Y2に対応 Y3。
    我々は、典型的には、Y1 = 1、Y2 = 2、などのカテゴリ表すために離散値を使用 Y3 = 3Y1 = 1、Y2 = 2、Y3 = 3。

  • ウェイトベクトル

     

    O1 = x1w11 + x2w21 + x3w31 + x4w41 + b1o1 = x1w11 + x2w21 + x3w31 + x4w41 + B1

       O2 = x1w12 + x2w22 + x3w32 + x4w42 + b2o2 = x1w12 + x2w22 + x3w32 + x4w42 + B2

       O3 = x1w13 + x2w23 + x3w33 + x4w43 + b3o3 = x1w13 + x2w23 + x3w33 + x4w43 + B3

  • ニューラルネットワーク図
    ニューラルネットワーク計算の下側図は、上記図1に示されています。ソフトマックスリターンは、線形回帰のように、単層のニューラルネットワークです。各出力O1ので、O2、o3o1、O2、 O3が入力X1、X2、X3、x4x1、の全てに依存するように計算され 、X2、X3、X4、 ソフトマックス回帰出力層が完全に接続層です。

画像名

ソフトマックスリターンは、単層ニューラルネットワークソフトマックス・リターンである単層のニューラルネットワークであります

分類は、離散出力を予測する必要があるため、単純なアプローチは、出力である予測クラスとして値がoioi II自信であり、最大値は、出力に対応する予測タイプ、すなわち出力argmaxioiarg⁡maxioiとして出力されます。猫を表し例えば、O1、O2、o3o1、O2、O3それぞれ0.1,10,0.10.1,10,0.1起因o2o2最大、次いで、予測カテゴリ2、。

  • 問題の出力
    を直接出力出力層には2つの問題があります。
    1. 一方で、起因する不確実性の出力層の出力値の範囲に、我々は直感的に難しく、これらの値の重要性を判断します。出力値は、他の2つの100倍の出力値があるので、たとえば、10を引用したばかりの例の出力値は、「非常に自信」カテゴリの猫の画像を示しています。しかし、O1 = 03 = 103o1 = 03 = 103が、10の出力値は確率が非常に低い猫の画像カテゴリで表している場合。
    2. 一方、タグが離散的な値と測定が困難不確かさの範囲の出力値との誤差、離散的な実数値であるからです。

ソフトマックス演算子(演算子ソフトマックス)は、上記二つの問題を解決します。これは、出力値と正の値と確率分布に以下の式によって変換されます。

そして^ 1、^ 2 ^ 3 =ソフトマックス及び(O1、O2、O3)及び^ 1、y ^ 2 y ^ 3 =ソフトマックス(O1、O2、O3)

間で

Y ^ 1 = EXP(O1)S3I = 1exp(OI)、Y ^ 2 = EXP(O2)S3I = 1exp(OI)、Y ^ 3 = EXP(O3)S3I = 1exp(OI)・Y ^ 1 =exp⁡(O1)OI =13exp⁡(OI)、Y ^ 2 =exp⁡(O2)OI =13exp⁡(OI)、Y ^ 3 =exp⁡(O3)OI =13exp⁡(OI )。

容易に理解Y ^ 1 + y ^ 2 + y ^ 3 = 1Y ^ 1 + y ^ 2 + y ^ 3 = 1と0≤y^ 1、y ^ 2、y ^3≤10≤y^ 1、Y ^ 2、y ^3≤1ので、Y ^ 1、y ^ 2、y ^ 3Y ^ 1、y ^ 2、y ^ 3が有効な確率分布です。このとき、yは^ 2 = 0.8y ^ 2 = 0.8場合は、かかわらず、Y ^ 1Y ^ 1の値とy ^ 3Y ^ 3の猫の画像カテゴリの確率が80%であることをどのくらい、私たちは皆知っています。加えて、我々は注意してください

argmaxioi = argmaxiyiarg⁡maxioi^ = ^arg⁡maxiyで

したがって、ソフトマックスの動作は予測出力クラスは変更されません。

  • 計算効率
    • 単一サンプルベクトル計算式
      計算効率を向上させるために、我々は、サンプルは、単一のベクトル演算によって表現される分類することができます。上記画像分類問題では、我々は、右の重量とバイアスソフトマックス回帰パラメータであったと仮定します

W =⎡⎣⎢⎢⎢w11w21w31w41w12w22w32w42w13w23w33w43⎤⎦⎥⎥⎥、B = [b1b2b3]、W = [w11w12w13w21w22w23w31w32w33w41w42w43]、B = [b1b2b3]

セット高いと画像サンプルIIに記載の2つの画素のそれぞれの幅

X(I)= [X(I)1X(I)2×(I)3X(I)4]、X(I)= X1(I)×2(I)X3(I)X4(I)]、

出力層

O(I)= O(I)1O(I)2 O(I)3]、O(I)= [O1(I)O 2(I)O 3(I)]、

犬、猫や鶏の分布の確率を予測します

Y ^(I)= [Y ^(I)1Y ^(I)2Y ^(I)3] .AND ^(I)= [Y ^ 1(I)Y ^ 2(I)及び^ 3(I) ]。

ソフトマックス回帰計算発現ベクターは、試料IIに分類されます

(I)Y ^(I)= X(I)W + B =ソフトマックス(O(I))。O(I)= X(I)W + B O、Y ^(I)=ソフトマックス((O私))。

  • ベクトル計算式の少量の
    更なる計算効率を向上させるためには、我々は通常、少量のデータのためのベクトル計算を行います。大まかに言えば、NNのバッチサイズは、入力数(特徴の数)は、DD、出力数(カテゴリ数)QQある所与の試料の少量。ここで設定したバッチX∈Rn×dX∈Rn×D。右の重量とバイアスソフトマックス回帰パラメータがW∈Rd×qW∈Rd×qおよびb∈R1×qb∈R1×Qであったと仮定する。復帰のためのソフトマックス発現ベクター計算

OY ^ = XW + B =ソフトマックス(O)、O = XW + B、Y ^ =ソフトマックス(O)

前記ブロードキャスト・メカニズムを使用して加算演算、O、Yは^∈Rn×QO、Y ^∈Rn×qはそれぞれ行列の最初の2行II II出力サンプルO(I)O(i)および確率分布y ^(I)のy ^(I)。

クロスエントロピー損失関数

IIのサンプルについて、我々はベクトルy(I)∈Rqy(I)∈Rqを構築し、第1のY要素1の(I)Y(I)(IIカテゴリサンプル離散値)が、残りは0です。だから、私たちのトレーニングの目標は、可能な配布Y(I)Y(I)の近くなど、予測の確率分布のy ^(I)のy ^(I)実際のラベル確率に設定することができます。

  • 二次損失の見積もり

損失= | y ^(I)-y(ⅰ)| 2 / 2Loss = | y ^(I)-y(ⅰ)| 2/2

しかし、我々は実際に正確にラベルの確率に等しいの確率を予測する必要はありません、正しい分類結果を予測します。画像分類の例では、Y IF(I)= 3Y(I)= 3、我々は^他の2つの予測値y ^(I)1Yより(I)3Y ^ 3(I)^ Yのみを必要とします1(I)とy ^(I)2Y ^ 2(I)ラインビッグに。偶数Y ^(I)3Y ^ 3(I)0.6の場合、他の二つの予測値、クラス予測が正しかったどのくらいに関係なく。そして二乗損失^例えば、Y ^(i)は1 = Y ^(I)2 = 0.2y ^ 1(I)= y ^ 2(I)= 0.2比y ^(I)1 = 0、yについて、あまりにも厳しいです両方が同じ予測正しい分類結果を有するが(I)2 = 0.4y ^ 1(I)= 0、Y ^ 2(I)= 0.4は、はるかに小さい損失です。

上記の問題を改善する方法は、測定機能のより適切な差指標2つの確率分布を使用することです。前記クロスエントロピー(クロスエントロピー)は、一般的に使用される尺度です。

H(Y(I)、Y ^(I))= - ΣJ= 1qy(I)jlogy ^(I)J、H(Y(I)、Y ^(I))= - ΣJ= 1qyj(I )log⁡y^ J(I)、

添字Y(I)JYJ(i)が非ゼロのベクトルyの要素(I)Y(I)即ち1であり、それは添え字なしで、サンプルカテゴリーII離散値、すなわちことに留意すべきであるY(I )Y(I)の区別。上記式において、我々は、ベクトルy(I)Y(I)は第1のY(I)Y(I)の要素をy(I)Y(I)Y(I)Y(I)1、休止であることを知っています0であり、次いで、H(Y(I)、Y ^(I))= - でれっと^ Y(I)(I)H(Y(I)、Y ^(I))= - log⁡y^ Y(I )(I)。言い換えれば、関係するクロスエントロピーはのみ限り、その値が十分な大きさであるとして、あなたは適切な分類結果を確保することができ、正確なカテゴリの確率を予測します。もちろん、サンプルの顔は、いくつかのラベルを持って、例えば、画像が複数のオブジェクトが含まれているとき、私たちは、このステップが簡略化される致しません。しかし、この場合であっても、等しく当該クロスエントロピーは、画像カテゴリに現れるオブジェクトの確率を予測します。

サンプル数は、トレーニングデータセットNNとして定義交差エントロピー損失関数とします

ℓ(Θ)=1nΣi= 1nH(Y(I)、Y ^(i))を、ℓ(Θ)=1nΣi= 1nH(Y(I)、Y ^(i))を、

モデルパラメータを表すΘΘ。同様に、各サンプルつのみラベル場合、交差エントロピー損失を省略することができるℓ(Θ)= - (1 / N)Σni= 1logy ^(I)Y(I)ℓ(Θ)= - (1 / N)=Σiは1nlog⁡y^ Y(I)(I)。別の観点から、我々はℓを最小限に抑えることを知っている(Θ)ℓ(Θ)は、Y(I)exp⁡(-nℓEXPを(-nℓ(Θ))=Πni= 1Y ^(I)の最大化と等価です(Θ))=πI= 1ny ^ Y(I)(I)、即ち、クロスエントロピー機能の損失を最小化すること、ラベルのすべてのカテゴリの予測セットにおけるトレーニングデータの確率を最大化することと等価です。

トレーニングと予測モデル

この機能のいずれかとして与えられた良いトレーニングソフトマックス回帰モデル、後は、各出力カテゴリの確率を予測することができます。通常、我々は、出力カテゴリとして最も可能性の高いカテゴリを予測します。それは本当のカテゴリ(タグ)と一致している場合は、この予測が正しいことを示しています。実験セクション3.6で、我々は、モデルの精度(精度)の性能を評価するために使用されます。それは、全予測の数より正確な予測の数に等しいです。

ファッション・MNISTのトレーニングセットを取得し、データを読み取ります

私たちは、マルチクラスの画像分類データセットを導入するソフトマックスリターンをご紹介し実装する前に。我々がモデルの精度と計算効率の違いで観察され、比較アルゴリズムを容易にするため、後のセクションで複数回使用されます。画像分類データセットは、最も一般的MNIST [1]を設定し、手書きのデジタルデータを識別するために使用されます。しかし、95%以上のMNIST分類精度にほとんどのモデル。より視覚的に観察されたアルゴリズムの違いを調べるために、我々はファッション-MNIST [2]を設定し、より複雑な画像コンテンツデータを使用します。

私たちは主に、ビルドコンピュータビジョンのモデルに使用PyTorch深い学習フレームワークを、提供することですtorchvisionパッケージを、使用しますここにあります。torchvisionは、主に以下の部分から構成されます。

  1. torchvision.datasets:一部のデータロード機能と共通データインターフェースのセット。
  2. torchvision.models:(事前訓練モデルを含む)は、従来のモデル構造を含む、例えばAlexNet、VGG、ResNet等。
  3. torchvision.transforms:例えば、トリミング、回転、およびなどの一般的なグラフィックの変換など;
  4. torchvision.utils:他のいくつかの便利な方法。
リリース8元の記事 ウォンの賞賛0 ビュー4787

おすすめ

転載: blog.csdn.net/yhj20041128001/article/details/104283458