各偏導関数を連鎖律に則して結合。www.simulationroom999.com2024.04.11入力、出力(ラベル)が複数であるが故に連鎖律のルートが複数になる。上記の図示と数式を説明。入力、出力(ラベル)が複数であるが故に連鎖律のルートが複数になる。上記の図示と数式を説明。www.simulationroom999.com2024.04.12入力、出力が複数であるが故の連鎖律の事情のもう一つの考え方。誤差関数は二乗和誤差関数であり、本来であればΣが含まれる。よって、連鎖律にもΣが含まれる形を取ると前回と同一の数式が得られる。入力、出力が複数であるが故の連鎖律の事情のもう一つの考え方。誤差関数は二乗和誤差関数であり、本来であればΣが含まれる。よって、連鎖律にもΣが含まれる形を取ると前回と同一の数式が得られる。www.simulationroom999.com2024.04.13逆伝播の確認用プログラムのフローを記載。逆伝播の挙動を確認するため、重みの開始位置とバイアスは固定。ベクトル、行列演算をプログラム都合に合わせて表現しなおし。逆伝播の確認用プログラムのフローを記載。逆伝播の挙動を確認するため、重みの開始位置とバイアスは固定。ベクトル、行列演算をプログラム都合に合わせて表現しなおし。www.simulationroom999.com2024.04.14MATLAB逆伝播を行った際の重みの動き方を確認するプログラムをMATLABで作成。逆伝播を行った際の重みの動き方を確認するプログラムをMATLABで作成。www.simulationroom999.com2024.04.18Python逆伝播を行った際の重みの動き方を確認するプログラムをPythonで作成。逆伝播を行った際の重みの動き方を確認するプログラムをPythonで作成。www.simulationroom999.com2024.04.19Scilab逆伝播を行った際の重みの動き方を確認するプログラムをScilabで作成。逆伝播を行った際の重みの動き方を確認するプログラムをScilabで作成。www.simulationroom999.com2024.04.20Julia逆伝播を行った際の重みの動き方を確認するプログラムをJuiaで作成。逆伝播を行った際の重みの動き方を確認するプログラムをJuiaで作成。単純パーセプトロンの構造について復習。今回扱うのは活性化関数をシグモイド関数に差し替えたもの。重みとバイアスの逆伝播は途中まで一緒。よって表現の最適化が可能。単純パーセプトロンの構造について復習。今回扱うのは活性化関数をシグモイド関数に差し替えたもの。重みとバイアスの逆伝播は途中まで一緒。よって表現の最適化が可能。www.simulationroom999.com2024.04.26重みとバイアスの連鎖律の最適化。共通部分があるので、そこを切り出し。プログラムの場合は、こういう共通部分を変数に格納するなどの最適化が可能。重みとバイアスの連鎖律の最適化。共通部分があるので、そこを切り出し。プログラムの場合は、こういう共通部分を変数に格納するなどの最適化が可能。www.simulationroom999.com2024.04.27単純パーセプトロンで分類のプログラムのフローを確認。逆伝播の実験のときと流れは一緒。学習が進むと決定境界線がどのように動くか確認。単純パーセプトロンで分類のプログラムのフローを確認。逆伝播の実験のときと流れは一緒。学習が進むと決定境界線がどのように動くか確認。www.simulationroom999.com2024.04.28MATLAB単純パーセプトロンの分類をMATLABで実施。200エポックあれば分類可能。単純パーセプトロンの分類をMATLABで実施。200エポックあれば分類可能。www.simulationroom999.com2024.04.30Python単純パーセプトロンの分類をPythonで実施。200エポックあれば分類可能。単純パーセプトロンの分類をPythonで実施。200エポックあれば分類可能。www.simulationroom999.com2024.05.01Scilab単純パーセプトロンの分類をScilabで実施。200エポックあれば分類可能。単純パーセプトロンの分類をScilabで実施。200エポックあれば分類可能。www.simulationroom999.com2024.05.02Julia単純パーセプトロンの分類をJuliaで実施。200エポックあれば分類可能。単純パーセプトロンの分類をJuliaで実施。200エポックあれば分類可能。単純パーセプトロンでは分類できないものがある。求めるというより決定領域を特定するというイメージになる。単純パーセプトロンでは分類できないものがある。XORなどの非線形分類を求められるものなどが代表的。決定境界直線を求めるというより決定領域を特定するというイメージになる。www.simulationroom999.com2024.05.08非線形分類するにはパーセプトロンを複数使う。多層パーセプトロンにする。単純パーセプトロン、多層パーセプトロンの構造と数式を説明。非線形分類するにはパーセプトロンを複数使う。多層パーセプトロンにする。単純パーセプトロン、多層パーセプトロンの構造と数式を説明。パーセプトロンの重みを決定するための誤差逆伝播法が必要。多層に渡っているため、少しメンドウクサイ。各層の連鎖律を求め、その後結合させたり、プログラミング向けに最適化したりしていく予定。多層パーセプトロンの重みを決定するための誤差逆伝播法が必要。多層に渡っているため、少しメンドウクサイ。各層の連鎖律を求め、その後結合させたり、プログラミング向けに最適化したりしていく予定。www.simulationroom999.com2024.05.12誤差逆伝播法の全体像を確認。更新したい重みとバイアスの層によって連鎖律のルートが少し変わる。出力層と隠れ層の合成関数を確認。誤差逆伝播法の全体像を確認。更新したい重みとバイアスの層によって連鎖律のルートが少し変わる。出力層と隠れ層の合成関数を確認。www.simulationroom999.com2024.05.13出力層の合成関数を確認。出力層の連鎖律と各偏導関数を導出。多層であるが故に、順伝播時の中間変数を記憶しておく必要がある。出力層の合成関数を確認。出力層の連鎖律と各偏導関数を導出。多層であるが故に、順伝播時の中間変数を記憶しておく必要がある。www.simulationroom999.com2024.05.14隠れ層から誤差関数までの合成関数を確認。隠れ層から誤差関数までの連鎖律を導出。隠れ層から誤差関数までの合成関数を確認。隠れ層から誤差関数までの連鎖律を導出。www.simulationroom999.com2024.05.15連鎖律の「プログラミングするための最適化」は連鎖律上の共通部分の特定が重要。連鎖律の共通部分を特定。変数化したもので連鎖律を表現し直し。連鎖律の「プログラミングするための最適化」は連鎖律上の共通部分の特定が重要。連鎖律の共通部分を特定。変数化したもので連鎖律を表現し直し。www.simulationroom999.com2024.05.16連鎖律の共通部分の算出。いままでの部品の組み合わせで導出できる。共通変数で実際の処理に相当する数式を書き出し。ついでに学習率を加味した各重み、各バイアスの更新式も記載。連鎖律の共通部分の算出。いままでの部品の組み合わせで導出できる。共通変数で実際の処理に相当する数式を書き出し。ついでに学習率を加味した各重み、各バイアスの更新式も記載。www.simulationroom999.com2024.05.17MATLAB多層パーセプトロンによる分類をMATLABで実施。一応ちゃんと分類できた。多層パーセプトロンによる分類をMATLABで実施。一応ちゃんと分類できた。www.simulationroom999.com2024.05.21Python多層パーセプトロンによる分類をPythonで実施。一応ちゃんと分類できた。多層パーセプトロンによる分類をPythonで実施。一応ちゃんと分類できた。www.simulationroom999.com2024.05.22Scilab多層パーセプトロンによる分類をScilabで実施。一応ちゃんと分類できた。等高線による分類表記がうまく行かなかったため、境界線をplotしている。多層パーセプトロンによる分類をScilabで実施。一応ちゃんと分類できた。等高線による分類表記がうまく行かなかったため、境界線をplotしている。www.simulationroom999.com2024.05.23Julia多層パーセプトロンによる分類をJuliaで実施。一応ちゃんと分類できた。多層パーセプトロンによる分類をJuliaで実施。一応ちゃんと分類できた。非線形分類をしたが実は問題が発生している。20%くらいの確率で分類ができない。原因がわかるように誤差関数の推移や決定境界線の推移のアニメーションを見てみる予定。非線形分類をしたが実は問題が発生している。20%くらいの確率で分類ができない。原因がわかるように誤差関数の推移や決定境界線の推移のアニメーションを見てみる予定。www.simulationroom999.com2024.05.29非線形分類が失敗する原因を特定するため決定境界線と誤差関数の推移をモニタ。局所最適解にハマってる。エポック数を増やしても対策にはならない。隠れ層のユニット数を増やす、最適化アルゴリズムを使用するのが対策案。非線形分類が失敗する原因を特定するため決定境界線と誤差関数の推移をモニタ。局所最適解にハマってる。エポック数を増やしても対策にはならない。隠れ層のユニット数を増やす、最適化アルゴリズムを使用するのが対策案。多層パーセプトロンの隠れ層のユニット数を増やす。局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。プログラム上の修正点確認。ベクトル、行列演算ができるため修正範囲は極小。多層パーセプトロンの隠れ層のユニット数を増やす。局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。プログラム上の修正点確認。ベクトル、行列演算ができるため修正範囲は極小。www.simulationroom999.com2024.06.01MATLAB多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。大きく2パターンの分類パターンがある。複雑な分類パターンが4ユニットにすることで出てきたもの。多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。複雑な分類パターンが4ユニットにすることで出てきたもの。www.simulationroom999.com2024.06.03Python多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。大きく2パターンの分類パターンがある。複雑な分類パターンが4ユニットにすることで出てきたもの。多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。大きく2パターンの分類パターンがある。複雑な分類パターンが4ユニットにすることで出てきたもの。www.simulationroom999.com2024.06.04Scilab多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。大きく2パターンの分類パターンがある。複雑な分類パターンが4ユニットにすることで出てきたもの。多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。大きく2パターンの分類パターンがある。複雑な分類パターンが4ユニットにすることで出てきたもの。www.simulationroom999.com2024.06.05Julia多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。大きく2パターンの分類パターンがある。複雑な分類パターンが4ユニットにすることで出てきたもの。多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。大きく2パターンの分類パターンがある。複雑な分類パターンが4ユニットにすることで出てきたもの。www.simulationroom999.com2024.06.06モーメンタム最適化アルゴリズムを取り扱う。今回のネットワークだとさほど恩恵はないが知っていて損はない。モーメンタムから解説&実験をしていく。最初は復習を兼ねて勾配降下法についても確認する。最適化アルゴリズムを取り扱う。今回のネットワークだとさほど恩恵はないが知っていて損はない。最初は復習を兼ねて勾配降下法についても確認する。www.simulationroom999.com2024.06.11勾配降下法について復習。今回改めてまじめに更新式を確認。勾配降下法の更新式が一番シンプルなので今後の最適化アルゴリズムの更新式を見る際は比較対象になりやすい。今回改めてまじめに更新式を確認。勾配降下法の更新式が一番シンプルなので今後の最適化アルゴリズムの更新式を見る際は比較対象になりやすい。www.simulationroom999.com2024.06.12勾配降下法の動作イメージを確認。学習率が大きい場合と小さい場合で挙動が変わる。良い学習率を人間の手で探す。これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。勾配降下法の動作イメージを確認。学習率が大きい場合と小さい場合で挙動が変わる。良い学習率を人間の手で探す。これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。利用して直近の値を重視する。実際の指数移動平均とは異なっているので、その点は注意。その94【モーメンタム4】モーメンタムの更新式について確認。指数移動平均を利用して直近の値を重視する。実際の指数移動平均とは異なっているので、その点は注意。www.simulationroom999.com2024.06.14モーメンタムの動作イメージについて確認。動作イメージの表現は難しい。最初は大きく更新して、最適解が近いと小さく更新。勾配降下法で言うところの学習率が可変と同義な動きになる。その95【モーメンタム5】モーメンタムの動作イメージについて確認。動作イメージの表現は難しい。最初は大きく更新して、最適解が近いと小さく更新。勾配降下法で言うところの学習率が可変と同義な動きになる。www.simulationroom999.com2024.06.15モーメンタムを確認するプログラムの方針を確認。以前の勾配降下法のプログラムをベースにする。隠れ層のユニット数は4。プログラムのフローを確認。モーメンタム項とパラメータ更新が基本的な差分となる。その96【モーメンタム6】モーメンタムを確認するプログラムの方針を確認。以前の勾配降下法のプログラムをベースにする。隠れ層のユニット数は4。プログラムのフローを確認。モーメンタム項とパラメータ更新が基本的な差分となる。モーメンタムを用いて分類の学習をMATLABで実現。学習の収束が通常の勾配降下法よりも比較的早い。モーメンタムを用いて分類の学習をMATLABで実現。学習の収束が通常の勾配降下法よりも比較的早い。モーメンタムを用いて分類の学習をPythonで実現。学習の収束が通常の勾配降下法よりも比較的早い。モーメンタムを用いて分類の学習をPythonで実現。学習の収束が通常の勾配降下法よりも比較的早い。モーメンタムを用いて分類の学習をScilabで実現。学習の収束が通常の勾配降下法よりも比較的早い。モーメンタムを用いて分類の学習をScilabで実現。学習の収束が通常の勾配降下法よりも比較的早い。モーメンタムを用いて分類の学習をJuliaで実現。学習の収束が通常の勾配降下法よりも比較的早い。モーメンタムを用いて分類の学習をJuliaで実現。学習の収束が通常の勾配降下法よりも比較的早い。最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。モーメンタムの方が学習の収束が早い。勾配降下法で500エポックのところ100エポック。モーメンタムの場合、初期のパラメータ移動が大き目。これにより、大域最適化を見つける可能性が高くなる。最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。モーメンタムの方が学習の収束が早い。勾配降下法で500エポックのところ100エポック。モーメンタムの場合、初期のパラメータ移動が大き目。これにより、大域最適化を見つける可能性が高くなる。www.simulationroom999.com2024.06.25最適化アルゴリズムもう一個試す予定の最適化アルゴリズムへ至る系譜を説明予定。プログラム化して試すのはAdamだが、それに至るアルゴリズムを数式レベルで確認。Adam以降の最適化アルゴリズムもあるが、基本はAdamベースでクリッピングが入ってる感じ。その102【最適化アルゴリズム1】もう一個試す予定の最適化アルゴリズムへ至る系譜を説明予定。プログラム化して試すのはAdamだが、それに至るアルゴリズムを数式レベルで確認。Adam以降の最適化アルゴリズムもあるが、基本はAdamベースでクリッピングが入ってる感じ。www.simulationroom999.com2024.07.01AdaGradについて説明。更新式をモーメンタムと比較。更新幅は、最初は大きく、徐々に小さくなり、最終的には学習が進まなくなる欠点を抱えている。その103【最適化アルゴリズム2】AdaGradについて説明。更新式をモーメンタムと比較。更新幅は、最初は大きく、徐々に小さくなり、最終的には学習が進まなくなる欠点を抱えている。www.simulationroom999.com2024.07.02RMSpropについて説明。AdaGradの完了版であるため、AdaGradと更新式を比較。AdaGradでは2次の勾配の累積だったものが、2次の勾配の指数移動平均に。これにより、極小値近辺やプラトーになっても更新を続けられる。その104【最適化アルゴリズム3】RMSpropについて説明。AdaGradの完了版であるため、AdaGradと更新式を比較。AdaGradでは2次の勾配の累積だったものが、2次の勾配の指数移動平均に。これにより、極小値近辺やプラトーになっても更新を続けられる。www.simulationroom999.com2024.07.03AdaDeltaについて説明。RMSpropの拡張版に当たる。学習率というハイパーパラメータ無しで動作する。最終的な学習率は1近傍になるため振動しやすいらしい。その105【最適化アルゴリズム4】AdaDeltaについて説明。RMSpropの拡張版に当たる。学習率というハイパーパラメータ無しで動作する。最終的な学習率は1近傍になるため振動しやすいらしい。www.simulationroom999.com2024.07.04最適化アルゴリズムAdamについて説明。モーメンタムとRMSpropの合わせ技。1次の勾配と、2次の勾配の指数移動平均を使用する。最適化アルゴリズムAdamについて説明。モーメンタムとRMSpropの合わせ技。1次の勾配と、2次の勾配の指数移動平均を使用する。www.simulationroom999.com2024.07.05各最適化アルゴリズムの依存関係を記載。1次の勾配で勢いをつけて、2次の勾配で抑制するというのが全体を通しての共通点。Adamが1次の勾配と2次の勾配を合わせたアルゴリズムとなる。各最適化アルゴリズムの依存関係を記載。1次の勾配で勢いをつけて、2次の勾配で抑制するというのが全体を通しての共通点。Adamが1次の勾配と2次の勾配を合わせたアルゴリズムとなる。www.simulationroom999.com2024.07.06Adamの更新式を実現するためのプログラムフローを記載。モーメンタムの部分をAdamに差し替えただけ。学習率は0.001とかなり小さめの値に設定。これにより収束は遅くなる。かわりに特殊な最適解が得られるのでそれを確認する。その108【最適化アルゴリズム7】Adamの更新式を実現するためのプログラムフローを記載。モーメンタムの部分をAdamに差し替えただけ。学習率は0.001とかなり小さめの値に設定。これにより収束は遅くなる。かわりに特殊な最適解が得られるのでそれを確認する。www.simulationroom999.com2024.07.07MATLABニューラルネットワークの最適化アルゴリズムAdamをMATLABにて確認。学習率を0.001にしている都合、収束までは時間がかかる。勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。その109【最適化アルゴリズム8】ニューラルネットワークの最適化アルゴリズムAdamをMATLABにて確認。学習率を0.001にしている都合、収束までは時間がかかる。勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。www.simulationroom999.com2024.07.11Pythonニューラルネットワークの最適化アルゴリズムAdamをPythonにて確認。学習率を0.001にしている都合、収束までは時間がかかる。勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。その110【最適化アルゴリズム9】ニューラルネットワークの最適化アルゴリズムAdamをPythonにて確認。学習率を0.001にしている都合、収束までは時間がかかる。勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。www.simulationroom999.com2024.07.12Scilabニューラルネットワークの最適化アルゴリズムAdamをScilabにて確認。学習率を0.001にしている都合、収束までは時間がかかる。勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。その111【最適化アルゴリズム10】ニューラルネットワークの最適化アルゴリズムAdamをScilabにて確認。学習率を0.001にしている都合、収束までは時間がかかる。勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。www.simulationroom999.com2024.07.13Juliaニューラルネットワークの最適化アルゴリズムAdamをJuliaにて確認。学習率を0.001にしている都合、収束までは時間がかかる。勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。その112【最適化アルゴリズム11】ニューラルネットワークの最適化アルゴリズムAdamをJuliaにて確認。学習率を0.001にしている都合、収束までは時間がかかる。勾配降下法、モーメンタムでは見れなかった分類パターンが拾えた。考察Adamだけで出てくる分類結果を確認。四角形で分類する理想的な形状。この分類結果になる場合は、誤差関数の値が一気に跳ね上がる時。これにより大域最適解を引き当てやすくなる。その113【最適化アルゴリズム12】Adamだけで出てくる分類結果を確認。四角形で分類する理想的な形状。この分類結果になる場合は、誤差関数の値が一気に跳ね上がる時。これにより大域最適解を引き当てやすくなる。www.simulationroom999.com2024.07.15本章のまとめ分類問題を扱って第4章終了。原始的なニューラルネットワークをやったことでディープラーニングの基礎部分は把握できたかもしれない。次の章はこれから考える。分類問題を扱って第4章終了。原始的なニューラルネットワークをやったことでディープラーニングの基礎部分は把握できたかもしれない。次の章はこれから考える。形式ニューロンをJuliaで実現。ANDの真理値表と同じ結果が得らえれた。ガウシアンフィルタ(Scilab)【数値計算】Scilabでガウシアンフィルタを実施。畳み込み演算は関数化。Scialbのsumは行列の総和。行、列の総和の場合は第2引数を使用。行った際の重みの動き方を確認するプログラムをScilabで作成。今回の射影変換のアルゴリズムは射影逆変換。これに伴い、渡す行列は逆行列。これについてはアフィン変換の時に証明済み。分類問題を扱って第4章終了。原始的なニューラルネットワークをやったことでディープラーニングの基礎部分は把握できたかもしれない。次の章はこれから考える。その31【微分フィルタ7】Sobelフィルタの実験手順。ガウシアンフィルタもかけておく。縦横の2種類のSobelフィルタと、その結果の合成も忘れずに。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。(14)KEI主に自動車開発関連の技術者っぽい人。領域はパワートレインがメインだが、それ以外もちょこちょことやってる感じ。カテゴリ的には凡そ以下。現場は疲れたので、シミュレーションで実物を扱わなくても仕事ができる環境を目指す。家に引きこもって外に出なくてもOKな世界。目指せ完全テレワーク。KEIをフォローするKEI2024.11.01はい。一般的な動画のfpsに近いものと思ってもらってOKです。※以下、たぶんDS検定では聞かれないと思いますが念のため...画像フレームレートという表現ですが、世間一般の表現ではありません。仮)(データサイエンティスト検定リテラシーレベル)KEI2024.11.01ありがとうございます。正解選択肢の内容が間違ってますね。逆というか、協調フィルタリング側が間違っている状態でした。仮)(データサイエンティスト検定リテラシーレベル)鋼鉄の戦士2024.11.01協調フィルタリングとコンテンツベースフィルタリングの説明逆な気がします。仮)(データサイエンティスト検定リテラシーレベル)あ2024.10.09先日お伝えした問題は無事解決しました。Usホーム検索トップサイドバータイトルとURLをコピーしました。