[レポート] TensorFlow勉強会 (5) が開催されました!

tensor_flow

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

昨日の 9/28 六本木ヒルズの Google Inc 東京オフィスでTensorFlow勉強会の5回目が開催されました!先日に引き続きブログまとめ枠として参加いたしました。本記事はそのレポート記事となります。

賢くなる自動フィードアグリゲータの制作 9月号


Singularity株式会社 近藤昭雄氏

最近、情報収集めんどくさくないですか?

  • 以前の情報収集方法
    • Yahoo pipesがあった
    • 収益化ができなかった
  • 現在の個人的な情報収集方法
    • はてブニュース
    • GoogleAlert
    • SNS
    • 某巨大掲示板
  • とても面倒

  • そもそもネットの情報量がふえた

  • 2020年までに35ZB

  • 自動で巡回して欲しい情報をピックアップしてプッシュ通知して欲しい

  • 既存のニュースアプリでは欲しい情報だけはとれない、ジャンルも多くて見るのも大変

  • 本当にピンポイントで自分の欲しい情報が欲しい

  • Googleのニュースアプリでもキーワード設定できるが、一致する単語が出てこないと引っかからない

  • そのものずばりだけではなく、関連単語にかんする用語もレコメンドして欲しい

トピックモデル

  • 文書集合からトピックを抽出する
  • 教師なしでトピックをLDAにより推定
  • Bag of words - 文章の構造は考えずにひたすら単語をカウントする
  • Word2Vec
  • Doc2Vec

RSSの整形、生成、記事の全文の取得

  • RSSで全文吐いて欲しい、そのための環境構築に苦労
  • 最近はRSSに対応したページも少ない

TensorFlowによるアイドル顔識別器の話

スライド

すぎゃーん(@sugyan)氏

自己紹介

ドルオタ5年やってます

Deep learningによる画像分類

  • tensorflowの最初の例
  • Cifar10とかは大量の教師データが必要

分類対象のアイドル

  • ライブアイドル
  • SNSを用いて情報を発信
  • 自撮りを多く載せている、画像を集めやすい

アイドル顔識別の難点

  • 対象は10-20代女性という近い属性
  • 正面で真面目に移っている顔は多くない
  • 加工アプリによる変貌
  • 突然卒業してしまう

5人組グループの顔識別

  • 対象を某国民的グループのメンバー5人だけに選定
  • OpenCVのHaarLike特徴での検出器に回転補正機能をいれたもの
  • CIFAR10の実装を参考に自分で書いてみる

分類モデルの作成

  • 畳み込み層をふやしたり、Optimizer層をふやしたり
  • 自撮り投稿サービス等から収集し、2000人くらい得られた
  • でも教師データ全体としては400000件必要
  • ラベル付に超専門的知識が必要
  • 知ってる子を優先的に探して毎日コツコツ続けていく
  • 分類数が変化したときは最後の全結合層だけ初期化する

モデルの評価と実験

  • 自分の作ったモデルがどれくらいの精度が出てるかを実験
  • 入力画像サイズを多少縮小しても同程度の性能に
  • かなり学習しても予想外の入力に対して誤った分類をする

今後の展望

  • 未知画像に対するクラスタリング
  • 学習済みモデルを使って中間層の次元削減を実施したい
  • DCGANによる新しいアイドル画像の生成(意外と人の顔になる、たまに化物みたいな画像がでる)

さくらの高火力で使うTensorFlow 

スライド準備中

さくらインターネット 須藤武文氏

高火力とは

  • GPUサーバーを月額〜で提供
  • 一年ほどを経てパブリックサービス化
  • Teslaのささったやつ
  • Pascal世代のやつ
  • コスパが良いやつ
  • 自社のサービスだが、高い
  • 最初は書面申し込み

敷居を下げる

  • 無償トライアルの提供
  • 時間課金の導入
  • 乞うご期待!

TensorFlowと高火力

  • よくある話
    • TFどうっすか
    • 意地汚い
  • メモリをガッツリ持っていかれるという話

  • TFが動いても周辺プログラムが動かない
  • メモリ使用量を抑制するオプションがある→駄目
  • 定量的に測ってないけど体感早いような気がする
  • データの食わせ方で全然スピードが違う
  • あまり現実的でない

  • 少しづつ読み込ませる方法

    • IOバウンドになる
    • プログラミングが難しくなる
    • キューのランナーがあるのでそっちのインターフェイスを利用しよう
  • GCPだけでなくさくらもご検討ください

DCGAN - How does it work? (世界で一番わかりやすいDCGANの解説とデモ)


Google Inc 中井悦司氏

DCGANとは

  • 画像を生成する仕組み
  • ランダムな確率パラメータに合わせて画像を出力

畳み込みフィルタ

  • 縦棒と横棒の画像を抽出するフィルタはエッジ抽出のフィルタでできるが
  • どのようなフィルタでやればうまくいくかを学習するのがCNNの考え方
  • フィルタをかませると画像サイズは小さくなる

DCGANのしくみ

  • フィルタの仕組みを逆向きにしたもの
  • 最初はノイズみたいなランダム画像しか出てこない
  • DCGANはどんどん画像を出力する
  • ある画像が本物の画像なのか、生成された画像なのか判別するネットワークを用意する
  • うまくCNNを騙せる画像を作っていき、どんどんチューニングしていく
  • DCGANがつくった画像が本物かどうかがCNNで計算できる
  • DCGANは自分の画像がうまくCNNに本物と判定される方向にパラメータをチューニングしていく

MNISTで見てみる

  • 全てのTrainingSetに対して完璧な画像を生成するのは不可能
  • いわゆるモーフィングの動きを想像してみる、たとえば5と9の中間みたいな画像
  • DCGANの大元の論文はパラメーターに意味があるかもしれないと言っている→感情の足し引き、女性男性の足し引きが画像で可能になる(Word2Vecに近い感覚)
  • ある特定の条件を満たす画像を生成できる可能性

DCGANにまつわる注意点

  • TrainingSetを食わせすぎるとTrainingSetそのものになる
  • モザイクを外す例も非常に洗練されたコラ画像という理屈
  • 騙されないようにしたい

Tensorflowで趣味の画像収集サーバーをつくる 9月特大号

有限会社シーリス 有山圭二氏

いままでのとりくみ

  • 二次元のメガネっ娘画像収集
  • CNNでメガネっ娘かどうかの正答率が90%こえました
  • でっかい画像からの顔画像抽出→Selective research
  • グラフとセッションを意識する
  • 毎回グラフ作成してた

画像収集

  • 顔データ収集に最適なサイトがあります
  • 12000枚収集した
  • 自前のツール(Region Cropper)つくった

検証

  • 新データセットと旧データセットで正答率がちがった
  • 旧データセットは正答率が高かった
  • 新データセットは正解のラベル付けをしていないケースもあった

次回予告

  • クレンジングをもっとやります

高田純次で学ぶ深層学習

スライド準備中

株式会社ブレインパッド 太田満久氏

本発表のゴール

  • データ少なくてもうまくいくよってことを伝えたいです

モデルについて

  • Variational autoencoderの系列データ版を実装
  • 高田純次の語録を学習データとして採用

Variational autoencoder

  • 深層生成モデルには有名な手法が2つある
    • VAE
    • GAN
  • VAEはAEを確率的にしたもの

対象の選定

  • Encoderの実装
  • 一層のLSTM

注意(Attention)を深掘りする 


東京女子大学情報処理センター勤務 Singularity株式会社 相談役 浅川伸一氏

古典的注意(Attention)

  • 脳梁切断患者の実験
  • 両耳離聴実験
  • 分離能患者の実験状況
    • 触れるけど呼称はできない、認識はできる

改良モデル

  • センテンスが長くなってもスコアが落ちない
  • それなりの翻訳成績がでる

Tensorflowを用いたRNNについて


Singularity株式会社 新村拓也氏

はじめに

  • RNN campやってます
  • 最近案件でRNN使うことが多い
  • 実際のソースコードの解説について

RNNについて

  • 中間層を時間方向に展開させることにより時系列情報をNNで扱えるように

TensorFlowにおけるRNN実装

  • インポートするべきパッケージ: tf.nn.rnn_cell等
  • RNNの構築

実際に構築してみる

  • rnn_cell: ニューラルネットワークでcellというと入力を受け取って一つの値を返す
  • RNNは入力とまえの状態を受け取って出力と新しい状態を返却する
  • 一種の層の役割を果たす

  • 定義したcellのラッピングが可能

  • 何層にもしてドロップアウトを入れたい場合など
  • dynamic_rnnは入力長を動的にできる
  • 通常のフィードフォーワードNNでは誤差関数へ展開する際に加工があまり必要ないが、RNNでは必要
  • rnnではアクセスはさほどめんどくさくないが、dynamic_rnnでは大変

おわりに

今回はDCGANを中心として、画像を生成するようなアルゴリズムまわりの紹介が多かったです。AutoEncoderまわりの、出力から画像入力等を再現する技術は個人的にもまだまだ数式を追って勉強している段階ですが、技術の見せ方としては非常にわかりやすいと思いました。技術を売るには詳細を細部まで知ることも大事ですが、見せ方をどうするか考えるのも大事だと思っている今日このごろです…