Archive for the ‘データマイニング班’ Category

作業レビュー

水曜日, 11月 29th, 2017

久しぶりのブログ更新。ここ最近は月に数件ぐらいの頻度らしい。ほぼ毎日書いてた頃が既に遠い昔のように感じてるあたり時間の進み具合とのギャップが大きいな。デザインスクールレポート含めて書きたいこともあれこれ溜まってるのだけど、一先ず昨日の日記から。

実験4のデータマイニング班では、「機械学習の基礎を学んでから応用課題に取り組む」というもの。基礎勉強は5週目で終わってて、6〜7週目でテーマ検討してもらってました。8週目(先週)からグループ毎にテーマに取り組むスタイルに変わってて、9週目(今週)から「冒頭で進捗報告(Done/Doing/Todo確認)し、残り時間で作業、最後に進捗整理」という形式になっています。ここまで来るとゼミみたいなものですね。

進捗報告に加えて、実験時間中にやってることが「作業レビュー」。グループから誰か一人がプロジェクタ(大型モニタ)に接続した状態で作業してもらい、そこで気づいたことにコメントするというもの。ペアプロみたいなものでもあるけど、話しながらという訳でもなく、基本的には、作業してる風景見て何してるかを想像し、「ooしたいならxxすると良いのでは?」といったアドバイスをしてることが多いかも。普通にペアプロ形式でも良いし、相談メインでやってくれても良いんですが、普段の作業風景自体に対するアドバイスをすることに重きを置いてるつもりです。

この作業レビューも昔から続けてて、例年通りではありますが「作業風景からやろうとしていることを想像できない状況」というケースがあって。多くの場合は「プログラミング的な思考」に慣れてない学生かも。そういうのを発掘するためにやってるつもりでもあるし、レベルに応じたアドバイスをしたいし、話するだけでもなく手を動かしてもらうのが「実験」でもあるし、といったつもりで作業レビューをしてます。

ま、その時間を有意義に使ってもらえるならナニしても良いんですが。

研究室でもこれをやろうかなぁ。

公開してなんぼ

火曜日, 2月 14th, 2017

4グループの発表タイトルはこんな感じ。成果物は1週間以内にwikiで公開予定です。どうしても「第三者が読むにしてはドキュメント不足」となるケースが多いですが、それでも公開に向けて努力すること含めて「一連の計算機実験のために必要なプロセス」だと考えているので、そうしています。

データマイニング班の前は進化計算班という名前で遺伝的アルゴリズム中心にやってました。こちらは一部のプロジェクトが後輩に引き継がれてバージョンアップされたり、自身の卒論予備実験として継続したり、一部のプロジェクトが授業用デモに採択されたりと、いろいろおもしろい影響がありました。そんなこともあるので、公開してなんぼなんだよね。

実験4(データマイニング班)発表会

火曜日, 2月 7th, 2017

以下の日程で3年次の実験4(データマイニング班)の発表会を実施します。興味のある人は聴講参加どうぞ〜。

実験4(データマイニング班)発表会

日時: 2/14(火), 14:40-
場所: 地創棟508

<プログラム> *時間は目安です
14:40-15:00, 発表G1「Youtuberのための動画再生回数予測」
15:00-15:20, 発表G2「Twitterによる猫飼っているか推定」
15:20-15:40, 発表G3「機械学習によるcookpadのレシピのつくれぽ数推定」
15:40-16:00, 発表G4「Amazonレビューの善悪判定」

16:00-16:20, 振り返り(自己評価、グループ評価)
16:20-, お茶会的な何か

コードレビュー

火曜日, 1月 17th, 2017

1年次のプログラミング2のレポート採点を通した(レポートと)コードレビューや、3年次の実験4・データマイニング班でのグループ開発してるリポジトリのコードレビューをしたり。

1年次の方は、10月〜12月〆切のレポート課題5件分を通して採点してて、多くの学生に共通するコメントはこんな感じ。インデントがぐちゃぐちゃとか変数名が1文字とかありがちなんですが、最初の2,3回目頃までと後半4,5回目のコードとで全体的に綺麗さが改善してます。こういう風に成長を実感できるのは嬉しい。要因として一番大きいのはIDE(IntelliJ)使い始めたことなのかしら。それでも例外はいて、何でこういう風にブレース書くのだろうとか謎なコードはなくならないですね。ま、それでも1年次だし。「読みさすさを気にしないなら機械語書け」と言っときました(ぉぃ)。

3年次の方は流石に1年次と比べると大分マシなんですが、具体的な課題に取り組んでるだけあってマジックナンバー避けろみたいなコメントが多くなります。リンク先は去年の例ですが、今年も大差はなかったかな。ただし、現時点で「コミットログがない学生」もいて、変なコードを書く学生についてのレビューがそもそも実施できてないんじゃないか説はあるな。

1日に4コマ授業のある曜日の始まり

火曜日, 10月 4th, 2016

自業自得なところもあるんですが、後期は


という塩梅に。デフォルトで週5コマ。実験2がある週は7コマ。本当は実験4を前期(実験3)に回したかったのですが、実験3が別の授業と被ってて実質無理だったために後期にやることに。しくしく。

上記の内、プログラミング2+ソフトウェア演習2が火曜日の1,2限目にあって、4,5時限目に実験4という塩梅。集中してる分「他のことをやる余裕がない曜日」と決めることでスケジュール的には調整しやすいのですが、授業4コマってやっぱり疲れます。しゃべりっぱなしという訳でもないんだけど。


プログラミング2の1週目は2コマ連続でのC言語入門。2コマで構造体までやったのだけど、もうちょっとボリューム増やしても大丈夫そうな感じがしました。プログラミング1の特別対応について、これから再提出したいという学生が1,2名。それならそうだと自分から行動してくれ〜。


実験4の1週目は、2コマでUNIX哲学機械学習概観。あまり喋るつもり無かったのですが、事例紹介してるとあれもこれもと話ししたくなっちゃうな。もっとも、喋るだけではなく質問当てまくるので学生側も暇してる余裕はなさげ。喋りも早口気味だし。(プログラミング2では早口にならないよう注意してみてるけど、専門に近くなるとどうしても喋りたくなってしまう。。)

(残タスクあるけど)データマイニング班終了

木曜日, 2月 11th, 2016

買い出しで迷った&混んでたおかげで予定より1時間遅れての開始になってしまいましたが、データマイニング班の成果報告会が終わりました。実験班メンバ以外の参加者も来てくれてたので実験班12名+院生(TA)1名+教員1名+他2名の合計15名による報告会となりました。どのグループも初めて聞くであろう内容に対して真っ当な質問を貰えてたということ自体が、それなりの内容と質になっていたということの客観的評価かなと思います。それぐらいにはまじめに取り組んでくれてたし、やったことをうまく伝えようと努力した跡を見ることができました。3年次の実験としては文句なしです。

残タスクは、(1)自己評価、(2)授業評価アンケート、(3)成果物一式の公開、の3点セット。美味しいもの食べたことだし、最後のひと踏ん張り頑張ってください。

多くの発表に共通してた指摘事項は以下のとおり。

  • 発表スライドに(一般公開するには)不適切なコンテンツが入っている。適度に掴みを取るのは発表として良い方法ではあるけど、適切な方法でやろう。(今回のケースだと、数枚の画像ぐらいなら出典明示ぐらいでOKかなとは思うが、それで済みそうにないグループもあった)
  • 凡例の無い/軸説明のない/説明文のフォントサイズが小さすぎて読めないグラフがあった。
  • 失敗事例分析が甘い(殆どのグループでやっていない)。例えば何かの評価軸でスコアを出すのは良いけど、スコアを下げた要因分析(e.g., 掘り下げ考察、細分化検討)がほとんどのやられていない。(一部はやってるところもあって、今後の課題として申し送り事項に整理されてたのはとても良かった)

実験方法で説明している「最終的には、(d)機械学習をツールとして用いたシミュレーションを通し、プログラミング技術・問題設定・評価・考察といった一連の計算機実験のために必要なプロセスを体験してもらうことを目的とする。」における考察の欠落が気になるなというところですが、面と向かってそのことを指摘するというので十分かなとも思います。

P.S.
これまで実験3,4では「実験報告書(レポート)」の作成はさせていないのだけど、ここで割りと真面目に書かせて校正指導までする、というのをやるべきかしら。ネックは、(1)年度末のタイミングだと卒論&修論でそれどころなじゃない時期にタスクを増やしてしまうこと(前期ならやれそうな気も)、(2)作文にかなり時間を割くことになって「実験」の時間が減ってしまうこと(これは仕方ないというか本来はあるべきな気がするな)。

(データマイニング班) コードレビュー終了

木曜日, 2月 4th, 2016

つかの間の晴れ間が。いいタイミング(昼食で食堂行こうと思ったタイミング)で晴れ間が少し広がったので、(ほんの数分)少し足伸ばして一人撮影大会してました。やっぱり日光+青空の下だとより映えるなぁ。もっと接写したいんだけど、今回ぐらいでもピンぼけ気味だな。やっぱりそれなりのカメラが必要か。


先週(2/2)の時点で近いうちに「コードレビューするぞー。」と伝えていたにも関わらずリポジトリに殆どコミットがないorゼロな学生がいて。しくしく。作業レビューした限りではそれなりには書いてたからローカルで作業してるのは知ってるんですが、ちゃんとバージョン管理使えよ!

コメントを英語で書いてるグループは初めて見ました。エライ。

以下、比較的共通してたツッコミ一覧。

  • まず何を見たら良いのかわからない。(トップ階層にtxtファイルありすぎ、整理されていない。どれがドキュメントかわからない)
  • 実験再現手順がわからない。
  • __pycache__ は自動生成されるのでリポジトリには含めない方が良い。(.hgignore使おう)
  • 関数定義の前後、ブロックの後は空行を入れよう。
  • 余程の理由がない限りglobal 利用は避けよう。多くの場合は各関数の引数として渡すか、クラス変数として設計し直せるはず。
  • ファイルや関数の説明は docstring / sphinx / doxygen 形式で書こう。
  • 関数上部とかではなく、コード中にコメント書くのは最小限にとどめよう。特に「コードの後ろにコメント」が大量にあると、コードが読みにくくなります。
  • ループに関連する変数の初期化はループの直前でやろう。離れすぎると意図がわかりにくくなります。
  • 関数定義を挟む形で、前後にコードを書くのは辞めよう。本来連続して処理すべきコードが離れてると読みにくい。
  • クラス名・関数名・変数名から何をするか想像できないので、適切な名称付けよう。
  • マジックナンバーを含め、ハードコーディングはできるだけ避けよう。コードを再利用性しづらいし、利用しようとした時点で直接コード書き直しの手間が入るので、トラブルのもとになる。
  • readlines() は避けよう。対象が大きすぎるとメモリ不足で死ぬので、readline()で1行ずつ処理するように書きなおしたほうが良い。
  • open() は、その後で close() し忘れることがあるので with 構文使うとベター。
  • 不必要に変数を増やさないようにしよう。対象が長すぎて省略名で繰り返し使いたいとか理由があるなら良いが、不必要に変数増やすとそれだけ読みにくくand/orバグの温床になる。
  • キャストするだけの関数は逆にコード増えてしまうので辞めよう。それ以外にも処理あるならわかる。
  • インデントを統一しよう。

実験4もそろそろ佳境

火曜日, 1月 26th, 2016

実験4は来週が15回目で、それが終わると残りは期末試験期間。実質的にはもう残り1週間で仕上げることになります。例年の感じだと「15週目までやりこんで、期末試験期間は座学に集中して、その期間中にプレゼン準備、成果報告会が終わってからドキュメント整理し始める」パターンが多いかな。

ここ数週間は個別にコードレビューというか作業レビュー的なサムシングをやってました。ペアプロでもなくて、私に対して説明してもらいながら作業してもらう形で、相談あれば聞くし、そうでなくても気づいたことがあれば突っ込むというスタイル。コードはかけるけど説明できないという人もいるか。いろんな作業スタイルがあって面白いです。デバッグが苦手な人に共通してるのは、問題を細分化して確かめようとしてないか、その方法(細分化する方法)に気づかないってところかな。

P.S.
明日はレキサスさんのインターンシップ説明会&企業説明会があります。県内では割と面白い上に技術面でも頑張ってるところなので、知らない人は参加したほうが良いんじゃないかと。学外にも目を向けよう。教員的には機会提供するぐらいしかできません。機会をどう活かすかはみなさん次第です。

作業をパブリックビューイングで解説してもらう

火曜日, 1月 12th, 2016

データマイニンング班も残り数週間ということでそろそろ追い込み(成果物仕上げ)を見据えて残作業をやり終える時期になりました。新しい情報は成果物仕上げに関する補足説明ぐらいで、それもメールで送って終わり。進捗と今日のToDoを確認した後は、グループごとに「説明しながら作業してもらう」ことで相談しながら進めたり、気になることに突っ込んだり、コード・レビューしたり。これを1回あたり一人30分程度。全部で4グループ*3人いるので毎週4人ずつやれば3週間で全員一回は見れることになるな。

あ、一度言ってみたい指導「廊下に立ってなさい!」を達成しました。祝。


スタートアップチャンプルーなるイベントがあるらしい。話の発端としてはデザインスクールでお世話になった沖縄市の方と何度か「新設する市立図書館」に絡んだ話でお会いしてるのですが、その一部の話としてスタートアップカフェのような拠点を設けたいという話があって。単に創業に興味ある人だけじゃなく裾野開拓しながらいろんな人をマッチングする場にもしたいということで、(例えば教育なりで)大学としても何か連携取れないかという話が。それに関わってる民間企業の方が、今回こういうイベントありますよということで話が届きました。何がどうなるかはわかりませんが、都合が合えば参加したい。


数日前からOS 10.11にアップグレードして使ってますが、標準IMEのライブ変換は重くなりがちな上に変な変換が多くて泣ける。前のことえりの方がよかった気もする。。変換の仕方の問題ではあるのだけど、ことえりに慣れてた(長文変換せずに短く変換する癖ついてる)のがネックか。少しはこのライブ変換にも慣れてきたけど、重くなりがち&ちょくちょくある変換ミスが痛い。

仕事始め

火曜日, 1月 5th, 2016

時間指定のあるタスクはデータマイニング班と、その時間帯だと困ると言っても入れられてしまった会議ぐらいで、それ以外は年末年始に溜まってた事務仕事しつつIPSJ全国大会の予稿チェックするぐらいのスロースタートな日でした。

実験の方はそろそろ成果物仕上げを見据えて計画立てようというお話と、一部のグループが取り組もうとしてる割とコスト大きめなタスクへのTips話したぐらいか。厳密には違うけど一種のベクトル量子化に近いニーズともいえるタスクで、特徴抽出から手をつけようというお話。

予稿コメントは直接口で言った方が伝わる部分もあるかなと、実験終了後に研究室除いてみたものの言いたい人はきてないかタイミング悪かったらしい。ま、仕方ない。

学科のパスワード周りで(個人的に)トラブル起きてたんですが、どうやらある条件に引っ掛かった人だけにおきてた症状らしい。みんな大丈夫かー。