Archive for the ‘日記’ Category

プログラミング1の始まり

木曜日, 4月 12th, 2018

1年次必修科目のプログラミング1も始まりました。本題に入るまでの補足説明というか告知関連でかなり時間かかりましたが、「ターミナル起動して」で全員(?)が起動できたのは凄い。一方で「ooした結果がxxになることを確認して」の「ooする」を見落とすなり聞きもらすなりで確認失敗(と本人が判断する)ケースも。これは例年の話か。喋り捲る&動きまくるので体力的な意味での消耗も激しいです。

一度に60名強対象にやるとどうしても漏れが出ちゃう。技術職員&TAにサポートしてもらえなかったら死ぬな。初めて担当した年に比べると「ゆっくり話す」「繰り返し説明する」ことを心がけるようにしてるのと、資料等見直して「資料の説明漏れや分かりにくいところの修正」をしてるので、当時よりは漏れが出にくくなってるだろうとは思います。

まだインタプリタでの実行しかやってないので、来週は課題レポートの書き方演習しつつ、ファイル保存してからの実行やることになるのかな(多分)。

Google Colaboratory x ペアプログラミング?

水曜日, 4月 11th, 2018

Jupyter Notebook環境を仮想マシン上で実行してくれるColaboratoryを今更ながら試してみました。環境構築せずにすぐにお試しできるというのは初学者には嬉しいでしょう。それとは別に、授業でペアプロすることがあるのでそこで使えないかなという確認を兼ねてお試し。


[ 1. 教員側でノートを用意する ]

  • ColaboratoryなりJupyterなりでipynb形式で作成。
  • googleドライブで共有する場合、これまでのファイル共有とやり方は一緒。(プログラミング1の場合、共有用ディレクトリを用意してあるのでそこにファイルを置けば良い)

この時点で、Colaboratoryからipynbファイルを指定して開くことは可能。しかし、共有先のGoogleドライブからは「開けないのでダウンロードする?」という状態に。同時に「アプリで開く(Open with)」でもColaboratoryを選択できず、直接編集できる状態では開けず。勿論、一度ダウンロードした上で自分のColaboratoryで参照できるスペースにアップロードしたら開けますが、これだと独立したファイルなので「同時同じファイルを編集する」みたいな使い方はできません。

[ 2. 必要かもしれない手順 ]

  • 一度Colaboratoryにアクセス。それだけで閉じる。(ひょっとすると一度コード実行する必要あるかも)
  • 改めて共有ドライブにアクセス。
  • ipynbファイルを右クリック(Ctrl+クリック)し、「アプリで開く(Open with)」からColaboratoryを選択。

これでも直接開けない(アプリが選択できない)場合、暫く放置しておくと良いのかも。単に設定の問題ではなくて、各自のGoogleドライブ側からColaboratoryとの連携に多少の時間が必要なだけかもしれない。(放置してたら開けるようになってた)

[ 気になる点というか特徴 ]

  • 一つのモニタを使う一般的なペアプロだと、遅延は発生しない。これに対してColaboratory共有だと、Googleドライブ共有分の遅延は発生する。「そこインデントおかしい」みたいなナビゲート側のアクションに遅延が発生することに。
  • 以下は問題にならなそうな特徴。
  • Colaboratory側で用意される仮想マシンは、一番最初の起動時には少し(数秒程度)時間がかかる。
  • FAQによると仮想マシンはあるタイミング(最大存続期間 or 一定のアイドル状態)で殺されるっぽい。実際暫く放置しておくと「接続が切れて、再接続を促される」状態になりますが、ワンクリックで繋げ直せます。

前述のように Colaboratory でペアプロできるのだとすると、、

  • 去年までのペアプロ: 問題を問題ページに用意して、ローカル上でコード書いて実行し、うまくいったらそのコードと結果をドキュメントに貼り付ける。個々人でノートPC持ってるため、ドライバが入れ替わるとそれまでの履歴をナビゲータが引き継ぐ際の手間がかかる。
  • Colaboratory上でのペアプロ: コードや実行結果を貼り付ける必要は無い(これはJupyterの利点)。ファイル共有された中で実行できる(Colaboratoryの利点)ので、スムーズに引き継ぎできる。

みたいになるのかな。

ただ、「一つのモニタで作業をやる」ことにも意義があると感じている人なので、少しその点が気がかりではあります。ノートPCだと見づらいんですけどね。


[4/11, 15:45追記]

手順2の「必要かもしれない手順」は、以下のようにするのが本筋っぽい。

[ 2. 本手順(Colaboratoryとの連携設定) ]

  • 共有ドライブをブラウザで開く。
  • ipynbファイルを置いてるフォルダを開く。(既に開いてるなら次へ)
  • フォルダメニューをクリックし、「アプリで開く(Open with)」から「アプリを追加(connect more apps)」を選択。
  • 検索窓に「Colaboratory」と入力して検索。Colaboratoryをクリックして追加。(「connected」になればOK。)
  • ☓ボタンをクリックして設定終了。
  • ipynbファイルをダブルクリック。開く際に「ダウンロードするか、Colaboratoryで開くか」を選べるので、Colaboratoryを選択。

データマイニング論の始り

火曜日, 4月 10th, 2018

データマイニング論が始まりました。今の所受講生は14名、その内7名が留学生なので日本人との割合は丁度半々らしい。はじめての年はゼロで、翌年数人、今年は7名と年々増えてるのが謎ですが、留学生の中で「取るべし」とか共有されてるのかしら。中身的は年ごとに少し違いますが、基本的には「何か教科書でベースを抑えた後で、比較的新しいベストペーパーを読もう」という流れ。去年は教科書読みたがる人が多くて論文まで辿り着けなかったので、今回は教科書と論文の割合が半々となるように調整してます。

教科書は、Data Mining: Practical Machine Learning Tools and Techniques, Third EditionPython Machine Learningから選択してもらって、今回は data mining を読むことに。どちらも新板出てるので、来年度はそっちやるか、別の良さげなものあるか探してみよう。

来週から楽しみましょう〜。

P.S.
この記事書いてたら、去年の受講生(他専攻の留学生)から「この授業でこっち方面のことを勉強し直したくなった。どこそこへ行くので推薦書書いて欲しい」というリクエストが届いた。イイネ!

そろそろ授業の始まり

月曜日, 4月 9th, 2018

先週で仮登録が終わり、今週から授業開始と共に二週間の登録調整期間に突入。私が学生だった頃は「体育館で走り回る」という肉体言語を使っての登録合戦だったな(遠い目)。今はシステム化されてますね。システム化初めての年(2005年度)は開始と共に落ちて誰も登録できないということもありました(遠い目)。今はそれなりに動いてますね。抽選漏れてしまったら調整期間中でのアクションが必要になりますが、これは仕方ないんじゃないかな。

私の今学期担当科目は、学部1年次の「プログラミング1」と大学院生の「データマイニング論」の2科目。プログラミング演習1も少しサポートに入りますが、事前準備が無いので気楽です。

プログラミング1は、1回あたりの課題レポートの分量を減らして、数を増やす方向に去年から変えてます。初めて担当した2016年度に比べると、2017年度はそれなりに対応できた学生が多かったんじゃないかと。説明の仕方や資料の熟れ具合が低かった説もあるか。

2018年度は、数を増やしたままにしつつ、「教えた内容を使ってコードを書くだけではなく、まだ教えていない側面について考えさせる課題」を組み込んでみようかと。意図はいろいろありますが、例えば「分からない問題にぶち当たった時に、どうするかを考える」という癖をつけさせたいのも理由の一つ。言葉足らずで伝わらない可能性もありそうなんだけど、まずはやってみよう。

P.S.
来年度?から、「プログラミング1+プログラミング演習1」を私が。「プログラミング2+プログラミング演習2」を赤嶺先生が。という形にしようかという話が出てるらしい。また準備し直しが必要になるというのはあるけど、授業の自由度が高くなるのはメリットか。一方で「片方落とす学生」への対処が難しくなる?

気持ちはわかるけど嫌いなもの

金曜日, 4月 6th, 2018

スマートフォンユーザ(iPhone 6s, 143g)になってから電子書籍を読む頻度が増えています。今はbookwalkerとkindleの2択になってるかな。表示が固定されていないものなら文字数多めの書籍(専門書とか)でも問題なく読めるんですが、表示固定されてるやつだと流石に文字サイズ小さすぎて厳しい。

PC側のビューワ(≒PCモニタ)で読むことで対応してることもありますが、ちょっと姿勢的にだらけて読みたい時もあって。かといってタブレットだとiPad初代しかなくて既にアプリが非対応。買い替えようかとも思うんだけど、本読むぐらいの長時間利用だとスマートフォンですら重いと感じるので未だに手を出せてません。軽さ重視でタブレット選べという節もあるが、スマートフォンより重くなるのが明らかなんだからそっち諦めたほうが良さげでもあるし。うーむ。

電子書籍側の自由度が上がればスマートフォンのままでも良いんだけどなー。

P.S.
飛躍した話ですが、日本では「アナログをそのまま持ち込むようにデジタル化する」ことでして結果的に使いづらくするケースが散見される気がしています。例えばデジタル教科書では「紙の教科書とデジタル教科書の学習内容(コンテンツ)は同一であることが必要」とか書かれてて、「文字通りの意味で紙教科書と同じように見開きした際の状況含めて同一が求められる」という話を聞いたことがあります。今もそうなのか分かりませんし、業者の解釈違いだったかもしれないし、ネタ的な話題だったのかもしれませんが、実際展示してた例ではそうなってて。そんなことするから使いづらくて普及しないし、そもそも活用するメリットないなら(教育現場が)改善するモチベーションも上がらないだろうし。

ツールとして使いやすい部分やアナログでは対応しづらい部分をデジタル化して、そこに合わせて現場を変えることで全体としての質を高めたら良いだけの話なのにね。

アノテーションツール: brat(クイックスタート)

金曜日, 4月 6th, 2018

自然言語処理してる際のデータ構築にて、文章中の単語に「これは場所だ」とか目印をつける(=アノテーション)作業が発生することが多いですが、その際のツールのお話。

annotation tools ぐらいでググるとWhat are the best tools for manually annotating a text corpus with entities and relationships?みたいな一覧が出てきますね。他にも、代表どころでは GATE らしいですが、これは使いにくいからbrat使えよという話も見つかったので試してみました。以下、bratなお話。


[ brat rapid annoation tool ]

1. ソースファイルをダウンロード。

2. installtion instructionsに従ってインストール。インストール時に「CGIアプリ(≒webサービス)としてインストールするか、ローカル環境で使うか」でオプションが異なります。注意点としては、Python2にしか対応していない点。

3. 「python standalone.py」で起動。そこで出力されるURLにブラウザでアクセス。

4. tutorial を眺めながら使い方を学ぶ。
チュートリアルの途中で「アノテーションしてみよう」も出てきます。単語なりフレーズなり選択するとポップアップ表示が出て、そこからアノテーションできます。なお、そのページに注釈書かれてますが、「ログイン」してないとアノテーションできません。

5. ひとまず自分でテキスト用意して、そこにアノテーションしてみたいという場合には以下の手順が必要。
5-1. テキストファイルを data ディレクトリ以下に用意。拡張子はtxt。UTF-8しか確認してませんが日本語でもOKでした。
5-2. 同じディレクトリに、同じファイル名で、ann拡張子のファイルを用意。これがないとファイルを開けません。

ラベルの設定方法とか調べてませんが、チュートリアル進めれば出てくるんじゃないかな。

ルートビアの香りのするお茶

木曜日, 4月 5th, 2018

ペルーに行ってきた学生からお土産を頂戴しました。現地で良く飲まれてるお茶らしいのですが、

家族「これルートビアじゃね?」

みたいなノリで買ってきたらしく、ついでに私のルートビア好き情報を知ってということで頂いちゃいました。ありがとうございます!

wikipediaで調べてみると、root eerの材料にAniseってのがあって、香り付けだかで使われてやつっぽい。微妙にスペル違うけど、確かに香りが近いと感じるので多分あってるはず。ルートビアから糖分と炭酸を引いた感じのお茶で、飲み心地と言うよりは後味も少し似ているかな。濃縮したらよりルートビアっぽくなるのかも。

インストール大会が終了

水曜日, 4月 4th, 2018

「新入生が入ってくる=インストール大会の時期」ということで、毎年恒例の初期設定がシステム管理チームを中心とした先輩学生ら主導で行われました。ありがとうございます&お疲れ様でした!

anacondaまで行くとは思ってなかったので、かなりスムーズだったのかな。去年そこまでやってないし。anaconda周りはpyenv経由でインストールしてあるだけなので、授業中に global 設定しておくのを忘れないようにしよう。

pyenv install 3.6.4
pyenv global 3.6.4
pyenv install anaconda3-5.1.0
pyenv global anaconda3-5.1.0 #まだ

あと、河野先生経由でJupyter使えるようにして欲しいというリクエストが。データサイエンス周りから強い要望が届いてるということで、こっちでの実習&レポート作成的なこともやってみるか。去年は簡易チュートリアルで紹介したぐらいなんだよな。

2018年度の始り

月曜日, 4月 2nd, 2018

授業は来週からですが、学年暦によると授業時間配当表公開〜仮登録が始まってるようです。私の担当分シラバスは登録済みですが、授業サイト側はまだ準備中。1年次向けの講義が中心なので入学式後が本番に間に合わせようということで、明日には用意する予定です。

新入生歓迎LT大会2018も早速動いているらしい。授業で告知する予定だけど、1週目の土曜日なのね。告知&準備期間は大丈夫なのかしら。先輩方はともかく、新入生で一人暮らし始める人達は身の回り準備で忙しそうな気もするのが少し気がかり。

(延ばしたら延ばしたでギリギリまで行動しないのがありがちではあるがw)

フラグ立ちまくりの週

金曜日, 3月 30th, 2018

学外とのやり取りも多い週でしたが、どれもこれもそれなりに良い方向に動かしたいなと思える内容になりそうで実りの多い週でした。


[ その1: 沖縄工業高校からのインターンシップ受け入れ ]

現在の受け入れは美来工科だけですが、県内の高校校長先生らが集う場で沖縄工業からのリクエストが年あったらしい。1回目の打ち合わせは12月に済んでて、具体的な中身に関する意識の摺り合わせぐらいの話し合いが今週ありました。基本的には似たプログラムで実施することになりそうです。時期は夏休み期間(9/11〜9/13の3日間)になるので、模擬授業とか何か用意するつもりですが、それ以外の部分は美来工科版と類似になるんじゃないかと。


[ その2: 内間児童センターからの打診 ]

元々は2017年度のデザインスクールで「子どもの貧困対策」をテーマに協力依頼したのが切っ掛け。その時に教育学だけではなく色んな分野の学生さんが来訪したところで「自分らの専門だけでは解決できない問題がある」という思いを強くしたようで、具体的な話を一度してみないかとの打診が届いてました。年末含めて都合が合わず延び延びになっていたのですが、今週実際に訪問して話を伺ってみることができて、いくつか工学的なアプローチでの協力できそうだなーという感触を得ています。後は実際に担当する学生をどうするか、が難題ではあるのだけど。

あと、全くの偶然ですが「法文の学生さん(2年次)」から類似相談が届きました。こっちはデータマイニングやら機械学習といったキーワードの具体的な事例について聞きたいというのが切っ掛け。あれこれ話し合った結果、既にPython勉強し始めてるとのことから「Pythonで動かして学ぶ! あたらしい機械学習の教科書」と「情報処理学会ジュニア会員」をオススメしておきました。
ちなみに具体的な応用先については幼児教育に興味があるとのことで、前述の内間児童センターが求めているゴールの一つとして一緒にやれる可能性がありそうです。できればうちの学生とチーム組ませて互いの強みを活かす形でやれたらなと妄想しますが、はてさてどうなることやら。

どのような形になるにせよ、内間児童センターの件で何もやらないのは避けたいというのが私の気持ちではあります。具体的な現場を例にやれるのは学生にも私にも貴重だし、現場だからこその悩みもあるだろうし。そっちだけに集中することはできないけども、できればある程度の成果を残せるまで毎年学生1名を割り当てたいという気持ちが強いです。(研究室外の学生でも良いんだけど、それだと完全ボランティアになるのがちょっと)


[ その3: NAL研ブログの更新 ]

久しぶりにNAL研ブログが更新されました!
どちらも2017年度卒業生で「研究室活動なりを外部に向けて何か書いて」とお願いして書いてもらいました。

その1: 初めての学会に行ってきました。
その2: 他大学の院に進学します。

今度は、新年度になって新しい配属生らとのやり取りがある程度たったら「NAL研配属後の様子」ぐらいのお題で依頼してみようかな。


[ その4: 新講義の内容検討 ]

2017年度から新カリキュラムが始り、いくつかの講義は既に新しく開講されています。私自身が現時点で既に関わってるのは工学科共通の「工学概論」の1コマ。検索エンジンの裏側はどうなってるのかという視点から、いくつか簡単なアルゴリズムを紹介しつつその先に興味ある人向けに参考文献提示するぐらいの内容でしたが、何かしら切っ掛け提供できてたら嬉しいです。

2018年度には新カリキュラムの2年次向け新講義が動いて。(こっちは担当なし)
2019年度には新カリキュラムの3年次向け新講義が動いて。この3年次向け講義の中に人工知能・機械学習寄りの新講義が詰まっていて、講義名としては「人工知能、機械学習、データ・マイニング、コレクティブ・インテリジェンス、知能ロボット」ぐらいがあります(もうちょっと広く捉えるともっと増える)。この中では「機械学習、データ・マイニング、コレクティブ・インテリジェンス」の3科目が新設科目。これらの科目でどの部分をどう扱うかという話し合いの大まかな所はカリキュラム検討時にやってますが、具体的なシラバスや授業内容までは踏み込んでいないこともあって不透明な部分が多くて。ということで、
 ・データマイニングを私が、コレクティブインテリジェンスを國田先生が担当すること。
 ・開講時期が3年後期の同時期のため、なるべく内容重複を避けたいこと。
を踏まえて方向性を少し固めてみました。これから数ヶ月ぐらいかけてシラバス検討出来ると良いな。


[ その5: 共同研究先への報告と今後の方向性 ]

某会社さんと進め始めている共同研究は、ひとまず双方の意識摺り合わせやノウハウ蓄積といったことを第一目標にするぐらいのかなり自由度の高い形でやらせて貰えています。1年目が過ぎてその報告をしたのは良いとして、2018年度以降も同じ形式のママやるなのか、別方式を考えるか見直すならこの時期だよねということで少し提案含めて打診してみました。どうなるかしら。