{CGP}{Genetic Programming}{遺伝的プログラミング}(3)

{Cartesian Genetic Programming K#EDD2/A562}

t_w
2023-06-17 10:04
(9){Cartesian Genetic Programmingで文章の類似度を学習}{あれ}{Cartesian Genetic Programmingにおける誤差逆伝播法の導出}{Cartesian Genetic Programmingの模式図}{あれ}{あれ}{あれ}{あれ}{あれ}
(9)
{Sentence Embedding}{Cartesian Genetic Programming}{遺伝的プログラミング}{knownetにベクトル検索を実装}(4)

{Cartesian Genetic Programmingで文章の類似度を学習 K#EDD2/0E2A}

t_w
2023-09-18 20:192023-06-19 06:44
(38){あれ}{あれ}{あれ}{あれ}{あれ}{あれ}{あれ}{あれ}{あれ}{あれ}
{輪郭のプログラム化}{あれ}{輪郭の計算可能性}{Cartesian Genetic Programming}{多重階層構造}{輪郭法}(6)

{あれ K#EDD2/C714}

t_w

輪郭法も多重階層構造だし、Cartesian Genetic Programmingも多重階層構造なので、輪郭法で数式あるいはプログラムを構成できるのではないか?というね。

2023-09-11 01:232023-09-11 01:19
(2){あれ}
{誤差逆伝播法の導出}{Cartesian Genetic Programming}{誤差逆伝播法}(3)

{Cartesian Genetic Programmingにおける誤差逆伝播法の導出 K#EDD2/7105}

t_w

まだ導出途中

Cartesian Genetic Programmingの模式図

準備

記号の準備

入力層の出力:\( x_i \)
中間層の出力:\( y_j = f_j(x_{o(j)}, x_{p(j)}, a_j) \)
出力層の出力:\( z_k = g_k(y_{m(k)}, y_{n(k)}, b_k) \)

\(z_k\)の入力1:\(y_{m(k)}\)
\(z_k\)の入力2:\(y_{n(k)}\)

\(y_j\)の入力1:\(x_{o(j)}\)
\(y_j\)の入力2:\(x_{p(j)}\)

中間層のj番目のノードが持つ関数:\(f_j\)
出力層のk番目のノードが持つ関数:\(g_k\)

中間層のj番目のノードが持つ定数:\(a_j\)
出力層のk番目のノードが持つ定数:\(b_k\)

出力層の出力と教師信号からなる損失関数:\(E\)

ゴール

損失関数について中間層のj番目のノードが持つ定数\(a_j\)と出力層のk番目のノードが持つ定数\(b_k\)で微分


損失関数\(E\)を出力層の入力値で微分

$$ \frac{\partial z_k}{\partial y_{m(k)}} = \frac{\partial g_k(y_{m(k)}, y_{n(k)}, b_k)}{\partial y_{m(k)}} $$
$$ \frac{\partial z_k}{\partial y_{n(k)}} = \frac{\partial g_k(y_{m(k)}, y_{n(k)}, b_k)}{\partial y_{n(k)}}$$
$$ \frac{\partial z_k}{\partial b_k} = \frac{\partial g_k(y_{m(k)}, y_{n(k)}, b_k)}{\partial b_k}$$

$$ \frac{\partial E}{\partial y_{m(k)}} = \frac{\partial E}{\partial z_k} \frac{\partial z_k}{\partial y_{m(k)}}$$
$$ \frac{\partial E}{\partial y_{n(k)}} = \frac{\partial E}{\partial z_k} \frac{\partial z_k}{\partial y_{n(k)}}$$
$$ \frac{\partial E}{\partial b_k} = \frac{\partial E}{\partial z_k} \frac{\partial z_k}{\partial b_k}$$

\( \frac{\partial E}{\partial z_k} \)の値はいい感じにプログラマが計算して与えるものとする。損失関数を数値微分しても良い。

損失関数\(E\)を中間層の入力値で微分

\(j = m(k)\)あるいは\(j = n(k)\)のときの\(\frac{\partial E}{\partial y_j}\)についてはすでに上にて計算済みであり、使いまわすことができる。

$$ \frac{\partial y_j}{\partial x_{o(j)}} = \frac{\partial f_j(x_{o(j)}, x_{p(j)}, a_j)}{\partial x_{o(j)}} $$
$$ \frac{\partial y_j}{\partial x_{p(j)}} = \frac{\partial f_j(x_{o(j)}, x_{p(j)}, a_j)}{\partial x_{p(j)}} $$
$$ \frac{\partial y_j}{\partial x_{o(j)}} = \frac{\partial f_j(x_{o(j)}, x_{p(j)}, a_j)}{\partial a_j} $$
$$ \frac{\partial E}{\partial x_{o(j)}} = \frac{\partial E}{\partial y_j} \frac{\partial y_j}{\partial x_{o(j)}} = \frac{\partial E}{\partial y_j} \frac{\partial f_j(x_{o(j)}, x_{p(j)}, a_j)}{\partial x_{o(j)}} $$
$$ \frac{\partial E}{\partial x_{o(j)}} = \frac{\partial E}{\partial y_j} \frac{\partial y_j}{\partial x_{o(j)}} $$
$$ \frac{\partial E}{\partial x_{o(j)}} = \frac{\partial E}{\partial y_j} \frac{\partial y_j}{\partial x_{o(j)}} $$
2023-09-06 02:092023-08-26 14:25
(5){あれ}{Cartesian Genetic Programmingの模式図}{あれ}{あれ}{あれ}
{Cartesian Genetic Programmingにおける誤差逆伝播法の導出}{Cartesian Genetic Programming}(2)

{Cartesian Genetic Programmingの模式図 K#EDD2/E83D}

t_w

2023-08-26 16:522023-08-26 16:26
{『ニューロ・ファジィ・遺伝的アルゴリズム』}{Cartesian Genetic Programming}{遺伝的プログラミング}{誤差逆伝播法}(4)

{あれ K#EDD2/705F}

t_w

遺伝的プログラミングと誤差逆伝播法を組み合わせるにあたって、誤差逆伝播法の具体的計算方法がウェブを見ていてもわからんので、『ニューロ・ファジィ・遺伝的アルゴリズム』を戸棚から引き出してきた。誤差逆伝播法の章にt_wの書き込みがされており、理解の道筋をたどることができる算段。

ただ、紙の書籍で取り回しが悪いので、アレしましょう。デライトに書きましょう。

2023-08-20 22:282023-08-20 22:21
{Cartesian Genetic Programming}{遺伝的プログラミング}{アイデア}{ONNX}(4)

{あれ K#EDD2/9253}

t_w

遺伝的プログラミングの学習結果をonnxにするというアイデアが降りてきた。
onnxのエコシステムに乗っけられるのが嬉しいポイント

2023-08-15 21:152023-08-15 21:12
{オーバーフロー}{Cartesian Genetic Programming}{遺伝的プログラミング}(3)

{あれ K#EDD2/FF19}

t_w

遺伝的プログラミングの計算を小数にしたら学習しなった。シット!!

整数値で計算させていた時には、数値が巨大化する問題がオーバーフローによって回避されていたらしい。

2023-07-27 21:41
{Cartesian Genetic Programmingで生成したプログラムを誤差逆伝播で学習}{Sentence Embedding}{Cartesian Genetic Programming}{遺伝的プログラミング}{誤差逆伝播法}(5)

{あれ K#EDD2/C932}

t_w

遺伝的プログラミングで誤差逆伝播法行くぞ!!!

遺伝的プログラミング(Cartesian Genetic Programming)で得られたグラフ構造に内在するパラメーターを誤差逆伝播法で学習してやるのだぁ!!

遺伝的プログラミング単体ではどうにも学習が進まないのでやってやろうじゃねぇかよとなった。

『生成 AI に必要な「基盤モデル」のメモリ使用量 98%削減につながる技術を開発 ─ 自動運転車や工作用ロボット用組み込みシステムへの搭載を目指す』も背中を後押しした。良い構造の小さいモデルで良い性能が出せることが示された。

2023-07-25 23:492023-07-25 23:42
{あれ}{WebGPUで遺伝的プログラミング}{Cartesian Genetic Programming}(3)

{あれ K#EDD2/D36C}

t_w

うごいた!!遺伝的プログラミングがWebGPUで!!!遅い!!!!CPUより8倍ぐらい遅い!!!俺たちの戦いはこれからだ!!!

2023-07-17 23:322023-07-17 23:30
{Cartesian Genetic Programming}

{}