前に逃げる 〜宇宙系大学院生のブログ〜

宇宙系の大学院生。ディープラーニング初心者。

Jetson セットアップで詰まったところ

インターンでJetsonTX2を使っているのですが、色々と詰まったところがあったので記録。

先日公開した記事で参考にしたページなどを載せています。

 

dl-kento.hatenablog.com

JetsonのPost Installationが上手くいかない

JetsonにOSの焼き込み後、母艦のPCからJetsonにCUDAやcudnnなどをインストール。インストーラーでJetsonのIPアドレスとパスワードを入力した後、Xtermの画面が開いてインストールが始まるのですが何故かストップ。。。

秘密鍵の設定をして、ssh接続する時にパスワードなしで入れるようにするのが解決策だった。ssh-keygenなどを使い、設定。

 

Post Installationが途中で止まる

上記のようにssh接続の設定してPost Installationが始まるようになったけど、何故か終わらない。よく見たら同じメッセージが無限ループしてた。。。

流れるメッセージに目をこらすと"Clock skew is detected"との文字が、確かにJetsonと母艦の時計ずれてるなーと思いつつ同僚に時刻合わせの設定をしてもらい解決。

 

バックアップを取る

セットアップはもう二度とやりたくない、、ということでバックアップを取ることにしました。 以下のページにある方法を参考に実施。

Jetson/TX2 Cloning - eLinux.org

てかこのサイトめっちゃ役に立つな。

Jetson TX2のセットアップに役立つリンク集

最近バイトでJetsonを使っているので役立ったサイトのリンクをまとめます。

 

セットアップに役立つサイト

nvidia公式ユーザーガイド

ユーザーガイド 

インストール手順(スクショあり)
インストール手順(スクショなし)
インストール動画
 
NVIDIA Developer Forums も大変役立ちました。
 
 

セットアップ後に役立ちそうなサイト

caffeのインストール(めっちゃ簡単)

http://www.jetsonhacks.com/2017/03/24/caffe-deep-learning-framework-nvidia-jetson-tx2/

faster R-CNN (caffeの実装) のセットアップ(めっちゃわかりやすかった)

https://github.com/eiichiromomma/CVMLAB/wiki/DeepLearning-py-faster-rcnn

各種デモ
カメラモジュールの販売について
インストール後の作業
 
他にもあれば追加します

「『ONE PIECE』に学ぶ 最強ビジネスチームの作り方」は最強のONE PIECE本である

最近読んだ「『ONE PIECE』に学ぶ 最強ビジネスチームの作り方」がとても面白かった。実は僕は大のONE PIECE好きで、幼稚園の時から漫画を読み始めかれこれ20年近くONE PIECEのお世話になっている。そのため、コンビニに並ぶONE PIECEの考察本なんかはいやでも目に入ってしまう。今まで数々のONE PIECE本を目にしてきたが、そのほとんどがクソであるしかし、今回読んだ「『ONE PIECE』に学ぶ 最強ビジネスチームの作り方」はその他のワンピ本とは一線を画すとても素晴らしい本であったので感想を書こうと思う。

 

「ヤンキー」と「オタク」

ざっくりと内容の説明をすると、「最強ビジネスチームの作り方」では「ヤンキー」と「オタク」の二つの視点からONE PIECEを読み解いている。

「ヤンキー」とは仲間との絆や根性を大切にし帰属する組織を大切にする人のことを指す。いわゆる、マイルドヤンキー的な性質のことで、これは日本固有のローカルなタテ社会的な考え方である。作中のキャラクターではルフィ、サンジ、ナミなどが当てはまる。

一方「オタク」とは自分の関心が行動原理であり、情よりも理屈を優先する人のことである。インターネットが同じ関心を持つ仲間と繋がることを可能にした結果、オタク的な人間は数を増やしている。作中ではゾロ、ウソップ、ロビンが当てはまるとされている。(個人的にはウソップはヤンキーではないかと思ったが、、)

 

この二つの視点によってONE PIECEは新しい視点によって読み解かれる。まず、数々の名場面でルフィが叫ぶ「仲間との絆」や「海賊の誇り」は、「ヤンキー」的価値観を持つ人々の心を打つ。一方で広い世界観や複雑な伏線は「オタク」を考察へ導く。このように「ヤンキー」と「オタク」の二つの人種を満足させることにONE PIECEは成功しているのである。

「最強ビジネスチームの作り方」凄さはこの二つの視点を提案したことである。ちなみに本の後半では「ヤンキー」と「オタク」によって組織をどう作っていけば良いかが論じられている。

 

「最強ビジネスチームの作り方」は従来のワンピ本の一段階上をいく存在

本屋に並ぶ「ワンピ本」は二つの視点のうち一つの視点からしか書かれていないのが常である。例えばいわゆる「考察本」は「オタク」的な視点で書かれているし、「名言集」やその他のビジネス本は「ヤンキー」的な価値観を称賛することに終始している。

つまり、「最強ビジネスチームの作り方」はそれらの本より一段階上の視点を提示した画期的な内容となっている。

 

「最強ビジネスチーム」の元ネタは「タテ社会の人間関係」

ちなみに、「最強ビジネスチームの作り方」の下敷きになっているのは「タテ社会の人間関係(中根千枝)」というこれまたベストセラーの本である。(日本社会を語る上での古典と言えるほどの名著。)著作では、日本の支配的な価値観である「タテ社会」的な性質について解説していて、日本の社会を理解する上では欠かせない視点を提示している。

しかし前述したようにインターネットの普及ともに広がる「オタク」的な価値観を知ることはとても大切なことだと思う。会社などの組織に属する上で両者の価値観の違いを理解し、両方の関係を調整する必要に迫られることは必然であるからだ。

「最強ビジネスチームの作り方」はヤンキーとオタクが入り混じる組織のリーダーとしての心構えや振る舞い方を提案する。作中では「フラグセッター」と呼ばれているがその説明については是非著書を読んで知っていただけたらと思う。

個人的には「ヤンキー」と「オタク」という新たな視点を手に入れられて良かったと思う。自分の属する組織を考えるのに非常に役に立っているし、何より新しい視点で物事を考えるのは楽しいからである。

院試に受かりました!!

院浪生のブログというタイトルでやっていましたが、院試に受かりました!笑

あまり更新しないまま大学院生となってしましましたがこれからも気が向いた時に更新していこうと思います。

 

最近読んだ本や院試について更新したいのでよろしくお願いします!

古谷経衡さんの『「意識高い系」の研究』を読んだ

先日、文筆家の古谷経衡さんの著書である『「意識高い系」の研究』を読みました。

 

リア充」や「意識高い系」の定義を明らかにしながら「意識高い系」の内面を分析する内容となってます。最終章では「列伝」と称し「意識高い系」の中でも象徴的な人物にスポットを当て分析、批判しています。

 

興味深かったのは「リア充」と「意識高い系」の定義です。古谷さんは「リア充」を、地元に固着し、先祖から相続した土地を持ち、スクールカーストで上位にいた存在としています。その定義を踏まえリア充は承認欲求を満たす必要がなく自己評価も相応であると述べています。一方で、「意識高い系」そうでない人間なので承認欲求が高く、自己評価が不当に高いとしています。

中盤以降は「意識高い系」の内面の分析と批判が行われます。古谷さんはここで、意識高い系が欲望をそれより上位の大義で覆い隠そうとすることを指摘ししています。「意識高い系」高い承認欲求を持ちつつも泥臭い努力をすることもない、「意識高い人」の亜種として位置付けています。

時折はさまれる「意識高い系」を見分ける方法についてのコラムは大変皮肉とユーモアに溢れたものになっており良いスパイスとなっていました。

 

個人的には「リア充」と「意識高い系」を地元に土着しているか否かで分類したところが非常に斬新だと感じられました。このような分類の方法は今までになかったのではないでしょうか。そしてこの分類には強い説得力も感じました。元々自分としても「マイルドヤンキー」と「意識高い系」を対比させて考えることが多かったからです。

自分の体験として、中学校時代にスクールカーストの高かった人たちは今現在も地元とつながりを持ち遊んでいることが多いように感じられます。(彼らはそれをわざわざアピールもしないのでSNSなどでそれを観測することは難しい)

一方で「意識高い系」として観測される元同級生(怪しいネットワークビジネスにはまっている)は、毎日のようにSNSで観測することができます。彼らはタワーマンションでのホームパーティと称した集まりを報告したり、芸能人と会ったことを自慢したり、「社会的に成功した自分」をアピールすることに余念がありません。中学校時代はスクールカーストが下位で、卒業後の地元の集まりに呼ばれることもありません。この本で述べられた「意識高い系」の特徴に見事に合致していました。

ディープラーニング セグメンテーション手法のまとめ

インターンで画像の分類をしているのですが、最近はFCNのようなセグメンテーションをタスクに使っているので代表的な手法をいくつかまとめようと思います。
 

Fully Convolutional Networks for Semantic Segmentation

 
AlexNetやVGGの全結合層をConvolution層に置き換えることで画像をピクセル単位で推定する(Semantic Segmentationする)手法を提案しました。非常に読み応えのある論文で、今までに10回くらい読んでいますが新しい発見が毎回あります。
 
 
ポイントはいくつがあるので、一つ一つまとめていきます
 
この論文の手法の最も重要な提案手法は、CNNの最後の全結合層をConvolutionに置き換えるということです。例えば、AlexNetのConv5の次の全結合層は6x6のConvolution層と見なすことができます。このようにCNNの全結合層をConvolution層に置き換えることで出力を分類クラスではなく二次元マップに変えることができます。f:id:dl-kento:20170430215326p:plain
 
この手法によって二次元画像から二次元のPredictionマップを出力することの利点は何でしょうか?論文では以下の利点があると述べられています。
一つ目は「任意のサイズの画像の入力が可能になる」ことです。全結合層に入力するマップのサイズは決まっていますが、Convolution層に変えることでその制限はなくなります。(小さすぎるマップは入力できませんがパディングを入れることで解決できます。)
二つ目は「Conv層の被りがなくなる」ことです。例えば大きいサイズの画像から224x224の画像を少しずつずらして切り出し一つ一つクラスを推定することでpredictionマップを生成することができます。しかし、そのような手法ではconv層などのフィルターは画像の同じ場所に何回も適用されるようになります。つまり、同じ計算を何度も繰り返していて効率が悪くなってしまうのです。FCNを適用しネットワークに大きいサイズの画像を入力することでこの問題は解決することができます。
 
二つの利点を述べましたが、一つこの手法には問題点があります。ストライドが2以上のフィルターによって解像度が落ちてしまうということです。例えばAlexNetやVGGでは解像度が1/32まで落ちてしまいます。論文では幾つか対策が述べられていますが、結局Deconvolution層を追加する案が提案されています。Deconvolution層では特徴マップの1ピクセルを任意の大きさに拡大します。そして、その重みも学習することができます。

 

 
最後に、スキップアーキテクチャーという手法を紹介します。CNNは畳み込みを繰り返すに連れて画像の高次な特徴を抽出します。一方でローカルな特徴はPoolingを繰り返すに連れて失われていきます。つまり下位のレイヤーはローカルな情報を持ち、上位のレイヤーは高次な特徴を持っているということです。このいいところを両取りしたのがスキップアーキテクチャーです。下位のレイヤーの特徴マップを上位の特徴マップと合流させます。これにより精度の向上が確認されました。f:id:dl-kento:20170430222915p:plain
 

SegNet

SegNetは2016年にIEEEで発表されました。風景画像のセグメンテーションを高速、省メモリで行う、というのが研究のモチベーションとなっています。では、高速化、省メモリ化の工夫とは一体どのようなものでしょうか。
 

一つはネットワーク構造にあります。FCNのネットワークの、全結合層を畳み込み層に置き換えた部分は計算量が多くなっていて学習に時間がかかったりメモリを多くとる原因となっていました。SegNetでは全結合層だった部分を削除したEncoder-Decoder構造を採用しています。これによって高速化、省メモリ化を達成できたようです。

f:id:dl-kento:20170430224153p:plain

 

SegNetの工夫は右半分のDecoder部分にもあります。Decoder部分のMaxPoolingで採用した値の場所を記録し、upsampling時にその場所を使って特徴マップを拡大します。これにより位置情報を正確化させているのです。

f:id:dl-kento:20170430224454p:plain

追記

先日さらにSegNetの論文を読み直したところ、実験上の工夫を発見しました。

セグメンテーションの課題ではどうしてもクラスごとにピクセル数の偏りが出てしまいます。そこで、採用されたのがClass balancing と言う手法です。クロスエントロピー誤差を取る時に各クラスのピクセル数に応じてその大きさを重み付けします。SegNetの論文では各クラスのピクセル数とその中央値の割合を使って行っています。これを行わないと各クラスのピクセル数の割合が事前確率のようになってしまい結果が引っ張られてしまいます。

 

U-net

U-netは医療画像のセグメンテーションのために提案されました 。セグメンテーションのタスクにおいて現時点でのstate-of-the-artと言われていてKaggleコンテストの優勝者が使っていたりします。

U-netではSegNetのようなEncoder-Decoder構造をしていて、Encoder部分とDecoder部分の対応した解像度の特徴マップをつないでいます。論文では図がU型に配置されていてこれがU-netの名前の由来だそうです。

f:id:dl-kento:20170430225135p:plain

 

その他の工夫としては、重み付けロスの採用があります。

医療画像のセグメンテーションにおいてオブジェクト同士の境界をはっきり出すことは重要です。そのため、境界部分のロスを大きくし、はっきりと判読できるよう工夫しています。つまり、タスクの目的にあった画像の前処理が必要ということです。かなり骨の折れる(辛い)作業になりそうですが、ディープラーニングの課題において前処理は重要なんですね。

f:id:dl-kento:20170430225652p:plain

 

 

渋谷のジュンク堂に行ってきました。(読みたい本のメモ)

先日渋谷のジュンク堂書店に行ってきました。品揃えが非常によく本の量に圧倒されました。最近は本をAmazonで買うことが増えてきましたが、本屋でピンとくる本を探すのもいいですね。ジュンク堂といえばその特徴的な名前ですが、創業者の父の名前(工藤順)からきているそうです。

今回はジュンク堂書店できになる本を何冊か見つけてきたので、ご紹介しようと思います。

 

人工知能の作り方

ゲームAIについて書かれた本だそうです。最近の人工知能ブームにのっかてきた感はありますが、非常に興味深い内容です。ドラゴンクエストの戦闘AIも解説されているのでしょうか。僕はいつも「じゅもんつかうな」か「いのちだいじに」にしていました。(慎重な性格です笑)

表紙もかっこかわいくて魅力的です。

人工知能の作り方 ――「おもしろい」ゲームAIはいかにして動くのか

人工知能の作り方 ――「おもしろい」ゲームAIはいかにして動くのか

 

 

深層学習

ブルーの方ではなくて、人工知能学会が出した紺色のやつです。パラパラと見ただけですが、ディープラーニングの様々な事柄について詳しく説明がされています。それぞれ専門の先生が執筆しているので非常に充実した内容なのでしょう。一通り勉強するのもいいですし、調べ物をする時の辞書としても使えそうです。

深層学習 Deep Learning (監修:人工知能学会)

深層学習 Deep Learning (監修:人工知能学会)

 

 

ヘルシープログラマー

オライリーが出した、プログラマーのための健康ハック本です。簡単なストレッチやトレーニングについて書かれているっぽかったです。プログラミング本の他にこのような本も出しているんですね。

ヘルシープログラマ ―プログラミングを楽しく続けるための健康Hack

ヘルシープログラマ ―プログラミングを楽しく続けるための健康Hack

 

 

 Cooking for Geeks

料理の本も出してるんですね!笑

お店ではオライリー本購入者にカレンダーをプレゼントしていました。オライリー信者の人は渋谷ジュンク堂に行きましょう!(僕は信者ではありません)

Cooking for Geeks 第2版 ―料理の科学と実践レシピ (Make: Japan Books)

Cooking for Geeks 第2版 ―料理の科学と実践レシピ (Make: Japan Books)

 

 

みかづき

森絵都さんの新作です。

個人的に森絵都さんの本が大好きなので絶対に読みます。カラフルを小6の時に読んで以来どっぷりはまってしまいました。森絵都さんのキュンキュンする系の作品が好きです。

みかづき

みかづき

 

 

 

 

以上です。また気になる本があったらアップします。