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

データマイニング班5回目は線形回帰モデルの拡張例に、過適合とその対策話

火曜日, 11月 4th, 2014

駆け足気味ですが、データマイニング班5回目で「線形回帰モデルの多項式拡張、過学習とその回避」について大凡終わりました。流れとしては、先週のregression.LinearRegression()をベースに、

  • 入出力における線形性と非線形性と、モデルにおける線形性と非線形性
  • シンプルな線形回帰モデル(Σθx)への多項式モデルの導入(実際にはモデル変更はせずに、事前にデータ拡張してからモデルへ渡す形で実装)
  • モデルの表現力を高める(ここでは多項式の次数を上げる)ことのメリットとデメリット確認
  • 過学習が起こる要因
  • 代表的な回避策
  • ペナルティ項の導入
  • 交差確認によるパラメータ調整

という流れを、コードと結果を例示しながら進めてみました。多分、消化不量多し。ま、それでもこの流れは一通りやりたかったので。

去年は「scikit-learnをツールとして使おう」だけで終わっていたのを、今年は「機械学習が学習するってどういう意味?」「パラメータを推定するってどういうこと?」「どういう問題、工夫があるの?」という事柄について一例は示すぐらいを目指してみました。これで機械学習内部についてやっておきたかった部分は終われたか、な。講義ではなくて学生実験なので、これ以上は深入りしない予定です。ただ、後1,2回ぐらいはscikit-learnの使い方と、データマイニングについての補足は必要か。1回で終われるなら、7週目からアプリケーション検討に入れるか。去年は11/17からアプリケーション検討してたようなので、流れを大きく変えてはいるけど同じぐらいのペースで進んでいるらしい。

データマイニング班4回目は線形回帰モデルの実装を通したnumpy, matplotlib tips

火曜日, 10月 28th, 2014

授業も4週目に突入ということでそろそろ前半戦修了な季節らしいです。予定では半分前の6週目までにやっておきたいことを終わり、7〜8週目に実際にやりたいテーマ設計、9週目からそのテーマに則した開発&実験(=1ヶ月ちょいで1回実験回すのが目標)、というストーリーを想定しているのですが、その通りに進められるかはまだ怪しいな。取りあえず過学習・正則化、scikit-learnのツールとしての使い方、ぐらいは少なくともやる予定です。

データマイニング班4週目はこんな感じで、毎週やってる事例紹介を除くと、4週目のメインは「線形回帰モデル(最小二乗法)の実装演習」で、最小二乗法ベースでパラメータ推定する線形回帰モデルを実装してみよう(numpy)、実際に推定したパラメータと実測値をグラフ描画してみよう(matplotlib)というもの。その周辺知識としてNumpyやPythonのTips、例えばモジュールとして読み込むための方法とかも入ってるので、一通りPython演習にもなっているかと。コードは github に上げても良いんですが、hg2gitみたいなの無いのかなと探しつつ、いくつか試した限りではうまくいかないので放置してます。学科のhgに上げると言う手もあるんだけど。

P.S.
デザインスクールの方は、いくつか協力依頼に進展が見られて来たので、その報告を兼ねて近況報告を出してみました。興味ある人はお早めに!

データマイニング班3回目は線形回帰モデルと最急降下法

火曜日, 10月 21st, 2014

デザインスクールやら科研費やらで後回しになってたデータマイニング班の準備が、授業開始1時間前ぐらいに終了。一昨日の晩から何やるか検討しつつではあったのだけど、あれこれ迷った挙げ句に(学科の教育目標でも掲げている)モデルの話から初めて線形回帰モデルと最急降下法の話をすることに。仮説としてパラメータ混じりの数式、特にここでは一番シンプルな線形和を用意し、そこから損失関数と目的関数を用意して、パラメータを最適化する。変数が少ないなら最小二乗法で十分だけど、より扱いやすい手法として最急降下法を。その合間合間に「そもそもこの文脈におけるモデルって何?」「モデルってどう用意したら良いんだろう?」「モデルの良さってどう図るの?」「パラメータはどう決められそう?」「実測値と推定値との差ってどう表現するの?」と質問攻めしながらやるのがいつものやり方。

若干詰め込み過ぎ感もあるんですが、時間一杯使って具体的に数式解かせながら(偏微分させたりパラメータ指定して実際に求めてみたり)とかやってるので「何となく分かった」ぐらいにはなってるんじゃないかと。後は資料見直したり参考サイト眺めたりしながら理解を深めてくれれば。courseraのMachine Learningだと動画で説明してくれるし。あ、勿論英語ですが。講義ではなくて実験なので、より詳しくとかより一般的にはとかって話をする時間は無さげだし。次回は多分過学習と正則化やれると良いか。

データマイニング班2週目はPython演習と機械学習概観

火曜日, 10月 14th, 2014

こんな感じでやってました。

Python演習はPython独特な話で事例示してから40分ぐらい自己演習。自分で読み書きしないと気付けないこと一杯あるし。課題は取りあえずインタプリタとスクリプトでの違い、print()、リスト、数値演算、フロー制御、、といったあたりの課題を用意。後2週間ぐらいは毎週プログラミング演習時間を取ります。具体的に書いたコードを見るのもやりますが、今の調子だと早くて再来週になりそう。後は標準でついてるpydoctest + pydocな話したぐらい。

機械学習概観は皆で英文読みながら少しずつ解釈・解読して、具体的な分類問題を討論・検討して終了。今回に限らないですが、実験中はがしがし学生に質問当てまくります。その方がお互い楽しいでしょ?

最後にscikit-learnのクイックスタートで全体の流れを掴んでもらえた、かな。

去年は具体的な資料としてはあまり用意していなくて(整理も殆どしてなくて)、scikit-learnベースであちらのドキュメント読みながら勉強するというスタイルだったんですが、今回は整理してある分飲み込みやすいんじゃないかと期待します。来週は何やろうかなー。

2013年度後期データマイニング班の発表会が終了

月曜日, 2月 10th, 2014

m_2014021015384252f873f29652e m_2014021016031952f879b71ef50 m_2014021016203752f87dc553f9f

先日告知してましたが、データマイニング班の発表会が終了。打ち上げは時間的に食事会ではなくお茶会することに。オハコルテなタルトケーキをメインに、ソレイユのサンドで小腹を満たしながら感想聞いたりしてました。ちなみにソレイユのサンドイッチ(エビカツバーガー/バジルチキンサンド/ローストビーフサンド)は1つ200円ですが、どこぞの100円バーガー2個食べるぐらいならこれ一つの方が味も量もソレイユの方が圧倒的に旨くてオススメ。

データマイニング班自体は2013年度から始まった実験班で、前期が1回目、今回で2回目。1回目の反省点or悩んでる点として挙げている

  • Pythonの勉強をチュートリアル丸投げっぱなしはNG(プログラミング苦手な人への指導はやはり必要)。
  • データセット/データ/サンプル/特徴ベクトル等々の用語を整理した説明が不足していた感(相手は機械学習についての知識はゼロ)。
  • 個々にプロジェクト活動し始める時期が遅すぎたかも(1ヶ月+αぐらい)。
  • 機械学習自体については「ツールとして使えるレベル」を想定してましたが、いくつか代表的or基本的なアルゴリズムを勉強&実装する方向とどちらが良いのかは今も悩み中。
  • 同様に「そもそもツールを機械学習に限定していいのか」も少し迷ってます(制約の意味でこれはそのまま続ける予定ですが)。

上記の点は基本的には今回も一緒か。

一応テコ入れはしてて、Pythonプログラミング指導は(前開と比較すると)具体的にタスク/例題設定しながら演習してて、割と力入れてやりました。

また、機械学習周りは問題設定という側面で絞り込んで4回(分類、回帰、クラスタリング、半教師あり)に絞ってみました。前回はもう一つ二つ話(例えばここのshrinkageとか)を盛り込んでましたが、今回はoverfitting(前編 | 後編)とパラメータ調整を加えるだけにしてそれ以外は省略。

という増減により結果として後半5,6週ぐらいでのテーマ設計&開発自体は同じぐらいの時間を取れているのですが、逆に言うと全く増えていないので学生からするとやり足りなかった(時間が足りなさすぎた)というのが大きいっぽい。こちらとしては失敗して構わないから一度最後まで通してやって、細かくブラッシュアップするという方式にしたいのだけど、私の説明不足もあってそこはあまり伝わってないな。学生からすると一つずつの手続きをなるたけ高品質に仕上げて次に進みたいというのがあるようで、その気持ちも理解はできます。が、たかだか数週間しかない学生実験(卒業研究のように平日まるまる使えるわけじゃない)で一つずつ高品質でやるのは限界があるわけで。という側面はもっと相互理解できるようにしないとな。

一方で前回挙げてなかった新しい反省点/気になる点としては、

  • 自然言語処理に拘ってるわけじゃないけど、例題示すぐらいならノイズ処理も含めて代表的な処理をもう少し用意した方が良いのでは。(一方で時間的にはこれ以上盛り込むのも悩ましい)
  • データセット作ることを考えると2名以上のグループで分業しないと消化不良感高過ぎないか。
  • 進化計算班時代のようにアルゴリズムを一つに限定してしまって、その代わりに具体的な中身の理解までする方向にした方が良いのか。
  • 上記同様、進化計算班のように「クライアントと開発者」の役割を導入するべきか。(クライアントとして依頼すること、開発者として聞き出しながら妥当な問題設定に落とし込むこと、の2つを同時進行でやる方式)

という所か。後半2つについては進化計算班でのやり方がそれだけ良かった部分を盛り込んだ方が良さそうだなというお話。進化計算班自体は2005年に初めた実験班でしたが、あれ、一度作り込んでからは大枠弄らずにそのまま続けてたんだよな。それだけ真面目に力入れて作り込んだという話でもあるし、それだけの私自身の理解が深かったから一度でベストな形に落とし込めていたという話でもあるかもしれない。

そろそろ学期末テスト関連が終わり、これからは卒論・修論と入試関連な日々に突入

金曜日, 2月 7th, 2014

週ゼミの方はM2&B4は「うむ、卒論/修論頑張りたまへ」で終わる時期になってきたので(週ゼミの時間は)比較的時間が短くなってきたか。山内くんは大きな修正箇所は残り1章分ぐらいでそろそろ仕上がり。堀川くんは明日には校正1回目の修正が終わる予定(大丈夫か?w)。卒論組みは中間発表+IPSJ予稿をベースに書ける所から卒論様式に合わせて書き直してる所で、「やればできる 卒業論文の書き方」を正座して読んでから取り組むようにという指導(ぉ)。M1な慶留間くんはIPSJの続きでトピック・ラベル生成について複合語の自動化(というかWikipediaタイトル利用)したのと、手動で辞書構築してみたのとでbi-gram&tri-gramでの検証。眺めてみるぐらいの結果だけど、形態素解析器で細切れになる状況と、ある程度眺めの単語として取り出すのとでラベル生成への結果が変わって来るのだけど、変わり方がまだ謎だな。スコアが低いのは確かにヨロシク無さそうだと思えるものなので、先行研究のスコアリング自体は良さそうなのだけど。

実験2/探索アルゴリズム1,2の採点結果を通知。ボーナスポイントや誤ってた分の修正以外に、レポート修正提出してたグループへの対応で今回はどちらも平均点が90点強というとても高い点数に。頑張ったのならそれなりの点数は当然出します。まだ修正提出したいグループがあれば間に合いますので、出すならどうぞー。前にも書きましたが、主題は「今後のレポートでは改善してね」という意味での採点&口頭試問なので、そのままでも別に構いません。

実験4・データマイニング班の発表会は、週明け月曜日にやることになりました。どうなるかはお楽しみ〜。

実験4・データマイニング班最終発表
日時: 2/10(月), 13:00-15:00
場所: 321室(予定)

質疑込み一人15分程度を予定。
・安慶名和人, 過去Tweetのmecab及び機械学習による今期推しアニメの推定
・西銘大喜, fav tweetのクラスタリングによるユーザの興味推定
・安里祐哉, 食べログの口コミ文から分類器を用いたお店紹介
・神谷美希, 小説内の名詞からの主人公判別
・屋良文平, ニコニコ動画における荒らされやすい動画判定
・西村優吾, ツイート内容による所属学年次推定

m_2014020719473952f4b9cb33d5b

昨日のチャンプルーの旨さを覚えているうちに再現頑張ってみ結果。普段よりは美味しいぐらいにはなったんだけど、全く違い過ぎて泣けるw

丁寧に調理&盛りつけされてるのと比較するとまだまだ越えられない壁を感じる

火曜日, 1月 28th, 2014

m_2014012813154652e72ef26cc20 m_2014012813332552e73315b9c61

修論をチェックしたり、姜先生とデートしたり、データマイニング班したりした一日。

修論の方は山内くんの途中版初校を添削中ですが、まだ半分も進んでないな。明日中には1回目の校正を終えたい(実験レポート採点に入りたい)のだけど、終われるか微妙だな。

お昼は延び延びになってた姜先生とのお食事。互いに時間が取れたら〜という話でやってたら年末に行けず年始に行けずとなったので、この日のお昼に集合!と決めてからのランチに。健康的なものというリクエストだったので、久しぶりにVIVACE CAFEへ。何年ぶりか思い出せないぐらい久しぶりですが、相変わらずの美味しさ。なのは良いのだけど、何かトラブルでもあったのか頼んでから(私のものだけ)料理出て来るまでに時間が異常にかかったのがちょっと残念。最初満席で10分ちょい待ったのだけど、何か切らしちゃったのかしらとか思わなくはない。けど、そういう場合はオーダー時に一言言ってくれれば〜。それにしても見た目も味も良かった。

データマイニング班は最終発表に向けての最終チェック。地味にawk周りの書き方に悩んで何がおかしいのか分からなかった(sedで十分だったのでそれで解消)りして楽しかったか。最終発表会は2/10に決定。一週間前にはタイトル報告してもらうので、2/3 or 2/4あたりにタイトル一覧を出せるんじゃないかと。

学内の緋寒桜がそろそろ見頃

火曜日, 1月 21st, 2014

m_2014012109283652ddbf3430448

昨日はセンター試験での代休で一日お休み。珍しくデジカメ欲しいモードになってるので情報ゼロのまま電気屋さんに突撃して来ました。場所がヨロシクなかった説もあるけど、いくつか触った触感としてはその場で衝動買いしたくなるようなものは無かったか。ま、ゆっくり検討しよう。

今日は心臓を捧げに来た口頭試問(これで残り2グループに)と、個別ゼミ。そしてデータマイニング班な一日。レポート採点する予定もあったんだけど結局手つかずのままだな。週末にまとめてやった方が早い気もする。

個別ゼミは山内くんで、実験計画の(恐らく)最終調整と修論ストーリーについて根幹とそこからの枝張りについての話し合い。順番的にはここを先に抑えておくべきなんだろうなとも思いつつ、机上の空論じゃないですが「前進し続けた足跡を振り返る事で気づく」種類のものだとも思ってるので、卒論なり修論なりのタイミングで全体をまとめるというタイミングでがしがし討論するというやり方になってることが多いか。やりたい事を主張してくる学生の場合はなるべくそこを延ばす方向で問題設定したいというのもある。

データマイニング班は、進捗確認に加えてTAな玉城くんによる記事&事例紹介。

紹介した記事は上記で、これらをピックアップしながら自身の研究イントロに繋げるという流れでした。TAにメインに話してもらう時間を1回は設定するようにしているのですが、私自身知らない話だったりすることもあるし、紹介の仕方が勉強になることもある。聞いてる学生も年近い人が紹介する側で話してるというのは刺激になるだろうし。ということで今年の玉城くんのターンは深層学習イントロでした。

m_2014012119241152de4acb91035

自炊の方はポトフに挑戦。用意されたスープで具材煮るだけなので挑戦というほどでもないか。今回旨かったのは圧倒的に肉類(ソーセージ&手羽先)。次が豆腐にジャガイモ。人参はもっと大きめに切った方が良かったか。キャベツはポトフ的には正しいのだろうけど触感の無さ具合が個人的にイマイチ。玉葱は味が良く分からない状態。喉の調子がヨロシクないことが影響しているのかもしれないが。

いつもとは違う環境をどう活用するか、適応できるかも一つのポイント

火曜日, 1月 14th, 2014

m_2014011413053852d4b7929830b m_2014011418481052d507da47464

情報処理学会の原稿チェック、実験2の口頭試問、データマイニング班、個人面談、個別ゼミとあれこれ詰まった一日。

情報処理学会原稿はどうにか全員最終仕上げまでやって締切に間に合えたらしい。ということでIPSJに関しては一段落。次は主に複雑系工学分野における研究連携交流の冬開催が1/25(土)に予定されていて、うちのB4はそっちの準備。M2はそろそろ修論初校を確認したい時期。ということで年度末モードになりつつあります。

実験2の口頭試問は18件中6件が終了。明日の予約が5件あるので、そこで半分は越えるらしい。予約してないグループもあるので、口頭試問はまだもうちょい続くか。

データマイニング班は、進捗確認+αのみ。その場でデバッグできなかった分があったのでそれは(私の)宿題にしました。

沖縄高専との研究交流で、高専側が琉大に来て発表してたので実験メンバにも時間を開けて参加してもらいました。こういう空気を卒研やる前に感じるのは大切だと思うし、学外の人らに触れる機会を用意するのも必要だろうし。そこから県外/国外や企業らへと少しずつ視野を広げていってもらえれば。B1向けにも連絡してあったんだけど、私が参加してた時間帯には誰も見かけなかったのが残念。新しい出会いに遭遇するチャンスは自分から掴まないと。

IPSJ原稿〆切一週間前は七草粥の日

火曜日, 1月 7th, 2014

m_2014010718212052cbc7105a1e2

締切間近ということで研究室メンバのお尻に火がついてます。初校の目標締切が今日で、まずは互いに校正しあってねと伝えているからか具体的に私の方にまでチェック希望が届いたのはまだ玉城くんだけ。他はどんな状況かなー。

実験2の口頭試問は3件目が終了。現時点で予約済みは残り1件(明日)だけだな。期末試験間際になるとまた忙しいだろうから早めにね。

1年次の面談も今日1名終了して、明日も予約1名あり。それが済めば残り7名か。木曜日はこちらの都合もあって休み取ってるので、金曜日の時点で予約無しの人には電凸するか。


データマイニング班、12回目は以下の通り。

進捗確認&コードレビューしつつ、適宜デバッグすることがメインになってるので事前に準備しておくのは殆ど無いですね。今でも「emacsいちいち終了させずに中断した方が作業復帰しやすい」とか言ってますが、そういうのを言うための実験だし。

最終発表は2月上旬になる予定です。