機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

2020年6月の振り返り

6月上旬まで個別株は絶好調でしたが、そこから急降下。一番評価益があったときから多分100万円分くらい下がった。またここから一段と下がったら買い増ししようかと思ってますが、どうなるか。あるいは、インデックス系の投信にまとまった金額を投資するか。

20年6月の実績
Web収入 投信 前月比評価損益 個別株
828,543円 - -336,389円 492,154円
20年の累積
Web収入 投信評価損益 個別株
4,907,121円 117,835円 420,976円 ‬5,445,932円

2020年5月の振り返り

連休に加えてSTAYHOMEの影響か、アクセス数が伸びてWeb収入は好調でした。さらに、先月から買い増しした個別株がどれも順調。というか、だいたい何を買ってもそれなりに利益になった月だったと思います。まだコロナの影響も完全になくなったわけではないですし、また一段の下げがあることに備えて投資資金はそれなりに控えています。今のところ全資産の10%強くらい。

20年5月の実績
Web収入 投信 前月比評価損益 個別株
921,146円 - 655,642円 1,576,788円
20年の累積
Web収入 投信評価損益 個別株
4,078,578円 117,835円 757,365円 ‬4,953,778円

2020年4月の振り返り

4月から個別株を物色しはじめました。また相場が大きく下がるかもしれませんが、徐々に買い増ししていこうと思っています。とりあえず今のところは全資産の10%未満。

機械学習のほうはさっぱり進めていない。ネット上に書く以上はやっぱり人に読まれることを期待しているわけですが、どういうわけか最初の頃に書いた記事にアクセスが集中していて、カーネル法とかサポートベクターマシンは一切読まれていないんですよね。最初の頃に比べると僕の理解もあやふやで、さらに書き方も雑になっているせいかもしれませんが。ということで、もともと本業には一切関係ない勉強なので少々モチベーションも低下気味、、、。月1でお金のことを書く習慣になったので、なんとかブログの存在を忘れていないという感じ。まあいつもモチベーションは波があるので、そのうちまた再開するつもりです。

20年4月の実績
Web収入 投信 前月比評価損益 個別株
820,342円 - 101,723円 922,065円
20年の累積
Web収入 投信評価損益 個別株
3,157,432円 117,835円 101,723円 3,376,990‬円

2020年3月の振り返り

相場はひどいですね。先月と同じことを言ってしまいますが、売っておいて本当によかった。なんかもうこの辺だったら何を買っても利益が出るような気がする。と思いながらもまだ何にも手を出していない。

20年3月の実績
Web収入 投信 前月比評価損益
759,282円 - 759,282円
20年の累積
Web収入 投信評価損益
2,337,090円 117,835円 2,454,925‬円

2020年2月の振り返り

なんだかんだで2月のWeb収入はそこそこに落ち着いた。

投信は先月売っておいて本当に良かった。今月もすごい勢いで下落していて、仮に持ち続けていたら200万くらいはマイナスでした。下落の勢いがすごいぶん、戻るスピードも速いかもしれません。また買い始めるのをいつにするか難しい。結局、戻ったところで買い始めたら、持ち続けてたのと同じというかむしろ安いところで買わなかった分、損じゃんって話なんですよね。全処分してダメージを避けたので、積立自体はすぐに再開するのが良いような気もする。

20年2月の実績
Web収入 投信 前月比評価損益
697,193円 - 697,193円
20年の累積
Web収入 投信評価損益
1,577,808‬円 117,835円 1,695,643‬円

サポートベクターマシン(ハードマージン)(2)

サポートベクターマシン(ハードマージン)(1)の続きです。 先回、求める解は


\displaystyle  \frac{1}{2}\|\mathbf{w}\|^{2}  \tag{1}

を、


t_n(\mathbf{w}^{T}\phi(\mathbf{x}_n)+b) \ge 1 \quad\quad  (n=1,\cdots,N) \tag{2}

という2次計画問題となることを確認しました。この問題を解きやすい形にするため、2次計画における双対問題の手順に沿って双対問題を導出します。手順は、

  1. ラグランジュ関数を作る
  2. \displaystyle \frac{\partial L}{\partial \mathbf{w}}=0\displaystyle \frac{\partial L}{\partial b}=0を求める
  3. 求めた\mathbf{w},bを使って、ラグランジュ関数から\mathbf{w},bを消去する
  4. 双対問題が完成。もとのラグランジュ関数に比べ、制約条件が少なく、解くのが簡単になる。

です。まず手順1。不等式制約におけるラグランジュの未定乗数法(KKT条件)より、ラグランジュ乗数a_nを用いれば、ラグランジュ関数は


\displaystyle L(\mathbf{w},b,\mathbf{a}) = \frac{1}{2} \| \mathbf{w} \|^{2} - \sum_{n=1}^{N} a_n ( t_n (\mathbf{w}^{T} \phi(\mathbf{x}_n)+b)-1) \,\,\,\,\,\,\,\, (a_n\ge0)\tag{3}

と書けます。

次に手順2。\displaystyle \frac{\partial L}{\partial \mathbf{w}}=0\displaystyle \frac{\partial L}{\partial b}=0を計算すれば*1


\begin{eqnarray*}
\displaystyle \frac{\partial L}{\partial \mathbf{w}}=\mathbf{w} - \sum_{n=1}^{N}a_n t_n \phi(\mathbf{x}_n) &=& 0 \tag{4} \\
\mathbf{w} &=& \sum_{n=1}^{N}a_n t_n \phi(\mathbf{x}_n)  \tag{5}
\end{eqnarray*}


\displaystyle \frac{\partial L}{\partial b} = \sum_{n=1}^{N}a_n t_n = 0 \tag{6}

です。

次に手順3・4。式(5)、(6)を、式(3)のラグランジュ関数に代入して\mathbf{w},bを消去して双対問題\tilde{L}を作ります。まずそのまま代入すれば、


\begin{equation*}
\begin{split}
\displaystyle \tilde{L}(\mathbf{a})&= \frac{1}{2} \left( \sum_{n=1}^{N}a_n t_n \phi(\mathbf{x}_n) \right)^{T} \left(  \sum_{n=1}^{N}a_n t_n \phi(\mathbf{x}_n)\right)  \\
&- \sum_{n=1}^{N}a_n t_n \left( \sum_{m=1}^{N}a_m t_m \phi(\mathbf{x}_m) \right)^{T} \phi(\mathbf{x}_n) +\sum_{n=1}^{N}a_n
\end{split}
\end{equation*}
\tag{7}

です。式(7)右辺の1番目の項は、カーネル関数を用いてk(\mathbf{x}_i,\mathbf{x}_j) = \phi^{T}(\mathbf{x}_i)\phi(\mathbf{x}_j)とすれば、


\displaystyle  \frac{1}{2} \sum_{n=1}^{N}\sum_{m=1}^{N} a_n t_n a_m t_m k(\mathbf{x}_n,\mathbf{x}_m) \tag{8}

と書けます。同様に式(7)右辺の2番目の項も計算すれば、


\displaystyle  - \sum_{n=1}^{N}\sum_{m=1}^{N} a_n t_n a_m t_m k(\mathbf{x}_n,\mathbf{x}_m) \tag{9}

です。したがって、双対問題は


\displaystyle \tilde{L}(\mathbf{a}) =  \sum_{n=1}^{N}a_n -\frac{1}{2} \sum_{n=1}^{N}\sum_{m=1}^{N} a_n t_n a_m t_m k(\mathbf{x}_n,\mathbf{x}_m) \tag{10}

となります。なおここで、


\displaystyle  \sum_{n=1}^{N} a_n t_n =0 \tag{11}


a_n \ge 0 \tag{12}

です。

最適解においては、不等式制約におけるラグランジュの未定乗数法(KKT条件)で示すKKT条件が成立します。今回の問題におけるKKT条件は以下です。


a_n \ge 0 \tag{13}


t_n(\mathbf{w}^{T}\phi(\mathbf{x}_n)+b) -1 \ge 0 \tag{14}


a_n  \{ t_n ( \mathbf{w}^{T}\phi(\mathbf{x}_n)+b)  -1  \} = 0 \tag{15}

続きは次回。

2次計画における双対問題

f(\mathbf{x})の最大値を、


{\displaystyle 
\begin{eqnarray}
  \left\{
    \begin{array}{l}
      g_1(\mathbf{x})\le0 \\ 
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\vdots \\
     g_m(\mathbf{x})\le0 \tag{1}
    \end{array}
  \right.
\end{eqnarray}
}


{\displaystyle 
\begin{eqnarray}
  \left\{
    \begin{array}{l}
      h_1(\mathbf{x})=0 \\ 
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\vdots \\
     h_l(\mathbf{x})=0 \tag{2}
    \end{array}
  \right.
\end{eqnarray}
}

の制約条件下で求めることを考えます。この問題において、f(\mathbf{x})が上に凸の2次関数で、制約条件が線形制約の場合、2次計画と呼びます。2次計画の問題を解くには、双対定理がよく使われるようです。この双対定理の背景にある理論は僕にとっては難解でなかなか理解が難しかったので、とりあえず解き方の手順だけを整理してみました。

まず、ラグランジュ関数を作ります。*1


\displaystyle L(\mathbf{x},\boldsymbol \lambda ,\boldsymbol \mu) = f(\mathbf{x}) - \sum_{i=1}^{m} \lambda_{i} g_i(\mathbf{x}) - \sum_{i=1}^{l} \mu_{i} h_{i}(\mathbf{x}) \tag{3}

解においては、不等式制約におけるラグランジュの未定乗数法(KKT条件)より、KKT条件


\lambda_i g_i(\mathbf{x}) = 0 \tag{4}

\lambda_i \ge 0 \tag{5} 

g_i(\mathbf{x}) \leq 0 \tag{6}

が成り立ちます。ここで、L(\mathbf{x},\boldsymbol \lambda ,\boldsymbol \mu)は凸関数ですから、最大値においては\displaystyle \frac{\partial L}{\partial \mathbf{x}}=\mathbf{0}が成り立ちます。\displaystyle \frac{\partial L}{\partial \mathbf{x}}=\mathbf{0}を用いてラグランジュ関数から\mathbf{x}を消去すると、双対問題


l(\boldsymbol \lambda ,\boldsymbol \mu) \tag{7}

が得られます(KKT条件より\lambda_i \ge0)。これを最小にする\boldsymbol \lambda ,\boldsymbol \muを求めます。すると、式(3)、(7)に解が存在するなら、その最大値と最小値は一致し、この性質を双対定理と呼びます。もとのラグランジュ関数よりも双対問題のほうが解きやすいために、2次計画問題ではこの手法がよく用いられるようです。