Pythonと機械学習

Pythonも機械学習も初心者ですが、頑張ってこのブログで勉強してこうと思います。

RNN

目次 目次 はじめに RNNブロックの順伝搬 RNNブロックの逆伝搬 損失関数(2乗誤差) 特徴量データと目標値データの時間の個数が合わない場合 はじめに RNN(Recurrent Neural Network)は、時間に依存したデータのパターンを学習してくれるネットワークです。 今…

多層パーセプトロンの実装

目次 目次 はじめに 活性化関数の実装部 ソフトマックス関数の実装部 全結合の実装部 多層パーセプトロン実装部 学習実施 scikit-learnで実行した結果 Kerasで多層パーセプトロン 学習履歴の比較 はじめに 前回、前々回は多層パーセプトロン理論編でした。今…

行列演算と計算グラフ

目次 目次 はじめに 行列と行列の和 行列とベクトルの和 分岐 行列と行列の積 行列と行列のアダマール積 活性化関数 ソフトマックス関数 交差エントロピー 多層パーセプトロンの計算グラフ はじめに 多層パーセプトロンの実装を考える際に、テンソルの全ての…

多層パーセプトロン

目次 目次 はじめに 3層パーセプトロン 損失関数の重み勾配 バックプロパゲーション 行列表記 多層パーセプトロン 順伝搬 全結合 活性化関数 損失関数(交差エントロピー) 逆伝搬 誤差計算 バックプロパゲーション 損失関数の重み・閾値勾配 追記 はじめに 前…

多クラス分類ロジスティック回帰の実装

目次 目次 はじめに 活性化関数・損失関数の実装 ソフトマックス関数 交差エントロピー 交差エントロピーの重み勾配 多クラス分類ロジスティック回帰クラス 分類の実施 scikit-learnの多クラス分類結果 はじめに 前回、多クラス分類ロジスティック回帰の記事…

多クラス分類ロジスティック回帰

目次 目次 はじめに モデルの概要 One-hot表現 ソフトマックス関数 ソフトマックス関数の微分 交差エントロピー 交差エントロピーを重みで微分 行列による表記 特徴量行列 特徴量行列×重み行列+閾値 活性化関数(ソフトマックス関数)の出力 損失関数(交差エ…

多目的最適化

目次 目次 はじめに パレート最適解 多目的最適化の選択アルゴリズム サンプルコード コードの解説 スクリプトの実行結果 はじめに 最近たまたま多目的最適化を扱う機会があり、DEAPを使って最適化を実施したので、その時のメモです。 DEAPのチュートリアル…

RRLの学習にGAを使ってみる

目次 目次 はじめに RRLスクリプト スクリプトの変更点 重みの変更範囲の設定と学習の実施 GAによる学習結果 シャープレシオの推移 過去の期間Tでの学習結果 未来の期間Tでの取引シミュレーション結果 過去10回分のアクションを入力してみる シャープレシオ…

DEAP

目次 目次 はじめに 使い方の解説 creator.create()関数 適応度の定義 個体の定義 base.Toolbox.register()関数 遺伝子を作成する関数 個体を作成する関数 世代を作成する関数 目的関数 交叉関数 突然変異関数 選択関数 注意点 main関数内の処理 個体にnumpy…

遺伝的アルゴリズム

目次 目次 はじめに 遺伝的アルゴリズム 用語説明 ステップ1(初期世代の作成) ステップ2 (選択) ステップ3 (交叉) ステップ4 (突然変異) Pythonで実装 実行結果 はじめに 機械学習では重みの最適化に勾配降下法が一般的に採用されているようですが、なぜだろ…

RRLをMT4で試してみる

目次 目次 はじめに RRLを実装したEA コードの解説 パラメータ説明 コードの流れ バックテスト結果 はじめに 3月はじめから書いているRRLシリーズも今回で5回目になりました。 今回はRRLをMetatrader4のEAに実装してみようと思います。 いきなりこの記事を読…

CythonでC++コードをラッピング

目次 目次 はじめに C++テストコード Cythonラッパーコード コンパイル用setup.py 実行スピード比較 C++で書いたRRLのコードをCythonでラッピング 参考にさせていただいたサイト はじめに PythonはC++に比べて圧倒的に実行速度が遅いのですが、それでもPytho…

C++でRRLを実装

目次 目次 はじめに C++による実装 実行結果 はじめに 前回はPythonで書いたRRLのコードをCython化して、学習速度がどれだけ速くなるか試してみましたが、思ったよりも実行速度が速くならず、結局理由もよく分からないので、今回はRRLのコードをC++で書いて…

CythonでRRLを実装

目次 目次 はじめに 準備するもの テストコード Cythonファイルのコンパイル 実行スピード比較 RRLをCythonで実装 Cythonスクリプト setup.py 学習実行スクリプト 学習結果 参考にさせて頂いたサイト はじめに 前回の記事では、再帰型強化学習(RRL)を使ってF…

再帰型強化学習

目次 目次 はじめに 再帰型強化学習のアルゴリズム Pythonで実装してみる 検証結果 シャープレシオの推移 過去の期間Tでの学習結果 未来の期間Tでの取引シミュレーション結果 はじめに こちらのブログで紹介されている、再帰型強化学習を使ってFXトレードを…

自動トレードボット(マージントレード版)

目次 目次 はじめに 使い方 ボットの取引ルール 運用結果 はじめに 少し前ですが、Poloniexで仮想通貨の現物取引ボットを作った記事の続編です。 前のボットは現物買いしかできませんでしたが、今回は空売り空買いができるマージントレードに対応させました…

PoloniexでMarginTrade

目次 目次 はじめに 解説ページの和訳 マージントレード アカウント ポジション マージンアカウント 強制ロスカット マージントレードをするためには? ローンを提供して利子を得るには? はじめに 現物買いだけだとボットの運用成績が悪いので空売りができる…

k近傍法

目次 目次 はじめに k近傍法のアルゴリズム 距離指標 自作スクリプト スコア比較 決定領域 自作スクリプト版 scikit-learn版 はじめに 最初は機械学習に対し、何かよく分からないマシーンが人間の様に学習しているイメージを持っていましたが、最近は学習と…

ランダムフォレスト

目次 目次 はじめに ブートストラップサンプリング 特徴量の重要度 自作スクリプト スコアと特徴量の重要度比較 決定領域 自作スクリプト版 scikit-learn版 おわりに はじめに ランダムフォレストは複数の決定木学習による多数決で学習結果を決定するアルゴ…

決定木アルゴリズムを実装してみる

目次 目次 はじめに 再帰呼び出し 決定木のチャート図 決定木で使われる乱数 特徴量の重要度 自作スクリプト テスト結果のスコア比較 特徴量の重要度比較 決定領域比較 自作版の決定領域 scikit-learn版の決定領域 決定木チャート図比較 自作版のチャート図 …

決定木アルゴリズム

目次 目次 はじめに ジニ不純度 情報エントロピー 情報利得 具体例 不純度指標にジニ不純度を使った場合 不純度指標に情報エントロピーを使った場合 参考 はじめに 今まで何も考えずに決定木を使っていましたが、どういうアルゴリズムなのか調べてみることに…

python-poloniexのバージョンアップ

ずっと使ってたpython-poloniexがバージョンアップしたようで、関数名が一新されてしまいました。 アップデートしたら、botが動かなくなってしまったので焦ってしまいました。 ラッパー中で使っている関数名をAPIのオリジナルコマンド名と合わせたみたいです…

自動トレードボット

目次 目次 はじめに 使い方 準備するもの ボット稼働方法 ボット内のルーチン 注意 おまけ はじめに ここまでで仮想通貨の自動トレードボット作成に必要な知識がそろったので、実際にボットを作ってみました。 一カ月ほど運用していますが、まあ結果は全然ダ…

APScheduler

目次 目次 はじめに Poloniexサーバー時間 使用例 Linuxでバックグラウンド実行 はじめに Poloniexからチャートデータを取ってきて明日のコイン価格を予想することができ、またAPIを使って成行トレードもできるようになったので、後はそれらをまとめて実行す…

カスタムPoloniex

目次 目次 はじめに サンプルスクリプト 基軸コイン バランスデータ取得 資産データをBTCとUSD換算 成行買い 成行買い(買えるだけ) 成行売り 成行売り(売れるだけ) はじめに Poloniex APIのpythonラッパーであるpython-poloniexは非常に便利なのですが、バラ…

PoloniexのAPIを使ってトレードしてみる

目次 目次 はじめに API KeyとSecretの取得 APIの使い方 バランスデータの取得 トレードしてみる はじめに 前回はPush APIを使ってPoloniexのサーバーが配信するデータを自動受信してみました。 今回は通常のAPIを使って仮想通貨のトレードをしてみたいと思…

PoloniexのPush APIを使ってみる

PoloniexのAPIを使ってデータを取得する際にPush APIというものがあるらしいです。 PoloniexのAPI解説ページに行くと、いきなりPush APIの説明が出てきてWAMP protocolで通信する必要があり、環境をセットアップしなければならない等ややこしいので挫折して…

サポートベクターマシンを実際に試してみる

2次計画法のスクリプトが出来たので、サポートベクターマシンに実装してみます。 サポートベクターマシンにおける最小化すべき目的関数は、 制約条件は、 になります。重みが設計変数になります。 これらを行列形式で表します。(トレーニングサンプル数は、…

2次計画法

ラグランジュ乗数の意味 サポートベクトルのマージンを最大化するために、ラグランジュの未定乗数法を等式制約から不等式制約がある場合に拡張する必要があります。 ラグランジュの未定乗数法を不等式制約がある場合に拡張した最適化アルゴリズムを2次計画法…

ラグランジュの未定乗数法

最適化問題 世の中には非常に多くの最適化問題が存在します。ある条件の下で、この値を最適化したい等、良く耳にすることが多いです。 燃費低減の為自動車のエンジン軽くしたい。でもあまり軽すぎると強度が心配。強度を保ちつつどこまで軽くできるか?等、…