Archive for the ‘日記’ Category

ターミナル作業は半数近くがしどろもどろ?

木曜日, 6月 1st, 2017

プログラミング1の7週目が終わりました。

先週はThonnyを使ったデバッグ実行を補助教材として使いつつスタックフレームの話。ユニットテスト(doctest)もやったのですが途中でタイムオーバー。

今週は先週やり損ねた部分からということでユニットテストにモジュールの話。そこはすぐ終わるだろうと思いきや、「ソースダウンロードして、ターミナルでダウンロードしたディレクトリに移動する」だけで手間取る学生多数(半数近い)。意図的にcdコマンド使う説明省いて「移動する」ように指示だけしてみたのですが、駄目な学生多いらしい。しくしく。

先週の残り物やっつけるだけでそこそこ時間かかってしまい、今日の本題・再帰関数の話&PyCharmでのデバッグ実行・スタックフレーム移動のデモ&演習し終えるだけで90分過ぎてしまいました。去年と比較してえらく時間かかってるな。でも、それだけ時間かけたので、これで「デバッグ実行知らない」人はいなくなったものと期待します!

デバッガ利用は去年もやったのだけど、前期には1回だけで軽く流したからか後期になってから「もっと早く教えてほしかった」という学生が多くて。今回はその便利さを印象づけるために例題&デモ&演習を増やしました。

もう前期はデバッグ実行やらないぞー。

P.S.
出欠代わりに書いて貰った「授業に関するコメント」では、「ついていけない。しったむずい。難しい。課題レポートが大変です」といったネガティブなコメントが4件。「今の授業がとても楽しいのでそのままに感じでお願いします。他の資料などを見て先に進むことはあまりやらないほうがいいでしょうか?プログラミングのスキルを向上させる参考書はありますか」といったポジティブなコメントが3件。つまり今のペースで良いわけだな(ぉ)

ゼミという形で集まってやることの利点を活かして欲しい

水曜日, 5月 31st, 2017

複雑研全体ゼミの輪読4回目が終わりました。今日は5.4節〜6.2節あたりの話。前回までで順伝搬・逆伝搬を計算グラフで理解するところを終え、今回はそれを元に(3層NNとか2層NNとか呼ばれることが多い)階層型NNの実装。活性化関数やパラメータ更新、重み初期値の影響といったところをざっと眺めるところまで。

大分ペース早い気がするけどゼミ中には質問が少なめな印象。なので私が聞くということになりがちですが、質問する人はするし、ま、良いか。(あまり良くない)

P.S.
ヲタ芸サークル(サイリウムダンス部)の顧問になるらしいです。よろしくお願いします。ちなみに落研(落語研究会)の顧問もしてますが、たまに顧問チェックが必要なタスクしてるだけで私自身は何もしてませんw

(FYI) sample codes on the book: Python Machine Learning

火曜日, 5月 30th, 2017

If you want try to sample codes, goto github repository: https://github.com/rasbt/python-machine-learning-book .
You see *.ipynb files in code directory. These *.ipynb files must be open Jupyter notebook that is a kind of notebook app running on web browser. It can be installe via pip/conda easily. e.g., https://github.com/rasbt/python-machine-learning-book/blob/master/code/ch01/README.md .

If you are a Python beginner, maybe Thonny http://thonny.org is useful for understandings. Thonny supports “Step through expression evaluation” under debugging mode.

TPOに応じた学び方をできるとベター

月曜日, 5月 29th, 2017

「最適な学び方」というのはなかなかありませんが、より良いアプローチがあるならそれを選択するに越したことはないです。社会人向けAI人材育成という話が出てますが、いわゆる(大学の)学生と社会人とでは事前知識や使える時間等様々な点で違いがあることを踏まえると、学生向けにカスタマイズされてる授業が社会人向けにベターかどうかは「?」なところがあるな、と。

大学のカリキュラムというのは、2個学期制の大学なら1年間に前期後期で4年間通して8個学期で卒業要件を満たすように設計されています。2単位の授業だと、1個学期で「授業15週+学期末テストの16週」に渡り、毎週90分授業を受講し続けます。自習時間を除くと、1週間あたり1科目90分しかありません。ただし平均10科目程度を同時に受講します。達成したい明確な目標があるなら突き進めば良いはずですが、大学の一般的なカリキュラムではそう設計されていません。

大学のカリキュラムはデメリットしか無いのかというとそうではなく、「様々な必修科目を履修することで視野を広げ、それらを融合することで『新たな一歩』を踏み出しやすくする」という狙いがあります。うちの学科で例を挙げると、プログラミングだけじゃなくアルゴリズムやOSを学ぶことで実装上の最適化や工夫をしたり、線形代数や確率統計・微積といった数学も学ぶことで機械学習の中身を理解できる基礎を築いたり。必ずしも授業で提供していなかったコンテンツに対しても取り組む力を身に着けさせるために、このような設計を取っています。

これに対して今の世の中は、書籍に限らずブログなりMOOCsなり、有料無料を問わず教材が溢れています。Pythonならこんな感じで目的に応じて教材を選ぶぐらい、選択肢が数多くあります。例えば、TensorFlow Tutorialsをやれる環境構築さえできれば「機械学習使って画像認識やったぜ!」とかやれるわけです。具体的な目標があるなら、こういう「一点突破型でやってみて、わからないところを補う」アプローチが良いんじゃないかなと想像します。問題は、公式チュートリアルぐらいならともかく、世の中には有象無象のwebページがあるので、良い教材を探すこと自体が容易ではなかったり、適した補助教材を探そうとなるとより難しいという点でしょうか。体系的に学んでいるわけではないため、次の一歩が良くわからず、ひどい場合には「毎回目的に合致したチュートリアルを用意してあげないと、やれない」という状態で、何を学んだのか良くわからないこともあるかもしれません。ただし、短時間で一定の目標を達成するには向いているでしょう。また、補助する教師役がいるなら「次の一歩」についても探しやすくなり、それを繰り返すことで徐々に自分で歩む力を身につけることもできるでしょう。

ということで、個人的には「日中は仕事して、夜なり週末なり空いた時間で学ぶ」という社会人向けには、

  • 目的に沿った環境構築してやってチュートリアル探し、やらせる。
  • 目的に沿った課題を用意(というか設計かも)して、少しずつメタ知識化さていく。or 課題自体を一緒に設計することを通して知識共有化を目指す。

みたいなアプローチが望ましいのではないかなと想像します。社会人といっても幅広いですけどね。

アシャリフ先生退官記念パーティ

金曜日, 5月 26th, 2017

先日退官されたアシャリフ先生の記念パーティな夜でした。4月以降も非常勤で授業担当をお願いしているわけですが、いろんな専攻から受講生集まって40名?履修してるらしい。それは大変だ。。

ちなみに本日は結婚記念日でもあるらしく、ラブラブぶりを見せつけていました。奥方は恥ずかしそうにしてましたがw

主なプログラムは、
 ・アシャリフ先生の仕込み
 ・長田さん突っ込む
 ・名嘉村先生の紹介
の3本でした。

次回もまた見てくださいね!うふふふっ

社会人AI人材育成に向けた底上げ?

木曜日, 5月 25th, 2017

沖縄型産業中核人材育成事業の一環として、多企業・他業種混成でAI・IoTを活用した企業連携を目指す人材育成が始まるらしい。現時点でググってもあまり具体的な情報が見つからないのだけど、プログラミング・数学・機械学習あたりで教材提供できないかという話が届きました。もうちょっと早い段階で目標から一緒に相談できればよかったんだけど、今回は「やれる範囲でやる」ぐらいのことしかできそうになくて、一先ずの目標が「底上げ」になりそうです。

教育自体はうまいこと在学生含めて大学として協力できる部分は協力したいですが、既にPyData.Okinawaとかかなり近いコミュニティがあったり、とても広い意味での底上げなら書籍なりweb公開されてる既存コンテンツが大量にあるので、それ利用した方が良いんじゃないかという気持ちが強くて。具体的な目標があるとか、それに向けたカスタマイズされた教材作るなら新規作成も分かるけど。

一先ず大学1年次向けに実施してる授業コンテンツは提供できますよということで、そっちを覗いてみてもらうことに。授業録画した動画もあったりするし。動画はアクセス認証ついてるのでそのままだと見れないのだけど。

とかいろいろありますが、やれる範囲でやってみます。

機械学習っぽい部分を体感できる部分に突入

水曜日, 5月 24th, 2017

複雑研全体ゼミの輪読3回目が終わりました。今日は4.2節〜5.3節あたりの話。教師データからの誤差に基づいた損失関数と、勾配法による最適化、それを組み合わせる形で微分に基づくNNの重み調整イメージに、連鎖率に基づく逆伝搬という考え方の導入ぐらいまで。教科書にも手計算できるレベルの例題を出してくれてるけど、皆ちゃんとやってるか〜。


P.S.

車やめて徒歩生活+自炊生活になってから、長期的にはゆっくりと痩せ続けてます。ただし短期的には太ったりしてて、特に2016年はかなりやばくて健康診断で強くダメ出しされたレベル。年明けから自重するようにして5ヶ月目ですが、教員生活してから64kgジャスト、体脂肪率22%弱、体年齢36(実年齢-6)を記録しました。良い意味で初めて。平均体脂肪率にぎりぎり入ってるライン。皆もピザ食べて健康になろう(今日の晩御飯)。

データマイニング論の輪読1冊目が終了

火曜日, 5月 23rd, 2017

データマイニング論では教科書を読むパート1と、論文を読むパート2の2つで構成しているつもりです。一方で学生にもリクエストを聞いてみようということで「教科書2種類(Data MiningMachine Learning)のうちどちらが良い?それとも両方共読む?」と選択肢を用意したら予想以上に両方読みたがる学生が多くて。前者(の途中まで)だけだと手を動かす部分がゼロだし、一方で後者だけだと体系的な知識が薄いかなということでこれも良いか。ということで両方読んでもらうことにしました。

Data Mining: Practical Machine Learning Tools and Techniquesの5章までで「データマイニングの考え方と機械学習の立ち位置、入出力や前処理を含めたデータセット構築、代表的なアルゴリズム、モデルの評価といった一通りのプロセスを学んでもらいました。が、どこまでしっくり来てるかは謎だな。来週から始まる2冊めの方で体験知として獲得してもらえると良いな。


機械学習について参考になるサイトをピックアップ。特定のモデルというよりは、「そもそも機械学習って何?」というところから勉強したい人向け。

(1) 機械学習チュートリアル@Jubatus Casual
スライドベースで、機械学習の目的〜イメージを紹介してます。

(2) 連載: 機械学習 はじめよう
全21回かけて、色んな所にある「前提・仮定」等を交えつつ機械学習の立場や具体的な処理方法を解説してます。

(3) Machine Learning by Andrew Ng (Coursera)
英語ですが、概念だけではなくOctaveの使い方含めて実装まで解説してます。

ぱっと思いつくのはこんな所。実際にはあれこれ大量にあるので、後で整理しておこう。

(情報収集) してますか?

月曜日, 5月 22nd, 2017

4年生の卒業研究も既に1ヶ月以上経ってますが、皆さん如何ですか。研究に限った話ではないですが、専門知識を持っていない新しい分野で活動し始めるならまずは「自分なりに関連情報収集して、体系化する」必要がありますよね(よね?)。情報工学科だとPD1,2あたりでもそれなりにやって欲しいと思ってますが、皆さんどうやってますか。軽くググってるぐらい?

代表的なところだと、、

  • 取り敢えずググる。
  • 学会なり研究会なりある程度分野が絞れているならそこの雑誌(電子媒体含む)を漁る。
  • 上記に似てるけど、特定分野・技術についてオススメ論文や書籍を先生・先輩らに聞いて、読む。
  • Google ScholarCiNii等の論文検索に特化したwebサービス(DB)で漁る。
  • DB検索時に、目的に応じて「出版順」や「被引用順」等のオプションを使い分ける。
  • たどり着いた論文で、引用している重要そうなor気になる参考文献を見つけたらそれも読む。
  • 読むだけだと良くわからないので、実験を再現してみる。

こんな感じのことをやりながらその分野に関する情報を収集しつつ、専門用語に関する知識を得たり、視点や問題設定を整理して理解を深めていきながら自分自身のテーマを具体化していく時期だろうと思います。今何をやってるのか、何をしたら良いのか分からないという人は卒業研究が不安で不安でたまらないあなたへを読んでみたり、研究指導教員とは違う先生・友人らと話してみると良いでしょう。一人で閉じこもってたら進みにくいので。相談するのも重要なスキルです。社会に出ても一緒。

情報源の集め方や、集めた情報の読み方、読んで得た知識の整理の仕方等、各々いろんなやり方があってどれがベストというものでもないですが、「授業」と比べるとより自由度が高い分、自分なりのやり方を見つけて取り組まないとなかなかうまくいかないかもしれません。練習だと思ってやれることをやってみるも良し、友人・先輩・教職員らに相談するも良し、何かしら自分から動こう。抽象的な方法論ならラーニング・パターンも参考になります。

何でこんな記事を書いてるかというと、デザインスクールの準備でテーマ設定のための情報収集してて。この様子を記事で書いとくと参考になるかなと思い、その導入編ということでまずはこの日記を書いてる次第。実際に情報収集〜整理の様子を日記に書くかどうかは怪しいけど、日記ネタがない時に書いたりするんじゃないかな。


P.S.
大学院向けに「サーベイ論文の書き方みたいな講義」を提供すると良いのではと提案してみたのだけど、微妙に乗り気じゃないっぽい。社会に出ても役立つのにー。

良くわからない分野に突撃する時は取り敢えず情報収集

金曜日, 5月 19th, 2017

デザインスクールの準備をぼちぼち始めています。「デザインスクールって何?」って人はこの記事眺めてみるとイメージしやすいかな。一言でまとめると「他流試合形式(他分野学生らとグループ組むという意味)で問題発見・解決するワークショップをしてみよう」というもの。単にアイデア出しとかするだけならプロジェクトデザイン1(工学基礎演習)プロジェクトデザイン2と被る部分が多いですが、大きな違いは2つ。

・京大の大学院生が全グループにファシリテータとして入ること。
・情報工学科(知能情報コース)以外の学生ともグループを組むこと。

全グループに事前準備した京大院生が入ってくれるので、「はいやってみてー」のような投げっぱなしではなく、より身近で細かいアドバイスを貰いながら取り組むことができます。また、色んな分野の学生さん(去年は沖国学生も参加。更にその前の年は留学生も参加)とグループ組めるので、物事の見方や考え方の違いを体感しやすい環境です。

予算の都合(主に京大関係者が沖縄に来る予算)でもう終わりかなと思ってたのですが、どうやら2017年度も開催できるようです。例によって11月。まだ調整中ですが恐らく「11月23日(木,祝日)、25日(土)、26日(日)」の3日間での実施になると思います。受講生募集はまだまだ先ですが、それに向けた準備を始めてます。一番大きなのはテーマ検討ですね。

上記のように毎年何かしら沖縄らしいテーマを設定しています。去年のテーマがめちゃくちゃでかかった(物理的にも抽象的にも)ので今年どうしようと悩みまくってますが、遠藤先生案で今のところ叩き台を作っているところです。どうなるかしら〜。