December 2018 – nibuiroフラグメント β

Archive December 2018

研究の役に立つ?な記事~所謂メモ~


Q. jupyter notebookの幅ってどうにかならないの?
A.

または~/.jupyter/custom/custom.css

と追記.
こんなのもある。あなたの生産性を向上させるJupyter notebook Tips


Q. PytorchのDataloaderがメンドイ.
A. 「PyTorch-Ignite」とか「skorch」を使いなされ.


Q. めちゃんこ速い近傍探索ライブラリない?
A. Faiss


Q. PCAしたのに外れ値のせいで…
A. Robust PCA


Q. 論文やべぇ.
A.

2018 深層学習系deポイント高い寄せ集め

2018年終わりですね~.
 一年通してDNNによる音声合成開発の成果が多く発表された年ではないですか?音楽系で言えば, UNetによる音源分離でしたり, Transformerによるピアノソロ生成でしたり, 精度上がりましたよね~.
 分野開拓?的にはGraphConvの研究が進んでいます. そして, 応用による化学分野への適用. 世界は加速しイイ感じに加速していますね♪
 あとはー, 情報, チュートリアルが随分と豊富になっていますねー. んでんで, ソフトウェアへの組み込み, エッジコンピューティングへの適用なども進んでいますよねー. TensorFlow Lite for Microcontrollersとか(極端).

 読者層はCVPRとかACLとか完全読破する実力も気力も時間もないけどそれとなく最新研究とか良い資料とか知っておきたいな. という中間層.というか私がそんなモンかなー, なんて.

 それではいってみよー.


NLP

 いやー, 「同時に6紙がSOTAを報告!?!?」 – @_Ryobot とか. 荒れていた?ようですね.にしても, りょぼっとさんの絵は可愛い.
 というかpiqcyさんの記事が高品質.


GAN

まとめのまとめになっていますね…^^;
下記の他にもオモロイのありますんけど.

  • テキストから画像を生成するGANまとめ
  • GoodfellowさんのGANのオススメ論文10選まとめ (2018/02)
  • InfoGAN
    GANの生成べクトルに任意の特徴を表現する隠れ符号を埋め込み生成される画像に任意の特徴が含まれるように制御するというもの.
  • Photo Wake-Up
    たった1枚の写真から3Dモデルを生成する。ヒト型であればある程度崩れていても可。ワシントン大学の研究チームが開発。

  • Twitter

    • BigGANがImageNetの画像生成に成功〜!!チャネル数とバッチサイズを上げるのが重要で,直交正則化をジェネレータに適用し,zのサンプリング範囲を決めて範囲外を切り捨てるTruncation Trickによって多様性と高品質を実現
      Inception Score: 前SOTA 52.52 → 166.3 – [@_Ryobot]

      異なる分野でも正直に効果出そうだなーなんて.

RL

  • A (Long) Peek into Reinforcement Learning
    初心者が強化学習分野に入門しやすいよう書かれた解説記事です.

  • Twitter

    • DQNやA3C等の論文の筆頭著者として知られるMnih氏や,AlphaGoの開発者David Silver氏,分散深層強化学習で革新的な論文を出し続けているHado van Hasselt氏など,正真正銘の超一流研究者による講義動画 – [@learn_learning3]
      https://www.youtube.com/playlist?list=PLqYmG7hTraZDNJre23vqCGIVpfZ_K2RZs

    • Rainbowの亜種であるAPE-Xに, RNNを組み込むことでパフォーマンスを劇的に改善した研究. 任意の状態から学習を行う場合RNNの初期値をどうするかという問題があるが, RNNの状態もとっておく, RNNの状態を作るための初期ステップ(burn-in)を取っておくという対策を行っている
      https://openreview.net/forum?id=r1lyTjAqYX


GraphConv

  • Deep Graph Library (DGL)
    グラフニューラルネットを容易に構築することができるライブラリ.
    GraphConv, TreeLSTMなどの実装が提供されている. バックエンドはPyTorch(+MXNet/Gluon).

Clustering

ちょっと違うですけど, まぁ, まぁ.

  • Deep Clustering
    未学習のCNNに画像突っ込んで下層の出力をkmeansしたら分類できた. という話. おもしろい.

  • UMAP
    tSNEよりムチャ速い上に精度高い. PCA-UMAPなんてのも開発された.


つ か れ た.
マルチモーダル系とかFM系は別記事で書くと思います. よ?

深層学習のちょっとした疑問を解決する

Q. パラメータ(ノード)数って多いほうがいいの?どうなの?

A.
NNはパラメータ数が多い方が汎化性能が高い現象がみられる。reluを使った多層のNNで重みに弱い正則化を適用しクロスエントロピー損失を使った時の解は正規化マージン最大化に対応し、少なくとも2層の時は隠れ層の幅が大きいほどマージンが大きくなり汎化することが示せる。https://arxiv.org/pdf/1810.05369
@hillbig

Q. BatchNormalizationってどういう効果?

A.
・BatchNormで共変量シフトを抑えるよ派(Ioffe派)
・BatchNormは勾配の曲率を滑らかにするよ派(Santurkar派)
・BatchNormは曲率を単純化するよ派(Kohler派)
・BatchNormなんてなくても収束するよ派(原理主義・過激派)
・BatchNormを使いたくても商用利用できないよ派(営利企業派)
@HITStales

Q. Dropoutってどうなの?(多義的)

A.
ResNetにおいて、ノードは一つだけで十分ではないかという研究。実験により全結合より単一ノードの方が決定境界を上手く学習することを確認。Dropoutがなぜ有効なのか?の証左にもなっているというhttps://arxiv.org/pdf/1806.10909
@icoxfog417
正則化の手法としてよく使われるDropoutとBatch Normalizationは、併用するとパフォーマンスの悪化が起こることがあるが、その原因について検証した研究。悪化の理由として、Dropoutを行うことで学習時と評価時で分散が変わってしまう一方、Batch Normalizationは学習で得られた分散を評価時もキープしてしまうため齟齬が生じることが原因と指摘された。https://arxiv.org/pdf/1801.05134
@icoxfog417

後者につきましては、Kaggleにおいても実際にそうであることを報告しているDiscussionがありましたね。

16F877Aで

ソースコードはココ.

UART割り込みecho

いざ、書き込んで、Teratermを起動。
シリアルを選択、設定->シリアルポートからボーレートも確認。
なんだこれ。

なんだこれ。


生データを見たいと思い調べてみるとDebugモードがあるらしい。
C:\Program Files (x86)\teraterm\TERATERM.INIのDebug=offをDebug=onとする。

FE FE FE FE FE …

…え?

‘A’や0x31など試す
FE FE FE FE FE …

どうにも正常に転送できていないらしい、だが転送されているっぽい動きなのでTXモードは有効にできているのだろうと。
レジスタの設定を見直す、見直す。
BRGH = 0 ( 低速 )
(非同期)ボーレート = FOSC /(64(X+1))

あっ。 TXSTA = 0x20 としてみたらAと表示された。

TMR1を利用して割り込み

なぜだろう, 全く時間が合わない.
かなり悩んだ.
原因はTMR0とTMR1のカウンタのビット数が異なることだった.
データシートは熟読しよう