SANMAN

思いつきの考えを垂れ流すブログ

MicrosoftがFPGAでDeepLearningしてた

Alteraのリリースノートで知ってはいたが、Microsoftリサーチのホワイトペーパーを発見した。2015年にUCLAXilinxFPGA使って同様のこと(CNNの実装)をしているが、それより3倍くらい性能良い模様。

http://research.microsoft.com/pubs/240715/CNN%20Whitepaper.pdf

DeepLearningの一種Convolutional Neural NetworkをFPGAというか、自社製FPGAボード「Catapult」上にのせた。 このCatapultについては以前記事にした。 tkysktmt.hatenablog.com

Deep Learningについて

自分がどう考えているか簡単に。
Deepな層構造(3層以上)をもったNeural Networkを、どうにかして学習させることができたものをDeep Learningと呼ぶ。どうにかして学習させるその工夫はいろいろあり、現在のホットな研究対象だが、基本的には古い教科書にのっているNeural Networkを巨大にしたもの。そんなわけでDeep Learning自体が具体的なアルゴリズム1つを指すわけではなく、DeepなNeural NetworkをLearningさせる手法すべてに適用される呼称。

で、Deep Learning以前から、Neural Networkは生物のそれと同じく、Neuronモデルをたくさん用意すれば表現力が増すと考えられてきたのだが、実際はせいぜい3層ちょいが扱える限界だった。深い多層Neural Netをつかうには、ニューラルネットワーク職人が丹精込めてネットワーク構造や、パラメーター調整するしかなかった。 それが、近年のハードウェア性能の向上&学習アルゴリズムの改良により、実用的な限界を突破。昔からの予想通りNeruronモデルが増えることで表現力が増し、いままでコンピューターにできなかったことが出来るようになってきて注目を浴びている。

話題になるタイプのDeep Learningの特徴としては、「低層の自己組織化」が主流だと思う。特に汎用目的の場合、ネットワーク構造は全結合か結合なしで、内容に応じて適切なネットワーク構造が構築される、生物っぽいのが望まれていると思う。与えられた時空間な刺激からいかにして判別しやすいパターンを抽出してもらうかいった感じ。

CNNとはなにか

Deep Learningの一種で、画像認識に向いたDeepなNeural Network。端的にいうと人の視覚野のV1,V2の出力結果のようなものを得られるような工夫が低層でされている。

以下が詳しい。 vaaaaaanquish.hatenablog.com

どうやったか

こんな感じ。この次層のために再循環させるアイデア自体は自分も思いついていたが、ちゃんと実装されるとは。

ポイントは以下の3つ。

  1. 実行時に、複数の層構成をサポートすることができるソフトウェア構成エンジン。 これはハードウェアの再コンパイルを必要としない。これははハード的にはどの層にもなれる汎用のNeural Net(PEアレイ)を用意しておき、シーケンスによってソフトウェア的にカーネルの重みを変更するというものだろう。

  2. 効率的なデータバッファリング方式とオンチップの再配信ネットワーク。オフチップメモリへのトラフィックを最小限に抑えることができる。この仕組みと1の再構成の仕組みがあることで、1チップ上にDeepなNeural Network実現できる。

  3. 容易にスケールアップすることができるPE(処理要素)を空間的に分散配列。1000ユニットとかいける。PEの中身、特に演算部はUCLAとそんな変わらないと思う。 以下のような小規模Neural Netを表現可能にした演算ユニットだと思われる。

一般的なオペレーション

このCNNアクセラレータは、連続して複数の畳み込みの層を処理できる。 初期層の間に、入力画像ピクセルがローカルのDRAMからストリーミングされ、その後、マルチバンクの入力バッファに格納される。 これらの入力は、3Dコンボリューションのステップで独立した内積演算を実行するため、複数のPEのアレイにストリーミングされる。 トップレベルコントローラは、シーケンスシング、アドレッシング、各PEアレイへのデータの配信を調整する。 蓄積された結果は、特殊なネットワークオンチップに送信され、入力バッファへ再循環させる。これは次層の計算でつかうため。

Microsoftの結論

結果は有望。
専用ハードウェアを構築することで、現在のGPUで構築するよりも低消費電力で高レベルの性能を達成することができることを示している。

f:id:tkysktmt:20150613160456p:plain

今回はCatapultベースなのでStratix Vだったが、今後は最新のFPGA(Arria10やStratix10)に今回のデザインをマッピングすることによる、さらなる性能の向上。 また、Catapultの利点である多数のFPGAを組み合わせを用い、トレーニングと評価の並列化を検討しているなど。

ほか

Alteraのリリースノートの日本語版。GPUより3倍の電力効率だとか。Arria10の浮動小数点演算ユニット推し。 ホワイトペーパーやMSのブログではまだだったみたいだが、もうOpenCL使ってArria10のES品で実証したっぽい? 次のCatapultにはArria10載るんだろうか。

https://www.altera.co.jp/about/news_room/releases/2015/corporate/nr-microsoft-cnn-arria10hardfloatingpoint.highResolutionDisplay.html

あと、結論で使っている表で比較されているBest prior CNN on Virtex 7 485T [5]UCLAによる実装例。こちらはCNNをFPGAにインプリする場合のデザインについての報告。具体的で詳しい。

http://cadlab.cs.ucla.edu/~cong/slides/fpga2015_chen.pdf

おわりに

自分の思いつきアイデアをベースに読んでいるので、仕組みについては間違った解釈かも。あとでちゃんと調べてみる。

Alteraが本気の買収されたし、チップとしてのFPGAだったり、DRPだったりが、電気代も気にする方面から注目されそう。GPU勢は電気代無視して性能向上に励んでほしい。 IntelはAlteraと協業してたころからXeonFPGA統合するって言ってたのと、あつかいやすさからOpenCLなどといった形で広まってくのかね。もしかしたらコンパイラディレクティブで、「この処理は高位合成によりPLD領域にマップ」みたいな感じなこともできるのかな。

退職したので東亜飯店に行ったら閉店していた件

退職しました。

f:id:tkysktmt:20150531110728p:plain  
 
今後はインターネットな感じのIT関連企業に潜り込みFPGA活用を模索する感じの仕事のはず。サーバーとか作る感じか? www.amazon.co.jp

 
 

というわけで、いざ東亜飯店へ

いわゆるWeb系の人らが退職する際によく出る謎画像の店「東亜飯店」に行こうと思った。 というのも、下のエントリのように、なんか普通に安旨な良い中華料理屋みたいなので。美味いと評判の水餃子でも食おうかと。 bugrammer.hateblo.jp

事前に調べた限りだと、退色した看板は無くなったが、営業はしているようだった。食べログでも閉店になっていない。 psn.hatenablog.jp f:id:tkysktmt:20150531111805j:plain このブログのおかげで画像のような店構えであることがわかったので地図上での位置を調べる。

場所はここ。昭和通り口から昭和通りを渡って、右側の小道を歩いていると右手側にある。という感じ。

関連ランキング:中華料理 | 秋葉原駅岩本町駅末広町駅

しかしながら、どう見ても画像にあったような店構えの中華料理屋がない。 「捜査の基本は足」とばかりに周辺をしらみつぶしに、怪しいリフレクソロジーな店がある路地まで見て回った。しかし無い。位置情報を扱うパスコ社員が同行していたので、住所番地を頼りに探すなど。 www.pasco.co.jp

だが見つからない。ドローン調達の必要性や食べログに載っている住所がまちがっている可能性が浮上するなど現場は混乱。

ひとまず地図上で正しいはずの位置に戻り、悩んでいると、なんだか目の前に見覚えがある形状が。

f:id:tkysktmt:20150531113729j:plain これだ。どう見ても。何回も通ったわ。ネパール人ぽいひとが一生懸命ペンキ塗ってるのを何度も見ていた。

おわりに

東亜飯店跡地の店はまだ開店していないので、すぐちかくにある「元気」に行った。 tabelog.com

いま、食べログの東亜飯店ページを閉店ステータスにしようかと思ったらログインを要求されたのでやめた。

荒木飛呂彦の漫画術が面白い

新書の売れてるコーナーっぽいところにあったので、なんとなく手に取ってみた。

ジョジョの奇妙な冒険」などで有名な著者、荒木飛呂彦先生は、この本を「王道漫画の書き方に関するハウツー本」と位置づけており、想定する読者は「漫画を描きたい人」であるとしている。ただ、それは「一応」のメインターゲットなだけであり、序章には「たぶん漫画家志望でなくても、なにかしら役に立つのでは?」というサブの狙いがあることが書かれている。 そんなサブターゲットにむけて分かりやすく書いてあるためか、非常に面白く、興味深く読めると思う。

フェルマーの最終定理みたいな、ドキュメンタリーものみたいな感じだ。

これは個人的なものかもしれないが、文章が読みやすい?のも素晴らしいと感じた。なんか、内容は濃いのにすんなりと読めてしまった。

どんな内容か

7章からなる荒木流王道漫画のハウツーと、その実践が後半にある。

  • はじめに
  • 第一章 導入の描き方
  • 第二章 押さえておきたい漫画の「基本四大構造」
  • 第三章 キャラクターの作り方
  • 第四章 ストーリーの作り方
  • 第五章 絵がすべてを表現する
  • 第六章 漫画の「世界観」とは何か
  • 第七章 全ての要素は「テーマ」につながる
  • 実践編その1 漫画が出来るまで
  • 実践編その2 短編の描き方
  • おわりに

図説的に利用するのは著者自身の作品である「魔少年ビーティー」や「ジョジョの奇妙な冒険」といったものだが、本文中では孤独のグルメこち亀テルマエ・ロマエ、映画や小説など様々なヒット作のを例にあげて書かれており。「へぇ〜なるほど」と思うページがたくさんだった。

とくにジョジョのいろんな設定の理由とか裏事情など、事細かに説明しているので、少なくともジョジョファンにとっては確実に面白いと思う

基本的にどこも参考になるし、面白いんだが、個人的にピックアップしたい部分を4つ。ちょっとだけ。

ボツ原稿をなくすには

編集者というのは漫画原稿の1ページ目を見ただけでボツを出してくる「最恐の読者」だ。

編集者からすれば、大量の持ち込み原稿を見ているのですから、一ページ目だけで、「これは、こういう漫画だ」という見極めができるわけです。それは読者も同じで、表紙を見て「いいや」と思ったら、もうその漫画を読んではくれません。

ではどうやって編集者に次のページを読ませるか? 著者が初めてそれを成し遂げた、つまりデビュー作となった「武装ポーカー」を題材に表紙から解説している。

漫画の表紙には主人公のキャラクターを描く、というのが正攻法です。けれども「武装ポーカー」は西部劇画、しかも、トランプのポーカーで戦うという異色作ですし、編集者に「ちょっと変わったヤツだな」と興味を抱いてもらいたかったので、普通に主人公を描くのではなく、あえて弾を受けてひっくり返っている男(顔は隠れていて誰だかわからない)の足が一番大きく描かれる構図にしました。そして、ポーカーで戦うふたりのガンマンたちの顔をトランプのカードに見立てて、周りに配置するという工夫をしています。
これは、他の投稿者は、登場人物をかっこよく描いたり、かわいい女の子を表紙に持ってくるだろうから、わざとちょっと外してみようと、手塚賞用に描き直した表紙です。また、「武装ポーカー」というタイトルは、暴力やゲームの雰囲気を感じさせます。

こんな具合に、表紙を解説。なにこの計算づくめ。

この後、物語の1ページ目や2ページ以降もどのように導入・展開させていったかも実際の漫画の絵を見ながら、解説を読むことができる。

絶賛された作品ではなく、当時まだまだ駆け出しの著者がベストを尽くした結果が「武装ポーカー」だが、どのような考えを持って描いたかを事細かに説明してくれる。

ジョジョ立ちはローマで生まれた

話は面白いが絵はヘタ。「武装ポーカー」はそんな評価を下された作品で、著者自身も当時は自分が絵がヘタ、自分の作品づくりに必要なだけの画力がないと認識していたそうだ。著者は基本的に「サスペンスものの漫画」が描きたく、そのためにはリアリティのある絵を描けるようにならねばならなかったし、漫画としてはただ上手いだけでなく特徴のある「自分の絵」を手にいれる必要もあった。

そして今日、ジョジョらしい絵というのはリアリティがありながら特徴のある、まさに著者が描きたかった絵だ。リアリティについてはデッサンなどの絵の基礎練習を数年続け、著者の絵のおおきな特徴、「ジョジョ立ち」と呼ばれるポージングは、イタリア旅行でたまたま入ったローマの美術館での体験がヒントとなったそうな。

この彫刻のようなねじれたポージングは日本の美術にはほとんどありませんし、これまでの漫画家があまり表現していないジャンルで、しかもいい意味で色気も出せる。それまでの修練で絵の基本はできていましたから、後は、イタリアで体験したことを取り込んで、自分の世界観のイメージを作っていけばいいわけです。こうして、「これが自分の絵だ」というものをつかんでからは、編集者からアドバイスされて悩むということが格段に減りました。

この体験がちょうどジョジョの連載前にあったという。 おかげで今のジョジョ立ちがある。

キャラ設定ならぬ身辺調査書

名前からして探偵の身辺調査のようなつもりで書いているのであろう、リアリティのあるキャラクターを作るための文書フォーマット。キャラの絵柄を決める前に書く。 著者が40年以上つづけている「秘伝のタレ」みたいなものとのことで、中学生時代に書くような感じではない。

ハリウッド俳優の過酷な役作りを参考にしてはじめたという、作るのが過酷な文書だ。

多様で細かい項目。「ひいきの店」とか、そんなことまで?ってのがたくさん。

先にこの文書を作っておくことで、キャラの絵柄やストーリーのヒントになったり、矛盾や作中のキャラ被りをコントロールするための有用な資料となるとのこと。(とはいってもすでにミスはある。でも週刊連載というハイペースかつ手探りで作りあげていくようなもんだしなぁ)

エンターテイメントは常にプラスへ進めろ

エンターテイメントのストーリーは常にプラスの状態へ進むべきという考え。 マイナスに向かうのは「王道」ではないと説いている。深みを持たせることができるなどの芸術的な価値は認めるが、下手にマイナスにするものではないし、基本的に喜ぶのはマニアみたいな奴だけ。ワクワクしたい、楽しみたいという一般的な読者の要求に応えるのにマイナスに進めるのは原則的になし。

どんどんプラスが積み上がっていく状態を作り出すために、1980年代の少年漫画家達が考えたのが、トーナメント制でした。トーナメント方式のように、一回戦、二回戦、三回戦……と順々に勝ち上がってきた敵と戦っていくわけですが、最後、頂点に立つまで必ず「上がって」いくことを読者も予想できます。「キン肉マン」や「ドラゴンボール」が代表的な作品ですが、トーナメント制にすれば、ヒット間違いなし、という手堅いストーリーになるわけです。

これもなるほどなぁと思った。思い返せばあの時代の人気漫画とか基本トーナメント戦があったあった。 この手法、あまりに手堅すぎで、人気が芳しくなった当時のジョジョに対し、トーナメント制導入したらどうか?などというアドバイスもあったとか。

ただしトーナメント制はどんな作品テーマや状況でも使える完璧な策というわけではなく、トーナメントに優勝してストーリーにが最高潮に達したその後、さらにプラスにするにはどうするのかが困難であるという欠点もある。 その欠点はジョジョの持つ大きなテーマに沿うものではないため、著者は「別のどんどんプラスが積み上がる策」を考案し、ジョジョの第3部「スターダストクルセイダーズ」が生まれた。

うーん、すごい。

おわりに

他にも世界観の作り方とか面白いと思うところがたくさんあった。

あくまで荒木先生の研究成果、荒木流漫画術であるので「不変の真理」であるかはわからないが、様々な物事への考え方・捉え方はとても参考になる。

聚福楼で羊の肉塊を喰らう

池袋西口にある、羊肉の炭火焼肉で有名な東北系中華料理店「聚福楼(じゅふくろう)」へ行ってきた。 人気&丸焼きの有無も考えると予約必須だが、また行きたい。

これが

これもんの

こうなる

感想

1枚目の写真(これは背中)の肉塊を炭火の上でくるくる回し、なんちゃらハンターみたいに「上手に焼けました〜♪」ってのは無理で、これは写真撮影用に用意してくれる見せ肉といったところ。

写真撮影が終わったら2枚目の写真(これは脚x2)のように厚切りにカットしてくれるので、これを3枚目の写真のように炭火コンロで乱雑に焼いて食う。

焼き終わったら、マイルドな辛さのミックススパイス(唐辛子系)をなすりつけて食べる。唐辛子で赤々としていて辛そうだが、七味レベルの辛さ。あとミックススパイスへの追いクミン用と思われるクミンシードなどが置いてある。

肉量の目安としては1部位が2〜2.5人前といったところか。わりとよく食べる人換算で。

羊肉はそんな食ったことないが、スパイス付けないで味見してみたところ、硬さや臭みが少ないと感じた。これは良い肉だと脳に訴えかける味。同席の北海道民からも評判良いようだし良いんだろう。あと羊以外にもウサギの丸焼きもあるらしい。

見た目が雑な麻婆豆腐とか普通メニューもうまかった。羊肉抜きの中華料理店としてもいいと思う。 こういった中華料理店は無駄にサワー類が大量にあるものだが、そう考えると飲み物の種類はやや少なめに感じた。

自分が食いたいときに食えないというところが残念だが、羊肉にあわせて予定を空ける価値はある。

tabelog.com