フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
MATLAB,Python,Scilab,Julia比較 その6【行列①】
そもそも行列の存在意義に疑問が・・・。 分かり易い存在意義としては連立方程式がわかりやすい。 行列を使うとルールベースで解くことが可能。 ここらへんについては次回説明予定。
MATLAB,Python,Scilab,Julia比較 その5【概要編⑤】
ぶっちゃけJuliaについては良く知らない。 Wikipadiaに活躍してもらって引用しまくり。 最大の特徴はJITコンパイル。 これにより、複数回の実行に関しては類似言語/ツールからみたら最速になり得る。 というわけでJuliaに関しては逐次調べながらの試しながらで進める。
MATLAB,Python,Scilab,Julia比較 その4【概要編④】
ScilabはMTALAB/Simulinkと比較されることが多い。 理由は、xcosというグラフィカルツールにてブロック線図を書けるツールの存在。 互換性は全く無いが、Simulinkっぽいツール。 MATLAB/Simulinkを自宅で使えない場合に使ってる人は多かったのでは?
MATLAB,Python,Scilab,Julia比較 その3【概要編③】
Pythonの概要。 PythonというかNumpyがベクトル、行列に強い。 for文で回すよりベクトル、行列として演算させた方が圧倒的に速くなることは多い。 Python自体は無料と思って良いが、パッケージ別にライセンスが規定されてるので要注意。
ディープラーニング初期のCNN系列の有名どころは今でも論文に登場することは多い。 CNN、RNN、AutoEncoderあたりは基本的なモデルなので特性を覚えておいた方が良い。 強化学習周りは用語が多いので少し異なる対策が必要かも。
教師あり学習の分類と回帰、教師なし学習のクラスタリングのカテゴリ分けとおれぞれの性質は把握しておいた方が良い。 ディープラーニングの発展の歴史に半導体技術発展、フレームワークの存在がある。 機械学習の学習時の手順や課題を把握する必要がある。
G検定対策のまとめ記事はこちら。はじめに知人からの、「JDLAで公開されてるG検定の例題って結局答え何になんの?」という問いが発端で試しに解いてみた。という感じ。あまり気にしてい無かった、地味に良問多くね?結構悩まされたし、割と良いポイント
MATLAB,Python,Scilab,Julia比較 その2【概要編②】
まずはMATLABの概要説明。 自動車業界だとおなじみのツール。 価格はお高め。 homeライセンスというのもあり、こちらはかなりお安い。 ただし、coder系は含まれていない。
MATLAB,Python,Scilab,Julia比較 その1【概要編①】
ベクトル、行列良く分からん。 単なる表現ルールではあるが、そのルールがわからん。 学生時代は大量の手計算をさせられた記憶がフラッシュバック。 今の時代はツール使えば計算は一撃。 MATLAB,Python,Scilab,Julia並行でいろいろやるプランを考える。
MATLAB、Pythonを使って株価予測を使用と考えるシリーズ。 と言っても基本的にはフーリエ変換が中心のネタとなる。 FFT/IFFTで分析し、さらに詳細に分析するために元々のフーリエ変換、逆フーリエ変換の数式ベースで解析も。
【振り返り】MATLAB、Pythonで株価予測 その88【まとめ】
本シリーズの振り返り実施。 FFTの理屈からスタートし、VTI、個別株を分析。 最後はガチのフーリエ変換をプログラム化。 感想とか。 どうしても予測にはならないが目安にはなりそう。 疑似的な売買経験にはなったかも。
【収支】MATLAB、Pythonで株価予測 その87【再シミュレーション②】
収支シミュレーションを実施。 結果としては、一応微増。 想定通りな結果ではある。 微増したものもきっとたまたま。 タイミングのズレが上振れになるか下振れになるかは神のみぞ知る。
【収支】MATLAB、Pythonで株価予測 その86【再シミュレーション①】
再度、収支シミュレーションを開始。 条件は前回と同じ。 売買手数料は0円想定。 税金は利益の20%。 売買単位は100株。 買付余力は75万円。 特性が大きく変わったわけではないので、結果も多いな変化はない可能性が高い。
【連続系】MATLAB、Pythonで株価予測 その85【フーリエ変換㉒】
個別株チャート 8.4[Hz]から11.8[Hz]を抽出した上での極値特定 Python(Numpy)版 動作確認。 波形、極大値、極小値すべてOK。 念のためMATLABの出力とも比較し、一致していることを確認。
【振り返り】ブログ開設二年半記念記事【技術ブログのPV数と収益】
はじめに2022年7月17日。本日、ブログ開設してから二年半。恒例の半年間の振り返りをします、過去の振り返り記事たちはこちら。半年記念一周年記念一年半記念ニ周年記念テンプレ化したの目次。これに合わせて振り返りをしま...
【連続系】MATLAB、Pythonで株価予測 その84【フーリエ変換㉑】
個別株チャート 8.4[Hz]から11.8[Hz]を抽出した上での極値特定 Python(Numpy)版を作成。 過去コードを元にコピペ&結合。 実験コードであっても、先にロードマップを決めておくと、コード構成が決め易い。 これにより、トータルでは楽ができるコード構成にすることも可能。
【連続系】MATLAB、Pythonで株価予測 その83【フーリエ変換⑳】
個別株チャート 8.4[Hz]から11.8[Hz]を抽出した上での極値特定 MATLAB版 動作確認実施。 波形出力OK。 極大値、極小値特定波形の確認OK。 極大値、極小値のコマンドウィンドウ出力OK。 あとはこれのPython側をやる。(メンドクサイ)
【連続系】MATLAB、Pythonで株価予測 その82【フーリエ変換⑲】
個別株チャート 8.4[Hz]から11.8[Hz]を抽出した上での極値特定 MATLAB版を作成。 基本、FFT,IFFTで極値特定のロジックをコピペ。 ただし、コード内のどこで何をやってるか分かって無いとコピペもできない。 コードの難易度はコード量よりデータ規模の方に相関性がある。
【連続系】MATLAB、Pythonで株価予測 その81【フーリエ変換⑱】
Python(Numpy)版フーリエ変換、逆フーリエ変換を個別株チャートに対して実施。 ほぼほぼ消化試合で問題無く動作。 消化試合的に扱えたのは、細かく刻んで動確してきたおかげとも言える。 このショボい規模プログラムでも事故るときは事故る。
【連続系】MATLAB、Pythonで株価予測 その81【フーリエ変換⑱】
Python(Numpy)版フーリエ変換、逆フーリエ変換を個別株チャートに対して実施。 ほぼほぼ消化試合で問題無く動作。 消化試合的に扱えたのは、細かく刻んで動確してきたおかげとも言える。 このショボい規模プログラムでも事故るときは事故る。
【連続系】MATLAB、Pythonで株価予測 その80【フーリエ変換⑰】
Python(Numpy)版の個別株チャートに対しするフーリエ変換、逆フーリエ変換のコードにするための修正。 csv読み取り部分を追加。 列ベクトルで取得されるのでベクトルに変換。 MATLABとPythonのベクトル周りがいろいろクセが違うのでだんだん嫌になってきた。
【連続系】MATLAB、Pythonで株価予測 その79【フーリエ変換⑯】
MATLAB版フーリエ変換、逆フーリエ変換を個別株チャートに対して実施。 DFT、FFTと同等の分解能で実施。 逆フーリエ変換で元波形に戻った。 最大周波数を落として分解能を上げてみた。 逆フーリエ変換で元波形には戻らない。 高周波分を捨てているため発生。 元に戻ることは先の処理で証明しているので問題無し。
【連続系】MATLAB、Pythonで株価予測 その78【フーリエ変換⑮】
今後の予定について検討。 個別株の波形に対して以下を実施。 フーリエ変換後の逆フーリエ変換をして元波形に戻るか。 抽出したい周波数範囲を特定。 極大値、極小値のタイミングとその時の単価特定。 MATLABの場合、行ベクトルをデフォルトとした方が利便性が高い。
【連続系】MATLAB、Pythonで株価予測 その77【フーリエ変換⑭】
MATLABとPython(Numpy)のフーリエ変換、逆フーリエ変換for文無し版の動作確認を実施。 共に問題無く動作。 FFTと比べると演算回数の差で速度を犠牲にはしている。 回転因子を書き出して演算構造を見れば高速化は可能かもしれないが、ここではそこまでは頑張らない。
【連続系】MATLAB、Pythonで株価予測 その76【フーリエ変換⑬】
Python(Numpy)によるフーリエ変換、逆フーリエ変換for文無し版を作成。 基本的な流れはMATLABと一緒。 しかし、行ベクトル生成用の変数を追加している。 最初からベクトルでも良いが、plotで使用する際に添え字が増えてMATLABコードと乖離し易くなるデメリットあり。
【連続系】MATLAB、Pythonで株価予測 その75【フーリエ変換⑫】
Python(Numpy)で直積は可能か確認。 結果としては可能。 明示的に行ベクトル、列ベクトルにしないと直積は不可。 ベクトル(数列)から行ベクトル、列ベクトルにするにはnp.mat、np.reshapeを使用する。 行と列が異なる場合の積は直積になるっぽい。(よくわからん)
【連続系】MATLAB、Pythonで株価予測 その74【フーリエ変換⑪】
前回のコード上で数式上の行列にあたる部分が見当たらない。 列ベクトルと行ベクトルによる直積を行って行列を生成している。 直積は九九の表をイメージすると分かり易いかも。 Python(Numpy)で同様のことができるかは不明。 よって、先に直積相当のことができる確認した方が吉。
【連続系】MATLAB、Pythonで株価予測 その73【フーリエ変換⑩】
バックナンバーはこちら。はじめに前回は、フーリエ変換、逆フーリエ変換(Python版)の動作確認実施。期待通りの結果は得られた。その時に出てきた疑問としてfor文無し(ベクトル演算を行列演算)でMATLAB、Python(Numpy)双方で
【連続系】MATLAB、Pythonで株価予測 その71【フーリエ変換⑧】
フーリエ変換、逆フーリエ変換のPython(Numpy)版のコードを作成。 基本的にはMATLABと一緒。 というか、MATLABに寄せた。 内積の演算子は「@」。 「*」だとアダマール積になり、結果が全く異なる。
【連続系】MATLAB、Pythonで株価予測 その70【フーリエ変換⑦】
フーリエ変換、逆フーリエ変換のMATLABコードを動作させてみた。 まずはFFTと同等の整数倍の周波数特性。 最大周波数を調整すると細かい周波数特性が取れる。 FFTよりも処理負荷が大きい演算になる。 今回扱う株価予測のデータ数程度であれば問題にはならない。
【連続系】MATLAB、Pythonで株価予測 その69【フーリエ変換⑥】
フーリエ変換、逆フーリエ変換のMATLABコードを作成してきた。 変換する波形はシンプルなものにする。 sin(x)+sin(3x)+sin(7x)。 数式上でΣ、内積で表現できればプログラム化は容易。 Σはfor文になるが、MATLABの場合、条件がそろっていればfor文すらも不要。
「ブログリーダー」を活用して、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ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。