exoファイルを使えば、立ち絵の設定をテンプレ化して何度でも使い回せる。キャラごと・表情ごとのexoパターンを作っておけば、配置も口パクも一瞬。拡張編集にドラッグ&ドロップするだけで、作業時間が爆速短縮。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
勾配降下法の実験をMATLABで実施。 予想通り局所最適解に陥った。 局所最適解の回避方法としては学習率を状況に応じて変更する様々は最適化アルゴリズムがある。 モーメンタム、AdaGrad、Adamなどなど。
MATLAB,Python,Scilab,Julia比較 第4章 その49【勾配降下法⑦】
勾配降下法の実験をScilabで実施。 予想通り局所最適解に陥った。 局所最適解の回避方法としては学習率を状況に応じて変更する様々は最適化アルゴリズムがある。 モーメンタム、AdaGrad、Adamなどなど。
MATLAB,Python,Scilab,Julia比較 第4章 その48【勾配降下法⑥】
勾配降下法の実験をScilabで実施。 予想通り局所最適解に陥った。 局所最適解の回避方法としては学習率を状況に応じて変更する様々は最適化アルゴリズムがある。 モーメンタム、AdaGrad、Adamなどなど。
MATLAB,Python,Scilab,Julia比較 第4章 その47【勾配降下法⑤】
勾配降下法の実験をPythonで実施。 予想通り局所最適解に陥った。 局所最適解の回避方法としては学習率を状況に応じて変更する様々は最適化アルゴリズムがある。 モーメンタム、AdaGrad、Adamなどなど。
MATLAB,Python,Scilab,Julia比較 第4章 その46【勾配降下法④】
勾配降下法の実験をMATLABで実施。 予想通り局所最適解に陥った。 局所最適解の回避方法としては学習率を状況に応じて変更する様々は最適化アルゴリズムがある。 モーメンタム、AdaGrad、Adamなどなど。
勾配降下法に概念レベルの説明。 勾配降下法をプログラム的に確認する方法としてニューラルネットワークではなく、任意の関数に試す方法がある。 勾配降下法プログラムのフローで分かりにくいところを説明。
MATLAB,Python,Scilab,Julia比較 第4章 その45【勾配降下法③】
勾配降下法プログラムのフローで分かりにくいところを説明。 入力初期値は学習のスタート地点。 ハイパーパラメータは学習アルゴリズムの設定値。 グラフへのプロットは履歴付きで。 プログラムの振る舞いをアニメーションgifで確認。
MATLAB,Python,Scilab,Julia比較 第4章 その44【勾配降下法②】
勾配降下法をプログラム的に確認する方法としてニューラルネットワークではなく、任意の関数に試す方法がある。 三角関数と二次関数を合成したもので試す。 プログラムのフローを記載。
MATLAB,Python,Scilab,Julia比較 第4章 その43【勾配降下法①】
勾配降下法に概念レベルの説明。 連鎖律含めた一連の流れを誤差逆伝播法と言う。 ただし、単純パーセプトロンの段階では逆伝播という言葉にしておく。 まずは勾配降下法のみの実験をやってみる。
多変数関数の連鎖律について説明。 ニューラルネットワークを想定した場合の多変量関数の連鎖律について説明。 ニューラルネットワークの学習を想定した場合、暗黙的に追加される関数として入力群がある。
多変数関数の連鎖律に突入したが、これを理解するのに必要な知識があるため、それらを列挙。 合成関数について説明。 合計関数の微分(連鎖律)について説明。 合成関数の微分(連鎖律)の証明を実施。
MATLAB,Python,Scilab,Julia比較 第4章 その42【多変量関数の連鎖律⑥】
ニューラルネットワークの学習を想定した場合、暗黙的に追加される関数として入力群がある。 イメージ的に1層増える感じになる。 これはバッチ学習、ミニバッチ学習時の起きる現象。 と言っても、微分すると重みが消えるので足し算に化ける。
MATLAB,Python,Scilab,Julia比較 第4章 その41【多変量関数の連鎖律⑤】
ニューラルネットワークを想定した場合の多変量関数の連鎖律について説明。 入力から見た際の関数の伝達ルートが複数になる。 変化させたいのは入力ではなく重み。
MATLAB,Python,Scilab,Julia比較 第4章 その40【多変量関数の連鎖律④】
多変数関数の連鎖律について説明。 数が増えるだけで普通の連鎖律と変わらない。 図示&数式があると分かり易い。
MATLAB,Python,Scilab,Julia比較 第4章 その39【多変量関数の連鎖律③】
合成関数の微分(連鎖律)の証明を実施。 途中、いろいろトリッキーなことをする。 結果としては、中間変数を微分、中間変数での微分の組み合わせで表現しなおせるというもの。
MATLAB,Python,Scilab,Julia比較 第4章 その38【多変量関数の連鎖律②】
合計関数の微分(連鎖律)について説明。 まずは1入力1出力な合成関数。 合計関数の微分をするための公式はあるが、一応証明もしてみる予定。
MATLAB,Python,Scilab,Julia比較 第4章 その37【多変量関数の連鎖律①】
多変数関数の連鎖律に突入したが、これを理解するのに必要な知識があるため、それらを列挙。 合成関数につい説明。 単純パーセプトロンも入力層の内積、活性化関数、誤差関数の組み合わせが合成関数と言える。
シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をJuliaで算出。 グラフで比較し、導出した導関数は正しいと言える結果となった。
シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をScilabで算出。 グラフで比較し、導出した導関数は正しいと言える結果となった。
シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をPythonで算出。 グラフで比較し、導出した導関数は正しいと言える結果となった。
シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をMATLABで算出。 グラフで比較し、導出した導関数は正しいと言える結果となった。
MATLAB,Python,Scilab,Julia比較 第4章 その36【連鎖律の前準備⑩】
シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をJuliaで算出。 グラフで比較し、導出した導関数は正しいと言える結果となった。
MATLAB,Python,Scilab,Julia比較 第4章 その35【連鎖律の前準備⑨】
シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をScilabで算出。 グラフで比較し、導出した導関数は正しいと言える結果となった。
MATLAB,Python,Scilab,Julia比較 第4章 その34【連鎖律の前準備⑧】
シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をPythonで算出。 グラフで比較し、導出した導関数は正しいと言える結果となった。
MATLAB,Python,Scilab,Julia比較 第4章 その33【連鎖律の前準備⑦】
シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をMATLABで算出。 グラフで比較し、導出した導関数は正しいと言える結果となった。
商の微分方式の話。 逆数の微分公式と積の微分公式の合わせ技で導出。 いままでの公式達を再掲。 商の微分公式を使ってシグモイド関数の導関数を求めた。 シグモイド関数、シグモイド関数の導関数の再掲と、シグモイド関数のオイラー法による微分の数式を確認する予定。
最適化アルゴリズムを使用するには連鎖律が必要。 連鎖律を把握するための知識を列挙。 まずは逆数の微分公式。 積の微分公式を導出。
MATLAB,Python,Scilab,Julia比較 第4章 その32【連鎖律の前準備⑥】
シグモイド関数、シグモイド関数の導関数の再掲と、シグモイド関数のオイラー法による微分の数式を確認。 上記を実現するプログラムを作成して、似た波形になればOKと見なす。 シグモイド関数の導関数は有名なので間違っていることは無いはず。
世の中にAI実装検定A級の問題集が存在しないようなので、サクッと作ってみた。 とりあえず63問ほど放り込んでる。 (問題を解いてこのページに飛んできた場合、解答はこのページの下部に表示されてます。) AI実装検定A級のまとめ記事はこちら 解
世の中にAI実装検定A級の問題集が存在しないようなので、サクッと作ってみた。 とりあえず63問ほど放り込んでる。 (問題を解いてこのページに飛んできた場合、解答はこのページの下部に表示されてます。) AI実装検定A級のまとめ記事はこちら 解
AI実装検定A級に合格しました。 合格率、テキスト、勉強時間、試験日について解説。 なぜか問題集も作った。 公式テキスト範囲外もあらかじめ認識しておけば怖く無い。
MATLAB,Python,Scilab,Julia比較 第4章 その31【連鎖律の前準備⑤】
いままでの公式達を再掲。 商の微分公式を使ってシグモイド関数の導関数を求めた。 本当に導関数になっているか、オイラー法で求めたシグモイド関数の微分のプロットと比較してみる。
「ブログリーダー」を活用して、KEIさんをフォローしませんか?
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...
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。変換を想定した式に変換。複素指数関数との積と積分、総和を経由すると元に関数に戻るというイメージが重要。
AviUtlのセットアップと拡張編集Pluginの導入を行った。mp4ファイルの入力と出力の方法を説明。アニメーションgifの対応方法を説明。
もう一個試す予定の最適化アルゴリズム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で実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をPythonで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。 モーメンタムの方が学習の収束が早い。 勾配降下法で500エポックのところ100エポック。 モーメンタムの場合、初期のパラメータ移動が大き目。 これにより、大域最適化を見つける可能性が高くなる。
最適化アルゴリズム モーメンタムを用いて分類の学習をJuliaで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をPythonで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。