ソフトウェア設計における因果関係の明確化。条件分岐や状態遷移の数理的な記述。並列処理やバッチ処理の自然な導入。AIモデルとの構造的な共通性の理解。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくても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さんをフォローしませんか?
ソフトウェア設計における因果関係の明確化。条件分岐や状態遷移の数理的な記述。並列処理やバッチ処理の自然な導入。AIモデルとの構造的な共通性の理解。
exoファイルを使えば、立ち絵の設定をテンプレ化して何度でも使い回せる。キャラごと・表情ごとのexoパターンを作っておけば、配置も口パクも一瞬。拡張編集にドラッグ&ドロップするだけで、作業時間が爆速短縮。
G検定まとめ記事はこちらはじめに結構昔にG検定向けの動画で、「JDLAジェネラリスト検定(G検定)さっくり対策(究極カンペの作り方)カンペを見なくても問題が解ける自分の作り方。」というのを公開しているのだが、これに対しての問い合わせがちょく...
動画作成関連のバックナンバー用ページ。立ち絵を作ったり、動画作ったり、アイキャッチ画像作ったりなどを掲載していく。
画像認識の全体像を因果関係図で整理し、AlexNetを起点に各モデルの進化をたどる。一般物体認識から物体検出・セグメンテーション・姿勢推定まで、各カテゴリの代表モデルと技術を解説。モデル同士の構造的なつながりや技術的背景を踏まえ、因果関係をもとに体系的に理解を深めていく。
究極カンペの作り方についての問い合わせが増えている。G検定の評判を確認し、ネガティブな意見を問題提起として捉える。勉強のステージを定義し、語彙力と因果関係の把握が重要であることを説明。
フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と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...
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。変換を想定した式に変換。複素指数関数との積と積分、総和を経由すると元に関数に戻るというイメージが重要。
はじめに MATLAB,Python,Scilab,Julia比較するシリーズの第4章。 第3章では画像処理、座標変換の話がメインだった。 第4章は分類問題関連の話がメインとなる。基本的には以下の流れとなる。 形式ニューロン 決定境界線の安
分類問題を扱って第4章終了。 最も原始的なニューラルネットワークをやったことでディープラーニングの基礎部分は把握できたかもしれない。 次の章はこれから考える。
Adamだけで出てくる分類結果を確認。 四角形で分類する理想的な形状。 この分類結果になる場合は、誤差関数の値が一気に跳ね上がる時。 これにより大域最適解を引き当てやすくなる。
ニューラルネットワークの最適化アルゴリズムAdamをJuliaにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
ニューラルネットワークの最適化アルゴリズムAdamをScilabにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
ニューラルネットワークの最適化アルゴリズムAdamをPythonにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
ニューラルネットワークの最適化アルゴリズムAdamをMATLABにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
各最適化アルゴリズムの依存関係を記載。 1次の勾配で勢いをつけて、2次の勾配で抑制するというのが全体を通しての共通点。 Adamの更新式を実現するためのプログラムフローを記載。 学習率は0.001とかなり小さめの値に設定。 これにより収束は遅くなる。 かわりに特殊な最適解が得られるのでそれを確認する。
AdaDeltaについて説明。 RMSpropの拡張版に当たる。 最適化アルゴリズムAdamについて説明。 モーメンタムとRMSpropの合わせ技。 1次の勾配と、2次の勾配の指数移動平均を使用する。
もう一個試す予定の最適化アルゴリズムAdamへ至る系譜を説明予定。 AdaGradについて説明。 更新式をモーメンタムと比較。 RMSpropについて説明。 AdaGradの完了版であるため、AdaGradと更新式を比較。
Adamの更新式を実現するためのプログラムフローを記載。 モーメンタムの部分をAdamに差し替えただけ。 学習率は0.001とかなり小さめの値に設定。 これにより収束は遅くなる。 かわりに特殊な最適解が得られるのでそれを確認する。
各最適化アルゴリズムの依存関係を記載。 1次の勾配で勢いをつけて、2次の勾配で抑制するというのが全体を通しての共通点。 Adamが1次の勾配と2次の勾配を合わせたアルゴリズムとなる。
最適化アルゴリズムAdamについて説明。 モーメンタムとRMSpropの合わせ技。 1次の勾配と、2次の勾配の指数移動平均を使用する。
AdaDeltaについて説明。 RMSpropの拡張版に当たる。 学習率というハイパーパラメータ無しで動作する。 最終的な学習率は1近傍になるため振動しやすいらしい。
RMSpropについて説明。 AdaGradの完了版であるため、AdaGradと更新式を比較。 AdaGradでは2次の勾配の累積だったものが、2次の勾配の指数移動平均に。 これにより、極小値近辺やプラトーになっても更新を続けられる。
AdaGradについて説明。 更新式をモーメンタムと比較。 更新幅は、最初は大きく、徐々に小さくなり、最終的には学習が進まなくなる欠点を抱えている。
もう一個試す予定の最適化アルゴリズムへ至る系譜を説明予定。 プログラム化して試すのはAdamだが、それに至るアルゴリズムを数式レベルで確認。 Adam以降の最適化アルゴリズムもあるが、基本はAdamベースでクリッピングが入ってる感じ。
最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。 モーメンタムの方が学習の収束が早い。 勾配降下法で500エポックのところ100エポック。 モーメンタムの場合、初期のパラメータ移動が大き目。 これにより、大域最適化を見つける可能性が高くなる。
最適化アルゴリズム モーメンタムを用いて分類の学習をJuliaで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。