未来永劫

メリーバッドエンドが好きです.

6月

(ほぼ)毎日研究室に居た.

競プロをやり始めた.

これは表題の通り.

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

これを見ながら,AOJ(下記URL)のアルゴリズムとデータ構造に関する問題を解きまくってる.
AIZU ONLINE JUDGE
ようやく大体半分解き終わったので8月までには全問解きたいなと思ってる.

気をつけようと思ったこと

時間を決める

一人で考えて「うーん,う〜〜〜ん」と唸っていても解決しないことが1ヶ月ほど取り組んでよく分かった.
例えば計算量にしてもDPにしても,元々自分の頭に知識のない事は考えても解けない.

質より量を取る.

とにかく今はinput量を大事にしたい.
2回ほどAtcoder のコンテストに参加してみたが,ABCのC問で時間を消費する事が分かった.
コンテストは時間設定が決まってる分,時間が余れば余るほど贅沢に最後のD問を考えられる.
素早くB-C問程度の問題を解けるようになり,D問を残り時間を目一杯使って解くことを暫くは目標にしたい.

振り返りの時間を週に1度は作る

量を維持するためにはコンスタントに問題を解く必要があるが,全部の時間を解く時間に当ててしまうと類似問題でコケる気がするので週に1度は復習の時間を設けようと思った.
週3~4でB-C問レベルの問題を数問解き,週に1度D問をじっくり考えて解く.
加えて今週解いた問題について振り返る時間を週1で作りたい.

やってること

  • 常設のAOJでデータ構造とアルゴリズムに関する問題を解く
  • yukicoderで★3未満の問題を時間を決めて解けるだけ解く
  • Atcoderのコンテストに参加する(暫くはC問までは2ミスまでで素早く解く事を目標に)

あれこれデータ分析をする

所感

Deep関係が持て囃されているので自分も趣味研究で利用してるが,最近は機械学習周りの新卒を取る基準は「Deepを研究で利用していてそれなりの知見を持っていること」のように感じる.
自分は教育データマイニングをメインで行っており,その過程でミニマムなデータに対するスパースモデリングや行列分解をしている.
Deepはデータ量や計算機資源が十分無いと厳しいのでメインの研究に導入しようとは思わない.
加えて,学習過程があやふやなので「教育データから価値のある情報を入手する」という目的にはマッチしないのだ.
しかしながら,世間的にはDeepのできるエンジニアが重宝されているようで.
できるって何だ?って思うけど基準は前述したとおりでDeep研究をしている人ができる人のベースラインに感じた.
研究という「自ら課題解決を行いたい分野」と「企業が求める人材・分野」とのズレを最近感じていて厳しさがすごい.

やってること

愚痴が増えて来たのでこの話はここでやめるが,kaggleのデータ等を利用して自分の腕が鈍らないように研究とは関係のないデータ分析を行うようにしている,という話.
対象は画像,音声,自然言語など様々.
自分の目標に,「データサイエンスを理解し問題解決に適切な機械学習手法を扱うエンジニアになる」というのがある.
フロント,バックエンド周りは書きたくなさが凄いのでバイト程度に留めて自分の強みを伸ばせる方向に勉強したいと思う.

特に今月はアンサンブル学習の手法や論文を読んだり,「kaggle master」と呼ばれる人たちの参加報告記事を参考に実データに対する分析の知見を吸収できているので悪くはなかったと思う.
強く感じたのは「アンサンブルの前に特徴量選択や追加,削除を柔軟にできるようにする必要がある」ということ.
特徴量選択の追加は外部データを利用したり,データの加工方法によって様々な事が可能みたいなのでこれも試していきたい所存.
また,特徴量をdropして複数のモデルでアンサンブルする方法など,色々勉強になることが多かったので実りはあった.

研究

教育というニッチな分野をやっているとデータ収集にヘイトを溜めるケースが少なくない.
これは教育に関する事業を行っている会社や大学などの教育機関でしか出来ない研究だと思うので価値はあると思っているが自分のペースで進まないもどかしさもある.
実際今月も虚無虚無プリンだったが,ようやく実データがまともな形で入手できたのでちょっとは進展しそう.

そのほか

進捗&時間管理

Githubでカンバンを建てて週ごとの進捗管理をするようにした.
見にくいが,小さなIssueを複数発行して,週+毎日のタスクやノルマの管理を行っている.
毎日行うようなタスクは[daily]というタグをつけて発行するので,完了したら次の日に移動するだけでいいので楽ちん.
f:id:shopetan:20170703001724p:plain

本を読む

今月はこれを読んだ(読んでる).

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

為になったことを纏めるためにこれに関する記事を別途で建てようと思う.
エンジニアの人生を豊かにする方法が書かれている.
面接を効果的に乗り越える方法や履歴書など就職に関することも勿論,フリーランス,起業などに関する内容も載っている.
個人的に面白かったのは,エンジニアが結婚相手を見つける方法や筋トレに関する項目.
どのように自分をコントロールすればよいかが分かるので,この本から学んだことは多い.

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

こっちは研究室のドメインNLPの教養も必要なので勉強に.
いわゆる「出た!本」です.
まだ前半しか読んでいないので今度読み切る予定.

7月にしたいこと

  • おさんぽ
  • (交際費以外の)節制
  • いろいろな人と出かける
  • いろいろな人とご飯を食べる

です.
社会性を保つためにも,自分がストレスを溜めないためにも上記のことはやりたい.
とにかく研究室に引きこもりがちなのでいろいろな人と出かけたり,ご飯を食べたりなどがしたい.
来月以降になりますが,ウルトラジャパンや各種フェスに一緒に行って楽しんでくれる人も募集しております.
遊びましょう.