データの境界

なんちゃって理系がデータ分析業界に入ってからの汗と涙の記録。

独学で機械学習を勉強したい人のための勉強本決定版か?「Python機械学習プログラミング」が良い感じ

 4月から予約開始してようやく先日届いたpython機械学習

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

宣伝文句としては、

原著『Python Machine Learning』は米国Amazon.comでベストセラー! 

3つのカテゴリーで首位(2016/5/24時点)

Data Modeling & Design/Data Processing/Neural Networks

とのことだったので非常に楽しみにしていたのですが、土日にパラパラと読んだところ期待通りの良い勉強本だと感じました。本国amazonのベストセラーは伊達じゃないぜ

以下アマゾンページからの目次の引用

1章 「データから学習する能力」をコンピュータに与える
2章 分類問題 —機械学習アルゴリズムのトレーニング
3章 分類問題 —機械学習ライブラリscikit-learnの活用
4章 データ前処理 —よりよいトレーニングセットの構築
5章 次元削減でデータを圧縮する
6章 モデル評価とハイパーパラメータのチューニングのベストプラクティス
7章 アンサンブル学習 —異なるモデルの組み合わせ
8章 機械学習の適用1 —感情分析
9章 機械学習の適用2 —Webアプリケーション
10章 回帰分析 —連続値をとる目的変数の予測
11章 クラスタ分析 —ラベルなしデータの分析
12章 ニューラルネットワーク —画像認識トレーニング
13章 ニューラルネットワーク数値計算ライブラリTheanoによるトレーニングの並列化
付録 Jupyter Notebookの基本/matplotlibによる可視化/行列の固有分解 

※ちなみに本書の推奨環境はPython3.xでした

 

この本の素敵なところ

本全体の流れとして基本的にはモデルの数式を並べて式の解説をして、この内容をPython(scikit-learn)で書くとこうなります、コードのここはこういう動きをしてます、hogehoge...

という感じです。偏ったマニアックな手法も無さそうで、抑えておくべき基本的な内容をきっちり網羅されている感じで非常に好印象です。読むテンションが高まります。

 

この本の何が素敵かというと、自分のような「数学は高2からやってないマン」としてはアルゴリズムの数式の大切さはわかるのですがそれだけ解説されても点でわからん、Pythonはちょっと書けるのでコードを見るとああなんとなく分かった気がする、という気分になれることです。(線形代数微積分は泣きながら勉強し直し中ですすみませんすみません)

しかし数式でアルゴリズムの解説の後に(自分が知っている言語で)コードを並べて解説してくれるというのは非常にありがたい。これまで機械学習は勉強したくても、本でもブログでもできるだけ数式の登場が少ないもの、もしくは一行の数式に死ぬほど日本語解説が付いてる希少なページを一生懸命さがしていた、もしくは「scikit-learnのこの関数ならこれみればわかるよ」とポンと公式ドキュメントリンクを送られる英語が弱い哀れな身からすると非常にありがたい。実はPythonコードと数式を対比させて(日本語で!)解説するこんな感じの本があるようで無かったような気がします。(そういう意味では、データサイエンティスト養成読本シリーズも好きですが、数式解説かコード解説かのどちらかしかない感じだったのですよね)

そんなこんなで、最近仕事でもやっている自然言語処理周りのページや、お名前はかねがね存じ上げていた「ぱーせぷろとん」のページなどをまずは読んでみたのですが、解説も丁寧で非常にわかりやすかったです。いまいちピンとこない箇所があっても適当にググッて"はてブ"の多い関連のブログやslide shareを見れば十分に補完できる感じには丁寧に書かれている印象です。初学者として「機械学習のわかりやすい本ありますか?」と先輩に聞いて「これがわかりやすいよ」と言われて1ページ目から数式が登場し挫折するというループを何度も味わった身としては是非この本を同胞たちにオススメしたい。

 

この本を読むための事前知識

ただし、Amazonのレビューにも書かれている通り、

しかしながら、python機械学習をするという本のため
機械学習の基礎知識
pythonライブラリの基礎知識
機械学習に必要な数学基礎知識
以上は、含まれていないか、さらっと解説しているだけである。
※本の中に、参考リンクはある。(英語)

そのため、機械学習初心者がいきなりこの本を読むとおそらく思考停止すると思う。

というのはそんな感じかもしれません。やはり事前知識は必要。

ちなみにこの本を読むための事前知識については監訳者の詳細な解説ページがあります。数学が苦手な人用の本書の読み進め方なども載っており購入を検討されている方には非常に参考になります。

ブック・インサイド―『Python機械学習プログラミング』学び方ガイド | Think IT(シンクイット)

 

ここから下は個人的事前知識感想。

機械学習の基礎知識」はやっぱりこの本が良かったかな

データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

 

 「Pythonライブラリの基礎知識」というのはなんだろう。おそらくPythonのnumpy, pandasあたりの書き方がわかったら良いという意味でしょう。

個人的にはpandasの書き方はこちらの方のブログで勉強させていただきました。秀逸な内容とわかりやすさ。(pandasについては個人的に勉強に役立ったページリンクをいつかまとめる)

sinhrks.hatenablog.com

qiita.com

numpy勉強ページは鉄板のこちら

100 numpy exercises

 

機械学習に必要な数学基礎知識」

...これは自分も勉強中です。(正直に言うと今はΣの意味がわかるくらいのレベル...)

わりといろんなところでオススメされているこちらの本で勉強中です。ikeay氏の機械学習ブログでも詳細されてましたね

プログラミングのための線形代数

プログラミングのための線形代数

 

 

結論

自分も全部読めているわけではないのですが、1セクションを読んだだけでも良い勉強本感を感じました。個人的にはしばらく集中して読んでみようと思えました。

 

P.S

あと、本の装幀が何気にお気に入りです。

400Pあるので分厚くて少しデカイのですが、技術書としては少しやわらかい(薄い?)紙を使ってるっぽので本をぐにゃんと畳んで読めます。ハードカバーで紙も固めのどっしりした本は持ち運びが億劫なので良いのですよね。(技術書は紙本派)

 

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

 

富樫ん層学習

はてなブックマーク - アニメとゲーム - 【衝撃】漫画「ハンター×ハンター」休載決定! 再開は未定 / 2016年7月4日発売のジャンプが最後 | バズプラスニュース Buzz+

 

ブコメより)

f:id:kskbyt:20160701013548p:plain

いや、次の連載再開が5年後とかならあるいは…

休載しすぎて時代に追いつかれてAIに漫画奪われた漫画家とかマジ漫画。

今をときめくPythonの深層学習ライブラリー Kerasの日本語ドキュメントが公開

Kerasの作者 @fchollet 氏(Deep learning at Google)は日本への留学経験もあるとかで、日本語ツイートでもご発表

 

Kerasとはなんぞや、な方はこちらを参照

aidiary.hatenablog.com

tjo.hatenablog.com

 なんだか流行りそうらしいので遊んでおかねば

まだまだSFだと思っていた「脳」の実装は日夜進んでいる...

googleの猫」ならぬ、「理研の猫脳」。この世界に猫の因果は強いらしい。

techon.nikkeibp.co.jp

 

イマイチ読んだだけでは凄さがピンと来ないが、「10億個ニューロンの小脳計算モデル」というワーディングだけでなんだかスゴイ感は伝わってくる。だれか詳細な解説ブログはよ

動作させるまでは比較的容易だが、性能を引き出すためのチューニングにかなりの時間を要した。

この業界のネックはどこもやっぱりパラメータチューニングらしい。

全能アーキテクチャの方々も脳モデルの実装を日夜頑張っておられるが、本当に脳の人工的実装は現実の世界になるのか。まだSFな感じがしていたが科学は日夜進んでいる。

続報を待つ。

InteropTokyo2016で見たVRとIoTの未来

6/8-10に幕張メッセで行われていたInterop2016に参加してきました。自分が参加したのは最終日の10日(金)です。

www.interop.jp

Interop(インターロップ)ってどんなイベント?

Interopは「最新のICT技術やソリューションを会場で体験できる」イベントであり、Webページに書かれた紹介キーワードとしては
「セキュリティー」「IoT」「ネットワーク」「クラウド&データセンタ」「エンタープライズIT」「モビリティー&ワイアレス」ということでつまり、『なんでもござれ』なイベントだったという印象です。大企業がたくさん出展し、コンパニオンさんがたくさんいたイベントでした。

スーツを着た人が多く、展示ついでにその場でのネットワーキング、商談のきっかけ作りがメインだったようです。参加人数規模では3日間で88,406人。(ちなみに同年・同会場で行われたニコニコ超会議は15万2000人。ただし敷地面積はニコ超の方が広かったが。)

 

参加目的

個人的には「TV局のドローン/VR活用事例」や、デジタルサイネージ系の展示に興味がありました。

 

会場の雰囲気はこんな感じ。(コンパニオンさんを撮る勇気はない)

f:id:kskbyt:20160612225526j:plain

テレビメディアコーナー

NHK

専用アプリをスマホにインストールし、アプリ起動後にスマホ越しにテレビ画面を写すとARっぽい演出を楽しめる、という展示

展示では、TVモニターに恐竜が走り回る映像が流されており、スマホ越しにモニターを見るとテレビ画面を飛び越えて恐竜が迫ってくるというデモをされていた。むかーし、「貞子3D」が放映された時に似たようなイベントしてなかったっけ...。

他のブースでも、「専用アプリをインストールすれば〜〜〜」という展示をよく見かけたが、個人的には評価が定まっていないアプリをインストールするその行為自体が莫大な心理コストなので毎回スルーしている。

 

・テレ朝

AbemaTVめっちゃ宣伝してた。

AbemaTVアプリ公開後は、アプリ使用感の勉強兼ねて熱心に利用していたのですが、最近全く見なくなりました。

 

AbemaTVは「オンデマンド配信(好きな番組を好きな時間に見れる)」ではなく、普通のテレビと同じように「決まった時間に決まったコンテンツが配信される」TVアプリ。つまり、従来のTV視聴スタイルから「視聴場所」だけが自由になったもの、というイメージ(しかし配信コンテンツはほとんどがAbemaTVオリジナル(サイバーエージェントとテレ朝の製作))

オンデマンド配信ではなく、従来のテレビ放送スタイルであることの是非はメディア関係者を中心にいろいろディスカッションされてて興味深いです。

AbemaTVは、この記事にもあるように明確にTV局を志向している。だから、ネット配信であっても放送時間は固定される。7時に始まる番組は、7時10分に観に行ったらきっちり10分経ったところからしか観られない。レコーダーが付いてるわけでもないので、むしろTVよりも不便だ。  - AbemaTVに本当に必要だったもの:「最初から観る」ボタン

そうですよね。せっかくネットで動画流してるのに「は?」ってなります。ネット動画のメリット殺してんじゃんって。でもそこから続く以下の内容が興味深かったです。

どのコンテンツを観るか決めるというのは、実はけっこう面倒くさい行為なのだ。

つまり、Netflixのように「この中からいつでも好きな番組見てね」 とすると、矛盾する感じもするが、人は「選ぶのめんどくせー、じゃあ見ないわ」ってなるらしいです。これはわかる。(だからこそNetflixはデータ分析を徹底的して、最高のレコメンド体験を提供しているわけだが。)

テレビのように受動的に視聴するスタイルは、意外に人間の「選択する手間」を省いているし、もしかしたら自分がこれまで知らなかった運命の番組やタレントとの出会い(セレンディピティー)があるかもしれません。Amazonで本を買うのと、本屋をぶらぶらして偶然最高の本に出会うのと同じ感じ。この辺のトレードオフというか、人間の感覚はおもしろいなあといつも思います。

ただ、そうはいいつつも、AbemaTVで「◯月◯日◯時から〜〜〜(好きなアニメ)全話一挙放送!!!」とかあっても見れないんですって。いろいろ設計の理屈はあったとしてもやはり「放送時間」の縛りは影響大きすぎます...

AbemaTVについては以前にも書きました

kskbyt.hatenablog.jp

 

・日テレ

今や、天下のフジテレビを押しのけてメディアのトップに立つ日テレ。今年はメディア界的にも歴史的な年だったようです

民放テレビキー5局の2015年度(2015年4月~2016年3月)決算が13日出そろい、持ち株会社でない単体の売上高で、日本テレビがフジテレビを抜いてトップに立った。フジは、1984年から31年にわたって守ってきた民放テレビ局売上トップの座を明け渡した。 - 日テレがフジを抜いて民放テレビ局売上トップ - 2015年度キー局決算発表

そんな日テレは他局とは異色の展示で、ハイブリットキャスト(ざっくり言うと、テレビ動画と同時にネットコンテンツも流す、というもの。放送とネットの融合)している無数の一般家庭TVの計算リソースをちょっとづつ拝借してきて分散利用しようぜ!という内容でした。

f:id:kskbyt:20160612230910j:plain

ネタ的にはあるあるな感じですが、分散して計算させているデモが「手書き文字認識」なのが良い感じでした(説明員さんも「そもそも手書き文字認識とは何か」を毎回説明しないといけないのが大変そうでした)

将来的には、創薬や物理シュミレーション分野など莫大な計算リソースが必要な領域に活用していきたいそうです。

ちなみに、このような内容はもちろんテレビがネットに接続されていることが前提ですが、現在の日本家庭において「ネットに接続されたテレビ」の台数はテレビ保有家庭のうちの2割ほどらしいです。「やっぱり少ないですね」と言うと、「それでもNetflixAmazonプライムビデオの利用者増のおかげでこれでも大分増えた」そうです。へー

 

デジタルサイネージ系展示

いや、そもそも「デジタルサイネージってなんだ?」ってとこですが、多分、「映像技術を主としたディスプレイ広告」って感じだと理解しています...(違ってたら教えてください)

そんな感じで、いろんな形状のモニターが至るところに並んでいました

f:id:kskbyt:20160612230044j:plain

モニター自体が上下にゆっくり動くものもあったり(動くLED VISION!)

f:id:kskbyt:20160612230136j:plain

www.youtube.com

たしかに見ていて楽しいのだけど、AR/VRの世界(特にAR)が来ると強烈に信じている人間にとっては、モニターを会場に所狭しと並べている光景は時代が止まっているように感じてしまいました。

あと5年もすれば「昔は会場にモニターを持ち込んで物理的に投影していたんだよ」「えー、それは大変ですね...」みたいな会話をしてそう。

www.youtube.com

こちらはマネキン製作工房と早稲田大学メディアデザイン研究所がコラボして作ったものらしい。作成者の方いわく、「下町ロケットみたいに頑張ってる」らしいです。

IMP|株式会社 七彩

 

何が、と明確に言うのは難しいもののなんだか直感的に面白いと感じたので。

仮に、モニターに映す系の物理的なディスプレイ手法がAR/VRに取って代わられてしまうなら、生き残るのはこういった立体物に投影するプロジェクションマッピング的な手法なのかもしれません。

何が面白いかもわからないまましばらく見入ってしまいました。ちなみに、顔の部分にはカメラで撮った自分の顔も移すことができるそう。デジタルマネキンですね。

テレビ局におけるVR活用

良い意味で予想を裏切られたのがこちら。テレビメディアの人たちが言う「VR」とは「360度動画コンテンツ」のことらしいです(以下のような動画コンテンツ)。

www.youtube.com

youtubefacebookでは360度動画のアップロードがオフィシャル対応しているそうです。4K画質にも対応。

 

VRは"Virtual Reality"なわけで、"仮想現実"なわけで、「現実ではない3次元空間」なのだから、「360度動画」を「VR」というか...と細かい点が気になるのですが、テレビ屋さん的にはそういう定義らしいです。

ただ、「360度動画コンテンツ」をどのように放送に活用するかを真剣に考えいろいろ試行錯誤している様子を感じました。

そもそも、技術的には360度動画コンテンツは現状では生放送などに向かない(技術的に無理)だそうです。理由は、360度動画コンテンツの作製方法にあるそうで、複数のカメラで取った複数の動画を歪みなく繋げて配信することが"リアルタイムでは"まだできないそうです。

(左写真)複数のカメラで360度分の動画を撮影 →(右写真)生の動画は歪んだ状態なので、これを変換して自然な感じの動画にする(画像参照:360°動画の作り方

スポーツや音楽のライブ会場、水族館や特殊環境(手術中の医師の手元の動画)など、いろいろな状況での360度動画を撮影・生成し、「放送」という点において360度動画がどういった強み・弱みがあるかを検証している段階だそう。曰く『技術や特性を学びつつ、適切なコストで試行錯誤する時期』。

上記のyoutube動画を見ると、被災地のリアルタイムな情報としてこういった動画が地震発生当時配信されていれば、我々遠方に住んでいた人も得られる情報量と印象がかなり違う感じがします。360度のリアルタイム動画は速報性の高いニュースなどにすごく相性が良い感じが確かにします。きっと数年後には「報道」の映像も見方も変わっていると思います。

 

360度動画の直近の使い道としては、

  • スマホ向け360度映像コンテンツを番組をより楽しんでもらうための連動企画として公開する
  • イベント会場での有料展開(ヘッドマウントディスプレイで視聴すれば高画質で没入感の高いコンテンツになりお金を取れそう)
  • 音楽番組などで、映像の魅せ方の一つのアクセントして超広角の動画を利用
  • 東京の昔の町並みをVRヘッドマウントディスプレイをつけながら巡る東京タイムスリップバスツアーの実施(時代を映すコンテンツは陳腐化しないコンテンツの一つだそう)

などを検討/実施中らしいです。「動画のプロ」であるテレビ局がVRをどのように活用するのか今後楽しみ。

 

ちなみに、上記は「綺麗なVR」のお話ですが、奇しくも6/12には秋葉原VRの大本命イベントが開催されていたそうです。人気すぎて予想以上に人が集まり中止となったそうですが。

スタッフが涙ながらに「申し訳ありません!本日は解散となります!次回必ず大きな会場で開催いたします!」と言った際には暴動が起きるかと思いきや、列を成していた者達から拍手が起こったのである。

その他 (IoTの話)

Amazon Japanも出展されていて、初めて実物のAmazon EchoとAmazon Dash Buttonを見ました!かっこいい!かわいい!

f:id:kskbyt:20160612230456j:plain

f:id:kskbyt:20160612230537j:plain

参照

日本発売ではEchoは1万円くらい(安い!)。Dashボタンは一つ500円くらい(めちゃ安い!)らしいです。両方共開発者向けキットが公開されているのでいろいろ遊べるそう。(Echoはコア技術である音声認識エンジン“Alexa” が、dash buttonも設定する注文商品を自由に変えれるSDKが公開されているらしい)すでに試している人もいる

dev.classmethod.jp

 

例によってこのイベントでも、どのブースでも猫も杓子も『IoT!IoT!』と謳っていました。IoTってなんでしょうか。

『IoTの真の価値は、従来オフラインだったものがネットに繋がることではない。「人の行動そのもの」が入力トリガーとなりネットに出力されることだ』的な文章がアキバDMM.makeを作った小笠原氏の著書で述べられていました。

例えば、IoT製品の有名な例として、『傘立てがネットに繋がり自動で天気情報を取得して、人間が玄関を通過するときに日中雨が振りそうであれば傘立てが光る』というものがあります。

雨の日は青く光るIoT傘立て「Umbrella stand」auが12月1日発売。収集日を知らせるゴミ箱も同日 - Engadget Japanese

 

この製品の価値は、従来ヒトが天気アプリなので"明示的に"スマホをタップ(入力)し天気を調べなくとも、「玄関を通過する=外出する」という"行動そのものを暗示入力"として天気を知らせることという点です。

Amazon Echoはこれまで主流だった「タップ式の入力形式」から「音声による入力形式」への変化を促す位置づけにある製品であり、今の段階ではまだ「声を出す」という"明示的"な入力方式ですが、各家庭にEcho系デバイスが普及しきる頃にはカメラが内蔵され、室内の人の動きを機械学習し、動きそのものを入力情報としてスマートハウス的サポートを行ってくれる未来が確実にきそうですね。反対に、ノリで作った"IoT製品"は消費者に薄っぺらであることがすぐにバレそう。

Dash Buttonはもう便利だとしか想像ができないですね。毎日会社で注文するお昼のお弁当もDash Buttonで注文できるようにしたい(現在はgoogle spred sheetで管理)。

 

P.S

同伴者に貰ったオライリーのトートバックが一番テンション上がりました。

f:id:kskbyt:20160612230758j:plain

 

 

リクルートのオープンデータ。誰に向かって公開されている?

markezine.jp

実際のサイトはこちら

jbrc.recruitjobs.co.jp

サイトの内容は表題そのまま。

行政のオープンデータサイト「RESAS」を思いださせるようなサイトになっている。D3で動いているそうだが、相変わらず表示が重たげ...

平均賃金が下がっている順とか特徴的に増減している業界などを見たかったりするが、フィルターというかランキングというか、そういった機能はなさそう。

アルバイトとかパートを探す人は、きっとこういった「かっこいいサイト」を眺めるより、よりシンプルに、早く、わかりやすく探したいと思うのでニーズ(対象者)向けにはなってなさそうな気がするのだけどどうだのなだろう。。。「データを見慣れている人(オープンデータ関係者)」に対して「どや、かっこええやろ?」と言っていそうな気がする。一度見たらもう開かないかな...

いや、でもオープンデータとして公開することは最高に素敵なことやで。自分も何かこういった分野に貢献しなくては...

 

 

もうデータ置き場も分析環境も全部Googleで良いのではないか問題

 

japan.cnet.com

 

以前にこんな記事を書いた 

kskbyt.hatenablog.jp

 

上記リンク記事のようにBigQueryに標準SQLがサポートされ、分析環境が整っていく一方で、分析官の利便性向上もJupyterを標準サポートすることで着々と準備されている。データが生まれる(貯めている)ところに着々と分析環境が整い始めている。

www.apps-gcp.com

 

個人的には、SQLを書くときのエディター?にはjetbrain社のDataGripを使っている。というのもpgadminはUIが嫌いなのでテンションがあがらない(今の時代に入力補助が無いエディターもスゴイと思うが...)しかしホントの事を言うとDataGripもイマイチ気に入っていない(特に、長いSQL結果を分割して表示する当たり)

本当は大好きなJupyterでもSQLを書きたいが、SQLの大量レコードをどのように画面に出力するかもUI的に難しそうなので、jupyterでSQLを使うことは諦めていた(方法はは知っているが)。何でもかんでもjupyterで書こうとすると逆に利便性下がりそうな気もするし。

ただ、上記のリンク記事中のCloud Datalabで BigQueryにアクセスしてデータを引きずり出してきている画面を見る限りではなんだか便利そうだし、イカしてる感じがする

インストールが面倒くさいpandas, numpyを標準装備し、さらに import gcp.bigquery as bqと書くだけでSQL結果もサクサク抽出できるなら鬼に金棒感ある。「統合分析環境」というのはこういう環境なのだろう。

 

現状では、多くの企業ではAWSのRedshiftなどを使ってSQLで分析している印象があるが、分析官的にも、データはgoogleのストレージに置いてもらってbigqueryやpandasを縦横無尽に行き来して分析できる環境がハッピーになるのかもしれない。いつか臨界点を超えて全員がgoogleプラットフォーム上で分析作業してそう。