https://www.robots.ox.ac.uk/~vgg/publications/2019/Han19/han19.pdf
- 自己教師あり学習でビデオから時空間埋め込みを学習。人間の動作認識
- Dense Predictive Coding という手法を提案
recurrently predicting future representation
- カリキュラムトレーニング
- Kinetics 400 で事前学習してaction recognitionで評価
2020年5月11日月曜日
2017年10月11日水曜日
Asynchronous Methods for Deep Reinforcement Learning
https://arxiv.org/abs/1602.01783
A3C を提案しているペーパ。
学習を安定化するためにexperience replay をしたりするのだけど、
- on-policy ではだめ
- メモリ食い過ぎ
という問題がある。
ので、
- 複数の学習機を同じ環境のコピー上で同時に非同期に実行して、その学習結果を共有することで安定化する
というアイディア。基本的にSarsaでもQ-learningでも適用できる。
A3C を提案しているペーパ。
学習を安定化するためにexperience replay をしたりするのだけど、
- on-policy ではだめ
- メモリ食い過ぎ
という問題がある。
ので、
- 複数の学習機を同じ環境のコピー上で同時に非同期に実行して、その学習結果を共有することで安定化する
というアイディア。基本的にSarsaでもQ-learningでも適用できる。
Continuous control with deep reinforcement learning
Actor-critic のDeep Learning 版?
- DQNというかQ-learningではベストなactionを検索する必要が有るので、action spaceが広かったり連続だったりすると扱えない。なのでActor-Criticをベースにする。ActorはQやVとは独立のネットワークでactionを決定するのでこのような問題がない。
- 学習を安定化するために、Qネットワークμネットワークにそれぞれtargetネットワークを作り、そちらを更新するようになている。これは [minh et al 2013] でやられていることと同じらしい。
- Off ポリシなので、exploration が用意。
2017年8月23日水曜日
Action-Conditional Video Prediction using Deep Networks in Atari Games
ATARIゲームの盤面とアクションを入力にして次の画面を予測する。
encoding network とdecoding networkを組み合わせる。
真ん中にRNNを入れるバージョンと、入力画面を数フレーム分アンロールして
与えるバージョン(feedforwardと呼んでいる)の2つを作ってテストしている。
encoding network とdecoding networkを組み合わせる。
真ん中にRNNを入れるバージョンと、入力画面を数フレーム分アンロールして
与えるバージョン(feedforwardと呼んでいる)の2つを作ってテストしている。
予測性能を見ると、場合によってどちらが良いかが変わるようだ。
さらにDQNの学習に予測した画面を用いることで性能が向上すると主張している。スコアをみるとほとんど変わってないが、QBertでは大きく向上しているように見える。
QBert ってこんなゲームなのか。。
https://www.youtube.com/watch?v=karPYs22ACc
https://www.youtube.com/watch?v=karPYs22ACc
2017年8月21日月曜日
A filter based approach for inbetweening
ドワンゴの中割論文。Arxivに、日本語の論文がおけるというのが新鮮な驚き。基本的に入力を2枚与えると、補間した1枚が出力されるというネットワークを作っている。
- data augmentation として、平行移動、回転。
- ネットワークは低解像度と高解像度のネットワークを使う、と書いてあるがどうつながってるのかわからない。
全体に何をやったのかよくわからない。。うまくいったのかどうかの評価も曖昧。
2016年11月4日金曜日
MAD Skills: New Analysis Practices for Big Data
- VLDB09
- Greenplum と UCB
- さまざまな機械学習アルゴリズムが並列DB上で実装可能だということを述べている
- 実装は無い
- MAD は Magnetic, Agile, Deep。
- Magnetic は何でもかんでも引きつける、ぐらいの意味で、データを選別せずになんでも入れるというぐらいのニュアンスか?
- Deep はDeep Learningとは関係なく、深い解析、ぐらいの意味だろう。
- MADという言葉はまったく流行らなかったが、中身は大変今日的で、Spark SQLやHiveMallなどで実現されている、という位置づけになるのか。
2016年10月20日木曜日
PFA : Portable format for Analytics
- データ解析において、初期のexploration に使うツールとdeploymentに使うツールに求められる性質は大きく異る。前者を本番環境で使うとだいたい酷い目に遭う。
- 前者と後者の間に共通のフォーマットを定義して、移行をスムースにする。前者が吐いたPFAを後者で読み込んで利用することをおそらく想定している。
- PMML というXMLベースのものが以前は存在したが、それよりは柔軟であると主張している。
- JSONで表現されているが、基本的にはオペレーショナルな言語で、ターゲット環境では別の言語に変換された上で実行されるのだろう。
- やりたいことは理解できるが、この手のinteroperationを実現するツールは、さまざまなツールの最大公約数的な機能しかサポートされず、結局あんまり使われない、というオチをあちこちで見たような。うまくいくんだろうか。
2016年10月10日月曜日
Playing Atari with Deep Reinforcement Learning
Playing Atari with Deep Reinforcement Learning
http://www.iclr.cc/lib/exe/fetch.php?media=iclr2015:silver-iclr2015.pdf
DeepMind。ゲームをNNでやるという話。
DeepMind。ゲームをNNでやるという話。
- ATARI 2600のゲーム7種に適用。同一ネットワーク。ハイパーパラメータも同じ。
- CNNをQ-learningの一種でtrain
- 入力はピクセルで、出力は将来の報酬を予測する関数。
- End-to-End で学習。つまり、ピクセルの認識とゲームのルールに対する学習を一度に行う。(たぶんLISは違う。)
- ネットワークは5層程度。サイズも小さいし、深くもない。
- 入力はピクセル、出力は各アクションに対する報酬の予測値?
- 入力画像を白黒4ビット化して処理している。これは相当不利な条件のはずだが遜色ない性能を得ているとのこと。
- 100万フレームとか食わせている。おそろしい。
2016年10月6日木曜日
Deep Predictive Coding Networks for Video Prediction and Unsupervised Learning
- https://arxiv.org/abs/1605.08104
- Havard
- 正味シングルカラムで 8ページしかない。 図版、referenceをいれて12ページ
- ビデオデータから未来を予測するという形で、教師なし学習
- 2方向にローテーションする顔や、ドライブデータで評価していて、非常にうまく言っているように見える。
- ネットワークは以外に単純。予測誤差を予測する、と言うかたちでカスケードしていく。個々のネットワークにLSTMが入っている。
- Havard
- 正味シングルカラムで 8ページしかない。 図版、referenceをいれて12ページ
- ビデオデータから未来を予測するという形で、教師なし学習
- 2方向にローテーションする顔や、ドライブデータで評価していて、非常にうまく言っているように見える。
- ネットワークは以外に単純。予測誤差を予測する、と言うかたちでカスケードしていく。個々のネットワークにLSTMが入っている。
2016年10月2日日曜日
Building High-level Features Using Large Scale Unsupervised Learning,
```Building High-level Features Using Large Scale Unsupervised Learning,
Quoc V. Le, Marc’Aurelio Ranzato, Rajat Monga, Matthieu Devin, Kai Chen, Greg S. Corrado, Jeffrey Dean, and Andrew Y. Ng, CML 2012: 29th International Conference on Machine Learning, June, 2012.```
猫の概念を自動的に学習した、ということで有名になったあれ。
- 9-layer sparse autoencoder。局所受容野は入っている。
- 10M 枚の200x200ピクセルイメージ
- 1,000 台 16,000 コアで 3日学習
- 非同期SDG
2016年2月7日日曜日
Bitcoin: A Peer-to-Peer Electronic Cash System
- Satoshi Nakamoto
- https://bitcoin.org/bitcoin.pdf
シングルカラムでわずか9ページしかない。簡潔。
- Timestamp Server がアイデアのもと?t時点のデータをt+1時点のデータのハッシュに組み込むことで、t のデータがt-1よりも先行していることを保証する。Timestamp server では、ハッシュをUsenetに投稿するなどする。
- Hashのchainが最長のものが真のchainである、というアイディアが本質なのだろうか。
- Mining と ネットワークの維持が一体化している点も巧み。
仕掛けはなんとなく理解できたが、いろいろわからない。
- Transaction が世間的に認められるには、そのTransaction がふくまれた後続Transactionができたことを確認しないといけないように思うのだけど、それにはある程度の計算が必要で10分ぐらいかかりそう。運用としてどうなってるんだろう。
- この種のものが信用されるには初期にある程度のサーバが参加していなければならなさそうだが、それをどうやって実現したのか。
2015年12月18日金曜日
DIANNE: Distributed Artificial Neural Networks for the Internet of Things
http://dl.acm.org/citation.
DLフレームワーク。パイプラインのステージを別のデバイスに実装することができる。OSGi をベースにしたAIOLOS上に実装ということなので、Javaらしい。JNIでCUDAを呼び出す。ラズパイやエジソンで動かしている。
レイテンシ重視なのでミニバッチしないらしい。ミニバッチしなくて、GPGPUの性能が出るのかと思うけど、とりあえずでているようだ。不思議。
2015年7月17日金曜日
Optimizing Shuffle Performance in Spark
Optimizing Shuffle Performance in Spark
- [http://www.cs.berkeley.edu/~kubitron/courses/cs262a-F13/projects/reports/project16_report.pdf]
- Spark では相対的にMapとReduceが高速化されるので、shuffleがボトルネックになる。
- shffuleの対策として、mapの出力を圧縮する方法があり、他のDBでうまく言っているカラム単位で圧縮するのを試してみたがうまく行かなかった。
- ファイルの数がMapper 数 x Reducer数になっているのが問題と考え、同じコア上で動作するMapperの出力は同じファイルにするようにしたら速くなった。
論文ではなくてレポート?
2015年7月14日火曜日
圧縮センシングの数理
圧縮センシングの数理
- 田中 利幸 - [https://www.jstage.jst.go.jp/article/essfr/4/1/4_1_39/_pdf]
解説論文。圧縮センシングとは、スパースなベクタを限定的な観測を繰り返した結果から類推する という問題。1-ノルムを用いることで線形計画問題に持ち込む?凸なので簡単?
2015年6月29日月曜日
Project Adam: Building an Efficient and Scalable Deep Learning Training System
Project Adam: Building an Efficient and Scalable Deep Learning Training System
- Trishul Chilimbi Yutaka Suzue Johnson Apacible Karthik Kalyanaraman
- Microsoft Research
- Adam というのがシステム名
- ImageNet で評価。
- より少ないマシンで効率よく学習しているという主張。
- 2 bilion のモデル
- 複数のモデルをパラメータストアで同期
- 個々のモデルそのものも複数のノードに分散
- データサーバ - 10-100TBものデータを更に変形して食わせる。変形のために専用のサーバ群を用意する。
- パラメータサーバとの通信
- convolution についてはパラメータ数が小さいので普通にやる
- full connection の部分は、データ量が多くなるので、activation and error gradient vectorを送って、計算はparameter Server 側で行う。これでデータ通信量が MN から k (M+N) になる。
- parameter serverの実装
- shard table を使った分散実装。shard size1MB
- delayed persistence - loss を許容している。
2015年3月12日木曜日
DaDianNao: A Machine-Learning Supercomputer
DaDianNao: A Machine-Learning Supercomputer
Yunji Chen1, Tao Luo1,3, Shaoli Liu1, Shijin Zhang1, Liqiang He2,4, Jia Wang1, Ling Li1, Tianshi Chen1, Zhiwei Xu1, Ninghui Sun1, Olivier Temam2
- Micro-47 のベストペーパー
- そのうち誰かがやるだろうと思われていた、DNNをASICで作る、という話。
- ただし、今のところまだ実物を作っているわけではない。28nm,0.9Vで作った場合をシミュレートしている。606MHzで動作。
- 基本的には、CNNはメモリフットプリントが小さいのでオンチップメモリに乗る。外部通信は少ない。のでASICで作れば速くなるだろうから作った、ということ。
- GPUよりも450.65倍速く、消費電力は 150分の1。
- 分類フェーズだけでなく、学習フェーズもサポート。IBMのチップは前者だけ。
2014年10月16日木曜日
OSv—Optimizing the Operating System for Virtual Machines
ここからダウンロード。
うわさの OSv。このペーパーを読んで何が驚いたかって、”v”が下付きではなく上付きだったこと。えー、そうなの??スライドとかでも、上付きになってるの見たこと無いけど。。
- 単一アプリをラッピングしてIaaS上で動かす軽量OS。JavaVMが最初のターゲットだったが、今は色々動く。
- C++でスクラッチから書かれている。
- プロセスは一個だけしか動かないが、スレッド的に複数のアプリを動かすことが実は可能。ただしメモリは共有される。
- それどころか、アプリとカーネルの間でもメモリ空間は共有。というか、基本的にカーネルとユーザランドの区別が無い。アプリにOS機能を直接リンクするイメージに近い。
- 1秒で起動するとのこと。
- 用途はアプライアンスだろうか。
- 直接の対抗馬はコンテナ技術か。コンテナよりはきっちりアイソレーションできそう。マイグレーションとの相性も良さそう。コンテナもマイグレーションできるそうだが、プロセスマイグレーションの経験から行くと、VMマイグレーションとは比較にならないほど面倒なので。
2014年7月16日水曜日
DBToaster: Higher-order Delta Processing for Dynamic, Frequently Fresh Views
DBToaster: Higher-order Delta Processing for Dynamic, Frequently Fresh Views
Yanif Ahmad, Oliver Kennedy, Christoph Koch, Milos Nikolic,
Peoc. of VLDB 2012 pp.968-979, 2012
- DBアクセスを高速化する方法としてview を構築しておく方法がある。
- しかし、頻繁に書き換えられるDBではviewの書き換えが多発する。
- これをIncremental にやることで解決する。
- 具体的には差分を意味するΔview も持っておき、データ入力でこのΔを変更する。
そしてΔを使って元のviewを変更する、というように再帰的にやるらしい。 - ストリームシステムSPYよりも圧倒的に速いという結果。というかこのSPYは
妙に遅い??
2014年7月11日金曜日
Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing
Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing
Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica
Proc. of NSDI’12, 2012
Proc. of NSDI’12, 2012
- UCBのチーム
- Resilient Distributed Datasets というものを提唱。これはFlume JavaのPCollectionとほぼ等価に見える。
- lineage (家系)という概念を導入。要するにどのようにしてそのデータセットが計算されたかの履歴。いつでも再計算できるようにしてFTを実現。これだとiteration があると大変なことになるので、適宜スナップショットを併用する。
- Spark 上に実装。
- Iterative なジョブでHadoopと比較している。
2014年7月10日木曜日
Presto SQL Engine
Hadoop Conference Japan 2014 のTD古橋さんによるPrestoのお話
参加するつもりだったのだけど、変な会議のせいで参加できなかったhadoop conferenceでの講演資料がアップされていた。ありがとうございます
- SQLエンジン。HDFSに対して処理を行うだけでなく他のSQL的にアクセスできる
DBに対するラッパとしても機能する。 - アーキテクチャとしては、複数のWorkerをCoordinator が束ねる。CoordinatorはリクエストのSQLを解析してプランニングを行い、個々のWorkerに行なうべき動作を指示する。Workerはコネクタプラグインを介して、バックエンドのDBにアクセスする。
- workerでの処理はオンメモリ。メモリに乗らないものは扱えない。
- プラグイン
- Javaでかく
- Hive,Cassandra, JDBCがすでに用意されている。
- SchemeとRow を提供する機能があればよい。
- Prestogres
- PrestoのフロントエンドはSQLになっているのだが、ここにアクセスさせる
アダプタを書くのが面倒 - Postgresqlをフロントエンドに持つことで、アダプタ実装を回避。
- 枯れたPostgresql用のアダプタでアクセスできる。
- PrestoのフロントエンドはSQLになっているのだが、ここにアクセスさせる
登録:
投稿 (Atom)
