potD

エンジニアに向けたトレンド、備忘録

CVPR 2018 論文まとめ 2

Embodied Question Answering

Arxiv, Project Page

f:id:Info_tech:20181115103133p:plain

Abstract

  • Backgrounds
    • 賢いagentsには、環境(五感情報)を知覚し、情報をやりとりし、行動できることが必要
    • その目標への一歩として、Embodied Question Answeringタスクを提案
      1. AIは環境内のランダムな位置にスポーン
      2. 質問を受ける(ex. 車は何色?)
      3. 環境内を一人称視点で動き回り、質問に対する答えを探る
      4. 質問に対する答えの文を生成
    • Embodied QA達成には主体的な動作、言語理解、目標への移動、一般常識の保有(「車はガレージにあるだろう」)、言語を動作に落とし込むなど、広いAIタスクを解く必要
  • Objective
    • Embodied QAを達成するロボットの作成
      • ロボットが環境内を動き回りながら探索し、質問に対する答えの文を生成
  • Methods
    • Adaptive Computation Time navigatorという強化学習ベースでのend-to-endな手法を提案
    • タスク処理を計画と制御の2つのモデルに分解 f:id:Info_tech:20181115103153p:plain
  • Results
    • 住宅3D仮想環境で実験
    • 質問の正答率、移動の正確性において従来より高いスコア

Comments

  • Amazonさんとか、大きい倉庫を持っている企業は喜びそう
  • 「言語理解+質問に対する答えを調査+答えの文を生成」は広い応用ができそう

Perturbative Neural Network

Arxiv, GitHub(PyTorch)

Abstract

  • Backgrounds
    • CNNが視覚認知タスクにおいて成功を収めている
      • Alex, VGG, GoogLeNet, ResNet, etc.
      • conv層と他のモジュール間の、トポロジと結合性に焦点を当てている
      • conv層は、全結合層よりも計算効率と統計学的効率がよいとされている
    • しかし、conv層の基本構造は大きく変わってはいない
  • Objective
    • 従来のconv層にとってかわる、pertubation層を提案
    • pertubation層はconv層よりも少ないパラメータで学習が可能
    • MNIST, CIFAR-10などにおいてCNNとほぼ同等の性能
  • Methods
    • pertubation層の基本構造
      1. 入力画像
      2. 固定摂動マスクをセット
      3. 入力画像に摂動マスクを加える
      4. 非線形活性化関数(ReLU)に通す
      5. ノイズごとの特徴マップを生成
        1. を結合する線形な重みを学習
      6. 特徴マップ f:id:Info_tech:20181115103214p:plain
    • 第l層の出力結果 f:id:Info_tech:20181115103241p:plain
  • Results
    • ImageNet-1k(top1)のクラス分類の正答率 f:id:Info_tech:20181115103250p:plain
      • Maskは摂動マスクの数、Param. RatioはPNNに対するCNNパラメータ数の比率
      • 少ないパラメータ数でも比較的高い正答率
    • 100-class ImageNetにおいて摂動強度を変えたときの正答率 f:id:Info_tech:20181115103304p:plain
      • 大きすぎる摂動を加えすぎないほうが良い
    • CIFAR-10とMNISTの分類正答率 f:id:Info_tech:20181115103314p:plain
    • CIFAR-10の正答率とパラメータ数 f:id:Info_tech:20181115103325p:plain

Comments

  • 別の視点からなるディープラーニングは今後のブレイクスルーになる可能性
  • 摂動(ノイズ)を入力に加えるのは流行っている?
    • Adversarial examples
    • GANの学習テクニック(Dのラベルに正規分布ノイズを加える)
  • パラメータ数は数分の1ぐらいにはなっているけど、正答率はイマイチ(学習時間は速そう)

CVPR 2017 論文まとめ 1

Image-to-Image Translation with Conditional Adversarial Nets

Project Page, Paper, Github, Demo

f:id:Info_tech:20181027235712p:plain

Abstract

  • Backgrounds
    • pix2pix task: 画像 → 画像を生成する、いわるゆ画像翻訳(画風変換)
    • 従来はタスクごとに別々のアーキテクチャを構築(本質は全部はpixel predictionなのに…)
    • CNNでもpix2pixはできるが、画像がぼやけやすい
    • conditional GANsはぼやけた画像が生成されにくいからpix2pixやってみるか!
  • Objective
    • conditional GANsがpix2pixにおいて汎用性があることを示す
    • 提案フレームワークが従来よりシンプルかつより良い出力が得られることを示す
  • Methods
    • Generator: U-Net風にする
      • 層を飛び越えるskip connectionを加え、2つの出力をconcat
      • pix2pixにおいて、入力と出力において画像の根本となる情報(エッジ等)を考慮するため f:id:Info_tech:20181027235940p:plain
    • Discriminator: Patch GAN
      • 本物/偽物かは局所的な一部(NxN patch)を見るだけで十分
      • Nを実際の画像より小さくすることで計算量も減少
  • Results
    • 汎用的なpix2pixが可能(semantic labels⇔photo, map⇔aerial photo など)
    • 少ないデータ(数百件・数時間 on GPU)でも学習可能なことを確認 f:id:Info_tech:20181027235712p:plain

Comment

Residual Attention Network for Image Classification

Abstract

f:id:Info_tech:20181028000251p:plain

  • Backgrounds
    • Attentionモデルは時系列モデルにはよく使われていたが、画像認識などのfeed-fowardに対しては使われていなかっ
    • 近年の画像認識率向上には、層をディープにしたことが要因(ResNetなど)
  • Objective
    • ResNetを利用したディープなCNNにおいて、attention機構を採用し、認識精度向上
  • Methods
    • Attention Moduleごとに異なるAttention Maskをもたせた
      • 層が浅いAttention Moduleでは背景の青空を消し、層が深いAttention Moduleでは気球を強調 f:id:Info_tech:20181028000327p:plain
    • 3タイプの活性化関数を採用
      • Mixed attention: 各チャネル・空間位置に対してsigmoid
      • Channel attention: 空間情報を除去(全てのチャネル内でL2正規化)
      • Spatial attention: 各チャネルからの特徴マップ内で正規化し、空間情報のみに関連するsoftmax

      f:id:Info_tech:20181028000351p:plain

  • Results
    • 単純なResNetより精度が上昇し、モデルのパラメタ数も減少

Coments

  • 段階的にattentionのmapを変化させていることが興味深い
    • 単純にアウトプットにattention情報を加味させるだけではうまくいかない可能性
  • 3タイプの活性化関数も興味深い

【ShellScript】Ctrl+Cをつかむ

ShellScriptでCtrl+Cをつかみたいときはtrapを使います。

trap

trap コマンドはシグナルを探知し、あらかじめ指定されていた処理を実行するコマンドです。

サンプルコード

Ctrl+Cを押すと断末魔をあげます。

#!/bin/sh

trap 'echo "ぐえぇ~"; exit 0' INT

while :
do
    echo "あ~~~~~"
    sleep 1
done

実行結果

Cygwin on Windows10

$ sh detect_ctrl_C.sh
あ~~~~~
あ~~~~~
ぐえぇ~

よく使うシグナル

探知シグナルは複数指定可能です。

名称 意味
HUP 1 ハングアップ
INT 2 割り込み (Ctrl + C)
QUIT 3 プログラムの実行を中止
KILL 9 プログラムの強制終了
TERM 15 プログラムの終了

【ShellScript】OSがWindowsか判定

ShellScriptをOSによって処理を分けたいときがあります。 環境変数$COMSPEC定義されているかでWindowsか判定できます。

サンプルコード

#!/bin/sh

if [ "$COMSPEC" != "" ]; then
    echo "Windowsだよ"
else
    echo "Windowsじゃないよ"
fi

実行結果

Cygwin on Windows10

$ sh detect_windows.sh
Windowsだよ

CVPR 2018 論文まとめ 1

CVPRとは?

CVPR(IEEE/CVF International Conference on Computer Vision and Pattern Recognition)とはコンピュータビジョンやパターン認識の分野におけるトップ国際会議である。 採択率は例年20%代と低く、適当に論文を拾っても高度な内容になっている(論文選びに楽ができる)。 acceptのタイプはOral, Spotlight, Posterの3種類で、Oralが最も評価の高い論文となる。

Learning Face Age Progression: A Pyramid Architecture of GANs

paper link

f:id:Info_tech:20181024110333p:plain

Abstract

  • Backgrounds
    • 老化タスクにおいて、老化の正確さ・同一性の永続性は未だ不十分
    • 人物は変化しないようにしつつ年齢だけ変化させることが困難
  • Objective
    • 歳をとった場合に顔がどのように変化するかを提示
  • Methods
    • 生成画像に対し、人物顔面キープlossと、年齢識別lossを提案
    • よりリアルな顔の詳細を生成するために、より細かな方法で老化の影響をシミュレートする複数のスケールのピラミッド型Discriminatorを採用 f:id:Info_tech:20181024110353p:plain
  • Results
    • 顕著に鮮明な老化効果が達成
    • ポーズ、表情、メーキャップなどの変化が存在する様々な顔サンプルに適用可能

Comments

  • 目的に応じたlossをうまく盛り込んでる
  • 老化の逆のタスクはあんまみない

High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs

project page, video link

f:id:Info_tech:20181024112106p:plain

Abstract

  • Backgrounds
    • 既存手法(Conditional GANs等)では高解像度画像の復元が困難
    • 訓練が不安定であり、高解像度の画像生成タスクに失敗する可能性がある
    • Perceptual lossを採用して高解像度の画像を合成したが、細部と現実的なテクスチャが欠けている
  • Objective
    • ラベルマップから高解像度(最大2048x1024)の写真をConditional GANsのみを用いて実現
  • Methods
    • ラベルマップから高画質の画像を生成するGANベースの手法
    • 小さい画像を先に作成して、その特徴を使い大きな画像を作成するCoarse-to-fineの手法によって大きな画像生成を実現 f:id:Info_tech:20181024112112p:plain
    • ラベルマップからはインスタンス単位での区別が付かないため、インスタンス間の境界を入力として与えることで画質を向上 f:id:Info_tech:20181024112800p:plain
  • Results
    • 先行研究より細部とリアルなテクスチャ
    • インスタンスレベルのオブジェクトセグメンテーション情報から、オブジェクトの追加・削除編集が容易(ビデオ参照)
    • 同じオブジェクトでも、外見を容易に変更可能(ビデオ参照)

Comments