particle filterに関して
実装できるから時間があればやりたいな, pythonで.
Graph Attention Networks (GAT) の簡単な説明
下記の論文を参考にしました.
https://arxiv.org/pdf/1710.10903.pdf
ICLR 2018で提出されたもののようです.
まず,abstractですが「スペクトルベースのグラフニューラルネットワークのいくつかの重要な課題に同時に対処し、モデルを帰納的にも容易に適用できるようにします」とあります. 主に計算においてコストがかかるなどの問題が発生しているようですね.
以下は論文のまとめです.
1: spatial convolutional networkである.
つまり,グラフラプラシアンなどの計算方法を用いていないということ.
2: 隣接ノードに対してattentionを適用して, softmaxを通している.
上記の方法で, key query, valueを用いていない仕組みになっている.
3: 様々な論文分類問題で通常のGCNなどよりも高い精度を獲得した.
4: 問題点として異なるカーディナリティがある特徴量を再帰的に計算している場合に問題があるのではないかと思う.
5: attentionのくだりで説明可能性もあまり無いだろうことが分かる.
6: 大規模データにおいても幾つかの計算上の工夫が必要であるということ.
結論
やはり,アルゴリズムの詳細は詳しくは分かりません. 他の論文を参考にして何ができて何ができないのかを参考にしていきたいと思います.
遺伝的な手法の様々な問題とその解決テクニック
実用的な遺伝的アルゴリズムのテクニック
minmax法: スケーリング手法に主に使われる.例えば,学習後半で最適なfitnessを選択するためにこれが使われる.
roulette手法: 交叉や突然変異によるfitnessの変動が著しい場合,このトーナメント選択手法を用いると効果的である.
条件付きトーナメント選択: 個体の情報量(もしくはハミング距離)を用いて交叉や突然変異,選択を行うこと.
幾つかの遺伝的な学習における問題.
(1) ヒッチハイキングの問題:二点交叉,またはそれに準ずる交叉であると著しく学習が遅くなる現象.
解決策:
①一様交叉を使う
②スワップミューテーション,フリップビット変異を利用する.
どちらも,世代単位で局所的な位置に交換範囲を絞っているのでヒッチハイキングの問題が発生しがちなのであれば,逆により高い効果を発揮する.
注] 一点交叉は現在では非常に非効率なため,利用されていない.二点交叉もスキーマ定理によって成長比率が悪いことが分かる.
(2) トラップ問題: 大域的最適解が孤立している. (trap(u) = k-1-u (u!=k), k(u=k))
解決策:
① GA-NS
② アンサンブリング
③ 多目的最適化手法の応用
これらはすべて総合的な判断を段階的に行っていく手法となっている.
(3)交叉競合: 交叉が大域的最適解を見つけるのに十分必要な選択圧の調整がされておらず,選択圧が交叉のその効果を打ち消してしまうほどに強い状態のこと.
解決策:
① GA + ESを用いる. (最適な個体のバリエーションを増やす.)
② 絶対的に選択圧を小さくすること. (多種多様なトレードオフを考えているにもかかわらず,重要なポイントになってくる.) エリート主義を少なくとも条件付きにする.
③ 真の多様性の為にできることを考える. (個体を保全するだけにとどまらない考えができる.)
注] 基本的に交叉の割合は0.2前後に保たれているが,その比率は様々な問題で変化することはない. 適切な集団サイズなどが決定すればそれは正確に決定できる.
(4):勾配消失
Genetic ProgrammingではMLと同じく,より葉に近い部分のノードの活性化が反映されなくなる可能性が高くなる.
解決策:
①: 突然変異を下層で精度よく値が伝えられるようなアルゴリズムにする.
②: fitnessをスケーリングする.
③: dropoutを取り入れる.
④: 木を多段階にする.
(5): ハイパーパラメーターの調整が面倒である.
問題に応じて最適なパラメータの決定やその調整を考える必要がある.
解決策:
①: ESを用いたハイパーパラメーターの決定をする.
②: メタヒューリスティックなアルゴリズムでハイパーパラメーターの調整をする.
以上はすべて完全に私個人の見解ですのですべてをそのまま鵜呑みにしないでください.これが間違っていると主張してくださる研究者やその他の関連分野の方がいらっしゃればコメントしてください.
NFL定理は強化学習の最適化とは関係ありません.
例えば,アスリートは常に人類が存在する以上,最新記録を更新し続けます.他のsportsでも同様です.人間はmulti agentで全ての問題をより最適化することができます. つまり, 現在解決可能な全ての問題の部分群を特定の精度で解決できるアルゴリズムを常に超えるアルゴリズムは存在し続けるということです. RLやGAの組み合わせになるかもしれませんし, 量子コンピューター,を利用するかもしれません.
厳密にいえば,
(1) x=a(d^x,d^y)であることにより, xはfに依存しないとありますが, 実際には強化学習は何らかのポリシーによって更新されるため,軌道の集合がfに依存しないことはありません. これは証明中に存在していて成立する,fに依存しない話であるのでもしNFLを現実的な強化学習のトレードオフと結びつけるとしたら問題があります.
(2)m+1へ移るとき,新たなyの値は新たなxの値と関数fのみに依存するとありますが,現実的には過去のそのほかの情報(experience replay)などを用いています.これは証明中に存在している定理を導くための仮定であるため,現実的な設定ではありません.そのような仮定を置かなくても十分,そこで仮定されている全ての問題を解くことが可能です.(特殊な問題を解決するためにそれが通常の最適化アルゴリズムである必要はありません.従って,過去の情報を用いるなどして問題解決できるということです.)
従って,現状のRLの問題を全て別のアルゴリズムでより精度よく解くことは可能です.
更に未知の問題を全て良い精度で解くことが可能であるかもしれません.
まとめると,NFL定理はRLの最適化と何の関連性もありません.
間違っていたら連絡してください.
シュミレーション仮説に関して
例えば,ある特定の次元における量の順序を吐き出すblackboxを考えてほしい.例えば,時間におけるcmの変化を時系列に解析してそれを昇順に並べ替えるというプログラミングコードを考えてほしい.或いはある特定の空間での時間変化における切り取りを何らかの評価関数で順位付けすることができるblackboxを考えることができる.
次に人はこのblackboxが無数にあると仮定している.すなわち,これらのblackboxが最適な時間計算量順に並び替えることができる装置を再びblackboxと考えている.
つまり,人はこの連想から,今自分が呼吸しているのも,何かを創造しているのもすべて予めこれらのblackboxが積み重なっているに過ぎないのではないのか?と考えているのである.
blackboxは全てを順序付けることができるので,あなたの創造を実際に現実で起きたような順番に並び替えるような操作も行うことができうることを意味する.
あくまでも今見えている世界は現在のところ量子力学や超ひも理論の範囲.その先を人の創造で幾らでも説明していくことは可能であることを忘れないでほしい.
ここに普遍性定理というものがある.三層のNNと活性化関数を挟めば,どんな関数をも近似することができるという定理である.
つまり,人の創造によって幾らでも現実を記述することが可能であるということ.
これらはあくまでも関連的補足に過ぎない.ここで面白い証明をしてみよう.
[シュミレーション仮説は間違っていることの証明.]
神さえもblackboxとして出力することができるのであれば,どんな仮定も成立する.
神は全てのblackboxを最高の時間計算量(0)で出力することができるblackboxである.
つまり,blackboxそのものを必要としないblackboxが存在することになる.(更に神は自分自身を再生産することができる.)
blackboxで出力された神は少なくとも,それより早い時間で自分を生み出したblackboxを生成することが可能である.自分が生まれるより前に生成することが可能であるので,神は永遠に生まれないことも可能である.しかし,そうするとblackboxの一部はつくれないことになる. (blackbox化可能でないという事実を創り出す神自体がそれを取り消せるわけであるから,blackboxの一部を創り出せないという命題を取り消すことはできない. ゆえにこれを出力可能なblackboxは存在しなくなる.これは再帰する.)
つまり,神がいるとするとblackboxという仮定が間違っている.つまり,シュミレーション仮説は成立しない.
神がいないとすれば一部のblackboxは存在しない.ゆえにシュミレーション仮説は存在しない.
もしも再帰が幻想であるのだとしたら,再帰の概念を利用しているシュミレーション仮説の命題自体が成立しない.
[Q.E.D]
BlockchainにおけるDeFiの将来
そもそもblockchainは流動性の為にICOというトークン発行を無制限に行っている.この流動性はminerがどれだけ参入するのかにかかっている.ユーザーが資産を交換できるアプリケーションがどれだけあるのかということも流動性に関わってくる.
それを他の仮想通貨とどれだけ交換するのかという部分はDeFiという用語で金融業界ではトレンドであるらしい.
ethereum2.0ではPoSに移行することがメインだが,結果的にそれだと少数のプロのマーケットメイカーが流動性提供するDEXになることは必然だ.
どれだけ高速化の為にシャードチェーンを追加したところでマイニングの量で信用性を判断されるシステムでは一部の企業がマイニングを加速し,格差社会を促進するだけである.
DeFi自体は実生活の応用まで視野に入れた幅広い用途を想定されているので,これはその補助として機能している.
たとえばあるアプリケーションの通貨の価値を市場がどう決定するのかが分散型取引所(DEX)で決定されることになる.
しかし,もしスループットやコストの観点で考えるのであれば,オフチェーンで取引することが現実的な方法といえるだろう.
オラクルがコストを引き下げる方法を考えるよりもオフチェーンで取引したほうが安いからだ. シャードチェーンというのも実質的にオフチェーンのときと変わらないと考えられる.ならば最初からアーキテクチャを複雑化するよりも,オフチェーンにした方がよいはずだ.
誰もが直接的に銀行の様な貸し付けを行うことができると世界経済にどう影響するのかも,その匿名性の観点から犯罪に利用される可能性も未知数である.少なくとも,現行の資本主義の社会ではレンディング市場としてのDeFiは現実的に成立しにくいように思われる.なぜなら,ある一人の人がそこでクラウドファンディングしようとしてももしも本当に個人単位で貸し付けが行われたら管理が煩雑になるし,分散された資金が寄せ集まってくるだけで金利のかけ方もばらばらなので効率が悪すぎるからだ.
更に予測市場としてのDeFiに関しては政治的な難しさ,ビックデータの台頭などの影響もあり,ビッグデータを利用できる人間が限られている限り恐らく発展しないだろう.
まとめると,分散型の金融市場において流動性アプリケーションとしてのDeFiのみが方向性として成立することになるだろう.
間違いがあれば指摘してください.この次は産業への応用に関してまとめたいと思っています.