ソフトウェア設計における因果関係の明確化。条件分岐や状態遷移の数理的な記述。並列処理やバッチ処理の自然な導入。AIモデルとの構造的な共通性の理解。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
G検定法律問題対策【個人情報保護法、著作権法、特許法、不正競争防止法】
その他のG検定関連情報はこちらはじめに割と対策が難しいG検定の法律問題。普通にやると「暗記で対策」になるが、それではちょっと非効率だし、その後に使える知識になるかは疑問。暗記した記憶か、構造的に把握した知識のどちらを得るべきかと考えるとやは
【FFTへ】MATLAB、Pythonで株価予測 その8【至る道⑥】
フーリエ変換とフーリエ逆変換のもう一つのバリエーションである、数式対称性について。 3パターンある。 1/2πをどちらが持つかって違い。 1/√2πのように折半するパターンもある。 バリエーションを認識していないと異なるバリエーションの変換/逆変換の組み合わせを使用してしまい、元の波形に戻らない事故が発生する。
【FFTへ】MATLAB、Pythonで株価予測 その7【至る道⑤】
フーリエ変換とフーリエ逆変換のバリエーション自体もバリエーションがある。 角周波数表現と周波数表現によるバリエーション。 数式対称性によるバリエーション。 角周波数表現は前回&今回再掲したもの。 周波数表現は角周波数を単純に周波数の式を代入したもの。 角周波数は角速度のスカラー量。
【FFTへ】MATLAB、Pythonで株価予測 その6【至る道④】
フーリエの積分公式は「とある関数を畳み込み積分を経ても同じ関数に戻せる」と証明されているもの。 複素フーリエ級数、複素フーリエ係数で証明可能だが、ここでは省略。 フーリエの積分公式の一部をフーリエ変換と定義した。 フーリエ変換の式をフーリエの積分公式に戻すことで逆フーリエ変換の式が完成。
【FFTへ】MATLAB、Pythonで株価予測 その5【至る道③】
フーリエ変換、逆フーリエ変換の元ネタがフーリエの積分公式。 f(t)とf(x)は同じものだが、複素指数関数との畳み込み積分を経由しても等しい状態を作れることを示している。 複素指数関数はオイラーの公式より三角関数に展開可能。 畳み込み積分は三角関数とf(t)の内積を示しており、同一角周波数のみが取り出せる理屈。
【FFTへ】MATLAB、Pythonで株価予測 その4【至る道②】
逆フーリエ変換が正しいのかフーリエ逆変換が正しいのか。 どっちも正しいと思っておいた方が良さそう。 英単語の並びを重視するか、逆変換という日本語としての意味を重視するか。 フーリエ変換/逆変換はバンドパスフィルタ利用が有名。 フーリエ変換、逆フーリエ変換にバリエーションがある点に注意。
【FFTへ】MATLAB、Pythonで株価予測 その3【至る道①】
フーリエ変換について簡単に説明。 実際には逆フーリエ変換も含めないと全体像は見えない。 フーリエ変換自体は実用されてるツールなので、数学者と言うよりエンジニア側の領域 逆フーリエ変換を知らずにフーリエ変換だけの性質を見ると不透明な感じがして恐怖感が芽生えている可能性が高い。
【FFT】MATLAB、Pythonで株価予測 その2【導入編②】
業務でFFTを使っていても、FFTそのものが何か知らない人も多い。 見るべき、比較すべきデータが揃っていると割と知らなくても平気。 これ自体は標準化、過去データ利用の結果なので褒められるべき事象。 FFTを知るには最低限以下の知識が必要。 フーリエ変換、DFT、FFTとそれらの逆変換。
【FFT】MATLAB、Pythonで株価予測 その1【導入編①】
FFTで振動解析を行うことが多い。 自動車だと静粛性評価などが代表的。 株価も振動っぽいからFFTで解析できるかも? 周波数成分を見れることは間違いない。 ただし、そこから予測に至れるかは別問題。 ここでの話を鵜呑みにして株売買をしてもそれは自己責任。
Modelicaによるプラント設計。 それをFMUにして他のプラットフォーム(Python等)での再利用。 さらに制御器との様々な接続方法(ASAM XCP等)の事例を紹介していく話。 Modelica用ツールとしてはOpenModelicaを使用する。
【MDF】最小構成のMBD事例 第2章 その317【仮想HILS⑦】
仮想HILSにMDF生成を組み込んだものの動作確認実施 リアルタイム波形は30秒の範囲なので、比較用といしてその範囲で計測してMDF生成 リアルタイム波形をMDFを比較。 AsamMdf付属Viewer、CANapeと比較したところOK。 一応、今回が本シリーズ最終回(たぶん)
【MDF】最小構成のMBD事例 第2章 その316【仮想HILS⑥】
仮想HILSの改修済みコードを開示。 XCP等の通信周りへの影響は無し。 GUIがちゃんと配置されてることだけ確認。 ボタンGUIを増やしたので、スケールの表示位置の微調整を入れた。
【MDF】最小構成のMBD事例 第2章 その315【仮想HILS⑤】
計測データの取得場所はFMU処理をしているFMU_handler内が妥当。 描画用のデータもここで取ってる。 計測データ対象はFMUの戻りのデータ。 仮想HILSが描画しているデータと合わせておくと評価し易い。 追加コードは描画用データのdequeとほぼ一緒。 リスト、dequeのメソッド名が共通化している恩恵。
【MDF】最小構成のMBD事例 第2章 その314【仮想HILS④】
ボタン押下時にやることを確認。 MDFインスタンス生成。 各種シグナル生成。 各種シグナルをリストにまとめる。 MDFインスタンスに統合 MDFを生成。 各種シグナルとMDFインスタンスを再初期化。 上記を元にコードを書いてみた。 実際には動かしてみないとわからないが流れはOK。
【MDF】最小構成のMBD事例 第2章 その313【仮想HILS③】
Pythonのリストの宣言の仕方について簡単に説明。 空っぽのリストも宣言できる。 データ保持用のストレージの候補を列挙。 上記に合わせて空っぽのリストを事前に宣言。 本来であれば一時ファイルの方が望ましので、必要であればファイルアクセスに差し替える必要がある。
【MDF】最小構成のMBD事例 第2章 その312【仮想HILS②】
MDF生成をするためのimportを説明。 以前のMDF生成実験の時と一緒。 ボタンGUI追加方法説明。 以前のチェックボックス、スケールの時と似たような感じ。 スケールの時と同じくイベントハンドラを設定可能。 ボタン押下時のイベントに紐づいて呼び出されるメソッドを設定可能。
【MDF】最小構成のMBD事例 第2章 その311【仮想HILS①】
仮想HILS改修計画として以下を提示。 仮想HILS側にAsamMdfを組み込んでMDF出力機能の追加を示している。 少なくとも仮想HILSのみの修正になる。 任意のタイミングでMDFを生成するためGUI側の修正も必要。 収録データは一時ファイルにした方が良いが今回はメモリ上に蓄える。
【Viewer】最小構成のMBD事例 第2章 その310【CANape⑥】
value range to textの物理変換をCANapeで確認。 値の設定上、value to textと同じ感じになる。 なんだかんだでCANapeの方がAsamMdf付属Viewerより高度なことができる。 自動レポート機能もあったり。 次回から仮想HILSへAsamMdfを組み込む作業となる。
【Viewer】最小構成のMBD事例 第2章 その309【CANape⑤】
value to textの物理変換をCANapeで確認。 value to textの表現がAsamMdf付属Viewerと異なることが発覚。 MDF仕様としてはファイルフォーマットの規定だけなので表現方法の標準仕様は存在しない。 欧州ではツールが先に存在し、それらの共通項をASAM仕様にまとめただけと推測される。
【Viewer】最小構成のMBD事例 第2章 その308【CANape④】
tabular with rangeの物理変換をCANapeで確認。 階段状に変換されているのに加え、指定範囲外の値はdefault値になっていることを確認。 文字列へ変換するタイプの物理変換用にグラフィックウィンドウでの文字列表示のやり方をレクチャー。 次回からの文字列変換タイプにはこれを実施する。
【Viewer】最小構成のMBD事例 第2章 その307【CANape③】
tabular without interpolationをCANapeで確認。 実はECUではあまり見かけないタイプの物理変換。 tabular with interpolationをCANapeで確認。 これもECUではあまり見かけないタイプの物理変換だが、センサ値に対して使われることは多い。
【Viewer】最小構成のMBD事例 第2章 その306【CANape②】
Linearの物理変換を確認。 想定通り、y=2x-0.5になっている。 algebraicの物理変換を確認。 あまり使わないパターンなのでなんか新鮮。 CANapeのグラフィックウィンドウにはオートスケール機能がある。 「最適に合わせる」を選ぶか「F」キーを押す。
【Viewer】最小構成のMBD事例 第2章 その305【CANape①】
MDFを異なるツールで読み込めるのは標準仕様の真骨頂と言える。 CANapeへMDF内の信号取り込み方法を説明。 MDFを開いた段階で選択する方法とエクスプローラの測定からのドラッグ&ドロップの方法がある。 物理値、生値の切り替え方法を説明。 グラフィックウィンドウの設定から可能。
【Viewer】最小構成のMBD事例 第2章 その304【AsamMdf⑤】
value range to textを抱えた信号をAsamMdf付属Viewerで確認。 この後はCANapeで同様に各信号を確認していく予定。 CANapeで確認したことが無い物理値変換もある。 AsamMdf付属ViewerとPyQT5のVersion不整合が発生。 Version落として整合。
【Viewer】最小構成のMBD事例 第2章 その303【AsamMdf④】
AsamMdf付属Viewerで各信号を確認。 value to text確認。 plotでは確認できないので、Tabular表示で確認。 tabular with range確認。 狙い通り階段上になっている。 さらに、範囲外はdefault指定した-1になっている。
【Viewer】最小構成のMBD事例 第2章 その302【AsamMdf③】
AsamMdf付属Viewerで信号確認再開。 tabular without interpolationを確認。 tabular with interpolationを確認。 補間処理はViewer側で行っているため浮動小数点の演算誤差問題が絡む場合がある。 実際は気にするレベルではない。
【Viewer】最小構成のMBD事例 第2章 その301【AsamMdf②】
「同一Channelの複数表示」と「Channelの生値表示」のやり方を説明。 基本触りながら覚えて行った方が良い。 その他plot周りの基本操作を説明。 波形の拡大縮小、移動、スケール変更などの基本的操作。 上記の操作方法が分かっていればそれほど困ることは無い。
【Viewer】最小構成のMBD事例 第2章 その300【AsamMdf①】
AsamMdf付属Viewerで作成したMDFを確認していく。 まずはMDFを開くところ。 それっぽく表示されるのは確認。 Linear変換を細かく確認。 指定通りの線形変換がされている。 同一のChannelを複数表示する方法に加えて片方だけ生値表示する方法がある。 次回説明予定。
【Python】最小構成のMBD事例 第2章 その299【AsamMdf⑲】
MDFの残りの物理値変換式をMDF validatorで確認 tabular with range。 Lower、Upper、valueで1セットになるよに情報が埋まっている。 value range to text。 tabular with rangeの文字列変換型。 文字列も情報として埋まっている。
【Python】最小構成のMBD事例 第2章 その298【AsamMdf⑱】
今回もMDF Validatorで物理変換式を確認。 tabular without interpolationとtabular with interpolationはcc_typeが違うだけで保持している情報は一緒。 value to textはtabularのようなテーブル情報と変換先の文字列を格納している。
「ブログリーダー」を活用して、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で実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。