今年1年、大学院の修論提出だったり、就職してエンジニアやったり、厄年だったり、と濃厚だったので振り返る。

1月

元旦は毎年家族と過ごしていたが、今年は学部の友達とコテージ借りて過ごしてた。深夜3時に海入ったのはさすがに寒かった。

そして修論提出二週間前にインフルエンザにかかり、リアルに人生終わったと思った。一番大事な時期にベッドから抜けられずポカリとサプリメントとタミフルだけ飲む生活を1週間続けてなんとか直し、提出締め切りに間に合わせた。 内容はGPSデータからユーザーの性別、年齢などを予測する、という研究でまあまあの予測精度だった。サンプル数は数百、データは緯度、経度、時間だけ、という超絶ハードモードだったが、ここで特徴量エンジニアリングの重要性を学んだ。 GPSデータだけだとクソだよなーと思いパーソントリップという似たデータがあったので転移学習も試してみたが、負の転移が起きたっぽくPTが足を引っ張り全然性能が出なかった。

2月

所属してた専攻は2月頭に口頭発表があり、その結果を元に合否が決まるシステムだったので、2月初旬はずっとパワポを作成していた気がする。 修論は機械学習的な内容にも関わらず、専攻としては建築、都市工といった機械学習ナニソレーみたいな所だったので、機械学習ってそもそも何か、という所から説明しなきゃいけなかった。が、なんとか15分に納め発表は切り抜けた。 そんなこんなで修論は終わったが、先生からもうちょっと続けてみれば?との鶴の一声があり継続することに。協力研究員のポストをもらい、4月からも引き続き研究することに。(なるはずだった) そして吉祥寺にある大学の寮から神田へ引っ越す。

3月

ほとんど記憶にないが、多分研究しながら家具買ったり付近の散策してた気がする。あと卒業式があった。

4月

社会人になった。 ひたすらHTML/CSS/JS, Javaを触って、初めてWebの開発の経験をした。 入った会社は学生時代にインターンに二回も行かせてもらった所なので、知り合いが多かったのでまあなんとかやれた。 会社PCを壊す。

5月

二年目成果発表会という二年目の先輩が1年目でどんな仕事を行い成果を出したのか、というイベントがあった。これが割りと衝撃的だった。 めちゃめちゃ成果だしとるやんけ。。 研修では1人1つ、食に関連したサービスを作る、というもので自分は店の雰囲気を元にした検索サービスを考えた。 本当なら画像から特徴を抜いて学習すればいいのだが、途中で挫折。結局、Biterm Topic Modelingを使った雰囲気検索とMatrix Factrization系のアルゴリズムを使ったレコメンドを自前実装した。 会社PCを壊す。

6月

配属が決まって、データ解析を担当する部に配属された。 結果は振るわなかったが、研修も終わり、デスクの片付けを行っている時にメンターから1通メールが届いた。NLP系の仕事をやるっぽい。 Oracleのinitializeが壊れインスタンスが再起不能になる

7月

NLPの他に学生時代やっていた位置情報系の仕事もやらせてもらう事に。 チームの方針が超放任主義だったので、最初はガチで辛かった。 データ解析の部署だが、フロントからサーバまで触る事になり、早速研修でやったことが活かせそうだった。 あと一度決めた納期がどんどん短くなっていくのを見てスピード感やばいと思った。たぶんこの1年で一番技術力がついた月だと思う。 会社Macを壊す。

8月

一旦仕事が落ち着いたのでタスクをTodoistに書き出していったら予想以上に残タスクがあったので夏休みをとった。その後、MLSSという機械学習のサマースクールに行かせてもらい、3日間ずっと英語でガチ講義を受けた。聞いた講義は下記のとおり。各トピックの詳細は多分ググればでてくるからそっちを参考に。

Submodular Function

聞いた時はぶっちゃけ意味がわからなかったが、最近MLPシリーズから本が出ましたね。まだ読んでないし買ってもいないけど。 はてブ界隈でも4月位に一瞬流行った気がする。

High Performance Conputing

ボトルネックを見つけてガンガンスケールしていく手法の紹介。 学生にはあんまり刺さっていなかったが、企業の人はめっちゃ関心寄せてた感じがする。 先生はC++原理主義者で煽り能力が高めだった。

Learning Representation

最近だと表現学習という文脈でDeepLearning分野でよく使われる単語だが、カーネル法の話がメイントピックだった。

9月

AWS環境の他に、会社の都合でOSが入っていないオンプレサーバももらい、2つの環境構築をやることに。 学生時代に環境構築周りを勉強していてよかった。。と激しく思った GPGPUインスタンスの構築に死ぬほど時間がかかった記憶がある。 構築後、NVIDIAが提供しているAMI使えば一瞬だった、ときいて膝から崩れ落ちた記憶がある。 ここ自動化したい。 あと会社の金でHadoop研修なるものに行かせてもらった。内容はHadoopってそもそもどういうサービスが協調して動いているのか、どんな構成になっているのかというような内容で1からHadoop環境を構築していく経験ができて非常に勉強になった。

10月

このころからSparkを触り始めた。Scalaの言語仕様は素晴らしいと思い、だんだんScala/Spark周りを調べるようになってきた。 一方でGraphXの提供関数であるSVDPlusPlusの元論文と、関数の引数が違う事にブチ切れ、Sparkのコミュニティにメール送ったりした。たぶんこれが人生で初めてOSSの世界に足を踏み入れた時だと思う。

11月

国内出張行ったり、国内出張行ったり、メール返したりでこの1年で一番コードを書かなかった月だったかもしれない。 初めてのチーム開発もうまく回らずストレスもかなり溜まっていた気がする。 シリコンバレーの謎のおっちゃんがメンターになって色々教えてくれる事になった。 プライベート用Macを壊す。

12月

Sparkの研修に参加し、spark-coreからspark streamingまで包括的に教えてもらった。一緒に参加していた人たちがバリバリのSIerで細かい所まで質問をしていて、講師との問答が非常に勉強になった。 それと並行して社内研修、出張とかなりハードな月だったこともあり体調を崩した。体調崩しながらのコーディングはよくない。クソコードが出来上がる。そしてなんとかタスクをある程度終わらせ1年終了。

感想

研修だったり出張だったり色々機会をもらえ恵まれた環境に配属されたと思う。またコード書かせてもらう機会が多く、技術的に幅が広がった気がする。 昔はRuby, RとDBや構成管理ツール群の知識くらいしかなかったが、 この一年でHadoop周り(Hive, Spark, HBase)、フロント(WebGLなど)、言語(Python, Scala, Java, シェルスクリプト, js)と広く浅く知れたのは1年目にしては大きいと思う。

厄年だからか知らないが、入社してからPCを壊しまくっている。ログインできなくなったり、画面が割れたり、色々不吉だったかもしれない。

2016年の抱負。

色々な技術を表面だけなぞってきたので、2年目はもう少し深くやっていきたい。でももともと飽き性なので、おそらく新しい言語も触ると思う。今一番やりたいのはGoとC++。Elixirもやりたいが、多分使う場所がないので後回し。 毎日論文読む習慣もつけたい。

あと痩せたい。切実に。