ニューロンの重要度を逆伝搬的に算出して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候補選定をした点は希少と感じており、今後このような研究が増えてほしい。

レベルを上げて物理で殴る!?最新モデルよりもチューニングをちゃんとしたLSTMが最教説~On the State of the Art of Evaluation in Neural Language Models~

DeepMind社から面白い論文が発表されています。その名も「On the State of the Art of Evaluation in Neural Language Models」で、内容としてはチューニングをきちんとしたLSTMは、近年のstate-of-the-artを上回るというもの。

論文サイト:https://arxiv.org/abs/1707.05589

(アブスト。LSTMが最もよいと書かれています。)

様々な学会であれこれと創意工夫がこなされている中、まさかレベルを上げて物理で殴れば最強と言わんばかりの論文が登場するとは思いませんでした。

比較相手にされているのはRecurrent Highway Network(2016)とNAS(2016)のようです。

ちなみに「ちゃんと」チューニングとのことですが、具体的にはGoogle Vizierを用いたようです。こちらはGoogle社によるブラックボックス最適化のためのサービスです。っていわれてもなんのこっちゃですがハイパーパラメータなどをイイ感じに最適化するツールとでも解釈してください。

Google Vizier
https://research.google.com/pubs/pub46180.html
http://itpro.nikkeibp.co.jp/atcl/idg/17/100200076/100200002/?P=2

しかし、チューニングにGoogle Vizierを使ったとなると、Google Vizierの信頼性も気になるところですよね。一般的なモデルになりつつLSTMだからこそGoogle Vizierによるパラメタチューニングが上手くっただけで、state-of-the-artの手法にGoogle Vizierが対応できなくて性能が出なかったという可能性もありません。

まぁそれを差し置いてもLSTMで最高性能を達成したというだけでGoogle Vizierの価値が高いのは間違いないのですが。

個人的にはDeepMind社によるGoogle Vizierの宣伝じゃないかと懐疑的にもなりつつ、このようなシンプルに強力な結果を出す研究は大好きなので楽しく読ませて頂きました。

JDLA ディープラーニングG検定 内容・難易度・試験対策まとめ

2017年12月16日、JDLAディープラーニングG検定を受講しました。

受験を検討している方のために内容をまとめておきます。





問題数と試験時間

問題数:233問
試験時間:120分

試験時間に対して問題数が膨大ですが、「画像認識タスクには特定物体を矩形領域で抽出する(ア)や、ピクセル領域ごとに認識する(イ)がある。」といった具合に、1つの文章に対して穴埋め問題が複数設定されていたりするので、試験を受けた感じでは問題数が多すぎるといった感覚はなく、実質120問程度といった感覚でした。

 


出題範囲と難易度

ディープラーニングに関する出題は簡単なものばかりでした。
学習率の大小によって学習の進み方がどう変わるか、ドロップアウトは何の役に立つか、正規化や正則化はどんな処理をしてどんな効果が出るか、CNN・RNNの特徴は何か、、、、せいぜいそんなところです。ディープラーニング関連の設問が最も簡単で点の稼ぎ所だったのではないでしょうか。

重回帰分析、主成分分析、SVMについて問う出題もありました。
特にSVMはカーネルトリックなどがどんな手法でどんな効果を生むのか、マージン最大化手法ですという以上に正確な知識を問われました。このあたりは推薦図書を読んだだけでは解けない問題だったので、多くの受験生が苦戦したのではないでしょうか。

人工知能の開発の歴史を問う問題も多かったです。
第1次AIブームから現代にいたるまで、どんな技術でどんな課題が解決されブームが加速し、どんな課題に直面してブームが終焉したのか。シンボルグラウンディング問題やフレーム問題、抽象化の難しさやエキスパートシステムの問題点などを問う設問が多かったです。AlexNet、GoogleNet、VGG、ResNetなどディープラーニングの進化をたどる設問もありました。これらは推薦図書にあるAI白書や松尾先生の本を読めば対応できます。

人工知能開発の世間動向を問う設問もありました。
ここが最も厄介で、シンギュラリティに対してイーロン・マスクがとっている姿勢として最も適切なものを選べとか、「そんなの知らんわ」という設問が多かったです。自動運転の開発状況や各レベルの意味、さらには法規制の整備状況も問われました。人工知能をビジネスに活用しようとする人向けの試験であるということを強く感じさせる設問です。AI白書をよく読めば書いているのですが、カンペなしにはきつい設問が続きます。ここでうっかりググって時間を使ってしまって最後までたどり着けなかった受験生も多かったのではないでしょうか?


まとめ

ディープラーニング検定というよりも人工知能検定でした。試験名は改めた方がいいでしょう。

網羅性が高く、「バズワードに踊らされることなく、こういうことをきちんと理解してほしい」という協会からの強い意志を感じる試験でした。

ディープラーニング関連は岡谷先生の本を1度読めば十分です。それ以外の設問は推薦図書を1通り読んだだけでは対応できないでしょう。2~3回繰り返して読んで歴史や経緯を辿った知識定着をさせないと合格困難な試験と思われます。

IoTシステム技術検定試験 by MCPC 難易度と合格までの勉強時間

IoTシステム技術検定試験とは

その名の通りIoTに関する検定試験です。
http://www.mcpc-jp.org/iotkentei/gaiyou.html

主な出題範囲は以下3点
・通信技術(通信規格、プロトコル、ネットワーク設計)
・センサ技術(各種センサの特徴と仕組み)
・データ活用(データベース設計、機会学習)


試験の難易度

ここでは『中級』について言及します。というのも私が受験したのが中級だからです(検定種類としては『基礎』『中級』『上級』があります。)

はっきり言ってこれで中級??と疑ってしまうほどの易しさです。

4択問題×80問の構成ですが、「センサが収集したデータはもれなく全てサーバに送信する必要がある」など中学国語テストでよくある「全て」「必ず」「常に」を含んだ明らかにダミーとしか思えない選択肢の数々。

データ分析も出題範囲に含まれるので期待していたら教師あり学習・教師無し学習・強化学習の違いを問う程度のレベルで、「ニューラルネットワークする」という意味不明なバスワード釣りダミー選択肢も存在

感覚としては「CoAPってプロトコルの一種で、たしか軽いんだよな~」「MQTTってサブスクライバーとパブリッシャーってのがなんかするんだよな~」くらいの理解度で合格できます。

もう少し具体的に述べると公式テキストを2回読めば大丈夫です。記憶力の良い人は1回でいいでしょうけど、知識定着のために同じ本を2回読むと効果的です。

公式教材 IoT技術テキスト -MCPC IoTシステム技術検定 対応


勉強時間

公式テキストを2回読むのなら20時間あればお釣りがきます。通勤電車で片道30分ずつ平日に読めば1カ月で準備できますね。


試験の良い点

さて、難易度が低いとDisったようになりましたが無論よい点もあります。それは試験範囲の網羅性が高くて技術の目利き力を養える点です。IoTではどんなことが課題になているのか、この技術的はどんな課題を解決したのか、どんな課題が未解決なのか、今後はどんな課題に直面するのか、特に通信技術に関しては歴史とあわせて網羅的に記載されています。

システム設計スキルは本試験だけでは基礎的すぎて不足するかもしれませんが、技術を網羅的に見て目利き力を養うには良い試験です。

 

CCライセンスまとめ

①表示(BY)

原作者のクレジット(氏名、著作物タイトルなど)を表示する。

 

②非営利(NC)

営利目的での利用をしない。

 

③改変禁止(ND)

元の作品を改変しない。

 

④継承(SA)

改変した場合、元の作品と同じライセンスで公開する

 

実際はこれらの組み合わせでCCライセンスを設定します。




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つとして提供される。

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

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

今回はIoTシステム技術検定の試験対策として「第6章 IoTシステムのプロトタイピング開発」を中心にまとめます


データフォーマットの検討(CSV):
データがコンパクトで処理が速い。ただし、構造化データの弱い。シンプルなセンサデータであればCSVが適任。

データフォーマットの検討(XML):
トランザクション処理向き。構造化データに強い。処理時間がかかり、レコードが大きくなりがち。

データフォーマットの検討(JSON):
エスケープ処理に対応。構造化データに強い。CSVに比べるとレコードが若干大きめで処理速度も劣る。

FabLab:
3Dプリンタなどの先進的な工作機械を備えた市民工房。

マイコンボード(Arduino):
イタリアのマッシモ・バンジらによって開発されたマイコンボード。センサやアクチュエータなどを簡単接続できるため電子工作が手軽に可能。開発言語はJava以外にも独自言語が用意されている場合も多い。

コンピュータ(RaspberryPi):
英国のRaspberryPi財団が開発したコンピュータボード。OSを持っている点が特徴。モニタディスプレイやキーボードやLAN接続で廉価版PCとしても動く。

GPIO+アナログ信号:
General Purpose Input/Output(汎用入出力)の略語。アナログ信号を入出力する場合はマイコン側でA/D変換やD/A変換がなされる。入力として動作した場合は電気回路のほかの部分からのデジタル信号を読み取る。出力として動作した場合は他デバイスの制御や信号の通知を行う。デジタル出力のセンサ値をマイコンに伝える入力や、マイコンの演算結果をLEDで表示したりする信号を出力したりする時などに利用。

シリアル通信:
送受信によるプログラム制御によって、伝送路上を一度に1ビットずつ逐次的にデータを送る。送受信に用いる信号線の数はUARTは2本、I2Cが3本、SPIが4本。

電波強度RSSIの季節性:
電波は水分によって減衰するので、秋や冬に電波が良く通っていても、春や夏には電波が届かなくなることがあるので要注意。

IFTTT:
「レシピ」と呼ばれる個人作成もしくは公に共有しているプロフィールを使って数あるWebサービス同士で連携することができるWebサービス。TwitterやFacebookなど人気サービスはほぼ網羅されている。

myThings:
ヤフーが提供するIFTTTに類似したサービス。さぁどちらが本家かな?

 

 

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

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

今回はIoTシステム技術検定の試験対策として「第4章 IoTデバイス」を中心にまとめます


パッシブセンサとアクティブセンサ:
人体表面から出る赤外線を検知するような仕組みがパッシブセンサ。近赤外線ビームを投光して反射光を測定するような仕組みがアクティブセンサ。

オフセット:
入力がゼロにも関わらず、出力がゼロでない場合、その値をオフセットと呼ぶ。

センサ感度:
入力に対する出力の比率。感度が高いほど高解像度で値検出できる。

CDsセル:
光りが照射されると電流が流れやすくなる光導電効果を利用。

フォトダイオード:
光りが照射されると電圧・電流が発生する光起電力効果を利用。

赤外線センサ:
人体からは体温に相当する遠赤外線が出ており、これらを測定することで非接触に体温測定が可能。温度上昇を抵抗変化で検出する熱型や、センサ表面に発生する電化で検出する焦電型がある。

PSD:
2つの電極で測定される光電流の差から、光の照射された位置を検出する。

サーミスタ:
温度センサに用いられる。金属の酸化物を焼結した素材。温度上昇に伴って抵抗が減少する。感度が高い。

熱電対:
異種の金属が電気的に接続された回路では、両端に温度差があると熱起電力が生じるゼーベック効果を利用。

白金測温体:
温度上昇にあわせて抵抗も上昇(サーミスタと逆)。細く加工することで応答時間が早くなる。

半導体温度センサ:
半導体ダイオードの温度特性を用いたセンサ。小型でIC回路内に搭載可能。チップ内の温度検出に用いられる。

ひずみゲージ:
薄く張り付けた金属が延びたりすることで変化する抵抗値を検出する。微小な抵抗変化であるため、検出のためにホイートストンブリッジ回路(未知の抵抗値を測定できる回路、微小な変化も検出できる)が組み込まれる。

ロードセル:
力の大きさを電気に変換するセンサ。表面にひずみセンサが貼り付けられている。体重計や電子秤に用いられる。

圧力センサ:
金属ダイアフラムが圧力によって変形して、その変形をひずみゲージ等で検出することで圧力を測定する。気体や液体の圧力に加え、血圧の測定などにも用いられる。

加速度センサ:
重りをバネで支えた構造を持ち、取り付けたひずみゲージの抵抗変化や、電極間の静電容量の変化により動きを検出する。

ジャイロセンサ:
回転を検出するセンサ。船やロケットの制御、さらにはGPSでも用いられる。回転物体は外力が加わると一定の姿勢を維持しようとするので、その力を計測することで角速度を検出する。

衛星測位システム:
代表的なのがGPS.4つ以上のGPS用人工衛星の信号を受け取ることで高精度な測位が可能。

超音波センサ:
超音波の反射を利用して物体の位置を検出。ドップラー効果によって速度も検出可能。また、音波は空気中よりも液中の方が速く進む。医療に用いられる超音波画像などもある。

磁気センサ:
磁気の他にも、電流の非接触測定やモータ回転制御に用いられる。電流が流れている半導体に磁界を加えられると電圧が生じるというホール効果を用いたものや、磁界によって電流が流れにくくなる(抵抗が大きくなる)MR素子を利用したものなどがある。MR素子はホール素子に比べて高感度。

化学センサ(水中のイオン検出):
ガラスの内側と外側の水素イオン濃度の差により電圧が発生する効果を利用して水中のイオンを測定するセンサ。

化学センサ(水中の酸素濃度):
白金と銀などの対極を用いて酸化還元反応をさせる。このときに流れる電流が酸素濃度に比例する性質を利用。

化学センサ(期待の成分を測定):
酸化スズの表面にガスが付着すると伝導率が変化する性質を利用。ジルコニアは酸素イオンを透過させるため酸素濃度の検出に用いられる。

バイオセンサ:
特定の物質が特定の分子と反応する性質を利用して、反応を電気信号に変換して取りあ出す。検出対象には酸素、免疫、DNA、臭い、味などがある。

アクチュエータ(DCモータ):
直流電流によって回転するモーター。入力電圧によって直線的に回転スピードが増加する。

アクチュエータ(ステッピングモータ):
モータの軸が時計の秒針のように一定の角度ずつ動く。正確な位置決めの制御が可能。産業用ロボットに用いられたりする。

アクチュエータ(ソレノイド):
電磁石コイルの中に可動鉄心を収めた構造を持つ。コイルに電流を流すことで可動鉄心を直線的に動かす。電磁弁として水や油の流体を流したり止めたりするのに使われる。

信号前処理(オペアンプ):
センサからの信号はμAやmVといった微小単位のことが多い。センサの感度調節やお布施と調節のために、これをオペアンプによって増幅してやる。

I2C:
フィリップス社が提唱したシリアル通信の方式。高速通信を実現
する。2線式の同期シリアル通信インターフェース。

SPI:
モトローラ社が提案した同期シリアル通信インターフェース。3線式。

エナジーハーベスティング:
低消費電力が求められるIoTデバイスにて、振動・温度差・室内光・電波などの周辺環境から微弱なエネルギーを求めて発電し、利用すること。

画像センサ:
感度を上げたい場合は大きな素子を用いる必要があるが、必然的にサイズが大きくなり高価にもなる。

F値:
レンズの絞りを最大に開いたときの明るさを、そのレンズのF値と呼ぶ。明るいレンズほど解像力がある一方で、焦点からずれた時のピンボケが大きくなる。

MEMS:
微小な電気要素と機械要素を一つの基板上に組み込んだセンサ、アクチュエータ等のデバイス/システム。 同一平面にCMOSデバイスを組み込み可能だったりコスト効率に優れている表面マイクロマシニングと、高い感度と精度があるバルクマイクロマシニングがある。IoT用途には周辺回路を集積化できる表面マイクロマシニングが主流。

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

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

今回はIoTシステム技術検定の試験対策として「第3章 IoT通信方式」を中心にまとめます


高周波の電波のメリット:
・情報伝送容量が大きい
・アンテナが小さくなる

高周波の電波のデメリット:
・伝搬損失が大きい(周波数と距離2乗に比例)
・障害物を回り込みにくい
・ガラスなどの透過損失が大きい
・伝送距離が比較的短い

ISMバンド:
産業で容易に利用してもいい周波数帯。日本では2.4GHz(無線LAN、Bluetooth)や920MHzが広く利用されている。

スター型:
ゲートウェイは常に稼働している必要あり。ゲートウェイに複数センサが繋がるので、データが衝突しないように送信順番を制御する必要あり。中央集権なので信頼性の低いネットワークになる。

ツリー型:
階層構造によって多くのセンサをゲートウェイに接続可能。上位のノードにデータが集約されるため、一定のスペックが求められる。混信しないようにデータ送信純の制御や周波数帯域の使い分けが必要。

メッシュ型:
到達ルートが複数あるため信頼性の高いネットワークを構築可能。ただし通信が混線しないように周波数を使い分ける必要あり。ノードが常に受信待機のため稼働していないといけないので電力面にデメリットあり。

BLE
通信可能距離はBluetoothよりも短い。通信速度も低速。低消費電力に特化させた通信。

ZigBee:
周波数帯 2.4GHz
通信速度 250kbps
通信距離 100m
マルチホップが特徴。センサネットワーク形成に用いられる。

Wi-SUM:
周波数帯 920MHz
通信速度 1Mbps
通信距離 2km
マルチホップが特徴。屋外長距離通信に用いられる。

RFID:
無線通信機能を持ったタグ。電池内蔵で自らデータ送信するアクティブ型と、受信電波をエネルギー源として電波を返送するパッシブ型がある。

トランスファージット:
近距離無線転送技術。4.48GHzで560Mbpsという高スペック。KIOSKでの広告等コンテンツ配信に用いられる。

Z-Wave:
1GHz以下で無線LANなどと混線することなくフルメッシュネットワークを形成する。

EnOcean:
低消費電力性に注力した928.35MHzの通信技術。確認信号であるACKを使わないことで低電力化、その代わりに1回の送信でランダム間隔に3回データ送信する。

DustNetwork:
「きれない無線」を目指したメッシュネットワーク。時間をスロット分割して、割り当てられたタイムスロットで送信させることにより衝突が発生しない。

LAPI(low access priority indicator ):
携帯電話などと比較して、IoT機器はネットワーク接続の優先順位を下げる仕組み。

報知情報:
ネットワーク混雑時にIoTデバイスにアクセス不可な旨を報知情報として届ける仕組み。これによりIoTデバイスは接続要求すら出さないので回線制御信号までも控えることが出来る。

IoT最適な標準化:
無駄なスペックをひたすら省こうとする試み。NB-IoTと言われるように最小限の帯域しか割り当てず、最低限の通信速度しか持たせない。

IoTとプロトコル(HTTP):
暗号化やプロキシといったセキュリティ面で強いが、ヘッダ情報が大きいため無駄なデータ伝送が多くなる。

IoTとプロトコル(CoAP):
そんなHTTPの欠点を改良したものがCoAP。軽量版HTTPと思っておけばだいたいOK。

IoTとプロトコル(MQTT):
パブリッシャーとサブスクライバーという構成が特徴。トピックの一致をもってデータ送受信がなされる。HTTPなどよ比較してヘッダサイズが1/10以下。

IoTとプロトコル(WebSocket):
ベースはHTTPと似ているが、1度確立したセッションをそのまま維持し続ける点が特徴。TLSに対応しているためセキュリティにメリットがある。さらにリアルタイム性も強い。

プロトコルバインディング:
アプリ層やトランスポート層などでプロトコルが異なる場合に、その差を吸収する仕組み。

 




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

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

今回はIoTシステム技術検定の試験対策として「第5章 IoTデータ活用技術」を中心にまとめます


Hadoop
大規模データの蓄積・分析を分散処理技術によって実現するフレームワーク

MapReduce
データを分類・仕分けするのがMap処理、仕分けされたデータごとに処理を施すのがReduce。

CEP
複合イベント処理。時系列に生み出されるデータを次々とリアルタイム処理する方式。

NoSQL(Key/Value型)
保存するデータをValueとして、ペアとなる一意のKeyを使ってValueの追加と呼出しを行う

NoSQL(ドキュメント)
JSON、XMLなどのフォーマットで記述されたデータを管理する。

NoSQL(グラフ)
データ間の関連性を管理可能。グラフ理論に基づくNoSQL。SNSなどの「ある人の友だちの友達」など互いの関連性を管理するときに利用されている。

Spark
Hadoopの後発として期待されるビッグデータ処理基盤。分散処理フレームワーク。