2018年の目標.

大晦日は相変わらずひたすらしょうもないことで馬鹿笑いをしていた. ふだん割と勉強勉強な日々なので、何時間も馬鹿みたいなことで笑って過ごせると凄く頭の中がすっきりするから良い.

2018年の基本方針は相変わらず、機械学習とコンパイラをひたすらやっていこうと考えている. 社会人になってからずっとエンジニアとしてどうやって生きていこうかということばかりを考えていて、あるタイミングから機械学習とコンパイラという二つの技術領域を挙げた. 前者は仕事関連であることとトレンド技術であること、後者は単純に一番興味がある分野であることと低レイヤであること、という理由. 前者は変わる可能性があるが、とりあえず継続で今は考えている.

この基本方針を元にちょっと具体的にやりたいことを書いていく. 計画倒れは毎年のことなんだけども.

Goの読破

プログラミングの基本はアルゴリズムとデータ構造であると思っているんだけれど、その勉強のために読み進めていたGo言語のコードを上から下まで読破したい. 言語処理系のコードはアルゴリズムのパッケージみたいなものだし、全て読んで理解してしまえばプログラマーとして力になるんじゃなかろうか.

Rob Pikeらが書いた綺麗なコードということもあり、他のプログラミング言語より好きなコードなので、プログラミング力の向上も目論んでちょっと年内に読み切ってしまいたい. 膨大なコード量なので、ちょこちょこ1年かけて読み進めていく感じになると思う.

Kerasの読破

Kerasと言えばDeep LearningのOSSライブラリで有名なTensorFlow のdefine by run用のラッパーライブラリだが、2017年にDeep Learningを勉強していく過程でとても良いコードだなぁと思っていたので読み切りたいと思っている. KerasもDeep Learningを扱い易くするための機能群が充実していて、設計思想自体、僕は他のライブラリと比べて一番好きなので、今年中にガチャガチャ遊んだりしながらコードを読み切ってしまいたい.

2017年はMOOCや専門書を使ってDeep Learningの計算グラフの仕組みや各モデルの理論を学んでいたので、その知識をベースに読み進めればかなり楽しいんじゃないかなぁとニヤニヤしている. 仕事でKerasやChainerあたりのテストコードを読んでいた時期があるんだけれど、Deep Learning と一口に言っても学ぶべき技術はモデル理論以外にもまだまだ沢山あるので、やっぱり自分はエンジニア目線でこの分野の技術を埋めていきたい.

TensorFlow XLA/Liteの追随

こいつはまだまだ発展途上だと思うので、読破というより追随とした(大した意味はない). TF XLAはTensorFlowのコンパイラプロジェクトであり、Liteはモバイル向けのTensorFlowプロジェクトである. 個人的にこれから先のDeep Learningはエッジデバイス上での学習/推論を実現可能にするためのモデルの軽量化やコンパイラの研究が加速していくと予想していて、この二つはいわゆる最先端で研究されているプロジェクトの一つであると言える.

僕個人がそもそも低レイヤのコンパイラ周りの技術レイヤに興味を持っていることもあり、この分野の発展は凄く興味がある. エッジデバイス上での学習が実現されるとかなり世界に対してインパクトがあると思っているので、どちらかと言うとウォッチングし続けるという意味合いになるんだけど、この二つのプロジェクトのコードを読んで中身を理解しながら追随していきたい(出来ればパッチとか投げたいけどね).

自分の中では一番この技術がワクワクしている. 中身が理解出来るまで自分の技術レベルを持っていくのが、今年一番の目標だと思う.

ML言語/型推論周りの実装

2017年の年末あたりから型推論周りの勉強をしていたんだけれど、主に専門書を開いて理論の理解を頑張っていたので、型推論アルゴリズムを実装してやりたい.

これは一番直近で作りたいやつで、一ヶ月程度でささっと作り上げてしまいたいなぁと思っている. ここらへんはまとまったら技術記事に上げる予定.

コンパイラ周りの勉強

これはもうずっと継続しているテーマだけれど、コンパイラ周りは下記のことをやりきりたい:

  • ドラゴンブックの読破
  • LLVM/lldのコードリーディング
  • コンパイラ/言語処理系の実装

ドラゴンブックをきちんと理解出来るようにめげずにやりたい、というのが一番強い. もう何回挫折したかなんてわからないけれど、2018年中に理解出来てないところ含めて、コンパイラを実装していく予定.

あとはLLVM/lld周りのコードを読むのも去年から継続して続けていこうと思う. TensorFlow XLAがLLVMをバックエンドで採用しているのもあるので、XLAを理解する前に一通りは触れるようにならないといけないなぁと思っている. 概要レベルは抑えているので、今年は中のコードをイジりまくる想定である.


いろいろ書いたけど、去年は専門書ベースの勉強スタイルだったのを今年はOSSのコードベースにするようなイメージになるだろうか. 勉強したいことはいろいろあるので、時間をキチンと確保してやっていくことを意識付けてやれたらなぁと思う. あとあれだ、数学やらないと.

どこまで出来るかわからないけど、今年はソフトウェアエンジニアとして本物になりたいという、自分の中の想いがあるので、去年以上に頑張ろうかと意気込んではいる.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.