ここから本文です
501

zmaxis 買いたい 6月29日 22:24

(続き)
 次にGAについてだが、、勾配操作の無い評価関数
(パラメータの設定はある)がまずあり、それに
対して入力値→出力値がある。そして優秀な出力を
残し、時には突然変異等の操作を行い、入力値にし、
それに対して優秀な出力を残し…と言った操作を
繰り返し、最適な入力値を探索するのがGAだ。

 実はGAのこのような操作はGANの仕組みに、実に
似てたりするのだが(文章を見比べてほしい)、
評価関数事態に勾配操作(バックプロパゲーション)が
無いのが、一番の違いだ。進化計算によるAI活用
モデル「進化計算ダーウィン」は上記のどれに
当てはまるというかと言うと、最後の、GA
(遺伝的アルゴリズム)フレームワークと言える。
評価関数の良し悪し自体を評価する関数ももちろん
あるのだが、それについてもここでは説明しない
(de Jong test functionsとかで検索してくれ)。

 さて、進化計算ダーウィンはGAベースの
フレームワークと言うことが分かった。何故最近、
GAが再び注目されているのかと言うと、
AIアルゴリズムには人が設定するハイパーパラメータ
と言うのがあり、AIが複雑になるにつれて、
ハイパーパラメータの組み合わせが膨大になり、
組合せ爆発が起こると言う、面倒なことはAIに
任せるはずがそのAIで逆に面倒なことが起こる
という本末転倒なことが起こるのだが、GAを使えば
その問題を高速に解決することができるのだ。
まあ、PFNとか言う会社がOptunaと言うものを
作っているのだが、まさにこれに相当する。


 余談だが、進化計算ダーウィンを作った藤原博文氏
を俺が初めて知ったのは20年以上前に
「(コ)の業界のオキテ」と言う本を通してだが、
これを言うと年がバレるな。

 何故、こんなに俺がAIについて詳しいかと言うと、
俺は一通りの機能が揃ったCNNのシステムを
Tensor Flow、AWS、Chainerと言ったどこかの会社が
作ったライブラリ等を一切使用せず(そもそも当時は
無かったしな)、英語論文だけを読んで一人で全て
作りあげたことがある。もう5年も前の話だ。

懐かしいぜ。

  • 502

    zmaxis 買いたい 6月29日 22:24

    >>501

     バーチャレクスの進化計算ダーウィンについて、
    知っておいて欲しいことがあるので、超長文だが
    書く(ヒントもよく読めば分かる人には分かる
    ように書いたつもりだ)。

     世の中(少なくとも日本において)、一般的に
    AIと言われているものについて、全結合層と、
    それの前後にコンボリューションやデコンボリューション
    (+プーリング)を付け、勾配をバックプロパゲーション
    で操作したもの…つまり、CNNやDCNNを指すものが多い。
    もしくは時間軸のフィードバック操作を付けたLSTMや
    RNNも大きくはこの範疇に含まれると言っても良いだろう。
    (とか言うと文句を言う専門家もいるけどな)

     それ以外に、今AI界隈でホットワードなのはGAとGANだ。
    綴りは似ているが…実は機能の意味的にはも似ているの
    だが(後述する)…GAはGenerative adversarial、
    遺伝的アルゴリズムの事だ。もう一方のGANは略は
    忘れたが、敵対的生成ネットワークと言う。

     GANとは偽データを作るジェネレータとそれを本物か
    どうか見分けるディスクリミネーターからなっており、
    ディスクリミネータのバックプロパゲーションの元と
    なるラベルは通常のCNNと同じく、正解かどうか。
    ジェネレータのラベルはディスクリミネータを
    だませたかどうかになる。これを元に勾配操作する
    のだ。GANの良いところは、実はディスクリミネータは
    CNNそのもの(もしくはDCNNから全結合層を抜いたもの)
    であり、ジェネレータもぶっちゃけデコンボリューション
    であるのでCNNを作ったことのある人に取っては、
    スクラッチ開発するのは、そう難しくない。尚、GANを
    利用するとAIが飛躍的に発展する嬉しい要素が色々
    あるのだが、ここでは説明しない。
    (続く)