線形回帰
線形回帰の例 - 住宅価格の予測
- 3 つの特徴があるとします。x 1 = x_1 =バツ1= #ベッド、x 2 = x_2 =バツ2= #お風呂、x 3 = x_3 =バツ3= #リビング平方フィート、
- 予測値がすべての入力特徴の重み付き合計であるとします。y = w 1 x 1 + w 2 x 2 + w 3 x 3 + by=w_1 x_1+w_2 x_2+w_3 x_3+by=w1バツ1+w2バツ2+w3バツ3+b
- 权重 w 1 , w 2 , w 3 w_1,w_2,w_3 w1、w2、w3そしてオフセットBBbはトレーニングデータから学習されます
線形回帰の一般形式
一般に、与えられたデータx = [ x 1 , x 2 , … , xp ] \mathbf{x}=\left[x_1, x_2, \ldots, x_p\right]バツ=[ ×1、バツ2、…、バツp]、つまり、各サンプルはppp次元の特徴の場合、線形モデルは次のように予測します。
y ^ = w 1 x 1 + w 2 x 2 + … + wpxp + b = ⟨ w , x ⟩ + b \hat{y}=w_1 x_1+w_2 x_2+\ldots+w_p x_p+b=\langle\mathbf{ w}、\mathbf{x}\rangle+by^=w1バツ1+w2バツ2+…+wpバツp+b=⟨w 、_× ⟩+b
其实w , x \mathbf{w}, \mathbf{x}w、x はすべてppの長さですp、w \mathbf{w}wとbbbは学習可能なパラメータです。
上記の式をコードで実装する場合は、次のように記述できます。
# weight w has shape (p,1)
# bias b is a scalar
# data x has shape (p,1)
y_hat = (x*w).sum + b
目的関数
nnのコレクションがあるとします。n独立グラフX = [ x 1 , x 2 , ... , xn ] T ∈ R n × p \mathbf{X}=\left[\mathbf{x}_1, \mathbf{x}_2, \ldots, \ mathbf{x}_n\right]^T\n\mathbb{R}^{n\times p}バツ=[ ×1、バツ2、…、バツん】T∈Rn × p,X \mathbf{X}Xはnnですn行ppp列の行列、X \mathbf{X}X入力関数y = [ y 1 , ... , yn ] T ∈ R n \mathbf{y}=\left[y_1, \ldots, y_n\right]^T \in \mathbb{R}^ny=[ y1、…、yん】T∈Rん。
目標: 平均二乗誤差 (MSE) を最小限に抑える
w ∗ , b ∗ = argmin w , b l ( X , y , w , b ) = argmin w , b 1 n ∑ i = 1 n ( yi − ⟨ xi , w ⟩ − b ) 2 \begin{aligned } \mathbf{w}^*, \mathbf{b}^* & =\subset{\mathbf{w}, b}{\operatorname{argmin}} \ell(\mathbf{X}, \mathbf{y} , \mathbf{w}, b) \\& =\underset{\mathbf{w}, b}{\operatorname{argmin}} \frac{1}{n}\sum_{i=1}^n\left ( y_i-\left\angle\mathbf{x}_i, \mathbf{w}\right\angle-b\right)^2\end{aligned}w∗、b∗=w 、bアルグミンℓ ( X ,よ、w、b )=w 、bアルグミンn1i = 1∑ん( y私は−⟨ ×私は、w⟩ _−b )2
線形分類
回帰の出力は連続実数ですが、分類の場合、出力はクラスの予測になります。
複数カテゴリの分類:
- 複数のタイプのオブジェクトを出力したい場合は、ベクトルを出力できます。具体的には、出力の長さをmmにすることができます。mのベクトル、ベクトル内のiii要素はiiとしての分類を反映します。iの信頼度 (確率) は
- 線形モデル oi = ⟨ x , wi ⟩ + bi o_i=\left\langle\mathbf{x}, \mathbf{w}_i\right\rangle+b_i を使用できます。ああ私は=⟨ × 、w私は⟩+b私は, ここで、x \mathbf{x}xはデータの特徴であり、\mathbf{w}_iw私は長いppです対応するクラスiiを表すpのベクトル学習できるパラメータ、bi b_ib私はこのタイプのオフセットを示します。続いてクラスⅡですi,其置信度就是 o i o_i ああ私は。だってmm各カテゴリはmなので、合計はmmm个 o i o_i ああ私は。
- 标签y = [ y 1 , y 2 , … , ym ] \mathbf{y}=\left[y_1, y_2, \ldots, y_m\right]y=[ y1、y2、…、yメートル] 、ここでyi = 1 y_i=1 は1 つだけですy私は=1、その他はすべて0 00は、ワンホット エンコーディング (ワンホット エンコーディング) であり、ii に属することを示します。クラスi。
- 平均二乗誤差 (MSE) 1 m ∥ o − y ∥ 2 2 \frac{1}{m}\|\mathbf{o}-\mathbf{y}\|_2^2 を最小化したいと考えています。メートル1∥お−y ∥22
- 予測されるカテゴリはargmax i { oi } i = 1 m \operatorname{argmax}_i\left\{o_i\right\}_{i=1}^m です。引数最大私は{ を私は}i = 1メートル、予測結果がiiであることを示します。クラスi、このiii要使得 o i o_i ああ私は最大。
ソフトマックス回帰 (ソフトマックス回帰)
なぜなら私たちの目標はすべてを実現することだからですo和 y y yは同じですが、実際に分類するときは、このカテゴリに分類されないoo は気にしません。o、私たちは、真のカテゴリの信頼が十分に大きくて強いことを願うだけです。したがって、モデルを他のクラスを気にせずに正しいクラスに重点を置くために、ソフトマックスを使用することを提案します。
- まず、予測スコアを確率に変換する必要があります。おいおいああ私は出力は、負の無限大と正の無限大の間の実数です。これを確率に変換する場合は、0 以上にする必要があり、すべての確率を合計すると 1 になります。
y ^ = ソフトマックス ( o ) ここで、 y ^ i = exp ( oi ) ∑ k = 1 m exp ( ok ) \hat{\mathbf{y}}=\operatorname{softmax}(\mathbf{o}) \text { ここで } \hat{y}_i=\frac{\exp \left(o_i\right)}{\sum_{k=1}^m \exp \left(o_k\right)}y^=ソフトマックス( o ) ここで y^私は=∑k = 1メートル経験値( ok)経験値( o私は)
O_exp = torch.exp(O)
partition = O_exp.sum(1, keepdim=True)
Y = O_exp / partition
ここでは非線形変化が使用されていますが、それでも線形モデルです。モデルは決定を下すときに最大のy ^ i \hat y_iを探しているためです。y^私は最大のoi o_iに相当ああ私は,つまりargmax iy ^ i = argmax ioi \operatorname{argmax}_i \hat{y}_i=\operatorname{argmax}_i o_i引数最大私はy^私は=引数最大私はああ私は
- 確率を比較したい場合y ^ \hat yy^和yyyとの違いは
H ( y , y ^ ) = ∑ i − yi log ( y ^ i ) = − log y ^ y H(\mathbf{y}, \hat{\mathbf{y}})=\sum_i-y_i \ log \left(\hat{y}_i\right)=-\log \hat{y}_yH ( y ,y^)=私∑− y私はログ_(y^私は)=−ログ_y^はい
だって実際はyi y_iy私はそのうち 1 つだけが 1 で、残りはすべて 0 であるため、クロス エントロピーは次のように簡略化できます。- log y ^ y -\log \hat{y}_y−ログ_y^はい−ログ -\log−logは減少関数なので、クロスエントロピーを最小化するには、y ^ y \hat{y} _yとします。y^はい最大。したがって、このモデルは最終的には正しいカテゴリの予測確率のみを考慮し、他の値はあまり考慮しません。
参考文献
3.1. 線形回帰 — ディープラーニング 1.0.0-beta0 ドキュメントの詳細
https://c.d2l.ai/stanford-cs329p/_static/pdfs/cs329p_slides_4_3.pdf