ロジスティック回帰研究ノート

ロジスティック回帰研究ノート

この記事は、個人的な研究と理解のためだけのものです

ロジスティック回帰

ロジスティック回帰は、バイナリ分類の問題を解決するために使用されます
. 回帰モデルの出力は連続的です.分類モデルの出力は離散的です.
シグモイド関数

  • ロジスティック回帰 = 線形回帰 +シグモイド関数
  • 線形回帰: z = w ∗ x + bz=w*x+b=wバツ+b
  • シグモイド関数: y = 1 1 + e − z = 1 1 + e − ( w ∗ x + b ) y=\frac{1}{1+e^{-z} } =\frac{1}{1+ e^{-(w*x+b)} }y=1+e−z _1=1+e( w x + b )1
  • ロジスティック回帰損失関数 (損失関数が小さいほど優れたモデルであり、トレーニング プロセスは損失関数を最小化する最適化プロセスです):
    C = − [ y ln ⁡ a + ( 1 − y ) ln ⁡ ( 1 − a ) ] C=- [y \ln a+(1-y) \ln (1-a)]=[ ya+( 1ln ( 1a )]

損失関数

 cost = { − log ⁡ ( p ^ ) if y = 1 − log ⁡ ( 1 − p ^ ) if y = 0 \text { cost }=\left\{\begin{array}{ccc} -\log (\ hat{p}) & \text { if } & y=1 \\ -\log (1-\hat{p}) & \text { if } & y=0 \end{array}\right. 料金 ={ ログ( _p^)ログ( 1 _p^) もしも もし y=1y=0料金
 単一のサンプル損失関数は次のように表されます
- (1-y) \log (1-\hat{p}) 料金 =−y _ログ( _p^)( 1ログ( 1 _p^)
全样本损失関数(求和):
J ( θ ) = − 1 m ∑ i = 1 my ( i ) log ⁡ ( p ^ ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − p ^ ( i ) ) J(\theta)=-\frac{1}{m} \sum_{i=1}^{m} y^{(i)} \log \left(\hat{p}^{ (i)}\right)+\left(1-y^{(i)}\right) \log \left(1-\hat{p}^{(i)}\right)J ( θ )=メートル1私は= 1メートルy( i )ログ_(p^( i ) )+( 1y( i ) )ログ_( 1p^( i ) )
J ( θ ) = − 1 m ∑ i = 1 my ( i ) log ⁡ ( σ ( X b ( i ) θ ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − σ ( X b ( i ) θ ) ) J(\theta)=-\frac{1}{m} \sum_{i=1}^{m} y^{(i)} \log \left(\sigma\left( X_{b}^{(i)} \theta\right)\right)+\left(1-y^{(i)}\right) \log \left(1-\sigma\left(X_{b}) ^{(i)} \theta\right)\right)J ( θ )=メートル1私は= 1メートルy( i )ログ_( p( Xb( i )) )+( 1y( i ) )ログ_( 1p( Xb( i )θ ) )
上式は数学的に解くことはできませんが、解析関数は凸関数(大域最適解はなく、局所最適解のみ)であり、勾配降下法で解くことができます。

勾配降下法

J ( θ ) = − 1 m ∑ i = 1 my ( i ) log ⁡ ( σ ( X b ( i ) θ ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − σ ( X b ( i ) θ ) ) J(\theta)=-\frac{1}{m} \sum_{i=1}^{m} y^{(i)} \log \left(\sigma\left(X_{b} ^{(i)} \theta\right)\right)+\left(1-y^{(i)}\right) \log \left(1-\sigma\left(X_{b}^{(i) )} \シータ\右)\右)J ( θ )=メートル1私は= 1メートルy( i )ログ_( p( Xb( i )) )+( 1y( i ) )ログ_( 1p( Xb( i )θ ) )
∇ J ( θ ) = ( ∂ J ( θ ) ∂ θ ∂ ∂ J ( θ ) ∂ θ 1 ⋯ ∂ J ( θ ) ∂ θ n ) \nabla J(\theta)=\left(\begin{配列}{c} \frac{\partial J(\theta)}{\partial \theta_{\partial}} \\ \frac{\partial J(\theta)}{\partial \theta_{1}} \\ \cdots \\ \frac{\partial J(\theta)}{\partial \theta_{n}} \end{array}\right)J ( θ )= ∂θ _J ( θ )∂θ _1J ( θ )∂θ _nJ ( θ )
最初にシグモイド関数の導出を見てください
σ ( t ) = 1 1 + e − t = ( 1 + e − t ) − 1 \sigma(t)=\frac{1}{1+e^{-t}}= \左(1+e^{-t}\右)^{-1}s ( t )=1+e−t _1=( 1+et )1
σ ( t ) = − ( 1 + e − t ) − 2 ⋅ e − t ⋅ ( − 1 ) = ( 1 + e − t ) − 2 ⋅ e − t ⋅ \sigma(t)^{\素数}=-\left(1+e^{-t}\right)^{-2} \cdot e^{-t} \cdot(-1)=\left(1+e^{-t}\右)^{-2} \cdot e^{-t} \cdots ( t )=( 1+et )2e−t _( 1 )=( 1+et )2et
再扩一層
( log ⁡ σ ( t ) ) ‘ = 1 σ ( t ) ⋅ σ ( t ) ‘ = 1 σ ( t ) ⋅ ( 1 + e − t ) − 2 ⋅ e − t = 1 ( 1 + e − t ) − 1 ⋅ ( 1 + e − t ) − 2 ⋅ e − t = ( 1 + e − t ) − 1 ⋅ e − t \begin{aligned} (\log \sigma(t) )^{\prime}&=\frac{1}{\sigma(t)} \cdot \sigma(t)^{\prime}=\frac{1}{\sigma(t)} \cdot\left( 1+e^{-t}\right)^{-2} \cdot e^{-t} \\ &=\frac{1}{\left(1+e^{-t}\right)^{ -1}} \cdot\left(1+e^{-t}\right)^{-2} \cdot e^{-t}=\left(1+e^{-t}\right)^{ -1} \cdot e^{-t} \end{aligned}(s ( t ) )=s ( t )1s ( t )=s ( t )1( 1+et )2e−t _=( 1+et )11( 1+et )2e−t _=( 1+et )1e−t _
( log ⁡ σ ( t ) ) ‘ = ( 1 + e − t ) − 1 ⋅ e − t = e − t 1 + e − t = 1 + e − t − 1 1 + e − t = 1 − 1 1 + e − t = 1 − σ ( t ) \begin{aligned} (\log \sigma(t))^{\prime} &=\left(1+e^{-t}\right)^{-1 } \cdot e^{-t} \\ &=\frac{e^{-t}}{1+e^{-t}}=\frac{1+e^{-t}-1}{1 +e^{-t}}=1-\frac{1}{1+e^{-t}} \\ &=1-\sigma(t) \end{aligned}(s ( t ) )=( 1+et )1e−t _=1+e−t _e−t _=1+e−t _1+e−t _1=11+e−t _1=1σ ( t )
d ( y ( i ) log ⁡ σ ( X b ( i ) θ ) ) d θ j = y ( i ) ( 1 − σ ( X b ( i ) θ ) ) ⋅ X j ( i ) \frac{d\ left(y^{(i)} \log \sigma\left(X_{b}^{(i)} \theta\right)\right)}{d \theta_{j}}=y^{(i) }\left(1-\sigma\left(X_{b}^{(i)} \theta\right)\right) \cdot X_{j}^{(i)}d( _( i )ログ_p( Xb( i )) )=y( i )( 1p( Xb( i )) )バツj( i )
( log ⁡ ( 1 − σ ( t ) ) ) ‘ = 1 1 − , σ ( t ) ⋅ ( − 1 ) ⋅ σ ( t ) ‘ = − 1 1 − σ ( t ) ⋅ ( 1 + e − t ) − 2 ⋅ e − t = − 1 + e − te − t ⋅ ( 1 + e − t ) − 2 ⋅ e − t = − ( 1 + e − t ) − 1 = − σ ( t ) \begin{整列} (\log (1-\sigma(t)))^{\prime}=&\frac{1}{1-, \sigma(t)} \cdot(-1) \cdot \sigma(t)^ {\prime}=-\frac{1}{1-\sigma(t)} \cdot\left(1+e^{-t}\right)^{-2} \cdot e^{-t} \ \ &=-\frac{1+e^{-t}}{e^{-t}} \cdot\left(1+e^{-t}\right)^{-2} \cdot e^{ -t} \\ &=-\left(1+e^{-t}\right)^{-1}=-\sigma(t) \end{aligned}(( 1σ ( t )) )=1 ,s ( t )1( 1 )s ( t )=1s ( t )1( 1+et )2e−t _=e−t _1+e−t _( 1+et )2e−t _=( 1+et )1=σ ( t )
d ( ( 1 − y ( i ) ) log ⁡ ( 1 − σ ( X b ( i ) θ ) ) d θ j = ( 1 − y ( i ) ) ⋅ ( − σ ( X b ( i ) θ ) ) ⋅ X j ( i ) \frac{d\left(\left(1-y^{(i)}\right) \log \left(1-\sigma\left(X_{b}^{(i) } \theta\right)\right)\right)}{d \theta_{j}}=\left(1-y^{(i)}\right) \cdot\left(-\sigma\left(X_{ b}^{(i)} \theta\right)\right) \cdot X_{j}^{(i)}d( ( 1y( i ) )ログ_( 1p( Xb( i )i ) ) )=( 1y( i ) )(p( Xb( i )) )バツj( i )
J ( θ ) θ j = 1 m ∑ i = 1 m ( σ ( X b ( i ) θ ) − y ( i ) ) X j ( i ) = 1 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) X j ( i ) \begin{aligned} \frac{J(\theta)}{\theta_{j}}= &\frac{1}{m} \sum_{i=1}^{ m}\left(\sigma\left(X_{b}^{(i)} \theta\right)-y^{(i)}\right) X_{j}^{(i)}\\ &= \frac{1}{m} \sum_{i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right) X_{j}^{ (i)} \end{aligned}J ( θ )=メートル1私は= 1メートル( p( Xb( i )y( i ) )バツj( i )=メートル1私は= 1メートル(y^( i )y( i ) )バツj( i )
其中 y ^ ( i ) \hat{y}^{(i)} y^( i )は予測値です
∇ J ( θ ) = ( ∂ J / ∂ θ 0 ∂ J / ∂ θ 1 ∂ J / ∂ θ 2 … ∂ J / ∂ θ n ) = 1 m ⋅ ( ∑ i = 1 m ( σ ( X b ( i ) θ ) − y ( i ) ) ∑ i = 1 m ( σ ( X b ( i ) θ ) − y ( i ) ) ⋅ X 1 ( i ) ∑ i = 1 m ( σ ( X b ( i ) θ ) − y ( i ) ⋅ X 2 ( i ) … ∑ i = 1 m ( σ ( X b ( i ) θ ) − y ( i ) ) ⋅ X n ( i ) ) = 1 m ⋅ ( ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) ⋅ X 1 ( i ) ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) ⋅ X 2 ( i ) … ∑ i = 1 m ( y ^ ( i ) − y ( i ) ⋅ X n ( i ) ) \nabla J(\theta)=\left(\begin{array }{c} \partial J / \partial \theta_{0} \\ \partial J / \partial \theta_{1} \\ \partial J / \partial \theta_{2} \\ \ldots \\ \partial J / \partial \theta_{n} \end{array}\right)=\frac{1}{m} \cdot\left( \begin{gathered} \sum_{i=1}^{m}\left(\ sigma\left(X_{b}^{(i)} \theta\right)-y^{(i)}\right) \\ \sum_{i=1}^{m}\left(\sigma\left (X_{b}^{(i)}\theta\right)-y^{(i)}\right) \cdot X_{1}^{(i)}\\ \sum_{i=1}^{m}\left(\sigma\left(X_ {b}^{(i)} \theta\right)-y^{(i)}\right) \cdot X_{2}^{(i)}\\ \ldots \\ \sum_{i=1} ^{m}\left(\sigma\left(X_{b}^{(i)} \theta\right)-y^{(i)}\right) \cdot X_{n}^{(i)} \end{gathered}\right) =\frac{1}{m} \cdot\left( \begin{gathered} \sum_{i=1}^{m}\left(\hat{y}^{(i )}-y^{(i)}\right) \\ \sum_{i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right ) \cdot X_{1}^{(i)}\\ \sum_{i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right ) \cdot X_{2}^{(i)}\\ \ldots \\ \sum_{i=1}^{m}\left(\hat{y}^{(i)} -y^{(i )}\right) \cdot X_{n}^{(i)} \end{収集}\right)\cdot\left( \begin{gathered} \sum_{i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right) \\ \sum_ {i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right) \cdot X_{1}^{(i)}\\ \sum_ {i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right) \cdot X_{2}^{(i)}\\ \ldots \\ \sum_{i=1}^{m}\left(\hat{y}^{(i)} -y^{(i)}\right) \cdot X_{n}^{(i)} \end{収集}\right)\cdot\left( \begin{gathered} \sum_{i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right) \\ \sum_ {i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right) \cdot X_{1}^{(i)}\\ \sum_ {i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right) \cdot X_{2}^{(i)}\\ \ldots \\ \sum_{i=1}^{m}\left(\hat{y}^{(i)} -y^{(i)}\right) \cdot X_{n}^{(i)} \end{収集}\right)J ( θ )= J / θ0J / θ1J / θ2J / θn =メートル1 私は= 1メートル( p( Xb( i )y( i ) )私は= 1メートル( p( Xb( i )y( i ) )バツ1( i )私は= 1メートル( p( Xb( i )y( i ) )バツ2( i )私は= 1メートル( p( Xb( i )y( i ) )バツn( i ) =メートル1 私は= 1メートル(y^( i )y( i ) )私は= 1メートル(y^( i )y( i ) )バツ1( i )私は= 1メートル(y^( i )y( i ) )バツ2( i )私は= 1メートル(y^( i )y( i ) )バツn( i )
上の式をベクトル化(わからない、押し付けられない)
∇ J ( θ ) = 1 m ⋅ X b T ⋅ ( σ ( X b θ ) − y ) \nabla J(\theta)= \frac{1 }{m} \cdot X_{b}^{T} \cdot\left(\sigma\left(X_{b} \theta\right)-y\right)J ( θ )=メートル1バツbT( p( Xb

勾配降下法

固有の極値を持つ関数に適した最適化アルゴリズム。一意の極値を持たない関数の場合、複数回実行して初期点をランダム化できます。
学習率η \etaηの値は最適解の速度に影響し、値が適切でないと最適解が得られません。η\etaηは勾配降下法のハイパーパラメータ

Form:OperationJ ( θ ) = MSE ⁡ ( y , y ^ ) J(\theta)=\operatorname{MSE}(y, \hat{y});J ( θ )=MSE ( y ,y^)できるだけ小
1 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 = 1 m ∑ i = 1 m ( y ( i ) − θ 0 − θ 1 X 1 ( i ) − θ 2 X 2 k ( i ) − … − θ n X n ( i ) 2 \frac{1}{m} \sum_{i=1}^{m}\left(y^{(i)}-\ hat{y}^{(i)}\right)^{2}=\frac{1}{m} \sum_{i=1}^{m}\left(y^{(i)}-\theta_ {0}-\theta_{1} X_{1}^{(i)}-\theta_{2} X_{2 k}^{(i)}-\ldots-\theta_{n} X_{n}^ {(i)}\right)^{2}メートル1私は= 1メートル( _( i )y^( i ) )2=メートル1私は= 1メートル( _( i )01バツ1( i )2バツ2k _( i )nバツn( i ))2
∇ J ( θ ) = ( ∂ J / ∂ θ 0 ∂ J / ∂ θ 1 ∂ J / ∂ θ 2 … ∂ J / ∂ θ n ) = ( ∑ i = 1 m 2 ( y ( i ) − X b ( i ) θ ) ⋅ ( − 1 ) ∑ i = 1 m 2 ( y ( i ) − X b ( i ) θ ) ⋅ ( − X 1 ( i ) ) ∑ i = 1 m 2 ( y ( i ) − X b ( i ) θ ) ⋅ ( − X 2 ( i ) ) … ∑ i = 1 m 2 ( y ( i ) − X b ( i ) θ ) ⋅ ( − X n ( i ) ) ) = 2 m ⋅ ( ∑ i = 1 m ( X b ( i ) θ − y ( i ) ) ∑ i = 1 m ( X b ( i ) θ − y ( i ) ) ⋅ X 1 ( i ) ∑ i = 1 m ( X b ( i ) θ − y ( i ) ) ⋅ X 2 ( i ) … ∑ i = 1 m ( X b ( i ) θ − y ( i ) ) ⋅ X n ( i ) ) \nabla J(\theta)= \left(\begin{array}{c} \partial J / \partial \theta_{0} \\ \\partial J / \partial \theta_{1} \\ \partial J / \partial \theta_{2} \\ \ldots \\ \partial J / \partial \theta_{n} \end{array}\right)=\left(\begin{array}{c} \sum_{i=1}^{m} 2\left( y^{(i)}-X_{b}^{(i)} \theta\right) \cdot(-1) \\ \sum_{i=1}^{m} 2\left(y^{( i)}-X_{b}^{(i)} \theta\right)\cdot\left(-X_{1}^{(i)}\right) \\ \sum_{i=1}^{m} 2\left(y^{(i)}-X_{b}^{ (i)} \theta\right) \cdot\left(-X_{2}^{(i)}\right) \\ \ldots \\ \sum_{i=1}^{m} 2\left(y ^{(i)}-X_{b}^{(i)} \theta\right) \cdot\left(-X_{n}^{(i)}\right) \end{配列}\right)= \frac{2 }{m}\cdot\left(\begin{array}{c} \sum_{i=1}^{m}\left(X_{b}^{(i)} \theta-y^ {(i)}\right) \\ \sum_{i=1}^{m}\left(X_{b}^{(i)} \theta-y^{(i)}\right) \cdot X_ {1}^{(i)} \\ \sum_{i=1}^{m}\left(X_{b}^{(i)} \theta-y^{(i)}\right) \cdot X_{2}^{(i)} \\ \ldots \\ \sum_{i=1}^{m}\left(X_{b}^{(i)} \theta-y^{(i)} \right) \cdot X_{n}^{(i)} \end{array}\right)\sum_{i=1}^{m}\left(X_{b}^{(i)} \theta-y^{(i)}\right) \\ \sum_{i=1}^{m} \left(X_{b}^{(i)} \theta-y^{(i)}\right) \cdot X_{1}^{(i)} \\ \sum_{i=1}^{m }\left(X_{b}^{(i)} \theta-y^{(i)}\right) \cdot X_{2}^{(i)} \\ \ldots \\ \sum_{i= 1}^{m}\left(X_{b}^{(i)} \theta-y^{(i)}\right) \cdot X_{n}^{(i)} \end{配列}\右)\sum_{i=1}^{m}\left(X_{b}^{(i)} \theta-y^{(i)}\right) \\ \sum_{i=1}^{m} \left(X_{b}^{(i)} \theta-y^{(i)}\right) \cdot X_{1}^{(i)} \\ \sum_{i=1}^{m }\left(X_{b}^{(i)} \theta-y^{(i)}\right) \cdot X_{2}^{(i)} \\ \ldots \\ \sum_{i= 1}^{m}\left(X_{b}^{(i)} \theta-y^{(i)}\right) \cdot X_{n}^{(i)} \end{配列}\右)J ( θ )= J / θ0J / θ1J / θ2J / θn = 私は= 1メートル2( _( i )バツb( i )( 1 )私は= 1メートル2( _( i )バツb( i )(X1( i ))私は= 1メートル2( _( i )バツb( i )(X2( i ))私は= 1メートル2( _( i )バツb( i )(Xn( i )) =メートル2 私は= 1メートル( Xb( i )y( i ) )私は= 1メートル( Xb( i )y( i ) )バツ1( i )私は= 1メートル( Xb( i )y( i ) )バツ2( i )私は= 1メートル( Xb( i )y( i ) )バツn( i )
θ i = θ i − η ∂ J ( θ 0 , θ 1 , ⋯ , θ n ) ∂ θ i \theta_{i}=\theta_{i}-\eta \frac{\partial J\left(\theta_{ 0}、\theta_{1}、\cdots、\theta_{n}\right)}{\partial \theta_{i}}=∂θ _J ( i01n)

勾配降下法の小さな計算例 (PYTHON プログラムを含む)
勾配降下法 1
勾配降下法 2

付録

##リファレンス学習
シグモイド関数解析
ロジスティック回帰 10分でわかる、わかりやすい(スパーク解法含む)【ステーションB】

おすすめ

転載: blog.csdn.net/weixin_42918965/article/details/126063666