ロジスティック回帰アルゴリズムを達成するために、そしてMNISTデータにおける学習者の影響を一元ビュー:目的。
Ministデータセット
データタイプ:手書きのデジタルデータセット、0 10〜9カテゴリ。各画像は$ 28times28times1 $グレースケール画像です。
規模データセット: 60,000サンプルのトレーニングセット10,000サンプルのテストセット。
10個のクラスがあるので、マルチソート処理OVR使用することができる、符号化EOCO MVMを行うために使用することができます。
ロジスティック回帰は達成します
ロジスティック回帰モデル
ニューラルネットワーク要素のシグモイド活性化関数とみなすロジスティック回帰を使用して。
サンプルの$ boldsymbol {X} _iの$のための:
直線部分と活性化関数:私たちのモデルは、2つの部分から構成されます。
肯定の場合に比べ$帽子なら{Y} _i> 0.5 $、;もし$帽子{Y} _ileq0.5の$、比較反例。
$ハットサンプルがクラスに属する{Y} $可視化陽性確率。
損失関数
単一変数$ boldsymbol {X} _iの$損失関数(対数尤度)。
$ Y_I = 0 $、$ LNのような対数損失に属する即ち$のboldsymbol {X} _iの$(1ハット{Y } _i)$、
$ Y_I = 1 $、すなわち$のboldsymbol {X }クラスに属する_iする$ N、{Y} _iの$ lnhat $の損失の数。
すべての学習サンプルに対する損失関数の場合
今、私たちは満足して$(boldsymbol {W} ^ {*}、B ^ {*})$をパラメータ欲しいです
勾配降下
オブジェクト:我々は目的関数の$ J $を最小化する最適なパラメータの$ boldsymbol {W} ^ {*} $ aとb ^ {*} $ $を、見つけるために。
- 初期化の$ boldsymbol {W} $ゼロB、
対数関数が凸関数であり、任意の値は、勾配降下によって最適解を見つけるために初期化することができます。
1 |
w = np.zeros((X_train.shape[0], 1)) |
进行num_iterations次梯度下降:
- 用当前的$boldsymbol{w}$和$b$计算$hat{boldsymbol{y}}$
1 |
|
- 计算损失函数:
1 |
# 计算损失函数 |
- 计算损失函数对w和b的偏导数
1 |
# 求梯度 |
- 梯度下降获得新的w,b
1 |
# 梯度下降 |
经过num_iterations次梯度下降就得到我们最后的$boldsymbol{w}^{*}$和$b^{*}$了。
(当然不一定是完全收敛好的解,这些还需要我们去挑一些参数。)
将$boldsymbol{w}^{*}$和$b^{*}$带入,就得到我们模型的最终的$hat{boldsymbol{y}}$
1 |
# 训练集上的predict y_hat |
$hat{boldsymbol{y}}$算是属于正类的概率。
根据我们的阈值0.5,可以进一步的到最终的预测值(1表示正类,0表示反类)
1 |
y_prediction_train = np.zeros((1, m_train)) |
总的模型函数如下
1 |
def (X_train, Y_train, X_test, Y_test, num_iterations=2000, learning_rate=0.5, print_cost=False): |
MNISTデータセットをインポートした後、トレーニングOVM 10分類のアイデアを使用して。それを分類します。
各分類器は、負正の場合、追加の9つのカテゴリのカテゴリです。
従って$ N実施例:実施例トランス= 1:9 $、正例の数は反例の数よりもはるかに小さく、この比が実質的に生成された実際の配信データの比率であるように、不平衡カテゴリの問題を生じないが。
完全なコードを参照してくださいここに
オリジナル:ビッグボックス MNISTデータセットのロジスティック回帰