フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
MATLAB,Python,Scilab,Julia比較 その55【状態空間モデル⑬】
バックナンバーはこちら。はじめに前回から、運動方程式を元に、ブロック図を作成上記ブロック図の離散化上記を元に漸化式導出漸化式まで出てるとCコード化が可能になる。このCコードを今回確認する。登場人物博識フクロウのフクさんイラストACにて公開の
MATLAB,Python,Scilab,Julia比較 その54【状態空間モデル⑫】
バックナンバーはこちら。はじめに前回から、状態空間モデルの掘り下げの話に突入。まずは状態空間モデルを使用しないパターンをやってみる。漸化式は前回出したので、ブロック図、C言語化にチャレンジ。登場人物博識フクロウのフクさんイラストACにて公開
MATLAB,Python,Scilab,Julia比較 その53【状態空間モデル⑪】
バックナンバーはこちら。はじめに前回はまでで、各ツール、各言語による状態空間モデルのシミュレーションを実施した。シミュレーションできたので、これはこれでOKなのだが、元々、本シリーズはベクトル、行列を駆使してなんとかする動機で始まっている。
Juliaで状態空間モデルをシミュレーション。 Pythonと同じくMATLAB Control System Toolboxの仕様を踏襲したControlSystemsパッケージを使用。 結局はMATLAB Control System Toolboxの仕様がデファクトスタンダード感がある。
【入門】Scilab状態空間モデル(運動方程式)【数値計算】
Scilabで状態空間モデルのシミュレーションをするにはsyslinとcsim関数を使用する。 MATLABに寄せてるかと思いきや、この分野はかなり異なる仕様になっている。 今回の状態空間モデルに限定するとたまたま流れが似ていただけ。
【入門】Python状態空間モデル(運動方程式)【数値計算】
Pythonで状態空間モデルを扱うには、controlライブラリのmatlabモジュールが必要。 仕様的にはMATLABのControl System Toolboxを踏襲している。 ss関数に各行列を渡し、システムオブジェクトを取得。 lsimに入力のstep信号をシステムオブジェクトを渡してシミュレーション。
MATLAB,Python,Scilab,Julia比較 その52【状態空間モデル⑩】
Juliaで状態空間モデルをシミュレーション。 Pythonと同じくMATLAB Control System Toolboxの仕様を踏襲したControlSystemsパッケージを使用。 他のツール、言語と同じ結果が得られた。
MATLAB,Python,Scilab,Julia比較 その51【状態空間モデル⑨】
Scilabで状態空間モデルのシミュレーションをするにはsyslinとcsim関数を使用する。 MATLABに寄せてるかと思いきや、この分野はかなり異なる仕様になっている。 想定通りのシミュレーション結果を得られた。
MATLAB,Python,Scilab,Julia比較 その50【状態空間モデル⑧】
Pythonで状態空間モデルを扱うには、controlライブラリのmatlabモジュールが必要。 仕様的にはMATLABのControl System Toolboxを踏襲している。 ss関数に各行列を渡し、システムオブジェクトを取得。 lsimに入力のstep信号をシステムオブジェクトを渡してシミュレーション。
MATLAB,Python,Scilab,Julia比較 その49【状態空間モデル⑦】
バックナンバーはこちら。はじめに前回は、状態空間モデルをシミュレーションする上で必要な情報を整理。各ツール、各言語で実際に試してみる。※ ただし、MATLABはControl System Toolboxが手元に無いので、Simulinkの
状態空間モデルに苦手意識持ってる人向けに超シンプルな微分方程式に対して適用して見た。 ニュートンの運動方程式を採用。 状態量が求まる微分方程式を作成すると、それを状態方程式として表現できる。 参照したい状態量を出力行列で設定できる。
MATLAB,Python,Scilab,Julia比較 その48【状態空間モデル⑥】
状態空間モデルを確認するにはシミュレーションしてみるしかない。 まじめにシミュレーションしようと思うとベクトル、行列に対する微分を解決する必要がある。 (これもやる予定だが後で) 各ツール、各言語で状態空間モデルが扱えそうなので、それらで動かしてみる。 ただし、MATLABに関してはSimulinkの状態空間モデルブロックで実施予定。
MATLAB,Python,Scilab,Julia比較 その47【状態空間モデル⑤】
状態方程式、出力方程式を組み上げた。 状態方程式は前回の運動方程式から導出した微分方程式を元に作成。 出力方程式は参照したい状態量に合わせて出力行列Bを調整するのみ。
MATLAB,Python,Scilab,Julia比較 その46【状態空間モデル④】
まずは状態量を定義。 速度、距離を状態量とした。 運動方程式を紐解く。 距離、速度、加速度の関係性が微分を吸収する。 状態量の内訳である速度、距離の方程式が求まったところ。
MATLAB,Python,Scilab,Julia比較 その45【状態空間モデル③】
状態空間モデルの各要素は分かれど使い方はわからない。 使い方を見てもよくわからない。 よって、超シンプルな微分方程式を対象に状態空間モデルを作ってみる。 ニュートンの運動方程式を対象とする。
MATLAB,Python,Scilab,Julia比較 その44【状態空間モデル②】
状態空間モデルの数式について説明。 方程式。 状態方程式と出力方程式。 変数。 状態量、入力量、出力量 パラメータ。 状態行列、入力行列、出力行列、直達行列。 各呼び名が揺れるのは使用する領域が広く、観点が異なるため?
MATLAB,Python,Scilab,Julia比較 その43【状態空間モデル①】
状態空間モデルの話に突入予定。 その前に微分の記法について疑問点浮上。 微分記法は以下がある。 ライプニッツ記法。 ラグランジュ記法。 オイラー記法。 ニュートン記法。 状態空間モデルではニュートン記法が一般的。 暗黙的に時間微分であることがわかるため。
JuliaはPlotsかPyPlotで波形表示。 PyPlotsはmatplotlibのラッパーらしく、使い勝手が他の環境と似ている。 PyPlotsの描画パラメータは個別に指定する必要あり。 基本的にはMATLABに寄せている。
MATLAB,Python,Scilab,Julia比較 その42【波形表示方法④】
JuliaはPlotsかPyPlotで波形表示。 PyPlotsはmatplotlibのラッパーらしく、使い勝手が他の環境と似ている。 PyPlotsの描画パラメータは個別に指定する必要あり。
MATLAB,Python,Scilab,Julia比較 その41【波形表示方法③】
Scilabの波形表示はMATLABと同一。 特殊なグラフ表示は乖離する可能性が高いが、そこまで複雑使い方はしない予定。
MATLAB,Python,Scilab,Julia比較 その40【波形表示方法②】
pythonで波形表示する場合はmatplotlibを使用する。 matplotlibはMATLAB仕様に合わせこんでくれている。 マーカに関しては、MATLABにはない指定子もある。
MATLAB,Python,Scilab,Julia比較 その39【波形表示方法①】
ユーザ関数定義に引き続き、波形表示も人間向け機能。 MATLABによる波形表示を確認。 plotで表示。 hold onで同一グラフに表示させる設定が可能。 subplotでグラフ分割。 ラインスタイル、色、マーカの指定が可能。
雰囲気はPythonに似ている。 関数を定義した段階でJITコンパイルが走る。 対話モード、スクリプトで定義する方法があるが、考え方は一緒。
MATLAB,Python,Scilab,Julia比較 その38【ユーザ関数④】
Juliaの場合の場合のユーザ関数作成方法について実施。 基本的にはPythonに似ている。 2変数以上を戻す場合は、明示的にreturn文を使用する必要がある。 他のファイルで関数を定義している場合はinclude文を使用する。 C言語のincludeに似ている。
MATLAB,Python,Scilab,Julia比較 その37【ユーザ関数③】
Scilabの場合のユーザ関数作成方法について。 MATLABと似ていると思いきや、全く異なる仕組みっぽい。 スクリプトに記載したとしても、明示的にワークスペースに関数を展開する必要がある。 仕組みは異なるが、関数として展開してしまえば使い方は一緒と言える。
MATLAB,Python,Scilab,Julia比較 その36【ユーザ関数②】
Pythonの場合のユーザ関数作成方法。 対話モードで作成する場合とスクリプトファイル上で作成する場合がある。 が、実際は対話モード時のルールが共通で適用されてるだけ。 他のスクリプトファイルで定義した場合はimportを使用。 エイリアスで名称変更可能。
MATLAB,Python,Scilab,Julia比較 その35【ユーザ関数①】
ベクトル、行列から離れて、少しプログラミングより話にシフト。 各ツール、各言語でユーザ関数の作成方法を確認する。 MATLABは関数名と同名のmスクリプトファイル名にする必要あり。
ほぼMATLABと一緒。 以下が異なる。 配列添え字のカッコが丸カッコじゃなくて角カッコな点。 flipdimは使えなくて、代わりにreverseという関数を使用する点。 以前はflipdimは存在していたようだが、現在では無くなってる。
MATLAB,Python,Scilab,Julia比較 その34【行列演算⑰】
Juliaで基本的な行列演算を実施。 大体MATLABと一緒だが、以下の違いがある。 配列添え字のカッコが丸カッコじゃなくて角カッコ。 flipdimは使えなくて、代わりにreverseという関数を使用する。 以前はflipdimは存在していたようだが、現在では無くなってる。
「ブログリーダー」を活用して、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ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。