2019年振り返り
年末はずっと本好きの下剋上を読んでいたので振り返りも何もせず終わってしまったので、 三が日の間に振り返りとかをしようと思う。
実際にやった事を振り返る
まずはやった事をおおまかに振り返る。
1~4月
フランスから帰ってきたあと、人形町に住んでいた。 花粉症の新薬とインナーマスクにより、わざわざ引っ越さなくてもいいかな、という位の症状に抑えられたので、思いのほか冬の東京滞在が長引いた。
katexの移植をした
現在も必要になる都度足しているが、大まかな所は第一四半期でやった。 作った物の完成度と規模は満足いっている。だが、そこまでで力尽きて宣伝出来なかったのが心残り。 アウトプット的にはまぁまぁ。
情報理論の勉強
Elements of Informatin Theory(以下Cover and Thomas)を読んだ。MacKeyを読んだ。
- blog:Elements of Information Theoryの読書記録
- blog:MacKayのInformation Theory, Inference, and Learning Algorithms、1章〜5章まで
特にCover and Thomasはとても勉強になった。 いろいろな事の見え方が変わり、プログラマの理論的な背景として大きく影響を受けた。 今年やった勉強の中では一番有意義だったと思う。
なお、MacKey本は必要な所だけ先にざっと読んだ後、第二四半期にはそれ以外の所のちまちま読んでいた。blog:MacKay本、読み終わる
c-lessonを作った
これはなんだかんだで結構時間を使ったので書いておく。2018年の年末もまぁまぁ時間を使っていたが、2019年の年始もまぁまぁ時間を使っていたので。
反響はあまり無かったが、アウトプットとしては満足している。こういうのを残しておく事には意味はあるだろう。
イタリア語の勉強を始めた。
結構長い事やっている気がしていたが、記録の上では始めたのは3月という事になっている。blog:イタリア語の勉強を始めようと思う
あまりここに書く事は無いが、結構時間は使っているので一応書いておく。
機械学習関連の企業をいろいろ回った
今年は労働で何か有意義なアウトプットを出そうと思っていろいろ機械学習のベンチャーなどに話を聞きに行ったし、まぁまぁ雇用一歩手前くらいまで行った所もあるのだが、 最終的には合わないと判断した。
この過程で研究よりもアプリやサービス作るか、という思いを固めた気がする。
結構時間は使ったし、いろいろ見たのは有意義だったので記しておく。
その他いろいろ
blog:「測度論無しで機械学習に必要な確率論の話をする」という動画シリーズを作りました 大した事では無いが、結構気に入っているので一応書いておく。
この辺でギターのアドリブを弾けるようになりたい、と思って試行錯誤が始まる。
WhiteboardCastのエンコーダーをwebmのライブラリから端末に入っているネイティブエンコーダーに変える作業をした。 大した話では無いがいつかやりたいと思ってた事なのでちょっと満足感がある。
5月~8月
横浜に引っ越して、地元に帰ってウィンドサーフィンをやりつつtegashikiを作っていた。
手書き数式認識ソフト、tegashiki
- blog:手書き数式認識ソフト、tegashiki開発その1
- blog:手書き数式認識ソフト、tegashiki開発その2
- blog:手書き数式認識ソフト、tegashiki開発その3
- blog:手書き数式認識ソフト、tegashiki開発その4
- blog:手書き数式認識ソフト、tegashiki開発その5
- blog:手書き数式認識ソフト、tegashiki開発その6
ちゃんと他人に発表出来る所まで辿り着いていないのだが、とりあえず動く所まで行くのに多くの発明とか再実装が含まれているのでそんじょそこらの論文よりはずっと大変な内容ではある。
transformerを再実装して1D CNNと組み合わせたカスタムなモデルをTPUEstimatorでトレーニングしてTFLiteで実機で動かすだけでも相当な苦労があるのに、Kotlin側でもnumpyもどきをつくったり、データセット生成用のDSLを作ったり、いろんな発明がある。
今年のメインのアウトプットにするつもりでやっていたのだが、振り返ってみると横浜に居た頃以外はあまりいじれてない。ただここまででも結構すごい事はやれているとは思っている。
これは完成させたいのだが、難しい所として用途が無いと開発をするのが難しい。 用途は数学のノートをとるような事だ。ノートをとるのは結構難しい数学をやらないとあまりとらないし、 変わった表記が必要な数学はあまり対応したくない。
技術的な問題よりも、ドッグフードする題材を続ける方に難しさがある(難しい数学をずっとやるのは辛い)。
GC本
これは結構苦労したので書いておきたい。 今年は機械学習じゃないプログラムの本ももうちょっと読みたいな、と思って読んだ。 この辺の話は必須とは思わないが、教養として無駄では無いな、とは思った。
モダンなGCは、自分で作れる気はしないけれど、必要になったら勉強は出来るな、と思えるくらいには身近に感じるようになった。
その他いろいろ
DNNの情報理論的な話の論文を結構読んだ。振り返ってみると前半は結構機械学習しているな。
この辺でギターのアドリブについて気合を入れてやりたいなぁ、と思い始める。
ウィンドサーフィンは結構やったと書いてある。あまり覚えてないがジャイブが結構乗れるようになったと書いてある。確かにそんな記憶がよみがえってきた。
9月~12月
伊豆でツーリングしたりFPGAをいじりつつギターを弾きつつひたすらサーフィンしてた。
FPGAをいじる
技術的な実作業としては、この時期のメインはFPGAいじりだった。 当初はtegasihikiをやりつつ読書の延長でやるつもりだったのだが、想像以上に難産で結局FPGAいじりでほとんどの時間を過ごしてしまった。 tegashikiは線形計画法の勉強をしている間だけ少し作業が進んだくらい。
FPGAは完全に自分の勉強で、何かアウトプットを世の中に出したという感じでは無いが、凄く勉強にはなった。 学校で授業取るよりは多くの事をやった気がする。 ググってみてもここまで真面目にやる人はほとんど居ないようで、UCバークレーですらMIGを自分で触らずに提供されるモジュールを使うとか。 まぁさすがにあれを使うにはハード屋のサポートがいるよね。学校の授業レベルではきつい。
DDRにちゃんとアクセスし、jtag越しにデータをセットアップして、自分で書いた簡易アセンブラの内容を元にしたコードを、4コアのSIMTがちゃんと走らせてヒストグラムを計算する。 見た目はめちゃくちゃ地味だが、やっている事はかなり大したもんだと思う。
4コアのSIMTが全然タイミングに収まらんのだよ…
それをなんとか収める過程でパイプライニングとかは大分深く理解出来た。 本にあるのをそのまま実装しているだけではトラブルが少なすぎてあんまり深く理解出来ないのだよね。
やはり原理的に作れない物を間違って作ろうとして、何故それではダメなのかを理解する過程で深い理解というのは得られる気がする。
あとDDRをアクセスする難しさを理解する事で、ハードウェア開発の合成の回りの問題点とかを理解出来た。 開発プロセスとかを考える際にも必要な事だったので、やはり一度はどこかでやっておく必要がある。
線形計画法を勉強した
blog:読書記録: Understanding and Using Linear Programming
教科書としては薄いのだが、予想以上に良い内容だった。 線形計画法という分野自体を自分があまり良く理解していなかったので、 背後にこんなに豊富な理論的背景が広がっている事、 それらのベースが線形代数という非常に基礎的な物である事など、 刺激を大きく受けた。
ついでにtegashikiでノートをとるのがかなりうまく行った気がする。 こういう分野を継続的に勉強出来れば開発ももっと進むのだが…
計算理論の本を読む
11月くらいからは、The nature of computationという計算理論の本をやっている。
この本はあまりノートに取る事が無いのでブログのエントリになってないが、結構な時間を使っている。
計算理論はいつか勉強をしようと思っていた項目なので、Cover and Thomas同様の長い間のそのうちやらなきゃリストが一つ片付こうとしていて、満足度は高い。 あとは最後の量子コンピュータの章だけ。本当は年内に読むつもりだったのだが、本好きの下剋上読んでたら年があけてしまった。一月に読む予定。
この本は機械学習やプログラムの理論というよりは、現代数学の本という気がする。 読み物と数学の間くらいを進む本で、今の自分には全く理解出来ないレベルの話が結構出てくる。 もっと言えば世界でも理解出来る人はそう多くは無い話が結構出てくる。この著者は本物の専門家なのが読めば分かる。
一方でそういういかにも分から無さそうな話の手前までは連れて行ってくれるので、 難しい部分がどのくらい難しいのか、人類がどこまで辿り着いているのかはまぁまぁ感じ取れる。 2000年代に入ってからの数学の進歩というか、最近の方向性みたいなのは感じ取れる。
今の所機械学習とか実務に役に立つ気は全くしないが、計算理論というのを深く理解するという点では良い経験をしている。
サーフィンをたくさんやった
サーフィンは結構やった。平均すると週3くらいでやってた。割と体力の限界までやってた。
ほとんどの期間、大して乗れないので楽しくも無いのだが、運動と訓練と思ってひたすらやってた。 最後はちょっと乗れるようになってきて面白さが分かり始めたくらい。 ようやく思い通りに板が動かせるようになってきた気はするし、一応波のいい所にそれなりに居れるようになった(まだまだだが)。
サーフィンもウィンドサーフィンも、楽しくなるまでが結構長いんだよね。 無職じゃない人はみんなどうしているんだ?という気がする。
もう一か月くらいやればサーフィンやってる、と言えるくらいの実力にはなる気がするが、今年は時間切れだった。 結構限界まで練習したので悔いは無い。良く頑張った。来年も頑張りたい。
その他いろいろ
ギターを凄い弾いた。教則ビデオも結構やったし、youtube見ながらコピーも結構やった。 まだアドリブが自由に出来る所までは辿り着いていないが、この延長でイケる気がし始めている。 本当は年内にイケると確信が持てる所まで行きたかったが仕方ない。
開脚ストレッチに進歩が見られた。これは後述。
イタリア語はこの時期は結構やった。中級者まであと一歩、という感じ。
ツーリングとかキャンプは結構やった。 これまでのような野宿っぽいのじゃなくて、ちゃんと滞在を目的にキャンプする感じで、割と高いキャンプ場を借りる。 短期の場合はキャンプ場代は誤差みたいな物なので、もうケチらなくてもいいかな、という気がする。
年末はひたすら本好きの下剋上読んでいた。いろいろ年内に終わらせる予定だった事を全部放り投げて読んでたので、年始はいろいろ後始末をしていきたい。
年始の目標を振り返る
年始の目標。blog:2019年のやる事を考える
機械学習関連
- 自然言語処理ちゃんとやる
- 情報理論ちゃんとやる
- 何か数学も一つくらいちゃんとやる(動的計画法か最適輸送問題あたりかな?)
1は、自然言語処理では無くて手書き認識になったが、系列データを扱うというのが当初の意図だったので悪くない結果だったと思う。 対外的にまとめられるくらいの所まで辿り着いていたらもっと良かったが、ドッグフードを開始出来ているので最低ラインはクリア出来ていると思うし、最低ラインは相当難しかったので結構頑張ったな、という気はする。
2も十分やっただろう。
3は最適輸送問題はやれなかった。線形計画法と計算理論はやったが、後者は機械学習でも無いのでちょっと微妙か。 ただ計算理論は数学ではあるのでまぁこんなもんかなぁ、という気もする。
ギター関連
- 何か動画のアウトプットを一つ
- 7thとかsus4とかaugとかのコードを使いこなせるようになる
- アドリブソロもなにかしら弾けるようになりたい(しょぼくても)
1は全然ダメ。
2は7thとか9thは作れるようになったが使いこなせるようにはなってない。 この辺は練習が足りなかったというよりは思ったよりも難しい目標になってしまっていた、という気がする。
3は一番時間をかけた所だが、未達成。 アドリブは短いのは一応作れている気がする。ただ続けられない。
ギターはこうしてみると全く進歩が無いように見えるのだが、かなり進歩した気はしている。 目指した物に到達出来ていないだけで、当初思っていた以上に実力はついている。 伊豆にいる間はかなり練習出来た。
どちらかというと、上達がいまいちというよりは、2019年の目標が高すぎて、それを理解出来ていなかった気がする。 たぶん今の自分が試行錯誤している所は初心者と中級者の間の壁で、これを超えるのは凄く難しいので、二年掛けても良い物に思う。
ストレッチ
- 前屈、ベタっとくっつく
- 開脚前屈、両肘がつく
前屈はペタっとはついていない。これはいい所まで来たあとに2を優先していたからで、この判断は正しかったと思っている。1は未達成だが、三角くらいはあげてよいかも。
2は今年大きく進歩した所。少し何かにつかまる必要はあるが、両肘はつく。 しかもなんというか、ちゃんと曲げなきゃいけない所を曲げられている気がする。 開脚前屈が出来ない人から出来る人へとステップアップした気がする。 両肘もギリギリつくという感じじゃなくて、結構ちゃんとつく。 この項目は花丸をあげたい。
プログラム関連
- 他人が使えるような何かをつくる
これは未達成。kotlitexはそれになりうると思ったのだが、使ってもらえる所までは辿り着けず。
ただ形に残す、というのは、c-lessonとかFPGAいじりとか以前作ったJS入門などはちょこちょこ見たりやったりする人が居て、それなりにいろいろ出している気はする。
tegashikiがちゃんと「とりあえずこの位だな」と思える所まで行ってやった事をちゃんとまとめて発表出来る所まで行ってたら良かったのになぁ。
いろいろ惜しい所までは行っているが不甲斐ない。
ライフスタイル関連
- イタリアを旅する準備(語学、歴史や風土等)
- 健康には気をつける
そのほかパラグライダーとか何かやりたい気もするが目標にするよりはその時やりたい事をやりたい、と言っていた。これはサーフィンがそれだろうな。
1のイタリアの旅行準備は進めてはいるが終わってはいないので三角、という所か。
2は年末はちょっと本好きの下剋上をひたすら読んだので崩れたが、全体的には結構頑張れたのでは無いか。 運動も食生活も生活リズムもまぁまぁ正しく日々を送った。 歯医者に定期的に検査に行っているのが少し空いてしまったのは反省点。 引っ越しが多いと行きそびれがちなんだよなぁ。
運動しすぎの可能性はあるが、運動不足では無かったのは良かったと思う。 スクワットや腹筋ローラーのように室内で出来る運動の選択肢が増えて、以前よりも運動不足になりにくくなっている気もする。
総括
プログラムのアウトプットをもう少ししっかりしたい。 ストレッチやギターは良く頑張った。 数学、機械学習、イタリア語などのお勉強はまぁこんなもんかな。