フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
MATLAB,Python,Scilab,Julia比較 その33【行列演算⑯】
Scilabで基本的な行列演算実施。 基本的にはMATLABと同一。 ただし、要素終端がendではなく「$」である点に注意が必要。
MATLAB,Python,Scilab,Julia比較 その32【行列演算⑮】
Python(Numpy)での基本的な行列演算を確認。 内積は「@」 「*」だとアダマール積になるので注意 それ以外にも0オリジンだったり、終端指定が-1だったりとクセが違う。 右除算もできるように見せかけて、実は逆行列とのアダマール積なので目的としたものとは異なる。
MATLAB,Python,Scilab,Julia比較 その31【行列演算⑭】
具体的に各ツール、各言語での行列演算についての話に突入。 四則演算に加えて、アダマール積、べき乗、転置、反転。 まずは手馴れたMATLABから。
内積はベクトル表記と成分表記の公式がある。 成分表記の内積は余弦定理から求められる。 行列は方程式の係数部をまとめたもの。 行列演算は入力ベクトル、変換行列、出力ベクトルが基本形。 入力、出力をnセットに拡張すると列ベクトルがnセット分の列が増えの行列になる。
MATLAB,Python,Scilab,Julia比較 その30【行列演算⑬】
前回の行列演算の式を再掲。 前回は入力、出力の列ベクトルを2セットだったが、これをnセットにするとどうなるか。 入力、出力が2x2行列からnx2行列へ。 これの利点は入力から出力の変換が一括で表現できること。 これを知ってるだけでコミュニケーションスキルが上がる?
MATLAB,Python,Scilab,Julia比較 その29【行列演算⑫】
連立方程式を行列演算にしたものを再掲。 上記の構成は[出力ベクトル]=[変換行列][入力ベクトル]となる。 これの入力、出力を列ベクトル2セットにすると2x2の行列になる。 すべて2x2行列になるが、数式上の位置によって、入力、変換、出力と意味が異なる。 このルールをすっ飛ばしてる行列嫌いになるかも?
MATLAB,Python,Scilab,Julia比較 その28【行列演算⑪】
二元一次方程式を書き出す。 上記をベクトルの内積で表現し直す。 さらに上記を行列で表現し直す。 まずはこれが最もシンプルな行列の性質を示している。
MATLAB,Python,Scilab,Julia比較 その27【行列演算⑩】
ベクトル内積の公式を再掲。 ベクトルの内積で方程式を表現できる。 n次方程式、多変数方程式でも考え方は一緒。
MATLAB,Python,Scilab,Julia比較 その26【行列演算⑨】
バックナンバーはこちら。はじめに前回は、余弦定理の証明。任意の三角形を2つの直角三角形にすることで各辺を三角関数して表現可能。これに加えて、三角比の基本公式を加えると、余弦定理が求まる。今回は、この余弦定理を使って、内積をベクトル成分に用い
MATLAB,Python,Scilab,Julia比較 その25【行列演算⑧】
余弦定理を何とか証明。 垂直線を使って2つの直角三角形を作ることで各辺を三角関数を使用した表現が可能。 三角比の基本公式を加えると、余弦定理が求まる。 基本公式は三平方の定理と半径1の円起動の点と原点をを元に作った直角三角形から求まる。
MATLAB,Python,Scilab,Julia比較 その24【行列演算⑦】
内積の定義を確認。 内積は単なる計算方法であり、内積そのものにに意味はない。 ただし、特性のようなものはある。 内積の分かり易い特性としては相関性。 類似度とも言われ、特に内積を利用したものをcos類似度と呼ばれる。 基本的な計算であるが故に畳み込み積分、類似成分抽出、方程式などに利用される。
MATLAB,Python,Scilab,Julia比較 その23【行列演算⑥】
やっぱり線形代数の基礎はやっておく。 割とすぐに詰む可能性があるから。 説明手順をとりあえず決めた。 行列の内積の公式の再確認。 方程式と内積。 連立方程式と行列。 行列によるベクトル変換。 行列によるベクトル群変換。 行列の内積の公式の再確認。 一旦忘れてOK。
MATLAB、Python、Scilab、Juia比較ページはこちらはじめにMATLAB,Python,Scilab,Julia比較に於ける、以下を元に書き直したもの。MATLAB,Python,Scilab,Julia比較 その18【行列
MATLAB,Python,Scilab,Julia比較 その22【行列演算⑤】
行列の転置について説明。 転置自体は、行列の行と列を入れ替えるだけの話。 具体的な利用シーンというのは特になく、計算都合で使うことがほとんど。 良く使う処理なので、名前が付いていた方が利便性が良いという考え方が妥当そう。
MATLAB,Python,Scilab,Julia比較 その21【行列演算④】
行列の除算について。 行列は原則的に除算は存在しないが、「逆行列を掛ける」がそれに該当する。 さらに行列の積は結合法則はあれど、交換法則はない。 上記に伴い、左除算、右除算と言う概念が出てくる。 逆行列の位置が変わる。 数式上ではあまり出て来ないが、各ツール、言語がサポートしていることが多い。
MATLAB,Python,Scilab,Julia比較 その20【行列演算③】
今回はアダマール積について。 演算子がいろいろあり、アダマール積かどうかは文脈で読み解くしかない。 しかし、特殊な状況でしか登場しないので、そういうものがあるという程度で留めておいてもよいかも。 画像処理の畳み込みで出てくることは多い。
MATLAB,Python,Scilab,Julia比較 その19【行列演算②】
行列の乗算(内積)について説明。 上記はなぜそのような演算になるか不明(太郎くん談)。 これを理解するには線形代数の基礎部分を理解する必要がある。 線形代数すべてを説明するとなると大変だが、基礎部分を可能な限り簡単に説明予定。
MATLAB,Python,Scilab,Julia比較 その18【行列演算①】
代表的な行列演算を列挙。 基本的な四則演算に加えて、アダマール積、べき乗、転置。 まずは加算、減算。 各要素単位で加算、減算すればOK。 当然、「次元を一致させる」必要がある。
MATLAB、Python、Scilab、Juia比較ページはこちらはじめにMATLAB,Python,Scilab,Julia比較に於ける、以下を元に書き直したもの。MATLAB,Python,Scilab,Julia比較 その13【基本
MATLAB,Python,Scilab,Julia比較 その17【基本的な使い方⑦】
Juliaでスライシングを実施。 基本的にはMATLABと似た感じ。 ただし、配列添え字用のカッコが違う。 あと、スライシングの結果、ベクトルとなった場合は列ベクトルになる。 行列としてスライシングした場合は、元の行と列の関係は維持される。
MATLAB,Python,Scilab,Julia比較 その16【基本的な使い方⑥】
Python(Numpy)でスライシングを実施。 0オリジンのためMATLABと設定する数値が異なる。 加えて、区間演算子の終端は範囲に指定範囲には含まれない点に注意。 Scilabでスライシング。 MATLABと同一。
MATLAB,Python,Scilab,Julia比較 その15【基本的な使い方⑤】
基本的な使い方の続きとしてスライシングについて。 特定の要素、特定範囲を抽出可能。 区間演算子start:step:endを元に範囲抽出するが、step=1なことがほとんどなので、stepを省略したstart:endの書き方になることが多い。
MATLAB,Python,Scilab,Julia比較 その14【基本的な使い方④】
Juliaの基本的な使い方。 Juliaは列ベクトルがデフォルト。 MATLAB、Scilabは行ベクトルがデフォルトであるため、扱いに気を付ける必要がある。 列ベクトルがデフォルトになっている理由としては、数式との一致性を考慮した結果と推測される。
MATLAB,Python,Scilab,Julia比較 その13【基本的な使い方③】
Juliaの基本的な使い方・・・の前にいろいろクセが違うのでそれの調査。 start:step:endの形式(区間演算子)で等差数列を表現できるが、この状態ではメモリ上に実態を持っていない。 よって、読み出しはできるが、書き込みはできない。 区間演算子に実態を持たせるにはVectorに渡すことで解決。
MATLAB,Python,Scilab,Julia比較 その12【基本的な使い方②】
Python(Numpy)とScilabの基本的な使い方。 Python(Numpy)は以前から使っている物なので手馴れたもん。 ScilabはMATLABと同一の記載方法でいける。 ただし、コメントアウトが「%」じゃなくて「//」 ここも一緒だと楽だったが・・・。
MATLAB,Python,Scilab,Julia比較 その11【基本的な使い方①】
各ツール、言語の基本的な使い方として以下をやってみる。 単純なスカラー計算。 ベクトルの定義。 等差数列の作成。 行列の定義。 まずは手馴れたMATLABで実施。
簡単に行列の存在意義を説明。 当然、連立方程式以外にも利用シーンは多数あるが、まずはシンプルなもので。 逆行列は掃き出し法で求められる。 ただし、ツール、言語側で逆行列を求めれる機能が入っていることが多いので自身で計算することは少ない。 連立方程式は複数の関数の交点を求めている。
MATLAB,Python,Scilab,Julia比較 その10【行列⑤】
連立方程式を解くということは複数の関数の交点を求めるということ。 行列はそれを一撃で解ける。 ためしにMATLABで算出したら一撃。 移動体の予測線を関数と見なすと、交点を求める重要性がわかりやすいかも?
MATLAB,Python,Scilab,Julia比較 その9【行列④】
逆行列は掃き出し法にて求めることができる。 実際に掃き出し法を実施。 前回使用した逆行列が求まった。 MATLAB、Python(Numpy)、Scilab、Juliaでは逆行列を求める機能があるので、直に計算することはない・・・想定。
MATLAB,Python,Scilab,Julia比較 その8【行列③】
行列で連立方程式を解いてみた。 両辺を行列で割る・・・のがだが、行列は除算が無く、逆行列を掛けるで除算を実現する。 逆行列は掃き出し法と呼ばれる方法で求めるが、ここでは公式を使用。 結果として、答えが求まった。 特徴としてはルールが明確なためプログラム化し易いという点。
MATLAB,Python,Scilab,Julia比較 その7【行列②】
とりあえず連立方程式を普通に解いてみた。 しかし、そのプロセスをプログラム化するのは超難解。 つまり、行列を使うとこの超難解な状態から脱することができる。 今回は、連立方程式を行列で表現するとどうなるか。ってところまで。
「ブログリーダー」を活用して、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ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。