読者です 読者をやめる 読者になる 読者になる

北野坂備忘録

主にインストールやプログラミングのメモを載せています。

ディープラーニングを勉強したければインターンに行け!

 この忠告はもう遅い(インターン募集が終わっている)可能性が高いのですが……。
 ディープラーニングを勉強したければインターンに行くべきです。

 大学で「ディープラーニングを勉強しよう!」と思っても、

・分析すべき大規模データが無い。
・分析する目的が無い。
・分析に使えるリソース(計算資源)が無い。
・ノウハウが無い。

ということが多い。

 ところが企業であれば、

・分析すべき大規模データがある。
・分析する目的がある。
・分析に使えるリソース(計算資源)がある(はず)。
・ノウハウがある(はず)。

とまあ至れり尽くせりです。

 インターンは「大学でできないことができるところ」を目指しましょう。



ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

再生核ヒルベルト空間

 カーネル関数の説明をしたときに飛ばしたんですが、説明を求められた人がいたそうなのでこちらも解説していきます。
 最近出たサポートベクトルマシンの専門書でも、再生核ヒルベルト空間については解説が入っていないことが多い。
 良く見かけるであろうこの本にもありませんでした。


サポートベクトルマシン (機械学習プロフェッショナルシリーズ)

 以前に「しましま先生のところに再生核ヒルベルト空間の話が無い」と言っていたのですが、嘘です。ありました。
 「再生核Hilbert空間」というオシャンティーな表記になっているので見つけられなかった模様。
再生核Hilbert空間 - 機械学習の「朱鷺の杜Wiki」


 まずはヒルベルト空間の説明ですね。
 これはユークリッド空間を一般化したものです。
 一般化するというとよく分かりませんが、逆のほうが分かりやすい。
 逆は「特殊化」です。「特殊化」っていうもの数学以外であまり聞きませんが。
 つまり、ヒルベルト空間のうち、特殊なものがユークリッド空間になります。
 ただ、ユークリッド空間から考えると良く分からないと思いますので、より大元となる最も一般化された空間から考えたほうがいいでしょう。
 
 最初に「ベクトル空間」から始まります。
 ベクトル空間に長さの概念の一般化である「ノルム」を足すと「ノルム空間」。
 そのノルムが定める距離構造が完備であれば「バナッハ空間」。
 対して内積と呼ばれる付加的な構造を備えたベクトル空間を「内積空間(計量ベクトル空間)」。「内積空間」はノルム空間でもあります。
 内積に付随するノルムの定める距離に関して完備となる空間を「ヒルベルト空間」と言います。ヒルベルト空間は「バナッハ空間」でもあります。
 以下の図を見てください。
f:id:kenichia:20170516195943p:plain

 続いて「再生核ヒルベルト空間」の話に入ります。
 「再生核ヒルベルト空間」は「再生カーネルヒルベルト空間」「RKHS」などとも表記されます。
 以前「半正定値カーネル」の話をしました。カーネル法の文脈では「正定値カーネル」のほうが一般的です。
 正定値カーネルは「再生性」を持ちます。
 「再生性」についてはこちらが分かりやすい。
qiita.com
 ここで先ほどの「ヒルベルト空間」に戻ります。
 「ヒルベルト空間」には内積構造があるわけですが、この内積を「再生性」があるように定めた特殊なヒルベルト空間を「再生核ヒルベルト空間」と言います。
 「再生核ヒルベルト空間」の「再生核」は正定値カーネルになります。実は正定値カーネルと再生核ヒルベルト空間は1対1の関係になっていまして、これを「正定値カーネルは、再生核ヒルベルト空間を定める」と表現します。
 詳しくはこちらをご覧ください。
再生核ヒルベルト空間を用いた非線形データ解析法(福水健次氏)


 まとめますと、

・「再生核ヒルベルト空間」とは、内積を「再生性」があるように定めたヒルベルト空間である。
・再生核ヒルベルト空間の「再生核」は「正定値カーネル」であり、「再生核ヒルベルト空間」と「正定値カーネル」は1対1の関係になっている。

となります。

 で、結局「再生性」があると何がうれしいのか。
 内積計算が元空間のカーネルで計算できます。これが正定値カーネルを用いる利点なわけです。
 他にも「再生核ヒルベルト空間」を定義することで様々な利点が得られます。
 もともと数学の各分野で「再生核ヒルベルト空間」が使われていたので、その利点に気付いた人が機械学習に持ち込んだわけです。
 ただ、最近の機械学習>サポートベクトルマシン>カーネル関数で「再生核ヒルベルト空間とは何か説明しろ」とまで聞かれることはまずないので前回は飛ばしましたし、サポートベクトルマシンの専門書でもそこまで扱わなくなってきています。
 

衰退する日の丸半導体:次のステージへの転身失敗

 こんな記事がありました。
www.jiji.com

 こういう話を聞くと「トヨタ自動車」を思い出します。
 トヨタ自動車は「豊田自動織機」という会社が興した「自動車部」が元です。そこから華麗に転身したわけですね。
 日本は「半導体」という「自動織機」から転身できませんでした。鉄鋼の次に「産業の米」と呼ばれていたのも良くなかったですね……米と一緒で国のカネが無駄に流れ込んでいきました。
 「ものづくり(=ハードウェアづくり)」に拘りすぎています。
 そういえば昔、自民党の森首相も「ものづくり」に拘っていました。年寄りで上の方の人と言うのは、どうしてもその頃の成功体験から抜け出せないみたいです。

 「じゃあ何に転身すべきだったのか」と言われると、「システム」ですね。
 具体的には「ハードウェアとソフトウェアの融合」です。
 AppleiTunesなんかがそうですね。
 iPodというハードウェアと、iTunesというソフトウェアを組み合わせて全世界規模の音楽販売システムを構築する。
 そこに優位性が生まれたわけです。
 ソニーなんか二番手でiTunesをおっかけても良かったような気がします。
 GoogleAndroidiPhoneの後追いをして莫大な利益を手に入れましたし。
 最近はやりの「自動運転」も「ハードウェアとソフトウェアの融合」の極致です。

 日本でうまくやっているところとしては「コマツ」が挙げられます。
 建築機械の会社だったのですが、建築機械と自前の管理システム、保安システムを組み合わせることで一躍海外シェアを広げました。おかげで今ではむしろ「KOMATSU」というローマ字表記のほうが有名でしょう。
 このあたりの話は以下の本が面白いです。


ダントツ経営―コマツが目指す「日本国籍グローバル企業」

 この本の「ICTで市場を『見える化』する」というところが勝利のカギですね。
 「結局現代ではITに強い経営者が勝つ」という見本のようなものです。
 

数学の苦手な文系の人は数学史という手も

 文系の人に教科書通りの群論の話を展開してもなかなか伝わりません。
 歴史好きな人であれば、こちらの本を試してみましょう。


19世紀の数学〈1〉数理論理学・代数学・数論・確率論

 どうも文系の人は、

・誰が
・どういう流れで
・何をやったのか

というセットのほうが理解しやすいらしい。
 いきなり「アーベル群」の説明をしても全くダメなんですが、

・アーベルはどういう人で
・アーベル以前にどんな問題があって
・アーベルはそれをどのように解いたか

という流れにするとスッと入っていく。
 頭の中で「人物」がキーになっているようです。
 そのキーをもとに情報を取り出していく。
 逆に理系の人はあまり数学史に興味を持たないような気がします。
 

Twitterのトレンドはひらがなカタカナ混合語が苦手

 Twitterのトレンドに、ときどき不思議な単語が載ることがあります。
 今回は「フレスタンプ」でした。
 これは、大ヒットアニメ「けものフレンズ」の「LINEスタンプ」がバズッたことによるものです。

 本来はけもフレスタンプ」という単語を、Twitterが何らかの機械学習的手法で検知した際に「フレスタンプ」で1単語と判定してしまったのでしょう。
 このあたりは「ひらがなカタカナ混合語の認識」という古くて新しい問題です。
 Twitterのトレンドを見る限り、このトレンドの単語取得システムは「ひらがな-カタカナ境界」をかなり重視したつくりになっていると思います。
 普段はそのほうが判定率がいいんでしょうね。

 このように、実際に自然言語処理システムを作る際にはいろいろな問題が生じます。Twitter社レベルでも逃れることはできません。
 下記の本も参考にしてみてください。


言語処理システムをつくる:実践・自然言語処理シリーズ1

Twitterの「ハイライト」機能削除は難敵

 先日Twitterのタイムラインを時間順に戻す方法の話をしたんですが、

kenichia.hatenablog.com

 これでもまだ治らないという連絡が。
 見に行くと、

「新着ツイートのハイライト」

 が悪さをしていました。

 コイツはなかなかの難敵で、「設定」の中に項目がありません。
 ではどうするかというと、「新着ツイートのハイライト」の右にある「×」マークを押して、そこに出てくる「同じようなツイートの表示を減らす」を押してください。
 「減らすんじゃなくて抹殺したいんだけど……」とお思いの方も多いと思いますが、設定はコレしかないのです。
 で、これを押すと「同じようなツイートの表示が少なくなります」という、なんともハッキリしない表現で回答が。
 とりあえずこれでハイライトは消えたように思えるのですが、たまーに、何かの拍子で復活することがあります。
 そのときはまた同様の設定をしてください。

 それにしても、Twitterはドンドンだめなほうに進化しつつあります。
 Googleは至ってシンプルです。虎の子の検索結果には手を付けず、新機能は右上のドックに追加していきます。
 タイムラインを乱すというのは本当に顧客の心の平安を奪う行為なのです。

Twitterのタイムラインが時間順にならなくなった

 Twitterを使った研究をしておりますと、当然Twitterについて聞かれることが多くなります。
 そのなかで、ダントツで多い質問が

「いつのまにかTwitterが時間順に並ばなくなり、見にくくて非常に困っている」

というものです。
 これは、「重要な新着ツイートをトップに表示」に勝手にチェックをつけられたからです。
 修正することは可能ですが、修正になんとパスワードを要求されますのでお気を付けください。
 2017/4/17現在ですと、

1) 「ツイート」ボタンの横にある「プロフィールと設定」を押す。
2) 「コンテンツ」の「タイムライン」の「重要な新着ツイートをトップに表示」にチェックが入っているのではずす。
3) 下の「変更を保存」ボタンを押す。
4) パスワードを入力する。

という手順になっております。
 なぜみんなこの項目に気づかないかというと、全く「重要な新着ツイート」でないものがダラダラ並ぶので、単にタイムラインがぐちゃぐちゃになったようにしか見えないためです。
 非常に「アルゴリズムをしくじっている」感が強い。

 それでは良いTwitterライフを……。


Rubyによるクローラー開発技法