今週のCoursera(〜6/2)
(see also:先週のCoursera)
今週からどのビデオを見たか、どの演習をやったか等をGoogle Spreadsheet上でチェックしながら進めています。このシートを見ればまあどの辺りにいるのか分かりますが
.@naoya_t さんのずっとやってらっしゃる #coursera の進捗レポートがとても楽しそう。
— ラゴンヌさん (@kinaba) 6月 1, 2012
という声もありますし時々の振り返りも重要かと思うので今週のCourseraメモ行ってみます。
参加しているクラス
Machine Learning (Andrew Ng, Stanford) - 4/23開講。現在第7週
- 機械学習システムの設計の指針
- 闇雲にデータを大量に集めれば良いってものでもない
- 「そのデータがあれば専門家は自信をもってクラス分類できるのか?」
- 「大量に訓練データを用意できるか?」
- さくっと(汚くても良いので)1発目の実装を。そして学習曲線取ってみてbias/varianceを見る。分布の偏ったクラス分類(99%:1%みたいな)にはprecision/recallとF1スコアが効く。
- 闇雲にデータを大量に集めれば良いってものでもない
- そして期待のサポートベクタマシン(SVM)
- 「最大マージン分類器」
- 原理はPRML(下巻の最初)でもちゃんと説明されてるわけだが
- カーネルの説明。超わかりやすかった。cf.
@_handyfox 「オレオレ距離空間」(あくまで個人的感想であり所属する組織及びPRMLとは一切関係ありません)
— Takuya Minagawaさん (@takmin) 5月 29, 2012 - Ng先生のビデオ見て色々と腑に落ちた。分かりやすい。というか、すっと分かるための取っ掛かりの与え方がうまい。
- 最後に説明してる全ての訓練データ点にカーネル適用して素性として使うのってNadaraya-Watson modelか
- Programming Assignment
- これで、講義ビデオと課題の消化がやっと追いついた
Machine Learningコースの講義ビデオと復習クイズとプログラミング演習のいま出てる分を全部消化した(追いついた)。SVM面白いなー。PRMLの該当箇所を開いてみると以前より断然面白くなってる感(※効果には個人差があります) #coursera
— naoya tさん (@naoya_t) 5月 29, 2012
Compilers (Alex Aiken, Stanford) - 4/23開講; 5/10参戦。現在第6週
- Midterm(中間試験)がある
- Week 4までの講義の内容から
- といってもこれまでの講義ビデオの半分ぐらいしかまだ消化できてない
- Midtermの期限 (5/28月 15:59:00 JST) までに試験範囲の未消化ビデオを見て、Midtermも受けないと
- やばい時間足りない
- 1.25〜1.5倍速再生乱用。と言っても英語字幕付けれるしメモ取りたいところで止めれるし分からないところは巻き戻せるから無問題
- handleとかviable prefixとかの辺りってなんか説明が曖昧で難儀。purple dragon bookでもその辺りで右往左往(right-/leftmost derivationとかright-/left sentencial formとか的な)した記憶
- 試験範囲のQuizとDeduceItもやっとこう(同じ問題出るかもしれないし)
- 15:59まであと残り1時間半… というところでMidtermを受けた。
- 2時間半、といってもいつもの復習Quizと同じ形式なので正味20分もあれば解ける。但しいつもと違うのは一回しか受けられないこと。
- 投了。
- 採点すぐに出た。7.4 / 9 …なにそれそんなに間違ってるのかorz
- Q3. ルールが6つあって文字列があってどのルールでacceptされるかという問題。全ルールが定義されていると思ってなかった(まあ問題文で言ってないし)ので「この文字列をacceptするにはどれとどれを使えば良いか」問題を解いてた。(-0.428571)
- Q5.「This language produces exactly 2 strings of length 2.」をNOにした。確かに長さ2の文字列は2つacceptするが、他にもacceptするものがあるから。問題文がambiguous (-0.1666)
- 講義で言ってたままの実装の再帰降下パーサでproductionを数えるとちゃんと奥までバックトラックできてないので違う数字を返す (-1.0)
- あまり良い問題セットとは思えない
- まあいい。先へ進もう
- Programming Assignment 3に着手
- COOL言語の型チェックとかSemantic analysisとか。
- 型チェックはASTに対し何をする作業なのか講義ビデオで説明されているものの、用意されているスタブコードを読み解いて自分がやるべき差分を見つけ出すのがちょっとハードル高いような。
- まあこれはハッキング課題なのだなと思って進めた
Programming Assignment 3 (Semantic Analysis & Type Checking): テストケース74個のうちとりあえず37個取れたところで1度目の投稿。割と頑張ってるので学生じゃないけど単位欲しい #coursera #compilers
— naoya tさん (@naoya_t) 5月 31, 2012
67 / 74まで来た。あとメンバ関数のオーバーライド時の引数型チェックとかそういう辺り #coursera #compilers
— naoya tさん (@naoya_t) 5月 31, 2012
72/74まで来た #coursera #compilers #PA3
— naoya tさん (@naoya_t) 6月 1, 2012
とりあえず74/74取れたけど最後に取った1つはテストケースしか通らないと思うのでもうちょい考える #coursera #compilers #PA3
— naoya tさん (@naoya_t) 6月 1, 2012
CompilersクラスのCool言語のSELF_TYPEの仕様が厄介で型推論が面倒(semantic analyserでチートっぽい実装をしてた個所が1つあったけれど正攻法で74/74取れるようになった) #coursera #compilers
— naoya tさん (@naoya_t) 6月 1, 2012
-
- SELF_TYPEの仕様が(仕様書にちゃんと書いてあるっちゃあるけど)厄介で、最初に書き進めていた型チェッカでは74項目のチェックのうち1つだけどうしても通らないものがあって、1箇所採点サンプルしか通らないチート的コードを書いて最初の74点。
- ちなみにCompilersクラスのプログラミング課題の採点は、(VirtualBox上で)プロジェクトをビルドして、74本のテストを行う採点スクリプト(perl)を走らせて、スクリプトが吐き出したハッシュ文字列をCourseraのwebフォームに貼り付けることで採点される仕組み。COOL言語で記述されたテストコードと、それに対する模範解答は与えられている。(この模範解答なしにはそもそもどういう文言のエラーメッセージを吐かないと通らないのか分からない。いわばこれらが仕様書である)
- しかし、これでは気持ち悪い。コード提出求められたら(先生が)泣く。
- SELF_TYPE問題に対処するため、型を保持するデータ構造にちょっと手を加えて途中から(40点ぐらいから)やり直した。今度はチートなしで74点行けた。採点スクリプトが吐くハッシュコードはチート込み74点も正攻法の74点も同じだった。
- というわけで今回は期限2週間前に完了 (74.00/74)
Automata (Jeffrey Ullman, Stanford) - 4/23開講。全6週。
- Programming Assignment を覗いてみたら簡単そうだったので、締め切り6/12だけど先に手を付けた。実装言語はPython/Javaで、もちろんPythonを選択。
- 1つ目は正規言語のε-NFA化。先日来Schemeで書いてた物のごくごく一部にすぎない。こんなのでいいの?ってくらい簡単な課題。(てかCompilersの課題がでかすぎる)
- 2つ目はCYKアルゴリズムの実装。
@dplusplus 黒田標準形とかMcNaughton-山田法とかCock-Younger-嵩法とか日常的に使っています!
— ラゴンヌさん (@kinaba) 5月 31, 2012
- 締め切りの迫った復習クイズを消化。消化に必要なところからビデオを消化。(まだ1本20分ぐらいの未消化ビデオが5本ぐらいある)
- Ullman先生のビデオって1本1本が長めだし先生の英語の抑揚が苦手だしちょっと億劫
Ullman先生の英語の抑揚が(心理的な意味で)割と苦手なので、1.25倍速にするなどして緩和している #coursera #automata
— naoya tさん (@naoya_t) 6月 1, 2012
- 6/11〜18にFinal Examがあるのでそれまでに全部見ないと><
Computer Vision:The Fundamentals (Jitendra Malik, UCB) - 4/23開講; 5/25参戦
- 提出期限のある課題が(今のところ)ない、という事もあってまだIntroしか見てないまま
*1:Ullman先生の英語、も含め