Dappsを作ってみよう 環境構築編 その0

Dappsを作ろうと環境構築をしているところなので

備忘録として自分の作業をここにメモしておきます。

 

今回はEthereumベースのDappsを作っていく予定です。

うまく行けば、今後NEOやLisk、Qtumなんかでの実装もできたらいいな。

 

まず、その0とのことで簡単に実装のイメージを書いておきます。

 

Dappsを作ってみたい

→どうやらスマートコントラクトというものを使うことになるらしい

→Remixというブラウザベースの統合開発環境からスマコンをいじれるみたい(言語はSolidity)

→Remixを使うためにはGethというEthereumのCLIからブロックチェーン上にアクセスしておく必要がる

→Gethってどう扱うの

 

みたいな感じです。

 

これを逆順にやってみてその過程を残していこうと思います。

まずはGethのインストールから。

 

FirebaseでCloud Firestoreをつかってみよう その1 データの挿入

ほぼドキュメント(https://firebase.google.com/docs/firestore/quickstart)

の通りなのですが、ひっかかったところもあったので自分向けにメモ

今後ちゃんと記事にしてあげなおします。

 

・pipでインストール

pip install --upgrade firebase-admin

 

・Cloud Firestoreのインスタンスを初期化

ここでは載っている方法だとエラーが出るので、こっち(https://firebase.google.com/docs/admin/setup#initialize_the_sdk)

の方法で初期化を行った。

使用する承認用のjsonファイルはFirebaseのコンソールから

設定→プロジェクトの設定→サービスアカウント→(下にスクロールしてある)新しい秘密鍵の生成

でダウンロードできる。

 

それを使って、

import firebase_admin
from firebase_admin import credentials

cred
= credentials.Certificate('ファイルの場所/ファイル名.json')
default_app
= firebase_admin.initialize_app(cred)

を行うと初期化ができた。

 

・データの追加

最初のドキュメントと違うやり方だから戸惑うだろうが、その後

db = firestore.client()
doc_ref
= db.collection(u'users').document(u'alovelace')
doc_ref
.set({
    u
'first': u'Ada',
    u
'last': u'Lovelace',
    u
'born': 1815
})

で、コンソールを確認するとデータのアップロードができているはず。

 

理想としてはこの過程をScrapy+Firebase+Herokuといった感じで

スクレイピングで取ってきたデータを基にWebアプリを作りたいと思っているところです。

人間とコンピュータを繋ぐ Neuralinkとは

とある数日前の記事。

jp.techcrunch.com

 

年始ぐらいにイーロンマスクが「近々、脳みそとコンピュータを繋げるプロジェクトの発表しちゃうよ~~ まってて~~」って言ってたのですが、それについての発表がとうとう行われました。

 

詳しいことは最初のものや以下の記事を読んでもらえばよいです。

イーロン・マスク氏、新会社「Neuralink」で4年後の脳マシンインタフェース実現目指す - ITmedia NEWS

 

これを読んで、単純な僕は「これは今後の世界変えちゃうものじゃん」「インターネッツぐらいすごいことじゃん」と感銘を受けてしまいまして、じゃあ具体的に、今現段階でどういう試行錯誤をしているのかなと思って色々調べてみました。

立ち上げたばかりのプロジェクトということもあって、まだほとんど情報がないのですが、わかっていることだけでも書いていこうと思います。

 

決定事項としてわかっていることと言えば、公式サイトに載っている求人情報ぐらいです。

役職はすべてフルタイムで、拠点はサンフランシスコらしいです。興味のある方は応募してみましょう。

 

ちなみにその公式サイト

Neuralink

 

他に手に入れた重要な情報として、神経科学、工学、機械学習の専門家で、Stanford大学やIBMにてして脳の構造を基にしたコンピュータチップの研究を行っていたPaul Merollaさんがこのプロジェクトに参加しているということ。

Paul Merolla

 

また、ローレンス・リバモア国立研究所(元は核兵器の開発のためにつくられた研究所らしい)のナノテク研究センターの主任研究員であるVanessa Tolosaという方も参加されているらしい。

Vanessa Tolosa

 

とりあえずこの二人の名前だけは公表されてました。CEOであるイーロンはもちろんとしてね。

 

この二人の研究論文を読み説いていけば、今後の「Neurolink」の動向、はたまた世界の変貌について理解できるのではないかと思います。

 

今日、二人の最新の論文を読んでいたのですが、「言いたいことはなんとなくわかるけど、わからん」みたいな状況だったので、追いつけるように一つ一つ体系的に勉強していこうと思います。とりあえず指標みたいなものが決まったので、読む論文が決めやすくなりますね。

 

攻殻機動隊のように口で会話せずとも意思を伝達する方法が実現するかもしれません。メタルギアソリッド4でも、メリル達が兵士たちの連携を直感的に行うっていう描写があったことを思い出しました。あれが一番この記事の言っていることに近い気がする。

 

明日はPaul Merollaさんの論文をきちんと読んでみようと思います。それでは。

 

論文乱読 その3 Going Deeper with Convolutions

Going Deeper with Convolutions

Christian Szegedy , Wei Liu , Yangqing Jia , Pierre Sermanet, Scott Reed , Dragomir Anguelov , Dumitru Erhan , Vincent Vanhoucke , Andrew Rabinovich Google Inc. University of North Carolina, Chapel Hill University of Michigan, Ann Arbor Magic Leap Inc

http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf

 

f:id:peaceandwhisky:20170419231941p:plain

・どんなもの?

ImageNet Large-Scale Visual Recognition Challenge 2014(ILSVRC14)にて優勝したモデル。昨日読んだAlexNetの発展版。Googleが作成したモデルであり、名前をGoogLeNetという。この分野の初期モデルLeNetをもじっている。

 

・先行研究と比べてどこがすごい?

昨日読んだAlexNetの論文では、畳みこみ層を深くすれば深くするほど画像識別の精度が上がると論じていたが、それ以降の改善モデルでは層の深さをどれだけ浅くして、同じかそれ以上の精度を出そうとしている。つまり計算処理を少なくすむようにしている。

 

・技術や手法のキモはどこ?

正直そこまで詳しく読み込むことはできなかったが、AlexNetに比べて、パラメータ数が多くなり、スキップが組み込まれていたり、畳みこみ層も並列的な処理が多くなっていた。そこに意味があると思うのだけれど、どう具体的にそれらが作用しているかがよくわからなかった。わかっている人のほうが少ないのかも。

 

・どうやって有効だと検証した?

とにかく精度が出たんだ!ブラックボックスで悪いか!!

 

・議論はある?

技術的な解説が多くあったのだが、要約してざっくりと読み込むことができなかった。今後の課題としてまたきちんと読みたいと思う。もう少しきちんと知識を身に着けてから読めば違う世界が見えてくるだろう。

 

GoogLeNetと呼ばれてるモデルではあるけれど、正式名称が「Inception」らしく、クリストファー・ノーランの映画を想起させられた。Deepの世界は夢の中の夢の中という意味か?面白い。

 

論文とは関係がないのですが、今日、配属先の研究室紹介、専攻の懇親会、就活セミナーなんかのいろんなイベントがあり、いろいろと先輩や教授とお話をした結果、すぐに興味のある研究室が決まり、ゼミや個人でやってる勉強会に参加させてもらえそうな運びとなりました。正式な研究室決定は年末とかなんだけど、早めにいろいろと勉強させてもらえそう。

 

自分が楽しくて、興味がある分野でとんとんと話が進みそうで、これからが楽しみな限りです。

 

忙しいけれど、充実した日々を過ごしています。

 

 

論文乱読 その2 ImageNet Classification with Deep Convolutional Neural Networks

ImageNet Classification with Deep Convolutional Neural Networks

Alex Krizhevsky, Ilya Sutskever, Geoffrey E,Hinton

https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks

 

f:id:peaceandwhisky:20170418124947p:plain

 

・どんなもの?

 ILVRCという大規模画像認識の競技会にて、2012年に2位に10%以上の差をつけて圧勝した識別モデルについてのもの。今現在のDeeplearningがここまで注目されている主な理由の一つとしてこれがある。それだけ革新的だった。

 

・先行研究と比べてどこがすごい?

それまで主流であったハンドメイドで特徴量を考えて行う画像認識でなく、 特徴量さえも機械に抽出させ、それによって認識を行うDeeplearningを導入した。これによっていままでよりも圧倒的に識別率が上昇した

 

・技術や手法のキモはどこ?

 2006年から同じトロント大学Geoffrey E. Hinton先生などによってこのNeural Networkの仕組みについて提唱されていた。2010年からも地道に識別率を上げており、そのために「ドロップアウト」という技法を導入している。

 

・どうやって有効だと検証した?

 実際に大会にて、モデルの実行を行い、error rateが15.4%まで下げることに成功した。

 

・議論はある?

畳みこみニューラルネットワーク(CNN)の層を重ねていくことによって、識別率が上昇する仕組みになっているため、少しでもCNNの層を取り除くと識別率が下がる。

モデルの実行に膨大な計算を必要とするようになる。

膨大な規模のニューラルネットを構築し、多くの改善が可能となったが、人間の視覚システムと同等のレベルのものを作ろうと思うと桁違いの量の長さをもったモデルを構築しなければならないだろう。

今後はビデオの分野でも使えたらいいな。

 

・次に読むべき論文は?

Going deeper with convolutions 

https://arxiv.org/pdf/1409.4842v1.pdf

この論文をもとにGoogleが発展させて新しく発表した論文

 

いわゆるAlexNetの論文のまとめでした。 

 

 詳しい方、「ここの解釈が間違ってますよ。」とかありましたら、どんどん教えていただければありがたいです。あくまでも自分なりのレベルで読んでいるので思いっきり間違っているところとか普通にあると思います。

 

ほかにもこんな論文があるよとか記事があるよなんかも教えていただけると嬉しいですね。論文から源流を辿っていくのは容易にできるのですが、そこからどういう分岐で発展していっているのかなどが調べにくくて困りますね。

 

あと、ざっくりとどういうことをやって、何が変わったかは理解できてるのですが、具体的な実装に関しては理解できているわけではないので、これに関してはきちんと読み込んだり、他で解説してるサイトを読んで、頭に入れておこうと思います。

 

ではでは。一日を有効活用することの大事さが身に沁みます。

 

 

 

論文乱読 その1 Lip-Reading using Neural Networks

Lip-Reading using Newral Networks Priti Yadav, Priyanka Yadav , Vishal Sharma

http://ijcsmc.com/docs/papers/September2014/V3I9201482.pdf

 

・どんなもの?

 音声無しで人が話をしている映像から、なんと言っているのかを推測する。

 いわゆる読唇術ニューラルネットワークを通して再現させるというもの。

 

・先行研究と比べてどこがすごい?

  いままでは画像から唇の輪郭の形を認識し、その時口から発した音で分類していたが、それらをニューラルネットワークを用いて分類させることにした。はやりの人工知能ってやつ。

 

・技術や手法のキモはどこ?

いままでも唇の輪郭などによって分類をおこなっていたが、それだけではなく唇の尖り方なども考慮にいれるために、輝度というものを分類モデル作成のための重みとしたところ。(ニューラルネットワークだから成せてる技なのかな?英語での読み込みが正直足りない。)

 

・どうやって有効だと検証した?

最初は唇の形状情報や輝度情報を別々で識別モデルを作った結果、輝度情報のみのモデルの方がよりよい識別率を示し、形状と輝度情報の両方を用いて作成したモデルでは、わずかではあるが、識別率が上がった。(ニューラルネットを使うことの有効性はきちんと触れられていないがこれでいいのだろうか。)

 

・議論はある?

ある特定の人からこのように識別モデルを作成できたとしても、唇の形状というものが皆同じというわけではないため、それをほかの人に適応させようとすると識別率が低下してしまうという問題。

 

・次に読むべき論文は?

物体間の距離に基づくニューラルネットワーククラスタリング

https://arxiv.org/ftp/cs/papers/0608/0608115.pdf

これかな。

 

とりあえず初回はこんな感じで。

 

f:id:peaceandwhisky:20170417223754j:plain

読唇術、個人的には007でジェームズボンドがパーティーシーンで敵が何を言っているのか探るときのものっていうイメージが強いのですが、現実では、事故や病気で声帯を使えなくなった人や、生まれ持って耳が聞こえない人などのためにあって、よりわかりやすくするために昔から研究がなされていたみたいですね。

 

声帯切除した人は、喉もとに振動音のでるマイクをあてて口から音を出したりする機械がありますが(エージェント・カーターという海外ドラマでこれを使う悪役が出てた)、これからはスマートレンズなんかで声を発さずとも口を動かしただけで相手に伝わる世の中になるのかもしれません。静かにしておかないといけないような場所や、騒音の激しい場所なんかでも意思疎通が可能になりますし、声が届かないような遠い場所であっても映像で口の動きさえわかれば何を言っているのかわかるようになります。

まぁLINEすればいいじゃんって思うかもしれませんが。

 

雑ですがクオリティより今は量だ。英語読むの疲れた。

 

そういえば007 スペクターまだ観てない。

ほんではほんでは

 

論文乱読 その0 先端技術とメディア表現

お久しぶりです。

元気にやってます。

何か特別変わったこともないです。

僕に新歓のビラを配らないでください。

 

急になんですが、

春から新しく落合陽一先生の「先端技術とメディア表現」という授業を履修しまして、

ざっくりまとめると「車輪の再発明しても意味ねえから、新しいもの作るためにもきちんと先人の論文読み込めるようになろうね。じゃあ興味のある論文を乱読して要約してみよう。」という授業でして、

(詳しくはこちらのスライド見てもらえばよいです。)

https://www.slideshare.net/Ochyai/1-ftma15

 

僕は、この授業の中の「人コース」なるもの(週に1本興味ある論文を読んで関連研究もまとめる)を選択しようと思っているのですが、せっかくですのでこれを機会にもう少し頻度を上げて一日一本ぐらいのペースで論文を読んで、まとめていこうかなと考え、そのためにもブログを本格的に更新していこうと思っております。

 

僕自身の専攻は「経営工学」なのですが、個人的に、仲間と六本木ヒルズでやってるGoogle本社でのDeeplearning系の勉強会に出たり、コネあってMarulaboという東京大学の丸山先生が立ち上げた、非公式のDeeplearningに関する研究室に所属させてもらっているので、その系列の論文を読むことが多くなるんじゃないかなと思われます。いろいろ読むけどね。

 

落合先生の授業に沿って、

f:id:peaceandwhisky:20170417192145j:plain

こんな感じで「どんなもの?」「先行研究と比べてどこがすごい?」「技術や手法のキモはどこ?」「どうやって有効だと検証した?」「議論はある?」「次に読むべき論文は?」といった項目にそって記述していこうと思います。

画像の用意はしません。

 

4月は超忙しくなりそうなのに、こんなものぶっこんでるので続くのかなという心配はありますが、とりあえず始めることが大事ですよね。

続けることはもっと大事なのじゃ。

 

ほいではまたまた~