元Facebookエンジニアが語るイノベーション教材

お久しぶりです、ロードローラーです。

先日、元Facebookエンジニアのスピーチを聴く機会がありました。内容はイノベーションを起こす組織作りについてです。

冒頭に彼は「イノベーションに関して教材がたくさん出てますね、立派なハードカバーの本もあります。」と言いました。たしかにこの類の書籍は溢れるほど出版されています。

 

で、そこからズバッと一言「読まなくていいです」と切り捨てました。

・・・・ ( ゚д゚)エッ!

続いての主張はこうです

「どのように考え、どのように働くのかという習慣を社員に浸透させるというときに、まとめるのに数百ページもかかるようなノウハウを他人が実践できるわけがない。」

これは私、けっこう納得。

たしかに辞書的に使う専門書ならともかく、そうでない本が丸ごと役に立つことって少ないんですよね。例えば、以前にエディ・ジョーンズの本を読んで気付きを得たことがありますが、僕の行動を変えるに至った内容はたった数行のエディさんの言葉でした。(そのたった数行に出会うために僕は本を読んだわけですが、この考えをチームに浸透させるためにわざわざまた本を読ませる必要はありませんね。)

スピーチの内容に話を戻しますが「大切なのはシンプルな問い」と述べていました。例えばFacebookでは「What would you do if you weren’t afraid?」という「失敗を恐れないなら君はどう行動する?(⇒それがやるべきことだ)」というシンプルかつ強烈なメッセージを大切にしているそうです。

そしてFacebook社では、この短い問いをわざわざ本になんてせずに社内の壁に直接書いているそうです。そして見事に浸透。

日本企業には社憲が定められていることが多いですが、それはそれで大切にしつつ、何百ページの本を写真に読ませる前に、行動指針となるようなシンプルな問いをぶつけてみると良いかもしれません。

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

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

 

 

統計におけるp値とt値 ~聞くは一時の恥、聞かぬは一生の恥~


■p値

回帰分析で求めた変数xの係数kに対し、『変数xは有効ではない』という帰無仮説を考えたとして、『偶然に係数がk以上になる確率』を表す

p値の解釈についてはコチラの表現がわかりやすい

 

カンタンに言うと「その仮説が正しいと仮定したら、今回みたいな結果が起きる確率はこんなにも低いんだ。偶然こんなに低い確率を引いたと考えるより、その仮説は正しくないと考える方が自然じゃない?」と主張するときの『こんなに低い確率』 https://atarimae.biz/archives/12011#p

 

仮説を否定するときの基準は『p値0.05以下』が広く用いられている

まわりくどいように感じるが、まとめると以下の流れ。
・変数xは有効ではないという仮説を立てる
・偶然では考えにくいような結果が出た
・きっと仮説は誤っていた、つまり変数xは有効だ!

 


■t値

・2つの集団に対して平均値に有意差がありかどうか判定する基準値

 

例えばトレーニング前の体力測定データの集合Xと、トレーニング後の体力測定データデータの集合Yを用意して、t値を算出することでトレーニングによる有意差があるかどうか検定ができる。

 

 

<数式の直感的な解釈>

分子:2つの集団間で平均値の差が大きいほどt値(有意差)が大きくなる

分母:それぞれ集団の分散が大きいほど、たまたま2集団間の平均値が離れただけの可能性があるのでt値(有意差)が小さくなる

分母:サンプルサイズ(mとn)が大きいほど、XとYの平均値が母集団を正確に表現できているのでt値が大きくなる

全員リーダーの組織論

大学選手権9連覇中の帝京大学の岩出監督の言葉

・過剰なトレーニングを強いるのは指導者の不安解消でしかない

・楽しくさせてやったら人間だれでも動く

 

BS1スペシャル
「“全員リーダー”の組織論~帝京大ラグビー9連覇~」
ラグビー大学選手権で前人未到の9連覇を果たした帝京。脱体育会系を掲げ選手一人一人に考える力を求めた岩出監督と選手15人のインタビューで負けない組織の核心に迫る。 

http://www4.nhk.or.jp/bs1sp/x/2018-01-28/11/15594/3115361/

 

コントロールするのではなく、自発的に動く環境を作る。やはりこれに尽きるようですね。

どシンプルながらも強力なPruningによるネットワーク高速化 ~Pruning Filters for Efficient ConvNets~

本日はPruningによるネットワーク高速化の論文を取り上げます。背景としてはディープニューラルネットワークではConv層の計算量やパラメータ数が膨大で、処理時間増大やメモリ圧迫が生じるのでなんとかしたいというところから来ていますね。

特に、ディープラーニングを組み込みで動かす場合はこのあたりの話はかなりシビアに効いてきます。


Pruning Filters for Efficient ConvNets (2017)(PDF
Hao Li, Asim Kadav, Igor Durdanovic, Hanan Samet, Hans Peter Graf

・Pruningによる高速化手法。
・Conv層をカーネルごと削減する手法を提案。


・L1ノルムが最小のカーネルを有効性が低いと仮定して削除する。
・既存のBLAS等のライブラリで実現可能。

 

・ResNetなど複雑な構造のネットワークでもConv層のPruningは可能
・関連するLayerもあわせて次元削減して次元数を揃える点に要注意
・Residualを出力するConv層を基準に削除次元を選定すると良いとのこと

 

・ランダムにカーネル選定するよりはL1を用いた方がわずかに良かった

 

・Layer別にPruning時の性能低下率と速度向上率を検証。
・性能低下を招きやすいLayerや、速度向上しやすいLayerがあることを示した。


所感

カーネル選定手法はまだまだ議論の余地はありそうですが、ポピュラーな構造のネットワークについて丁寧に検証されている論文でした。

ニューロンの重要度を逆伝搬的に算出してPruning ~NISP: Pruning Networks using Neuron Importance Score Propagation~

NISP: Pruning Networks using Neuron Importance Score Propagation
University of Maryland & IBM T. J. Watson Research
https://arxiv.org/abs/1711.05908

2017年11月に発表された論文。タイトルから察するにNIPSでNISPという技術を発表してウケを狙ったのかな・・・?(未確認)


概要

ディープニューラルネットワークの高速化技術に該当。

特にCNNではパラメータが膨大すぎて計算時間がかかることが課題視されており様々な研究がなされている。

主な手法は不要なニューロンを削って高速化するPruningと、量子化対応(例えば16bitのところを近似して8bitにする)による計算高速化。

こちらの論文はPruningによって高速化を図っており、いかに不要なニューロンを削って、重要なニューロンを残すのか、その選定手法を提案している。


手法

ディープニューラルネットワークの最後のLayer(識別結果出力の直前)にて各ニューロンの重要度を算出。

 

重要度算出には、このLayerにおける各ニューロンは入力Xを抽象化して得られた特徴量であると解釈して、下記の特徴量選定手法(ICV2015)を適用。

https://www.cv-foundation.org/openaccess/content_iccv_2015/html/Roffo_Infinite_Feature_Selection_ICCV_2015_paper.html

 

それ以外の手前のLayerでは下記手順で重要度を算出

①そのニューロンをPruningした場合としなかった場合との差分を算出

②各ニューロンでの差分*各ニューロンでの重要度の和によって「Pruningによる影響」を算出

③「Pruningによる影響」が最も小さいニューロンをPruningに選定する

※直感的には、このニューロンを削ったとしても重要度の高いニューロンに影響がないようなものをのPruning対象に選択する


所感

比較対象がRandomにPruning対象を選んだ場合や、Pruningのたびにゼロから学習しなおした場合(scratch)なので、もっとそれらしい手法と比較をしてほしかった。

 

しかし、なんとなくではなく理論立てて納得感のあるPruning候補選定をした点は希少と感じており、今後このような研究が増えてほしい。

IoTシステム技術検定 試験対策⑥

IoT技術テキスト -MCPC IoTシステム技術検定 対応

今回はIoTシステム技術検定の試験対策として「第7章 IoT情報セキュリティ」を中心にまとめます


SHODAN:
モノのインターネット(IoT)デバイスを探す検索エンジン。企業のネットワーク管理者はこれらを利用して外部から脆弱性がないかどうか確認を出来る。

CENSYS:
SHODANと同じく、モノのインターネット(IoT)デバイスを探す検索エンジン。

耐タンパー性:
物理的にデバイスを盗まれたときに、内部のデータを解析困難にしていること。

セキュアブート:
デバイス電源投入時にデバイス内のソフトウェアが正規品であるかどうか検証してからソフト実行する仕組み。

WAF:
Web Application Firewallの略。WEBアプリにおいてHTTP通信等を解析して攻撃を検知・防御する。

CSMS:
組織の産業用オートメーション及び制御システム(IACS:Industrial Automation and Control System)を対象として、その構築から運用・保守に渡ってサイバー攻撃から守るためのセキュリティ対策を実施し、システムを運用するもの。

oneM2Mセキュリティ規格:
サービス層におけるIoTプラットフォーム標準化を推進する団体。セキュリティ機能は共通サービスエンティティ(CSE)の1つとして提供される。