フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
【連続系】MATLAB、Pythonで株価予測 その68【フーリエ変換⑤】
フーリエ変換のプログラム化の前に数式レベルでいろいろ解決。 積分をΣで解決する。(リーマン積分) 関数をベクトルと解釈する。 畳み込み積分は内積で解決。 ベクトルのそれぞれの要素数をNで切りそろえているのでそれほど複雑にはならないはず。
【連続系】MATLAB、Pythonで株価予測 その67【フーリエ変換④】
前回、打ち出した方針を再掲。 要素数Nが重要。 関数、変数のベクトル要素数がNできり揃う。 これにより、逆変換も苦にならない想定。 文章で表現したものを数式で表現。 ベクトルになる箇所を明確にした。 プログラム化はやってみないとわからん。 なんとか辻褄合わせができるよう頑張る。
【連続系】MATLAB、Pythonで株価予測 その66【フーリエ変換③】
フーリエ変換、逆フーリエ変換を再確認。 問題点は無限の解釈の仕方。 無限の範囲に於いての「関数同士の内積」。 「関数同士の内積」も無限要素のベクトルと解釈する必要がある。 有限数を便宜上、無限に近いものとすれば、ある程度成立する可能性はある。
【連続系】MATLAB、Pythonで株価予測 その65【フーリエ変換②】
細かい周波数特性の取り方としてフーリエ変換を利用することとした。 フーリエ変換とDFT,FFTは別物。 目的が一緒なので、本来は気にしなくても良いが、今回に限っては別物扱いせざるを得ない。 フーリエ変換の連続的、範囲が∞であることがプログラム化に対しての大きな課題。 そもそも出来るのかもわからん。
【連続系】MATLAB、Pythonで株価予測 その64【フーリエ変換①】
さらに適切な周波数を特定できないか検討。 10[Hz]じゃなくて9.7[Hz]が実はより適切だったかも。とか。 入力サンプリング期間を延ばせば、見た目の周波数より細かい周波数特性は出せる。 問題は期間の伸ばし方。 0埋めで伸ばす場合、0埋めがあまり多すぎると元データと乖離する。 サンプリング間の補間もまぁまぁメンドイ。
【個別株】MATLAB、Pythonで株価予測 その63【シミュレーション③】
10[Hz]に於ける売買タイミングと株価を再掲。 個別株に対して収支シミュレーション実施。 20万越えの利益。 途中、5万円の損失が出てるが、これはうまい損切。 これのおかげで次の売買で大きく利益を上げられている。
【個別株】MATLAB、Pythonで株価予測 その62【シミュレーション②】
10[Hz]に於ける売買タイミングと株価を確認。 10回の売買が発生する。 収支シミュレーションを行う上でのパラメータ決め。 VTIの時の差分は以下。 売買手数料は0円。 売買単位は10株 買付余力は75万。 100万以下の売買を前提として売買手数料を0円にしているため。
【個別株】MATLAB、Pythonで株価予測 その61【シミュレーション①】
分析予測対象の個別株を選んできた。 大企業株のため、VTIの特性に似てはいるが、細かい上下が見て取れる。 とりあえず周波数解析実施。 10[Hz]あたりが突出している。 9~11[Hz]の範囲だけを残してIFFT実施。 筋が良さそうなのでこれをベースに掘り下げる予定。
【収支】MATLAB、Pythonで株価予測 その60【シミュレーション⑫】
前回の収支シミュレーションの考察を実施。明らかに損がでる売買も行っている。しかし、そこで売買しないと買付余力がなくなり、機会損失になる場合もある。買付余力があれば、損が出る売買は見送れるので買付余力を如何に残せているかも重要にはなってくる。同じシミュレーションを個別株で行えないか?基本ロジックは一緒なので可能。
【収支】MATLAB、Pythonで株価予測 その59【シミュレーション⑪】
ついに収支シミュレーション実施。 収益としては11万円弱。 イマイチな結果にも見えるが、最大単価時の一回の売買よりも収益は出ている状態。 たまたまの可能性は高い。
【収支】MATLAB、Pythonで株価予測 その58【シミュレーション⑩】
収支シミュレーションの方針を確認。 買付手数料:買付金額の0%。 売却手数料:売却金額の0.45%。 税金:利益の20%。 売買単位:1口。 買付余力:100万円。 VTIなど海外ETFは1口から売買可能。 というか100口、100株が売買単位なのは日本特有の文化。
【収支】MATLAB、Pythonで株価予測 その57【シミュレーション⑨】
Python版の売却、買付タイミング時のVTI単価特定コードを実行。 グラフはOK。 VTI単価出力もOK。 極大値、極小値のインデックスがMATLABで実施した時と異なるが、これはオリジンのせい。 MATLABは1オリジン、Pythonは0オリジン。
【収支】MATLAB、Pythonで株価予測 その56【シミュレーション⑧】
売却、買付タイミング時のVTI単価特定コードのPython版を作成。 MATLABの時に実施した論理インデックス検索のやり方を修正。 このために複素共役を負の周波数側に持ってきた。(忘れてたけど)
【収支】MATLAB、Pythonで株価予測 その55【シミュレーション⑦】
売却、買付タイミング時のVTI単価特定コード(MATLAB版)の実行結果を確認。 グラフで確認。 拡大グラフで確認。 コマンドウィンドウ出力を確認。 一部を除いて利益が出そうな数値にはなっている。
【収支】MATLAB、Pythonで株価予測 その54【シミュレーション⑥】
売却、買付タイミング時のVTI単価特定コード(MATLAB版)を作成。 ついでにバンドパスフィルタの部分をちょい改修。 Python(Numpy)側のコードも似たような感じで改修予定。
【収支】MATLAB、Pythonで株価予測 その53【シミュレーション⑤】
極大値と極小値の特定するコードのPython(Numpy)版を作成。 動作としては反転波形も含めてMATLABと同一。 実際にはこれらコードにく分けて以下が必要だが、本番コード作成時に盛り込む。 各プロット時の値の取得。 ドルから円へ変換。 $1=¥127で計算する予定。
【収支】MATLAB、Pythonで株価予測 その52【シミュレーション④】
極大値と極小値の特定のMATLABコードを作成。 上記コードの動作確認。 極大値に赤丸、極小値に青丸を置いてる。 一部問題点あり。 最初に極小値が来ることを想定している。 しかし、最初に買付をする想定なので、むしろ今回のコードの方が都合が良い。
【収支】MATLAB、Pythonで株価予測 その51【シミュレーション③】
微分して0になれば極値。 極大値は、「微分値がプラス→0→マイナス」となるところ。 極小値は、「微分値がマイナス→0→プラス」となるところ。 「微分して0」でも極値にならないパターンもある。 3次関数とかが代表的。
【収支】MATLAB、Pythonで株価予測 その50【シミュレーション②】
いままではExcelで終値から平均値を引いた値と算出したものをcsvにしていたが、MATLAB、Pythonで終値を取り込んでから平均値を引く方式に変更。 MATLAB、Pythonともにmeanという関数/メソッドで平均値算出可能。 Pythonはaverageという加重平均を算出するメソッドが存在。
【収支】MATLAB、Pythonで株価予測 その49【シミュレーション①】
収支シミュレーションをする上で、今後の方針を決めた。 基本的にはプログラム的に算出するが、実際の売買時の計算は手動で。 気が向いたら自動演算化するかも。 極大値、極小値を特定する必要があるが、これはそれほど難しくはない。(つもり)
【VTI】MATLAB、Pythonで株価予測 その48【周波数解析⑫】
新VTIチャートからの抽出周波数を1個ではなく、複数にすることで筋の良さそうな特性が出てくる。 しかし増やせば良いというものではない。 増やせば増やすほど元の新VTIチャートに近づくだけ。 単にローパスフィルタを掛けただけになることも。 何パターンか出してみて自分自身が信用できそうなものを探すって流れになる。
【VTI】MATLAB、Pythonで株価予測 その47【周波数解析⑪】
新VTIチャートから各種周波数を抽出して比較。 3[Hz]が筋が良さそう。 ついで5[Hz]。 7[Hz]は細かい特性は掴んでいるが、ちょっとイマイチ。 今回の情報だけを見ると3[Hz]で売り買いすればOKということになるが・・・。
G検定対策のまとめ記事はこちら。はじめにG検定の強化学習についての勉強方法を聞かれたんで、とりあえず記事にしてみた。正直、G検定の強化学習関連は情報も少なく、かなり学習し難いカテゴリになる。法律/最近の動向系と比べるとややマシとは言えるが、
【VTI】MATLAB、Pythonで株価予測 その46【周波数解析⑩】
新VTIチャートの周波数特性を確認。 1[Hz]、3[Hz]、5[Hz]、7[Hz]あたりが突出している。 まずはお試しで3[Hz]を抽出して確認。 かなり特徴を表していることが分かる。 Python(Numpy)でも同様のことができることを確認。
【VTI】MATLAB、Pythonで株価予測 その45【周波数解析⑨】
新しく2021年6月から2022年5月のVTIチャートを取得。 MATLABでplotしてみた。 いい感じに乱高下している。 MATLABとPython(Numpy)のFFT、IFFTで元の波形に戻せるかを確認。 共に戻せることが確認できたので、周波数解析できそう。
【VTI】MATLAB、Pythonで株価予測 その44【周波数解析⑧】
VTIチャートとIFFTの結果に対して考察。 5Hzではさほど何かを示しているデータには見えない。 試しに13Hzを中心として12Hz~14Hzを抽出。 こちらは細かい山と谷を捕まえて居そう。 期間が短いことから値動きも小さい。 今後の方針としては2022年も含めたVTIチャートで試してみる。
【VTI】MATLAB、Pythonで株価予測 その43【周波数解析⑦】
前回MATLABで作ったVTIチャートから5Hzを抽出するコードのPython版を作成。 振幅調整も同じ処理で対応。 MATLABと同じ結果が得られたことは確認。 問題は、これから何を分析できるかと言う点だが、そこは次回。
【VTI】MATLAB、Pythonで株価予測 その42【周波数解析⑥】
IFFT後の波形の振幅の増幅は最大値を比較して、その比率を使用して増幅係数を決定。 一応5Hzの抽出はできたが・・・。 ここらへんの考察はPythonコードを作成した後に実施予定。
【VTI】MATLAB、Pythonで株価予測 その41【周波数解析⑤】
VTIチャートの周波数特性から5[Hz]と抽出してみる方針に。 抽出した5[Hz]は元のVTIチャートの振幅と比べると遥かに小さい可能性が高い。 よって、グラフで比較する際はIFFT側の結果を増幅してあげた方が良い。
【VTI】MATLAB、Pythonで株価予測 その40【周波数解析④】
今回使用するVTIチャートの問題について考察。 あまりにもシンプル過ぎて、分析し易い特徴が捕まえられない可能性あり。 一応5[Hz]が若干飛び出ているが、特徴になり得るかは疑問。 とりえあえず、現状のチャートでやってみて、分析が難しいようであれば再度方針検討。
「ブログリーダー」を活用して、KEIさんをフォローしませんか?
フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
動画作成関連のバックナンバー用ページ。立ち絵を作ったり、動画作ったり、アイキャッチ画像作ったりなどを掲載していく。
MATLAB,Python,Scilab,Julia比較するシリーズの第4章。第4章では分類問題で最終的にはニューラルネットワークや最適化アルゴリズムの話だった。第5章はフーリエ解析学から高速フーリエの話がメインとなる。
立ち絵の配置: PSDファイルをAviUtlに配置し、画面サイズやフレームレートを設定。のっぺらぼう化: 目と口を消して、アニメーション効果を追加。アニメーション効果: 目パチと口パクの設定を行い、リップシンクを調整。
フーリエ変換を定義。フーリエの積分公式の一部を抜き出す。逆フーリエ変換を定義。フーリエの積分公式にフーリエ変換を代入するだけ。
Δωで刻みにしたので、極限を利用して連続系へ。数式上は連続ではあるが、一般的な表現ではない。区分求積法とリーマン積分について。フーリエの積分公式を導出した。
VOICEVOXとAivisSpeechキャラと一緒に!AviUtlを使った動画作成 バックナンバーはじめに以前、AivisSpeechのAnneliというキャラの立ち絵を作成した。さらにそこに加えて、AivisSpeechのアイコン画像を...
PSDToolKitプラグインの導入の仕方を説明。PSDファイルを探してGIMPで内容を確認。GIMPで瞬き用、口パク用のレイヤー編集。
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。周期2Lの波の数を示すnを周期2πに於ける波の数である角周波数ωに変換。角周波数ωの刻みであるΔωについて説明。Δωを定義することで、離散的な係数算出が連続的な角周波数算出に近づけていっている。
区分求積法とリーマン積分について。離散と連続の分け目。フーリエの積分公式を導出した。演算したはずなのに変化しない。つまり変換、逆変換が成立することを示している。
Δωで刻みにしたので、極限を利用して連続系へ。数式上は連続ではあるが、一般的な表現ではない。よって、一般的な表現に書き換える必要がある。
角周波数ωの刻みであるΔωについて説明。Δωを定義することで、離散的な係数算出が連続的な角周波数算出に近づけていっている。
周期2Lの波の数を示すnを周期2πに於ける波の数である角周波数ωに変換。ω=nπ/Lを使用して変換するだけ。これにより少し数式がシンプルになった。
VOICEVOXとAivisSpeechキャラと一緒に!AviUtlを使った動画作成 バックナンバーはじめに以前、AivisSpeechのAnneliというキャラの立ち絵を作成した。ほぼ独自に作成したが、Anneliの画像自体はAivisS...
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。変換を想定した式に変換。複素指数関数との積と積分、総和を経由すると元に関数に戻るというイメージが重要。
AviUtlのセットアップと拡張編集Pluginの導入を行った。mp4ファイルの入力と出力の方法を説明。アニメーションgifの対応方法を説明。
分数は割り算の別表現として理解しやすく、逆数を掛けることで計算が簡単になる。これにより、小数の掛け算や割り算の理解が深まる。一次関数の数式をグラフにすることや、グラフから数式を導くことは、データのトレンド分析や物理現象の理解に役立つ。微分は関数の変化率を求める手法であり、数値微分を使って近似的に求めることができる。これにより、物理学や経済学など多くの分野で応用可能。
Youtube動画やブログ記事のアイキャッチ用に作成した、VOCEIVX(四国めたん、ずんだもん、春日部つむぎ)、AivisSpeech(Anneli)の画像たち。Stable Diffusionで生成&少しペン入れ&GIMPによる補正したものになります。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 モーメンタムの動作イメージについて確認。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。
勾配降下法の更新式を確認。 勾配降下法の動作イメージを確認。 学習率が大きい場合と小さい場合で挙動が変わる。 ちょうど良い学習率を人間の手で探す。 これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。
最適化アルゴリズムを取り扱う。 今回のネットワークだとさほど恩恵はないが知っていて損はない。 まずはモーメンタムから解説&実験をしていく。 最初は復習を兼ねて勾配降下法についても確認する。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
モーメンタムの動作イメージについて確認。 動作イメージの表現は難しい。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 実際の指数移動平均とは異なっているので、その点は注意。
勾配降下法の動作イメージを確認。 学習率が大きい場合と小さい場合で挙動が変わる。 ちょうど良い学習率を人間の手で探す。 これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。
今回改めてまじめに更新式を確認。 勾配降下法の更新式が一番シンプルなので今後の最適化アルゴリズムの更新式を見る際は比較対象になりやすい。
最適化アルゴリズムを取り扱う。 今回のネットワークだとさほど恩恵はないが知っていて損はない。 まずはモーメンタムから解説&実験をしてい 最初は復習を兼ねて勾配降下法についても確認する。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。 大きく2パターンの分類パタ やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。 大きく2パターンの分類パターン やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。 大きく2パターンの分類パターンがある やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。