How to Display image as grayscale using matplotlib ??

UserWarning: Discrepancy between trainable weights and collected trainable weights, did you set `model.trainable` without calling `model.compile` after ? ‘Discrepancy between trainable weights and collected trainable’

 

UserWarning: Discrepancy between trainable weights and collected trainable weights, did you set model.trainable without calling model.compile after ? 'Discrepancy between trainable weights and collected trainable'

 

Solution: You should define layers before define models, and setting ‘trainable’ each time

kerasで複数の出力とLOSS関数を持つモデルを生成

ClassificationだったりReconstructionだたり1つのモデルで2つ以上の出力やLOSS関数を適応したモデルが近年は増えてきました。となると次のような実装が必要になってきます。

・1つのモデルで複数の値を出力したい

・モデルの複数出力に異なるLOSS関数を設けたい

 

Kerasだと簡単に実装できます。

XREAサーバのSSL化

 

条件

  • XREAサーバを利用中
  • VALUE-DOMAINで独自ドメインを登録済
  • WordPressを使用

 

設定その1

  • XREA.COMの旧コンパネのメニューから「ドメインウェブ」を開く
  • Mainに「blank」、SSL用ドメインのSub6に独自ドメインを設定(私の場合は「r2d.info」)
  • 「すべてのドメインでAレコードのチェックを行わない(強制設定)」のチェックを外す
  • 「ドメイン設定」

 

設定その2

  • XREA.COMの新コンパネのメニューから「サイト設定」を開く
  • 独自ドメインの方で「サイト設定の変更」
  • 同期設定⇒「する」
  • SSL⇒「無料SSL」
  • 「サイト設定を変更する」
  • 20分ほど待つ

 

最後に、WordPressプラグインのReally Simple SSLをインストールして有効化すれば完了です

ICML2018読み会に参加しました

DeNA主催のICML2018読み会に参加してきました(https://connpass.com/event/92705/

感想を3行でまとめると

・GANが大人気

・NAS(neural architecture search)も人気

・パラメータ黒魔術な研究がちょいちょいある


渋谷ヒカリエのDeNA様のオフィスで開催

 


特に気になった発表が2つ、1つ目はコチラ

Learning Semantic Representations for Unsupervised Domain Adaptation

 

Domain Adaptationの手法で、Source-DomainのClassificationのLOSSや、抽出した特徴量に対するAdversarial Lossなどを用いるあたりは従来通りですが、異なるドメインの同じクラス同士で重心が似通うようにLOSS関数を追加した点がキーアイデアです。

が、各LOSSについて学習する順番や、学習する量など、ハイパーパラメータがむっちゃ重要なのでは?と思って質問してみたら、やはり想像通りというか、再現実装をしているけども思い通りには行っていないとのこと。

やはりちょっと黒魔術の香りがしますね。

あと、重心を近づけるという話でしたが、クラス数が多くなると提案手法の有効性が弱まるのではと思いました。これについてもディスカッションしましたが、論文では明確な実験検証は特になかったのでクローズ。

 

 


もう1件がコチラ

Efficient Neural Architecture Search via Parameters Sharing

 

Neural Networkを生成するNeural Networkの話ですね。もともとはNeural Architecture Search with reinforcement learning(NAS)という手法で、複数種類の異なる構造を持つネットワークを量産してはどの構造が最適なのか探索していくという手法で、計算時間が膨大過ぎて、それを解消する方向で検証が進んできたというものです。

NASについてはコチラに自分でまとめた資料があります、奇しくもちょうど私も勉強中でした。。。

 

これ、Controllerについて大きな誤解をしていたんですが、INPUTは無しで、学習可能なパラメータとして用意されているんですね。

そしてネットワーク構造を決める確率分布がLSTMから決定論的に算出されて、算出された分布から確率論的にネットワークを量産するという仕組みでした。

私はてっきりGANのようにNoiseをINPUTするものとばかり…

なぜ入力をランダムにするのではなく、確率分布に基づいてネットワークを量産するのかというと、後者の方が学習した結果「コレがよさそうだ」と思われる構造を中心に、近い構造を持つ亜種が量産されるからです。ランダムに生成して期待外れのネットワークが生成されるよりも遥かに探索が効率的です。

 

 

こういう質疑応答ができるのが勉強会のありがたいところですね。「聞くは一時の恥聞かぬは一生の恥」です。質問してよかった。

 


普段は慣れない音声合成の研究論文も紹介して頂き、後から気になった点をTwitterで質問させて頂きました。

 

 

国際線で忘れ物をしたときはどうする?日本までの郵送費は?

こんばんは、ロードローラーです。本日は国際線で忘れ物をしたときの対応をまとめます。先に結論を言うとちゃんと日本まで届けてくれました。

他の記事に書きましたが今月はICML@Stockholmへ参加してきました。日本からスウェーデンに向かう場合、直行便ではなくヘルシンキ乗換が多いです。私もヘルシンキ乗換でストックホルムに到着したのですが、そのときに座席のポケットにタブレットを残したまま飛行機を降りてしまったのです。


気付いた時点で航空会社の係員に相談

私の場合、スーツケースを受け取った段階、つまり幸いにも空港を離れる前に気づきました。空港にはだいたい窓口があるので事情説明に行きます。

ただし、すぐには見つかりません。慌ただしく機内入替などがされますし、気づいた乗務員さんが回収して入れ違いとなる場合があります。私の場合も「There are not tablet…」と言われました。

「そんなはずない、ちゃんと探してくださいよ!」という気持ちにもなりますが、今の時点で既にそこにないのは事実。その場は一旦あきらめました。


忘れ物の専用窓口に電話(急ぎ)

私が利用したのはFinnairでしたが、忘れ物専用の問い合わせ窓口があります。結果的にはこちらへ早く連絡したことが、今回無事にタブレットを取り戻せたことに繋がりました。

ただし電話はもちろん英語です、国際電話です。日本の窓口や、日本の代理店に依頼をしようとも考えましたが、日本~ヘルシンキの便ならともかく、ヘルシンキ~ストックホルムの便、つまり発着点どちらも日本でない場合は管轄外とのことでした。

電話相手は慣れている様子で、非常にゆっくり丁寧な英語で話してくれるので安心してください。たぶん僕みたいな人が多いんでしょうね。忘れ物の特徴、便名、座席、連絡先(電話番号とメールアドレス)を尋ねられます


照会には時間がかかる

窓口での電話が終わると受付完了のメールがすぐに届きます。あとは粘り強く待ちましょう。

私の場合は2日ほどたって「もう無理かな…」と思いましたが、3日目で「見つかった!」とメールが来ました。


取りに行くか、郵送してもらうか選択

「指定場所まで受け取りに行くか、自宅に郵送するか、選んでくれ」という趣旨がメールには書いています。ちなみにどっちを選択しても有料です。私の場合はヘルシンキまで取りに行くのは現実的ではなかったのでもちろん郵送を選択。

郵送を選択する場合は「料金を見積もって請求書を発行するのでとりあえず電話くれ」という趣旨の記載があります。また英語で電話せなあかんのかと思いつつTELします。


クレジットカードで郵送費を支払い

銀行振り込みも選べますがクレジット払いの方が楽です。ここが驚きポイントだったのですが「クレジットカードでの支払いを希望する場合はカード番号と有効期限とセキュリティコードを教えてくれ」と言われます

「おいおい悪用しませんよね?」と不安になりますが、つまり代理でクレカ使って支払いを完了させてくれるという親切心です。もちろん相手を見極める必要はありますが、今回はFinnairの窓口で信頼できる相手(勿論)なので、少し不安も残りましたが必要情報を連絡しました。

(追記:その後、もちろん悪用はされていません。念のため報告。)

そのあと、5日ほどで日本に届きました。めでたしめでたし。


気になる郵送費

国際便で届けることになりなんやかんやとややこしくお金がかかります。論より証拠、百聞は一見に如かず、こちらをご覧ください。

は、80EURですとぉ Σ(゚д゚) ナンダッテェーー!?

まぁタブレットは何万もしますし、情報も入っているので、それを取り戻せると思えば支払いをためらう理由は何もありませんが。

 

以上、皆様も忘れ物にはお気を付けください。

Deep Learning における Skip Connection の研究まとめ

背景と課題 ~Deepすぎると学習が進まない~


  • CNNでは層を深くすることが重要
  • 層を重ねることで高度で複雑な特徴を抽出できる
    • 2012年に画像認識の首位となったAlexNetは14層
    • 2014年に画像認識の首位となったVGGNetは19層
    • 同じく2014年に首位となったGoogleNetは22層
    • 2015年に画像認識の首位となったResNetは152層
  • このとき、層を深くすると思い通りに学習が進まない課題があった
    • 勾配消失
    • 勾配発散

引用:Deep Residual Learning MSRA @ ILSVRC & COCO 2015 competitions


ResNetのアイデア


元論文: [1512.03385] Deep Residual Learning for Image Recognition

  • 入力値と出力値の差分(残差)を学習する
    • Deepになると入力xと出力x*Wは極めて近い値
    • ならばxをそのまま残して差分を計算した方が効率的
  • 残差ブロックの提案
    • 畳み込み層+Skip Connection(恒等写像)を組み合わせた
    • Skip Connectionによって誤差逆伝搬をしやすい
    • 変換不要ならば畳み込み層のWeightを0にすればよい
    • 既にいい感じになっているxに余計なことをしなくてすむ
    • Skip Connectionなしでは非線形写像によってxが理想値から離れることがある
  • 残差ブロックのアーキテクチャ
    • Plainアーキテクチャ
      • 3×3のconv層が2つ
    • Bottleneckアーキテクチャ
      • 1×1のconv層でdimを小さくして、、、
      • 3×3のconv層にかけて、、、
      • 1×1のconv層で元々のdimに戻す


『DenseNet』CVPR2017 BEST PAPER


元論文: [1608.06993] Densely Connected Convolutional Networks

アイデア:層の間で情報伝達を最大化する

  • 上の図は1つのDenseBlockを表す
  • ℓ番目の層への入力は、0~ℓ-1番目の層の全出力となる

 

 

  • このようなDenseBlockを4つ含むネットワーク構造を提案
  • ダウンサンプリングなどのためにDenseBlock間にPooling層も挿入

ちょっと、やりすぎだろ・・・・

 


Skip Connectionとよく似たContracting Path構造(U-Net)


[q505.04597] U-Net: Convolutional Networks for Biomedical Image Segmentation

 

  • Image-ClassificationではなくImage-Segmentationのタスクで生まれた手法
    • Semantic Segmentationにおいて位置は保存したい重要情報
    • CNNではPoolingや畳み込みをするほど位置情報が曖昧になることが課題
    • 局所的特徴と全体的位置情報の両方を把握したい
  • 形がU字なのでU-Net
    • 左側がEncoder
    • 右側がDecoder
  • Up-Sampling後にEncoder部の同次元数の特徴を連結する
    • あまり畳み込みされていないEncoder部では位置情報が保たれているという仮定
    • concatenation with the correspondingly cropped feature map
    • 従来どおり特徴を抽出しつつ、位置情報を保存する

 

 


Skip Connectionの有効性を解明


[1712.09913] Visualizing the Loss Landscape of Neural Nets

LOSS関数を可視化することで近年のNeural Networkのアーキテクチャの有効性を検証した論文。Skip Connectionを利用した場合(右図)は、non-convexからconvexに近づく。

 


Skip Connectionを含む新しいネットワーク構造 ~Deep Layer Aggregation (CVPR2018)~


[1707.06484] Deep Layer Aggregation

疲れたのでまた今度・・・