The jonki

呼ばれて飛び出てじょじょじょじょーんき

PU Learningについて勉強した

何がきっかけかは覚えていないのだが,Positive and Unlabeled Learningという学習方法があり,勉強したのでまとめた.

論文はこちら.2008年とやや古い.現時点での被引用数は606となっていた.

Learning Classifiers from Only Positive and Unlabeled Data

通常の2値分類問題では,通常は正例or負例のラベルが振られていることを前提とする. しかしPositive and Unlabeled Learningでは,負例のラベルが振られておらず,更に正例も一部しか振られていない状況である.つまりラベルなしデータは,正例と負例,どちらかの可能性となっている.下の図で言うところの,右上の青色(正例)以外の灰色の点は,ラベルなしという状況だ.

これを冒頭の論文の手法で解くと,右下のようにあら不思議,結構いい感じに識別できる.

数式の展開とサンプルプログラムは下記のリポジトリにまとめてある(PDFにまとめた).論文の完全なまとめではなく,一部を抽出したに過ぎないが,数式の展開や話の流れはある程度整理して書いた.基本的にはベイズの定理を使っているだけ.直接的にラベルを予想するのではなく,ラベルが振られているかどうか,に着目して式展開する,というのが本手法のアイデアとなっている.

github.com

勉強させていただいた情報

正例とラベル無しデータからの学習 (PU classification) | pillyshi's memo

論文読んだ「Learning Classifiers from Only Positive and Unlabeled Data」 - Speaker Deck

2019年に買ってよかったもの(日用品編・技術書編・ガジェット編・漫画編)

今年もこの時期が来ました.総決算です.今年は日用品編・技術書編・ガジェット編・漫画編の4段階です. www.jonki.net

日用品編

カモミールティー.これはずっと飲んでます.コーヒーは1日に1,2杯にしているので,基本的にはずっとこれ飲んでます.はちみつが入っているっぽく喉にも良い.特に癖はなく飲みやすいです.

会社で水を飲むために買いました.自販機行くとついつい炭酸とか買ってしまうのでこれで我慢.

今までずっと背の高い枕を使っていましたが,大○家具さんで枕の選び方を教えてもらい買いました(Amazonでw).寝るときの体の態勢はフラットになる方がよいらしく,私は今のベッドだとこの低めの枕がちょうど良かったです.

今まで足の土台が暖かくなるやつを使ってたんですが,冬場寒いのって膝とか割と上のほうだったのでこちらを購入.あまり推奨されてないと思うけどブランケットかけるとコタツみたいな暖かさになるので,冷え性にバッチリの商品でした.

無駄にル・クルーゼのコップ.蓋付きで可愛い感じの探してこれになりました.可愛いです.

今年からキャンプ生活を始めたのでスノーピークも自然に足を運ぶように.これは手のひらサイズに小さくなるので,バイクとかに入れて活躍してもらってます.意外と安っぽくなく,ものも結構入ります.そこはさすがにスノーピークさん.

これは割とベストバイ.トーストが好きなんですが,これを水に浸して入れると平凡なトースターが某高級メーカーのトースターに生まれ変わります.

水を無限に吸い取るスポンジ.バイクの洗車用に,キャンプのときのテントとか拭くように.

バックパックに求めるのは軽量さということに気づき,これに至りました.THULEバックパックの方がしっかりしてるけど,これは圧倒的に軽いので暫くはこれ使います.

除電ブラシは1個デスク周りにあるとこの時期安心.小さいのも買ってましたが,このサイズがちょうどよく使い勝手が良いです.

z-lightは実は2つ目です.最近ライトは温色が良いと思うようになり買い替え.z-lightはモノがしっかりしてて,安いやつとは作りが違います.

Z-LIGHT LEDデスクライト ブラック 調色機能付き Z-80NB

Z-LIGHT LEDデスクライト ブラック 調色機能付き Z-80NB

  • 発売日: 2017/10/15
  • メディア: ホーム&キッチン

はんだシュッ太郎.大量のハンダ間違いに気づいたあなたに最適な商品.

逆作用ピンセット.普通のピンセットと違い,力をかけないときに閉じるものです.表面実装したいあなたに画期的な商品.

技術書編

その名の通り,アルゴリズムが視覚化されてコンパクトに丁寧にまとまっています.アルゴリズムって視覚的なイメージが大切なんで,長々と言葉で説明されるよりも,わかりやすい図で一発なんですよね,ってのがこの本でよくわかります.基本的なことしか取り上げてないけど,マージソートダイクストラ,ハッシュ,LinkedList,公開鍵暗号方式,とか怪しかったら買っといてもいいかも.私もアルゴリズム忘れるたびにこれ見直します.

形態素解析器書いてから,文字コード周りの知識がほぼないことに気づいて買いました.文字集合・符号化まわりに関して,歴史から始まるので使用の変遷や仕組みを知れて読んでて楽しいです.その分ボリューミーなので読み応えがあります.

[改訂新版]プログラマのための文字コード技術入門 (WEB+DB PRESS plusシリーズ)

[改訂新版]プログラマのための文字コード技術入門 (WEB+DB PRESS plusシリーズ)

マスタリングTCP/IP.実は学部生のときの輪読本.久しぶりに読んでもやっぱり神本でした.物理層からアプリ層まで丁寧かつ完結に書いています.インターネットがどのように成り立っているのか,よくわかっていない方は見ると良いかも.

コンピュータの構成と設計.通称パタヘネ本.Kindleで上下巻セット売ってるので買っておきましょう.ただ紙媒体の方が複数ページ見ながら課題とか取り組めるので良いかも.ただ持ち運ぶ重さではないので,私は紙と電子版,両方買いました.

情報理論 Math&Science.情報理論の理解が怪しかったので読みました.まだ最初しか読めてませんが,導出がめちゃくちゃ丁寧.

情報理論 Math&Science (ちくま学芸文庫)

情報理論 Math&Science (ちくま学芸文庫)

昨今,クラウドソーシング使うことも増えてきたので読みました.ワーカーをどう評価するか?などいろいろな事例があり参考になります.

Googleの方がツイートしてたので読みました.割と新し目の本なので,最近のDNNな手法も結構トピックとして取り上げられているのが特徴的.

Introduction to Natural Language Processing (Adaptive Computation and Machine Learning series)

Introduction to Natural Language Processing (Adaptive Computation and Machine Learning series)

  • 作者:Jacob Eisenstein
  • 出版社/メーカー: The MIT Press
  • 発売日: 2019/10/01
  • メディア: ハードカバー

こちらもGoogleの方が学校に寄付するという形で話題になっていた本です.ドイツ版の数学ガールという感じで,レナという中学生?の女の子とレナのパソコンに入っているAIビムとのグラフ理論を学ぶ本です.数学ガールと同じで我々(レナ側)の考え方に対してAIビムがコメント・解説していくスタイルです.中盤ぐらいまでは良いのですが,後半は普通に難しかったです.ただグラフ理論が実世界でどのような場面で役に立つか,中学生が興味を持てるように物語が展開していくので読み物として面白いです.残念ながら絶版ぽいです.私も古本で入手しました.

最短経路の本 レナのふしぎな数学の旅

最短経路の本 レナのふしぎな数学の旅

30講シリーズ.これは会社の後輩に教えてもらいました.いろいろなシリーズが30講となっていてどのトピックも評判が良いです.レナ本もそうなんですが,講がちゃんと分かれていると1日3講すすめる,みたいな読み方ができるので私の性格にあっていると気づきました.

線形代数30講 (数学30講シリーズ)

線形代数30講 (数学30講シリーズ)

  • 作者:志賀 浩二
  • 出版社/メーカー: 朝倉書店
  • 発売日: 1988/03/01
  • メディア: 単行本
固有値問題30講 (数学30講シリーズ)

固有値問題30講 (数学30講シリーズ)

  • 作者:志賀 浩二
  • 出版社/メーカー: 朝倉書店
  • 発売日: 1991/05/01
  • メディア: 単行本

CPUの作り方.パタヘネ本読むのもいいけど,DIYで作るのも良いよ.

CPUの創りかた

CPUの創りかた

形態素解析本.自然言語処理Advent Calendarでもこちらの本を使って記事を書きました形態素解析興味なくても辞書引きとか最小コスト法のとこだけでも読むと楽しいよ.

形態素解析の理論と実装 (実践・自然言語処理シリーズ)

形態素解析の理論と実装 (実践・自然言語処理シリーズ)

ガジェット編

Anker 30Wの2つ.黒いスリムタイプのほうが若干軽いですが,両方小さくてかなり良い.持ち運びはこのサイズが最善ではないだろうか.

Qi充電したいけど,手を引っ掛けるところもほしい!と思った私にぴったりだったこの商品.金属使ってないのでQi充電できます.

MOMO STICK スマートフォン マルチバンド [正規品] デニム (ネイビー)

MOMO STICK スマートフォン マルチバンド [正規品] デニム (ネイビー)

  • 出版社/メーカー: モモディズジャパン
  • メディア: エレクトロニクス

Kindle OasisOasisは初代持っていましたが,防水ということで乗り換え.画面が大きくなったので技術書なども結構読めるようになりました.

Kindle Oasis 色調調節ライト搭載 Wi-Fi 32GB 電子書籍リーダー

Kindle Oasis 色調調節ライト搭載 Wi-Fi 32GB 電子書籍リーダー

  • 発売日: 2019/07/24
  • メディア: エレクトロニクス

この夏,キャンプに持っていって扇風機にもなるし充電器にもなるということで大活躍でした.

こちらもキャンプで大活躍でしたが,被災時とかにもモバイルバッテリー兼ライトになるので,1台ぐらい持っていても良いと思う.

初の骨伝導イヤホン.Amazon骨伝導はたくさんありますが,まともなブランドがAftershokzぐらいしかなかったので,最新作であるAeropex買いました.めっちゃ軽いし,耳穴塞がないので良いです.イメージとしてはカフェで音楽が流れている状態をどこにでも持ち出せる感じですね.音質云々というよりはBGMという感じ.家で嫁が何か勉強とかしてるときに,自分はこれつけて本を読んでたりします.

旅行用に買いました.これ買ったと人に言うとSwitch持ってるのに必要?と言われるのですが,まじでLiteいいから.ベッドでゴロゴロするのに最適なサイズ&重量です.

Nintendo Switch Lite ターコイズ

Nintendo Switch Lite ターコイズ

  • 作者:
  • 出版社/メーカー: 任天堂
  • 発売日: 2019/09/20
  • メディア: Video Game

今流行のRing fitじゃない方です.Ring fit買えなくてこっち.早見沙織大塚明夫がトレーナーになって一緒にボクシングしてくれます.ボクシングでビートマニアする感じですね.普通に息が切れるぐらい激しい運動ができます.

Fit Boxing (フィットボクシング) -Switch

Fit Boxing (フィットボクシング) -Switch

  • 作者:
  • 出版社/メーカー: イマジニア
  • 発売日: 2018/12/20
  • メディア: Video Game

お風呂でもiPad使いたい!ということで買いました.ジップロックなどとことなり袋でタッチがシャワシャワにならないのが気に入ってます.ただその分,ケースガッチリしてるので,ケースのつけ外しは頻繁にしない想定になると思います.

ECLIPSE CREAT .Macbookを置くために買った台.無駄に高いですが,質感とデザインが良いので気に入ってます.

ディスプレイに引っ掛けて軽い物置にしています.私はティッシュペーパーとか小物など置いてます.非常に便利.

キングジム 棚 ディスプレイボード 黒 DB-500クロ

キングジム 棚 ディスプレイボード 黒 DB-500クロ

  • 発売日: 2016/03/24
  • メディア: オフィス用品

漫画編

Rebuildfmで取り上げられていて読んだ本.完全に同世代なので色々共感しながら読めました.若干,後半が雑な印象がなくもないが,普通に楽しい.

岡崎に捧ぐ(1) (コミックス単行本)

岡崎に捧ぐ(1) (コミックス単行本)

とうとうアニメ化が発表されました.アニメ化などは鬼滅などが先んじていますが,個人的には今ジャンプで一番おもしろいです.幽遊白書とかブリーチの初期とかと比べても遜色ないぐらいに面白いので買って.

呪術廻戦 1 (ジャンプコミックスDIGITAL)

呪術廻戦 1 (ジャンプコミックスDIGITAL)

一流の殺し屋が日常生活をしつつも色々事件に巻き込まれていく物語なんですが,シリアスとコミカルが絶妙にマッチしていて面白い.不良・ヤクザものが苦手な人でも好きになるかも.騙されたと思って1冊買ってみて.

ザ・ファブル(1) (ヤングマガジンコミックス)

ザ・ファブル(1) (ヤングマガジンコミックス)

以上です.それでは良いお年を〜.

arXivのComments情報をFeedlyに挿入するChrome拡張作った

タイトル下の緑色の文が挿入されたComments

arXivRSSを私はFeedlyで消費しています.しかし,arXivRSSには論文のCommentsフィールドが含まれていないので,"Accepted at ACL2020!"みたいな情報がRSSリーダー上で取得できません.そのため実際にそのページを開く必要があるのですが,あまり興味のない論文の場合,面倒です.

そこでarXivRSSの消化速度改善のために,このようなCommentsフィールドをFeedly上に無理やり挿入するChrome拡張を作りました.下記が動作イメージです.Feedlyでエントリを読んでいる際に,それがarXivの論文であれば,裏側でその論文のComments情報を取得し,貼り付けています(タイトル下の緑色の字の箇所がそれです)

via GIPHY

インストールはこちらから

chrome.google.com

また,以前に作ったarXiv用のChrome拡張はこちらの記事を参照のこと.

www.jonki.net

そうか,君はアメリカから帰って1年になるんだね

f:id:jonki:20191214231451j:plain
SLTでの発表で訪れたアテネを訪れたときのパルテノン神殿

この記事は,研究留学 Advent Calendar 2019 - Adventar 15日目の記事です. 昨日はKo Watanabeさんの研究留学アドベントカレンダー【14日目】|渡邉 洸(Ko Watanabe)|noteでした.

私は,カーネギーメロン大学CMU)のLanguage Technology Instituteというところに1年間留学(企業派遣)していました.CMUでは対話システムに関する研究を行っており,対話システムや機械学習は初学者でしたが,なんとかやり切りました. ですが実はもう帰国して1年以上経っています. CMUの留学準備,留学中に関しては,以前書いてしまったので,帰国後1年経って落ち着いたこの状況や当時を振り返ろうと思います. 会社派遣であるため,留学前後で同じ会社・職場なのですが,見える世界がだいぶ変わりました. 何か良いこと書こう!と思ったのですが,とくに思いつかず,後から振り返るための私的な日記となってしまいました.すみません.またタイトルに特に意味はありません.

www.jonki.net

当時の決断を振り返って

やらない後悔を恐れた自分の決断を褒めたい

私は研究室ではインターネット(特にP2P)で修士を取り,会社ではインタラクションのR&Dにいました.その事もあって,機械学習もまともに触っていない状況でした.海外で働く・勉強するということは,何となく1つの野望としては持っていたものの,そのための計画や努力をしてるとは言えない状態でした.企業留学の説明会を聞いたときも,自分が留学メンバーに選ばれるべきでない理由は一瞬で30個ぐらい思いつきました. ただ実はこの説明会を聞いたのは2年連続で,その最初の説明会を聞いたときは弱気になって応募もしませんでした.しかし企業留学は,おそらく日系企業で働く限り,千載一遇ともいえる機会なので,この機会を逃すべきではないのではないか?と考え,そこからは考えるのをやめ,ほぼ勢いで応募しました.応募後は腹を決めて,自分のこれまでとこれからのキャリアプランを考えて,面接を勝ち抜くロジックを作りました.今振り返ると,あのタイミングで決断をせずに,また1年,2年とズラしていたら,まず間違いなく留学メンバーには選ばれなかったと思います(社内事情など).いや,まじであのときの俺GJ.ここで1つの世界線が変わりました.ちなみにたとえこの時の面接が落ちていたとしてもプラスになっていたと思います.というのも面接を勝ち抜く上で面接官(投資家)にアピールするためには,自分のキャリア・ポテンシャルを整理し,説得する必要があります.キャリアを見つめる機会というのは,なおざりにしがちだったので,この時の思考はとても良かったものだと思います.

サンプルが1である以上,それ全部生存バイアスだろ,と言われるとは思うのですが,実際そうだと思います.ただ,自分が今そう思う状況は,それ以上でもそれ以下でもないので良しとしましょう.

当時の留学を振り返って

リアル精神と時の部屋

今思うともう少し異分野の人やモノとの交流をしといたほうが,留学に多様性が出たなぁと思います.でも研究に没頭したおかげで,毎日が精神と時の部屋というか,昨日の自分より強くなった今日の自分を毎日感じるのが楽しかったです.特に私はゼロベースだったので.

日記のおすすめ

もともと会社に送る月報用に書いていたのですが,途中で用途を変えて,その日思ったこと(起きたこと,良かったこと,愚痴など),メンタルに関連する出来事を書くようにしました. 公開する予定がないので,適当に書いた箇条書きですが,書くことで意外と落ち着きますし,その日その時に思っていたことって簡単に忘れるんですよね.ラボメンに初めて会った時,英語うまくいかないとき,reject食らって先生に励まされた時,投稿締切が迫ってるけど良い結果がでない時,寒すぎる時,嫁と旅行に行った時,など当時どういうことを思っていたのか色々書いてあって気持ちが蘇ります.日記はその時の気持ちの保存作業であるので,将来のために気持ちはたくさんバックアップしておきましょう.過去の自分に励まされます.

今を振り返って

周りからの期待値が上がる

会社から帰って来て感じるのは,上司などからの期待値が上がることです.大げさに言うと,英語をマスターし,DNNを完全理解し,対話理解の真髄を知った男として扱われます.自分の中でのレベルは間違いなく向上したと感じますが,極端にそれを受け止められるのは戸惑います.それでも,周りからの期待値が低いことと違い,ポジティブなことなのでそれを励みに,プレッシャーにして,頑張れる環境なのかな,とは感じます.理由は何にせよ,一目置かれるというのは通常発生しにくい状況なので,留学という単語が強い意味を持つ日本では,これは様々な場面において,非常に有利に使える武器になると思います.

帰国後の1年間成長したのか?

しませんでした(笑)とは言いませんが,やはり留学中の精神と時の部屋での修行と比べると,今の成長スピードは練度も落ちて,モチベーションも失い気味かなぁと思います.研究テーマの選び方など,私自身の芯となる部分を形成できていないので,色々と中途半端になってしまったのは自分の責任でもあるので反省かなぁと思います.会社というのは,特にモチベーションがなくても,何かしらの仕事はあったりするもので,下手するとそういった仕事をこなしてるだけの日々になりがちなので気をつけたいです.いや,本当に.忙しく働いていると成長している気がする,んですが,そんなことはなくて,ちゃんと内容が伴っていないと,本当に時間の無駄なんですよね.会社は営利企業であるので,社員全員の意志を最大に汲むことはできないので,自分の意志にそぐわない仕事しかない場合,異動なり転職なりをしっかりと選択肢に持たないといけないと感じる1年でした.経歴や業績が貧相ですが,一応ここに私のLinkedin貼っておきます.

実力の謙遜は無駄

これは日本人の文化性もあると思うんですが,経験が浅いからとか,他分野からだとか,で「私は○○なので」とわざわざアピールして話す人がいるのですが,これ本当に勿体ないなぁと思います.周りからの期待値が下がってしまいますし,そのうち声すらかけられなくなります.また,勝手な偏見ですが,こういう人はtakeは多いけどgiveが圧倒的に少ない傾向があると思っています.「しっかりと勉強して理解してから発信します」と返されたりするのですが,その到達点というのに達してる人なんて世界に一握りしかいないので,さっさと何か出しましょう.Done is better than perfect! 私がやってるポッドキャストも,未熟なリサーチャーがやる番組ですが,多くの人が聞いてくれてますし,叩かれるどころか,フィードバックたくさんもらえてとても楽しい場になってます.inputもいいけどoutputもしていきましょう(自分への言い聞かせ).

まとめ

留学から帰って来て,今思うこと私的感情を書かせてもらいました.個人の日記にしまっとけ!と思われそうですが,心情状態を記録しておくのは悪くないと思うので,書かせていただきました.何かに挑戦するときは,やはりやらない理由を考えがちなのですが,挑戦した後の素敵な世界を想像して進みましょう.

明日は,Yuki Matsudaさんです(あとでリンク更新します)

ヘッドレス環境でもplotlyでpng書き出ししたい

Pythonでグラフを書くとき,Plotlyを私はよく使います.別にmatplotでもいいんですが,scatterの図でWebブラウザ上で,インタラクティブに各ポイントにラベルを確かめられる機能が気に入ってます. plot.ly

ただし私の揮発環境はGUIを入れないヘッドレスな環境なので,グラフのHTML書き出しは出来たんですが,png書き出しができませんでした.そこで見つけたのがorcaというElectronのアプリで,これを経由するとうまくいきそうでした.インストール方法はconda, npm, Docker, スタンドアロンバイナリと色々あるのですが,結論から言うとDocker以外,ヘッドレス環境のためかうまくいきませんでした.ヘッドレス環境では,xvfbなどの仮想ディスプレイを使う必要があるのですが,この辺うまくインストールできませんでした.

結果として,うまくいったのがDockerでplotly-orcaのサービスを起動しておき,URL request経由で画像生成のAPIを呼ぶスタイルです.仮想ディスプレイ周りなど沼だと思うので,コンテナで切り離した環境を使うこのスタイルが何だかんだでスッキリします.

使うためには,予めDockerでplotly-orcaのサービスを起動します.

docker run -dp 9091:9091 quay.io/plotly/orca

あとは,下記のような形でpostする形でうまくいきました.これでhtmlとpngの両方がサーバーのような環境でも出力できるようになったはずです. gist.github.com