MATLAB,Python,Scilab,Julia比較するシリーズの第4章。 第4章では分類問題で最終的にはニューラルネットワークや最適化アルゴリズムの話だった。 第5章はフーリエ解析学から高速フーリエの話がメインとなる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
MATLAB,Python,Scilab,Julia比較 第5章【バックナンバー】
MATLAB,Python,Scilab,Julia比較するシリーズの第4章。 第4章では分類問題で最終的にはニューラルネットワークや最適化アルゴリズムの話だった。 第5章はフーリエ解析学から高速フーリエの話がメインとなる。
三角関数の加法定理を確認。 偶関数、奇関数を利用すると、βにマイナス符号が付いた加法定理の式も導出できる。
前回までの数式パズルの力業的解法と関数の内積はほぼ同一の考え方。 関数を無限次元ベクトルを解釈すると、関数の内積は関数の積の定積分として表現される。
JDLA G検定 2021年版、2024年版シラバスを比較してみた
はじめに G検定2024年#6(2024年11月8日(金)、9日(土)実施)から新シラバスに代わるらしい。それまでのシラバスを2021年版とし、新シラバスを2024年版として比較してみた。 シラバスの入手は以下から。 G検定まとめページ ま
MATLAB,Python,Scilab,Julia比較 第5章 その32【三角関数の直交性⑦】
三角関数の直交性のまとめ。 各種式を確認。 直交性具合をアニメーションで確認。 三角関数の畳み込みをプログラムでやっている予定。
MATLAB,Python,Scilab,Julia比較 第5章 その31【三角関数の直交性⑥】
m=nの時のcos関数の内積を求める。 分母が0になるため、極限値を利用する。 結果としてはπになる。 つまり、同じ角周波数のcos同士の内積は必ずπになる。
MATLAB,Python,Scilab,Julia比較 第5章 その30【三角関数の直交性⑤】
cos関数同士の直交性を確認。 cos同士の積和公式の定積分を元に解いていく。 最終的にはsinが0になるので、内積の結果も0となる。 結果としてcos関数同士は直交していることになる。
MATLAB,Python,Scilab,Julia比較 第5章 その29【三角関数の直交性④】
m=nの時のsin関数の内積を求める。 分母が0になるため、極限値を利用する。 結果としてはπになる。 つまり、同じ角周波数のsin同士の内積は必ずπになる。
MATLAB,Python,Scilab,Julia比較 第5章 その28【三角関数の直交性③】
sin関数同士の直交性を確認。 sin同士の積和公式の定積分を元に解いていく。 最終的にはsinが0になるので、内積の結果も0となる。 結果としてsin関数同士は直交していることになる。
MATLAB,Python,Scilab,Julia比較 第5章 その27【三角関数の直交性②】
sinとcosの内積と畳み込み積分を考える。 奇関数、偶関数の特性より、sin、cosの畳み込み積分は0となる。 畳み込み積分が0ということは内積も0になる。 内積が0ということは直交しているということになる。
MATLAB,Python,Scilab,Julia比較 第5章 その26【三角関数の直交性①】
直交性とは2つのベクトルが垂直に交わることを指す。 直交しているベクトルの内積は必ず0になる。 cos関数の影響。 成分表記の内積でも0になることを確認。
MATLAB,Python,Scilab,Julia比較 第5章 その25【重要な極限値③】
はさみうちの原理について説明。 sinc関数について説明&MATLABでプロットしてみた。(Pythonコードも)
MATLAB,Python,Scilab,Julia比較 第5章 その24【重要な極限値②】
円に接する三角形と扇形の面積の不等式を最適化。 いろいろ弄っていくと、はさみうちの原理により1が求められる。
MATLAB,Python,Scilab,Julia比較 第5章 その23【重要な極限値①】
重要な極限値について説明。 sin(x)/xのxを0に近づける極限値。 まずは円に接する三角形と扇形に着目する。 これが先ほどの極限値にどうつながるかは次回。
MATLAB,Python,Scilab,Julia比較 第5章 その22【三角関数積和公式②】
sin,sinの積和公式を導出。 積和公式をフーリエ係数に向けて変形。 α,βをαx,βxにするだけ。
MATLAB,Python,Scilab,Julia比較 第5章 その21【三角関数積和公式①】
三角関数の加法定理の組み合わせで積和公式が導出できる。 sin,cosの積和公式とcos,cosの積和公式を導出してみた。
MATLAB,Python,Scilab,Julia比較 第5章 その20【三角関数加法定理】
三角関数の加法定理を確認。 偶関数、奇関数を利用すると、βにマイナス符号が付いた加法定理の式も導出できる。
MATLAB,Python,Scilab,Julia比較 第5章 その19【関数の内積】
前回までの数式パズルの力業的解法と関数の内積はほぼ同一の考え方。 関数を無限次元ベクトルを解釈すると、関数の内積は関数の積の定積分として表現される。
複雑な定積分をJuliaで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
複雑な定積分をScilabで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
複雑な定積分をPythonで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
複雑な定積分をMATLABで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
MATLAB,Python,Scilab,Julia比較 第5章 その18【複雑な定積分⑧】
複雑な定積分をJuliaで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
MATLAB,Python,Scilab,Julia比較 第5章 その17【複雑な定積分⑦】
複雑な定積分をScilabで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
MATLAB,Python,Scilab,Julia比較 第5章 その16【複雑な定積分⑥】
複雑な定積分をPythonで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
MATLAB,Python,Scilab,Julia比較 第5章 その15【複雑な定積分⑤】
複雑な定積分をMATLABで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
複雑な関数も無限次元ベクトルと見なすと力業で解くことが可能。 複雑な定積分を無限次元ベクトルとして表現。 これをプログラムとして解いていく。
前回の数学パズルを真面目に解いてみる。 まずは平方根の関数の正体を探る。 偶関数、奇関数の特性を利用しまくって定積分を最適化しまくる。 ほとんどが0に消えて、半円の方程式だけが残る。 さらに偶関数の特性を利用して四分円にする。 半径2の円を四等分すれば答えが出る。
偶関数、奇関数を駆使する数学パズルを実施。 細かいことは置いておいて、雰囲気のみでざっくり解説。 奇関数が確定すれば0にできる。 偶関数が確定すれば線対称を利用して積分範囲を半分にした上で2倍にすればOK。
MATLAB,Python,Scilab,Julia比較 第5章 その14【複雑な定積分④】
複雑な関数も無限次元ベクトルと見なすと力業で解くことが可能。 複雑な定積分を無限次元ベクトルとして表現。 これをプログラムとして解いていく。
MATLAB,Python,Scilab,Julia比較 第5章 その13【複雑な定積分③】
偶関数、奇関数の特性を利用しまくって定積分を最適化しまくる。 ほとんどが0に消えて、半円の方程式だけが残る。 さらに偶関数の特性を利用して四分円にする。 半径2の円を四等分すれば答えが出る。
MATLAB,Python,Scilab,Julia比較 第5章 その12【複雑な定積分②】
前回の数学パズルを真面目に解いてみる。 まずは平方根の関数の正体を探る。 結果としては半円の方程式と言うことになる。 これで構成される関数が偶関数か奇関数か特定できたことになる。
MATLAB,Python,Scilab,Julia比較 第5章 その11【複雑な定積分①】
偶関数、奇関数を駆使する数学パズルを実施。 細かいことは置いておいて、雰囲気のみでざっくり解説。 奇関数が確定すれば0にできる。 偶関数が確定すれば線対称を利用して積分範囲を半分にした上で2倍にすればOK。
奇関数について説明。 単純に原点に対して展対称な関数。 偶関数と奇関数の積の重要 結論としては以下になるだけ。 偶関数×偶関数=偶関数 奇関数×偶関数=奇関数 奇関数×奇関数=偶関数
フーリエ係数の話に突入。 フーリエ係数へ至る道を説明。 偶関数について説明。 単純にy軸に対して線対称な関数。
MATLAB,Python,Scilab,Julia比較 第5章 その10【偶関数と奇関数④】
偶関数と奇関数の積の重要な特性について説明。 結論としては以下になるだけ。 偶関数×偶関数=偶関数。 奇関数×偶関数=奇関数。 奇関数×奇関数=偶関数。
MATLAB,Python,Scilab,Julia比較 第5章 その9【偶関数と奇関数③】
奇関数について説明。 単純に原点に対して展対称な関数。 この特性から-L~Lの範囲の定積分は、必ず0になる。
MATLAB,Python,Scilab,Julia比較 第5章 その8【偶関数と奇関数②】
偶関数について説明。 単純にy軸に対して線対称な関数。 この特性から-L~Lの範囲の定積分は、0~Lの範囲の定積分の2倍となる。
MATLAB,Python,Scilab,Julia比較 第5章 その7【偶関数と奇関数①】
フーリエ係数の話に突入。 フーリエ係数へ至る道を説明。 大半が「三角関数の直交性」に必要な知識。 偶関数、奇関数を利用した数学パズルっぽいのもやる予定。
フーリエ級数について説明。 sin関数だけでなく、cos関数も使用する。 a0/2はバイアスを想定した係数。 プログラム化は、フーリエ係数の話の後に、フーリエ級数含めてプログラム化予定。
フーリエ解析学は「フーリエ級数、係数」と「フーリエ変換、逆フーリエ変換」に分けられる。 「フーリエ級数、係数」も実数フーリエと複素フーリエに分けらえる。 無限級数について説明。 波の合成について説明。 単なる関数の足し算になる。
MATLAB,Python,Scilab,Julia比較 第5章 その6【フーリエ級数⑤】
フーリエ級数までの説明は完了。 いつもなら、ここでプログラム化の話になるの段が、フーリエ級数だけでは波の合成以上の話ができない。 よって、フーリエ係数の話の後に、フーリエ級数含めてプログラム化予定。
MATLAB,Python,Scilab,Julia比較 第5章 その5【フーリエ級数④】
フーリエ級数について説明。 sin関数だけでなく、cos関数も使用する。 a0/2はバイアスを想定した係数。 2分の1は係数算出時にキレイになるため。 理由は後日。
MATLAB,Python,Scilab,Julia比較 第5章 その4【フーリエ級数③】
波の合成について説明。 単なる関数の足し算になる。 フーリエ級数に話を繋げるならば、三角関数の足し算と思えばOK。
MATLAB,Python,Scilab,Julia比較 第5章 その3【フーリエ級数②】
無限級数について説明。 無限級数自体は無限に足していくだけの概念。 無限級数の代表格にテイラー級数がある。
MATLAB,Python,Scilab,Julia比較 第5章 その2【フーリエ級数①】
フーリエ解析学は「フーリエ級数、係数」と「フーリエ変換、逆フーリエ変換」に分けられる。 「フーリエ級数、係数」も実数フーリエと複素フーリエに分けらえる。 まずはフーリエ級数に至る道を提示。
業務でフーリエ解析学に絡むところがやってるのでこれを第5章はフーリエ解析学をテーマとする 途中、フーリエと関係ない部分でもプログラム化して確認するなどをして理解しやすい状態で進める予定。
MATLAB,Python,Scilab,Julia比較 第5章 その1【導入編】
業務でフーリエ解析学に絡むところがやってるのでこれを第5章はフーリエ解析学をテーマとする 途中、フーリエと関係ない部分でもプログラム化して確認するなどをして理解しやすい状態で進める予定。
【油断すると危険】GUGA 生成AIパスポート試験【複数選択式もある】
生成AIパスポート試験の受験記。 GUGAからの禁止事項の都合、開示できる情報には限りがある。 テキスト、問題集で対策が一般的。 自作問題作ってパワーアップ。(自作問題集は公開してます。) 試しに禁止事項を破れるか、検討だけしてみた。
【入門】最適化アルゴリズム(Adamでの分類結果)【数値計算】
Adamだけで出てくる分類結果を確認。 四角形で分類する理想的な形状。 この分類結果になる場合は、誤差関数の値が一気に跳ね上がる時。 これにより大域最適解を引き当てやすくなる。
ニューラルネットワークの最適化アルゴリズムAdamをJuliaにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
ニューラルネットワークの最適化アルゴリズムAdamをScilabにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
ニューラルネットワークの最適化アルゴリズムAdamをPythonにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
ニューラルネットワークの最適化アルゴリズムAdamをMATLABにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
MATLAB,Python,Scilab,Julia比較 第4章【バックナンバー】
はじめに MATLAB,Python,Scilab,Julia比較するシリーズの第4章。 第3章では画像処理、座標変換の話がメインだった。 第4章は分類問題関連の話がメインとなる。基本的には以下の流れとなる。 形式ニューロン 決定境界線の安
MATLAB,Python,Scilab,Julia比較 第4章 その114【本章のまとめ】
分類問題を扱って第4章終了。 最も原始的なニューラルネットワークをやったことでディープラーニングの基礎部分は把握できたかもしれない。 次の章はこれから考える。
MATLAB,Python,Scilab,Julia比較 第4章 その113【最適化アルゴリズム⑫】
Adamだけで出てくる分類結果を確認。 四角形で分類する理想的な形状。 この分類結果になる場合は、誤差関数の値が一気に跳ね上がる時。 これにより大域最適解を引き当てやすくなる。
MATLAB,Python,Scilab,Julia比較 第4章 その112【最適化アルゴリズム⑪】
ニューラルネットワークの最適化アルゴリズムAdamをJuliaにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
MATLAB,Python,Scilab,Julia比較 第4章 その111【最適化アルゴリズム⑩】
ニューラルネットワークの最適化アルゴリズムAdamをScilabにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
MATLAB,Python,Scilab,Julia比較 第4章 その110【最適化アルゴリズム⑨】
ニューラルネットワークの最適化アルゴリズムAdamをPythonにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
MATLAB,Python,Scilab,Julia比較 第4章 その109【最適化アルゴリズム⑧】
ニューラルネットワークの最適化アルゴリズムAdamをMATLABにて確認。 学習率を0.001にしている都合、収束までは時間がかかる。 勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。
各最適化アルゴリズムの依存関係を記載。 1次の勾配で勢いをつけて、2次の勾配で抑制するというのが全体を通しての共通点。 Adamの更新式を実現するためのプログラムフローを記載。 学習率は0.001とかなり小さめの値に設定。 これにより収束は遅くなる。 かわりに特殊な最適解が得られるのでそれを確認する。
AdaDeltaについて説明。 RMSpropの拡張版に当たる。 最適化アルゴリズムAdamについて説明。 モーメンタムとRMSpropの合わせ技。 1次の勾配と、2次の勾配の指数移動平均を使用する。
もう一個試す予定の最適化アルゴリズムAdamへ至る系譜を説明予定。 AdaGradについて説明。 更新式をモーメンタムと比較。 RMSpropについて説明。 AdaGradの完了版であるため、AdaGradと更新式を比較。
MATLAB,Python,Scilab,Julia比較 第4章 その108【最適化アルゴリズム⑦】
Adamの更新式を実現するためのプログラムフローを記載。 モーメンタムの部分をAdamに差し替えただけ。 学習率は0.001とかなり小さめの値に設定。 これにより収束は遅くなる。 かわりに特殊な最適解が得られるのでそれを確認する。
MATLAB,Python,Scilab,Julia比較 第4章 その107【最適化アルゴリズム⑥】
各最適化アルゴリズムの依存関係を記載。 1次の勾配で勢いをつけて、2次の勾配で抑制するというのが全体を通しての共通点。 Adamが1次の勾配と2次の勾配を合わせたアルゴリズムとなる。
MATLAB,Python,Scilab,Julia比較 第4章 その106【最適化アルゴリズム⑤】
最適化アルゴリズムAdamについて説明。 モーメンタムとRMSpropの合わせ技。 1次の勾配と、2次の勾配の指数移動平均を使用する。
MATLAB,Python,Scilab,Julia比較 第4章 その105【最適化アルゴリズム④】
AdaDeltaについて説明。 RMSpropの拡張版に当たる。 学習率というハイパーパラメータ無しで動作する。 最終的な学習率は1近傍になるため振動しやすいらしい。
MATLAB,Python,Scilab,Julia比較 第4章 その104【最適化アルゴリズム③】
RMSpropについて説明。 AdaGradの完了版であるため、AdaGradと更新式を比較。 AdaGradでは2次の勾配の累積だったものが、2次の勾配の指数移動平均に。 これにより、極小値近辺やプラトーになっても更新を続けられる。
MATLAB,Python,Scilab,Julia比較 第4章 その103【最適化アルゴリズム②】
AdaGradについて説明。 更新式をモーメンタムと比較。 更新幅は、最初は大きく、徐々に小さくなり、最終的には学習が進まなくなる欠点を抱えている。
MATLAB,Python,Scilab,Julia比較 第4章 その102【最適化アルゴリズム①】
もう一個試す予定の最適化アルゴリズムへ至る系譜を説明予定。 プログラム化して試すのはAdamだが、それに至るアルゴリズムを数式レベルで確認。 Adam以降の最適化アルゴリズムもあるが、基本はAdamベースでクリッピングが入ってる感じ。
最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。 モーメンタムの方が学習の収束が早い。 勾配降下法で500エポックのところ100エポック。 モーメンタムの場合、初期のパラメータ移動が大き目。 これにより、大域最適化を見つける可能性が高くなる。
最適化アルゴリズム モーメンタムを用いて分類の学習をJuliaで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をPythonで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
MATLAB,Python,Scilab,Julia比較 第4章 その101【モーメンタム⑪】
最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。 モーメンタムの方が学習の収束が早い。 勾配降下法で500エポックのところ100エポック。 モーメンタムの場合、初期のパラメータ移動が大き目。 これにより、大域最適化を見つける可能性が高くなる。
MATLAB,Python,Scilab,Julia比較 第4章 その100【モーメンタム⑩】
最適化アルゴリズム モーメンタムを用いて分類の学習をJuliaで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
MATLAB,Python,Scilab,Julia比較 第4章 その99【モーメンタム⑨】
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
MATLAB,Python,Scilab,Julia比較 第4章 その99【モーメンタム⑨】
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
MATLAB,Python,Scilab,Julia比較 第4章 その98【モーメンタム⑧】
最適化アルゴリズム モーメンタムを用いて分類の学習をPythonで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
MATLAB,Python,Scilab,Julia比較 第4章 その97【モーメンタム⑦】
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 モーメンタムの動作イメージについて確認。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。
勾配降下法の更新式を確認。 勾配降下法の動作イメージを確認。 学習率が大きい場合と小さい場合で挙動が変わる。 ちょうど良い学習率を人間の手で探す。 これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。
最適化アルゴリズムを取り扱う。 今回のネットワークだとさほど恩恵はないが知っていて損はない。 まずはモーメンタムから解説&実験をしていく。 最初は復習を兼ねて勾配降下法についても確認する。
MATLAB,Python,Scilab,Julia比較 第4章 その96【モーメンタム⑥】
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
MATLAB,Python,Scilab,Julia比較 第4章 その95【モーメンタム⑤】
モーメンタムの動作イメージについて確認。 動作イメージの表現は難しい。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。
MATLAB,Python,Scilab,Julia比較 第4章 その94【モーメンタム④】
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 実際の指数移動平均とは異なっているので、その点は注意。
MATLAB,Python,Scilab,Julia比較 第4章 その93【モーメンタム③】
勾配降下法の動作イメージを確認。 学習率が大きい場合と小さい場合で挙動が変わる。 ちょうど良い学習率を人間の手で探す。 これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。
MATLAB,Python,Scilab,Julia比較 第4章 その92【モーメンタム②】
今回改めてまじめに更新式を確認。 勾配降下法の更新式が一番シンプルなので今後の最適化アルゴリズムの更新式を見る際は比較対象になりやすい。
MATLAB,Python,Scilab,Julia比較 第4章 その91【モーメンタム①】
最適化アルゴリズムを取り扱う。 今回のネットワークだとさほど恩恵はないが知っていて損はない。 まずはモーメンタムから解説&実験をしてい 最初は復習を兼ねて勾配降下法についても確認する。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。 大きく2パターンの分類パタ やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。 大きく2パターンの分類パターン やや複雑な分類パターンが4ユニットにすることで出てきたもの。
MATLAB,Python,Scilab,Julia比較 第4章 その90【ユニット数増加⑤】
多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
MATLAB,Python,Scilab,Julia比較 第4章 その89【ユニット数増加④】
多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
MATLAB,Python,Scilab,Julia比較 第4章 その88【ユニット数増加③】
多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
MATLAB,Python,Scilab,Julia比較 第4章 その87【ユニット数増加②】
多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。 大きく2パターンの分類パターンがある やや複雑な分類パターンが4ユニットにすることで出てきたもの。
「ブログリーダー」を活用して、KEIさんをフォローしませんか?
MATLAB,Python,Scilab,Julia比較するシリーズの第4章。 第4章では分類問題で最終的にはニューラルネットワークや最適化アルゴリズムの話だった。 第5章はフーリエ解析学から高速フーリエの話がメインとなる。
三角関数の加法定理を確認。 偶関数、奇関数を利用すると、βにマイナス符号が付いた加法定理の式も導出できる。
前回までの数式パズルの力業的解法と関数の内積はほぼ同一の考え方。 関数を無限次元ベクトルを解釈すると、関数の内積は関数の積の定積分として表現される。
はじめに G検定2024年#6(2024年11月8日(金)、9日(土)実施)から新シラバスに代わるらしい。それまでのシラバスを2021年版とし、新シラバスを2024年版として比較してみた。 シラバスの入手は以下から。 G検定まとめページ ま
三角関数の直交性のまとめ。 各種式を確認。 直交性具合をアニメーションで確認。 三角関数の畳み込みをプログラムでやっている予定。
m=nの時のcos関数の内積を求める。 分母が0になるため、極限値を利用する。 結果としてはπになる。 つまり、同じ角周波数のcos同士の内積は必ずπになる。
cos関数同士の直交性を確認。 cos同士の積和公式の定積分を元に解いていく。 最終的にはsinが0になるので、内積の結果も0となる。 結果としてcos関数同士は直交していることになる。
m=nの時のsin関数の内積を求める。 分母が0になるため、極限値を利用する。 結果としてはπになる。 つまり、同じ角周波数のsin同士の内積は必ずπになる。
sin関数同士の直交性を確認。 sin同士の積和公式の定積分を元に解いていく。 最終的にはsinが0になるので、内積の結果も0となる。 結果としてsin関数同士は直交していることになる。
sinとcosの内積と畳み込み積分を考える。 奇関数、偶関数の特性より、sin、cosの畳み込み積分は0となる。 畳み込み積分が0ということは内積も0になる。 内積が0ということは直交しているということになる。
直交性とは2つのベクトルが垂直に交わることを指す。 直交しているベクトルの内積は必ず0になる。 cos関数の影響。 成分表記の内積でも0になることを確認。
はさみうちの原理について説明。 sinc関数について説明&MATLABでプロットしてみた。(Pythonコードも)
円に接する三角形と扇形の面積の不等式を最適化。 いろいろ弄っていくと、はさみうちの原理により1が求められる。
重要な極限値について説明。 sin(x)/xのxを0に近づける極限値。 まずは円に接する三角形と扇形に着目する。 これが先ほどの極限値にどうつながるかは次回。
sin,sinの積和公式を導出。 積和公式をフーリエ係数に向けて変形。 α,βをαx,βxにするだけ。
三角関数の加法定理の組み合わせで積和公式が導出できる。 sin,cosの積和公式とcos,cosの積和公式を導出してみた。
三角関数の加法定理を確認。 偶関数、奇関数を利用すると、βにマイナス符号が付いた加法定理の式も導出できる。
前回までの数式パズルの力業的解法と関数の内積はほぼ同一の考え方。 関数を無限次元ベクトルを解釈すると、関数の内積は関数の積の定積分として表現される。
複雑な定積分をJuliaで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
複雑な定積分をScilabで求めた。 同様に円周率が答えとして算出。 小数点第6位まで一緒。 Nを増やせばもっと精度は上がる。
Scilabで非極大値抑制を実施。 MATLABと同様の結果が得られた。 コードもほぼ一緒。 Scilabも線形&論理インデックスサーチが存在する。
Python(NumPy)で非極大値抑制を実施。 MATLABと同一の結果が得られた。 MATLABでは論理インデックスサーチを使用したが、ここではあえて線形インデックスサーチを使用。
MATLABで非極大値抑制を実施。 想定通りの結果が得られた。 論理インデックスサーチを利用している個所がある。 インデックスサーチについては別途説明。
非極大値抑制(Non-maximum suppression)について説明。 概念としてはシンプルだが、2次元平面で考える場合、どの方向から極大値を評価するが重要。 x方向、y方向の輝度勾配が分かっているので、勾配の方向はarctanで特定可能。
非極大値抑制をプログラムで実現する手順を確認。 一個一個はそれほど複雑ではない。(はず) 勾配方向角度については、度数法で扱う。 プログラム的には弧度法の方が扱いやすいが、人間から見た分かり易さを重視。
非極大値抑制を実現するための斜面の方向パターンについて説明。 arctan関数で細かい方向は特定できるが、基本は4パターンに丸められる。 判定ピクセルマスを5×5、7×7などにしてもっと細かくするパターンもある。
非極大値抑制の「勾配の特定方法」について解説。 2次元平面で考えるためには勾配の方向が重要。 勾配の方向は、横、縦それぞ 実際にはarctan関数を使用する。 arctan関数はtan関数の逆関数。
非極大値抑制の大雑把な雰囲気を確認。 図で確認。 2次元平面に実施す これも図で確認。 様々な方向から見た極大値を意識する必要がある。
エッジ検出もっとシビアに行いたい。 非極大値抑制を使うといい感じになる。 同様の用語が物体検出器でも出てくるが別物。 具体的な話は順を追って説明する。
JuliaでSobelフィルタを実施。 MATLABと同じ結果が得られた。 コード上の演算はほぼMATLABと一緒 画像が0~1で正規化されている点に注意。 画像書き出し時にも再度正規化しておくと良い。
ScilabでSobelフィルタを実施。 MATLABと同じ結果が得られた。 uint8にキャストする際は、事前にmin,maxを使用してサチュレーションをしておく必要がある。
Python(NumPy)でSobelフィルタを実施。 MATLABと同じ結果が得られた。 np.arrayがuint8になっている状態を維持する必要がある。 imwrite時にuint8になっていないと期待した出力にならない。
MATLABでSobelフィルタを実施。 想定通りの結果が得られた。 というより、前回までの結果が実はMATLABで実施したものだった。 他の環境、言語でも同様の結果が得られるかが確認ポイントになる。
JuliaでSobelフィルタを実施。 MATLABと同じ結果が得られた。 コード上の演算はほぼMATLABと一緒 画像が0~1で正規化されている点に注意。 画像書き出し時にも再度正規化しておくと良い。
ScilabでSobelフィルタを実施。 MATLABと同じ結果が得られた。 uint8にキャストする際は、事前にmin,maxを使用してサチュレーションをしておく必要がある。
Python(NumPy)でSobelフィルタを実施。 MATLABと同じ結果が得られた。 np.arrayがuint8になっている状態を維持する必要がある。 imwrite時にuint8になっていないと期待した出力にならない。
MATLABでSobelフィルタを実施。 想定通りの結果が得られた。 というより、前回までの結果が実はMATLABで実施したものだった。 他の環境、言語でも同様の結果が得られるかが確認ポイントになる。
エッジ検出について説明。 各種微分フィルタについて説明。 Sobelフィルタを元にいろいろ課題認識&対策実施。 実験手順を説明。
Sobelフィルタの実験手順。 とりあえずガウシアンフィルタもかけておく。 縦横の2種類のSobelフィルタと、その結果の合成も忘れずに。
単純にSobelフィルタのカーネルで畳み込みをしても期待する結果にならない。 マイナス値がでるので、絶対値なり二乗なりで対処する必要あり。 横方向、縦方向のエッジしか検知できないので、合成する。