brly.github.io

29 January 2017 : 2016年 振り返り

Poem
Reading
Programming

今年も振り返り。既に一月経過しそうだけれど。

食事

去年は個人的に「食」に注力した1年だった。 自炊のレパートリーを増やすために、主婦向けの初心者向け料理本を購入した。 頻度としては相変わらずオムライスが多い。ついで焼き魚、ハンバーグ、麻婆豆腐、豚汁とか。

野菜を冷蔵保存することを覚えたので、前よりもバリエーションが増えつつ食費を抑えられるようになった気がする。

あとは食洗機があれば。

仕事

総合的に、去年と気持ちはあまり変わらない。

いろいろやっていた。 相変わらずWebぽくない案件が多い. C++ を書く機会が一番多かった気がする。 かといって、特に C++ に詳しくなれた気もしないけれど。 相変わらず労働環境も良い。

プログラミング

毎年、一つ触ったことのないプログラミング言語をさわることをやっていて、Rust を頑張ろうとしたけど 難しかったので挫折していたところに、Coursera で Octave をさわる機会があったので、今年はこれでよいか、 ということで Octave で。

普通の手続き型チックに書くことも出来るけど、それだと実行速度に難ありで、行列で処理させる(Coursera ではベクトル化と読んでいた) ように記述するのが難しかった。

  • 30日でできる!OS自作入門
    • 読んでいる途中。半分くらいまで読んだ。1日目分の作業で、Virtual Box を使って Hello, world 出来たのが面白かった。 今まで深くやってこなかった部分なので、面白い。汎用レジスタ以外のレジスタ(タスクレジスタ、セグメントレジスタ)の使い方とか コンピュータアーキテクチャ本などで抽象的に書かれていた事象である、コンテキストスイッチの仕組みや割り込みの実際の仕組みなど、色々わかって面白い。

あんまり本を読まなかった。

Coursera

初めてオンライン授業をまともに使った。Machine Learning しかやってないけど。

よく出来ていた。システムが、というよりは動画とか定期的に入るミニテストの質がよかった。

趣味

iPad を買って、ついでに Apple Pencil も買ったので、気が向いたときに絵を描いたりするようになった。

下のは線画だけ書いて PaintsChainer で遊んでた様子。

目標

去年は Rust を挫折したので、今年は Rust でなにか書けるようになることをとりあえず目標にする。

15 October 2016 : 10/15

None

友人の結婚式に参加してきた。

地元のそこそこ歴史ある結婚式場で、自分の両親も同じ場所で式を挙げたらしい。 披露宴から呼ばれる結婚式は2度目。

先月の、たまの休日を割いて作った、新郎の友人代表余興映像が流れたが、 お酒の入っている席ということもあって、期待していたよりも反応は良かった。 こういった余興なりはお酒が入る前に流されるものと思っていたけれど、そういうことはなく、 完全に披露宴の中盤で流されることとなった。前半で流れる場合はよりシビアであったことが期待される。

式の2次会後、タクシーを使って実家まで帰ったのだが、よく喋る運転手に当たった。 運転手曰く、式当日は土曜日、大安であり、結婚式がよく行われたらしく、その関係の人々を 今日は良く運んでおり、自分もそのうちの一人だということを言っていた。 大安のためか結婚式が多かったが、このご時世では結婚式をあげること自体が減少傾向にあるらしく、 知っている結婚式場もいくつか閉じてしまったらしい、と話す。 そうして、結婚式ではなく、葬式や法事の仕事も今日は沢山あり、その仕事は結婚式に比べ増加傾向にあることを 感じている、と話していた。また、葬式の場合にはお坊さんを運ぶために仕事が入る、とも言っていた。

結婚式の話から法事の話に飛ぶのが、なんだか脈絡がない感じがして面白かったので書いておく。

26 September 2016 : 9/26

None

結婚式のメッセージ動画の作成中、編集作業上、録音した自分の声を聞かねばならないのだが 思っていたらより精神力を削られないな、と思った。

のだが、そこそこ良く出来たなと思った録音を聞くとやっぱりギャップでなんとも言えない気持ちになるので やっぱり自分の声を聴くのは一般的な作業ではないと感じた。

23 September 2016 : 9/23

None

まだまだ暑いんじゃないかと思っていたけれど寒い。 最近ようやく使わなくなって部屋から廊下に出したと思っていたオイルヒーターをもう使うのかと思った。

寒い原因はここのところの台風連打による雨の日が続いているせいだと思われる。 洗濯が出来ないのでめんどくさい。乾燥機付き洗濯機がほしい。

こう天気が悪いと、あんまり物事のやる気も出ず、積まれているタスクである友人の結婚式披露宴向け動画の編集作業も進まない。 編集作業というと既に素材は集まっているように聞こえるが、編集作業は後々の予定であり、 適当なオープンエンドをまず自分が作り、そこに同じ披露宴に出席する友人から送られてくるであろう 友人が出演しているメッセージビデオのような動画をつなぎ合わせ、最後に「良い感じ」に編集するというものなのだが。

動画編集が別に得意なわけではないのだが、引き受けてしまったのでそこそこに頑張るつもりではある。今度の休みから。

21 September 2016 : Coursera machine learning

Coursera
ML
Octave

別にこの日付に終わらせたわけではないのだが、Coursera の Andrew Ng という先生が教えてくれる Machine learning のネット授業をクリアした。

Unlock certificate と表示されているが、お金を払えば修了証がもらえるらしく linkedin とかに貼ってアピール出来るらしい。

修了証はお金がかかるのだが、それが79ドルであり、若干高いなということと、授業毎の課題毎に毎回何かをするのがめんどくさいのでやらなかった。

そもそもあんまりお金をかけるつもりは無かったし。

授業の開始、終了させた日付は忘れてしまった。開始したとき、既に最初の課題の deadline が 2 週間かそこらに迫っており、毎週毎週課題に追われていた記憶がある。

序盤 (week 1 ~ 4)

とにかく、最急降下法の印象しかない。各課題では fmincg (fminuc) を使い、コスト関数と微分を提供することで 損失が最小となるパラメータを求めていた。線形回帰、ロジスティック回帰の印象。 今見返してみると、Octave のチュートリアルなども行われていたようだ。まぁそりゃそうか。

ちなみに Octave は初めて利用した。慣れてくると使いやすい。

課題中では微分項などのパラメータを計算するために和を取ることがあり、 和の計算はいわゆる for 文を利用したくなるのだが、Octave では for よりもベクトル化して計算するほうが高速に行われるため、 それを意識する必要があった。慣れるまではパズルのような印象だった。別にベクトル化しなくても正しい値は計算されるのだが、 いかんせん処理が遅いので、ベクトル化が必要なシーンは多くあったようなイメージだった。

あくまで個人的な感想だが、この課題中における octave 上の計算のベクトル化が授業を通して一番難しかった。

それくらい、授業内ではなるべく平易な説明となるように Andrew 先生は努めていた。 特に、最初の最初ではパソコン自体の操作が不慣れな人向けへの配慮も見られた。 それでも、段階を追うごとに terminal 上での Octave の操作が必要となるので、 ターミナル操作が無理、という人は脱落してしまうだろうけれども…。それでも、とにかく平易になるように努めている。

中盤 (week 5 ~ 8)

誤差逆伝播法、低バイアス高バリアンス、SVM、教師なし学習(Kmeans と PCA)。 割と知っている分野であったが、個人的にためになったのは week 6 の低バイアス高バリアンスの週だった。 集めるべきデータがあつまり、適用するアルゴリズムの選定、そしてアルゴリズムの中身まで理解していたとしても、 実際学習を行わせてみて、それがうまく行けばよいがうまくいかない場合にはうまく動くようにどうにかしなければならない。 その際の一般的取っ掛かりを week 6 では与えてくれた。

この頃は課題中のメモもいくつかとってあり、抜粋してみると

  • SVM の課題、決定境界を良くするような C / σを選べという問題があるが OSX 上でうまくプロットされずパラメータを全探索して対応した
  • PCA の課題、共分散行列を作ったら終わってしまった

課題の難易度にムラがあったようだ。

終盤 (week 9 ~ 11)

外れ値検出、協調フィルタリング、確率的勾配降下法、OCR。

外れ値検出で初めて分布が導入された。

強調フィルタリングは推薦システムの構築を例として説明された。あんまりよく知らなかったのでためになった。

week 10 では確率的勾配降下法がメインで、データ量が大きな場合には微分項の和の計算が遅すぎるために導入されたのだ、と説明されている。

OCR では、OCR システムの構築を例とし、機械学習の結果をパイプラインのように繋いでいって最終的に結果を出力するものを作成する。 また、それらシステムの改善のための ceiling analysis についても説明された。これも知らなかったのでためになった。

終盤2週はプログラム課題がなくてかなり軽かった、というかやった実感がないのだが。

感想

やっぱり、課題をやった週の方が記憶に残っている。 また課題をこなしていても、忙しかったので実装の方を急いでおりそこまで理解が出来なかったものもある。 それでも、とりあえず検索して答えを見つけるようなことはせずに出来たので、達成感はあった。

これ、大学生中にやっておけばよかったと思った。

あと、この Andrew 先生の他の授業があれば受けてみたいとも思ったのだが、多分なさそう。