めも

これはメモ。

ubuntu上の不要ファイルを削除する

Ubuntu16.14 にて。整理のため。

容量確認

現在のディスクの容量確認

df -hを実行。

ncdu でサイズの大きいファイルを見つける

容量が大きいフォルダ・ファイルを見つけるために使用。

例: anacondaでインストールしたパッケージのファイルサイズ

$ ncdu /home/[user name]/anaconda3/pkgs/として/home/[user name]/anaconda3/pkgs/以下の各ディレクトリのサイズを表示。

698.5 MiB [######### ] /mkl-2018.xxx
671.5 MiB [########  ] /r-revoutilsmath-xxx
628.2 MiB [########  ] /cudnn-7.1.2-xxx
536.3 MiB [######    ] /cudatoolkit-9.0-xxx
308.7 MiB [####      ] /qt-5.9.6-xxx
307.6 MiB [###       ] /qt-5.9.4-xxx
226.3 MiB [##        ] /gcc_impl_linux-64-7.3.0-xxx
157.9 MiB [##        ] /caffe2-cuda8.0-cudnn7-xxx
149.5 MiB [#         ] /mro-base_impl-xxx

詳細は以下。

不要ファイルの削除

ブラウザのキャッシュ関係の削除

Chrome

~/.cache/chromium/Cacheなどを削除。ブラウザからも可能。

不要なパッケージ・ライブラリ

anaconda(conda clean --all)

ドキュメント: https://conda.io/docs/commands/conda-clean.html

anacondaでインストールしたパッケージの中から不要なものを削除。削除する前に実際の挙動を確認する場合は conda clean --dry-run

--all
              Remove index cache, lock files, tarballs, unused cache packages,
              and source cache.

apt-get(clean, autoremove)

コマンド各オプションの説明は以下。

  • apt-get autoremove: /var/cache/apt/archives以下に存在する依存関係がなく不要となっているライブラリを削除。
  • apt-get clean: /var/cache/apt/archives以下の .deb ファイルを削除。実際に削除されるファイルを知りたい場合は予め-sオプションをつけて apt-get -s cleanとする。(uninstall - Does apt-get clean harm your system? - Ask Ubuntu)

Linuxカーネル

使用中のものを確認

uname -rとして現在使用しているカーネルを確認する。

$ uname -r
4.4.0-139-generic

インストールされている一覧の確認

dpkg -l 'linux-image*'

削除

sudo apt-get autoremove --purge [XXXXX]

[XXXX]に削除したいカーネルを指定。削除する前に --dry-run オプションをつけて挙動を確認。

CLIP STUDIO ブラシプラグイン開発関係のリンク

tensorflowと組み合わせて何かしたかったけど無理そう。う〜ん。

公式SDK配布ページ

C++のみサポート。iPad版はフィルタープラグインの追加ができないので注意。 ダウンロードしたファイルに同梱されている pdf に手順が記載されている。

基本的にEXでのみプラグインは使用できる。PROとEXの機能差に付いては以下のページを参照。

機能一覧 | CLIP STUDIO PAINT

不具合・要望報告

要望は基本対応されない(?)。

開発ログ関係

その他の言語(非公式)

論文メモ:Large-Scale Study of Curiosity-Driven Learningのメモ

読み中のめも。あくまで自分自身の解釈です。

導入

強化学習ではエージェントのポリシー(方策)は報酬関数を最大化するように訓練される。 報酬が密に取得できるタスクでは上手く訓練できるが、そうでないタスクに置いて訓練を上手く行うことや、報酬関数を訓練が上手く行くように設計することは難しい。

paper.hatenadiary.jp

報酬がスパースなタスクに対する解決方法の一つに密な intrinsic rewards = エージェント自身が報酬を生み出す手法を利用する方法がある。 この intrinsic rewards の一つが curiosity であり、予測した結果と実際の観測値との誤差を報酬として利用する。

また状態への訪問回数を報酬の一種として渡してあげることで、なんども同じ状態に向かうことを避けようとする方法もある。これら intrinsic rewards の根底にある考え方は共通していて、スパースにしか報酬が得られない環境の中でなるべく色々な箇所を探索して、extrinsic reward を得ようとしている。

extrinsic reward が得られない環境の場合、intrinsic rewardのみでエージェントを訓練すれば学習が速くなることが知られている。

intrinsic rewards のみを対象にした検証がこの論文の目的。 intrinsic rewardsとしては上記論文([1705.05363] Curiosity-driven Exploration by Self-supervised Prediction )に示されているものを利用する。つまり、 intrinsic rewards は現在の状態からエージェントが行動した後に予測された状態の実際になった状態との間の誤差で表現される。

まとめ: - 様々な環境にて curiosity-driven な探索を行うエージェントを用いた実験を行った - 環境を埋め込む特徴空間について複数の特徴空間で比較実験を行う - 予測誤差(MSE)ベースの curiosity-driven なエージェントがうまく動作しないケースを示す

Dynamic-based Curiosity-driven Learning

Curiosity-driven Exploration に関する研究

[1705.05363] Curiosity-driven Exploration by Self-supervised Prediction https://arxiv.org/abs/1705.05363

https://vimeo.com/237270588

www.slideshare.net

著者実装は以下:GitHub - pathak22/noreward-rl: [ICML 2017] TensorFlow code for Curiosity-driven Exploration for Deep Reinforcement Learning

表記

  • x_t: 時刻tでの観測
  • a_t: 時刻tでのエージェントの行動
  • x_{t+1}: t+1での観測
  • r_t: 時刻tでの報酬

関連: Surprise-Based Intrinsic Motivation for Deep Reinforcement Learning https://openreview.net/forum?id=Bk8aOm9xl

foward dynamicsのための特徴空間

  • foward dynamics においてよい特徴空間とは?
    • 観測したい情報と関係ない情報を含んでいない
    • 次の状態を予測する上で扱い易い形式の特徴であってほしい

curiosityに基づいて探索する場合での「よい特徴空間」とは?

  • Compactness: 特徴はなるべく低次元でモデル化しやすい
  • Sufficiency: 特徴は(エージェントにとって)重要な情報をすべて含んでいる
  • Stability: 非定常な報酬はエージェントの学習を困難にする

そして、各特徴空間については短く以下のようにまとめられる。

Pixels

観測した情報すべてが利用されているので Sufficient かつ Stable. しかしタスクによっては非常に高次元になり学習に工夫が必要。

Random Features(RF)

CNNの初期値をランダムに選択して固定し、このCNNを用いて観測した情報をエンベッディングする。CNNのパラメタが固定なので stable であり、エンベッドする次元数によって compact になりうる。しかしパラメタの選択がランダムなので sufficient でない可能性がある。

Varidational Autoencoders(VAE)

compactになるが、ノイズが含まれている可能性はある。またVAEの訓練時間に伴って出力される特徴は変化する。

Inverse Dynamics Features (IDF)

時刻tからt+1までの遷移 (s_t, s_t+1, a_t) が与えられた状態で、s_tとs_t+1からa_tを予測する問題がIDF。予測に用いる特徴は s_t と s_t+1 をニューラルネットでエンベッドしたもの。エージェントが即座に影響を受けるわけではない環境の情報を見落としてしまう可能性があるので, sufficient でない場合がある。

curiosityによって行動するエージェントの訓練を行う上でぶつかる他の問題

問題を扱う上で、特徴空間の設計以外にも考慮すべき点がある。学習を安定させるために、非定常な要素をなるべく減らしたい。

https://www.youtube.com/watch?v=5P7I-xPq8u8

  • Reward normalization: 報酬関数は非定常なので、スケーリングを行い正規化することで学習を高速にする
  • Advantage normalization: PPOの訓練中、平均0-分散1になるように advantages を正規化する
  • Observation normalization: targetとなる環境で10000ステップランダムにエージェントを動作させて、観測したデータの平均と標準偏差を求めてこの値を用いて訓練時のデータを正規化する。
  • More actors:並列に動かす actor を増やすことで手法の安定性は向上する。
  • Normalizing the features: 特徴をエンべっディングするネットワークにてバッチノーマライゼーション

Discounted curiosity with infinite horizon

エピソードが終わった場合、その情報の使い方は重要になってくる。例えば、終端状態になるまでの各タイムステップに +1 の報酬を与えるとエージェントはなるべく長い時間終端にならないように振る舞おうとするし、負の報酬を与えるとなるべく速く終端状態になるように振る舞おうとする。

純粋に探索を行うエージェントが、終端状態の報酬によって行動にバイアスがかかるのは好ましくない。infinite horizeonの問題設定では death は "boring" な状態を避けるための遷移の一種と見て "done" 状態をなくす。

実際にはエージェントはゲームの中で death することを避けるようになる。これは death したら初期(スタート地点)に遷移することが関係している。スタート地点は何度も見た状態であり、予測することができるため curiosity がなくなるためである。

実験

以下のずべての実験ではポリシーとエンベッディングを行うネットワークは入力にpixelを用いる。(?)

詳細のハイパーパラメータは appendex A に示した。

実験結果のグラフは、特に記述がない限り三回別々のシードで実験を行いその平均をプロットしている。

実験1. exrinsic rewards なしで curiosity driven learning

Fig1に示した54の環境で exrinsic rewards なしで学習を行う。この実験から、以下を知りたい。

  • extrinsic rewards 無しで学習を行った時にどのようなことが起きるか
  • extrinsic rewards 無しで学習したエージェントにどのような種類の行動が期待できるか
  • 特徴を学習する方法が異なるとき、行動にどのような影響がでるか

Atari Games

エージェントの行動に対する最も単純な指標は、 curiosity に基づいて学習したエージェントが獲得した external rewards(ゲームのスコア) 。

実験結果から得られた発見:

  • ゲームによって有効な特徴は異なっているが、(学習に extrinsic な報酬を利用していないにも関わらず) extrinsic rewards の累計も増加している。
  • intrinsic-rewardのみでもほとんどのゲームで獲得できるスコアは上昇する→ゲームのスコアそのものは訓練時に使用しなくてもいい(!)。この結果から多くの強化学習のtest-beds(実証実験用のタスク)は extrinsic rewards がなくても解けることがわかる
  • curiosity だけで探索を行った場合はランダムに行動するエージェントよりも性能が悪くなってしまうタスクも複数存在している

特徴を扱う手法間での比較

環境の情報は画像(pixels)で取得できるが、 先に触れたようにこのpixelsの扱い方には4種類の方法を比較としてあげていた

  • pixels: そのまま利用
  • RF(random features): CNNのパラメタをランダムに初期化してエンベッディング
  • VAE: Varidational Auto Encoder
  • IDF: 逆動力学、現在と次の状態から間にとった行動を予測するモデルを利用する

RFとIDFはどのタスクにおいても性能が高かった。 pixels をそのまま用いるのはどの環境においても性能は低かった。VAEは安定しなかった(タスクによって差が大きい)ので以降の実験はRFとIDFを用いて比較を行った。

f:id:misos:20181125213357p:plain

元論文14p Appendix, Figure 8より引用。赤線がIDF, 緑線が RF。

実験2. スーパーマリオでの実験

curiosityだけでエージェントがある程度学習できると示すことができれば、報酬関数が無い大量の「未ラベル」環境を利用できることができる。

スーパーマリオのワールド1-1にて curiosity のみを用いてエージェントを事前学習し、エージェントが他のレベルのステージに一般化できるかを調べる。Fig4から事前学習なしでエージェントを訓練した場合と比較して、RF,IDF共により高い報酬を得られていることが確認できる。

f:id:misos:20181126053950p:plain

元論文8p, Figure 4より引用。

実験3. Curiosity が報酬として機能しないケース

Unity環境での迷路探索中壁に(迷路探索タスクとは関係ない)映像を投影すると、そこでエージェントが立ち止まってしまう。

「お絵描きの森」を画面共有でiPadから遊ぶ

公式にはPCのみサポートしているため、iPad版Chromeからは遊ぶことができなかった。

PCの画面を共有をする場合

VNC Viewer - Remote Desktop

VNC Viewer - Remote Desktop

  • RealVNC
  • 仕事効率化
  • 無料

上記VNC Viewerのようなアプリを使って Mac と画面共有すれば、iPadでPCの画面を表示しながらプレイ可能。 ただし、PCとiPadが同じWifiを使用していることが前提。

Mac 側の設定

[システム環境設定]>[共有]>[画面共有]にチェック

iPad 側の設定

1.「VNC Viewer」を起動 2.「Bonjour」をタップ 3. 自分のPCを選択 4. PC起動時にログインする際の名前・パスワードを入力して共有

Puffinブラウザを使用する場合

Puffin Web Browser

Puffin Web Browser

  • CloudMosa, Inc.
  • ユーティリティ
  • 無料

上記Puffinブラウザからお絵かきの森を起動すると、PC版のページを起動でき、実際に入室>プレイ画面まで行ける。しかしながら、Apple pencile で線を描くと遅延が1秒程度発生してかなりの苦行、公式に iPad でサポートされるまで待ったほうが良い。

機械学習で使うオープンデータセットのまとめページへのリンク

自分用。

まとめ系

ダウンロード可能ではない形式のデータも検索に引っかかるので注意。

https://toolbox.google.com/datasetsearch

NII データリポジトリ

申請必要。主に日本企業で集められた口コミなどの大規模データセット。

情報学研究データリポジトリ データセット一覧

楽天データ公開

こちらも申請必要、楽天のサービス内でのデータセット。

楽天データ公開 | Rakuten Institute of Technology | 楽天技術研究所

arXivTimes/datasets

機械学習を行う際に利用する画像・NLP・イメージキャプションなどの一般的なデータセットへのリンク集。

github.com

Registry of Open Data on AWS

AWS上で利用可能なパブリックデータセット。

Registry of Open Data on AWS

ワールド・データ・アトラス

各国の種々の統計データ。

Kaggle Dataset

kaggle-apiを使って一部ダウンロード可能、kaggleに登録する必要あり。

Datasets | Kaggle

awesome public dataset

データカタログサイト(Data Go JP)

データカタログサイトは、内閣官房情報通信技術(IT)総合戦略室による企画・立案の下、総務省行政管理局が運用するオープンデータに係る情報ポータルサイトです。

各種統計データやpdf資料も混在しているのと、メタデータからファイルに含まれるデータがわからない場合が多いので注意。

オープンデータに関する各種資料は以下のサイトにて掲載している。

オープンデータ | 政府CIOポータル

e-Stat

e-Statは、日本の統計が閲覧できる政府統計ポータルサイトです

小規模な集計データが中心。

政府統計の総合窓口

UC Irvine Machine Learning Repository

irisデータセットなど有名。

UCI Machine Learning Repository

金融関係

ADVFN

GAIN Capital

GAIN Capital Rate Data Archive

Synthetic Financial Datasets For Fraud Detection

前処理大全[データ分析のためのSQL/R/Python実践テクニック]

前処理大全[データ分析のためのSQL/R/Python実践テクニック]