Archive for the ‘日記’ Category

差は開く

木曜日, 5月 18th, 2017

プログラミング1の5週目が終わりました。これで逐次処理・条件分岐・反復処理といった3大フロー制御に加えて、関数も導入は済みました。コアな部分が終わりつつある中、より先に進んでる学生もいるし、未だにシェル・ターミナル・エディタ・Pythonインタプリタの区別が怪しい学生もいます。ま、仕方ないか。ペアプロ演習・課題・宿題出しまくるので頑張ってください。

P.S.
良いレポートに投票させてみたところ、レポート書くのが下手な人でもそれなりに評価はできるということで良レポートに得票が集まる結果に。次回以降のレポート作成時に良いところを取り入れてみて下さい。

肩甲骨はがし

水曜日, 5月 17th, 2017

複雑研全体ゼミの輪読2回目が終わりました。今日で3章後半から4章の途中までが終わり、階層型NNのモデル化・実装と損失関数の導入まで進みました。実際に細かく動かしながら進むので、ブラックボックスな部分は「ほぼ」無い状態。実際には「何故そういう設定になっているのか」が不明なまま進んでいる箇所もあるんですが、全てを解説し尽くすのも無理だし仕方ない。多少は討論で補いつつ、それ以外については「後で出てくるはず」ということにして先に進むことに。

P.S.
肩甲骨はがしなるストレッチがあることを教えてもらい、早速やってみてます。動かすだけでも効果あるだろうし。

首肩コリコリ

火曜日, 5月 16th, 2017

5月入ったあたりから首〜肩にかけての凝り具合が酷くて。もともと年末年始ぐらいから酷くなりかけだったところ、動かすようにしてから多少なり改善が見られてたんですが雨模様も手伝ってここ最近サボってるのだよな。ベランダにある物干し竿を引っ掛ける取っ手が程よい高さだったので、そこでぶら下がり体操兼ねてあれこれやってたんだけど、雨降ってると外出たくないし。

腕立て伏せとか肩周りを動かすだけでも効果あると思うのだけど、筋トレ自体は好きじゃないのだよな。何か良い案がないものかしら。

あれこれ打ちあわせ(中村先生、子供科学人材育成事業)

月曜日, 5月 15th, 2017

明治大学の中村先生と共同研究に繋げられたら良いな会議」を数年前から不定期開催してます。面白いテーマばかりなんですが、いまいち学生が乗り気にならないのは何故なんだろう。自分でやりたいテーマがあってそっちに注力したいってことなら分からなくもないけど、多くはテーマ決めきれてないはずなんだよな。

中心的なテーマは「個性・個人差」といったあたりかしら。例えば平均手書き文字・図形といった切り口から「人の頭のなかの文字や図形はどうなっているのか」に取り組んでる事例をあれこれ紹介いただきました。字の練習になる(実際うまくなるケースがある)というのは想像外です。手に対する物理的なインタラクションがあるわけではなく、自身が書いた文字へ赤ペンする訳でもなく、「お手本と自身との平均手書き文字」を自動生成する形で書き取りさせると、そのうち上手くなるらしい。

料理レシピの方は定量困難な要素が大きすぎるのが気がかりだけど、取り敢えず調味料の分量ベースでやってみてるらしい。


子供科学人材育成事業のファーストコンタクトがありました。予想してたよりも動きやすそう(自由度高そう)で安心。「他が大学教員ばかりなのでこっちもそうして欲しい」というのはちょっと。日程的な自由度がゼロで、6日間やらないといけないというのは辛いです。ということで私自身は裏方というかサポーター的な立ち位置で参加予定です。

プログラミング初学者向けのIDE

金曜日, 5月 12th, 2017

Thonny: Python IDE for beginnersなるものが。どんなものかはデモ動画見るのが早いでしょう。

No-hassle variables.
Simple debugger.
Step through expression evaluation.
Faithful representation of function calls.

あたりの組み合わせが凄くて、デバッグモードでstep-in実行すると「行単位じゃなくて、評価単位で実行」してくれるので理解しやすいし、関数呼び出すと「新しいサブウィンドウ開いて実行」したりしてくれてとても直感的です。

一方で、バージョン管理とか「その先」まではサポートしてないっぽい。そのあたりが「Python IDE for beginners」なのかも。一つの割り切り方としてありだな。

インストールもpipで楽ちん。

半分ぐらいが教科書を読んでないっぽい

木曜日, 5月 11th, 2017

プログラミング1の4週目が終わりました。内容的には関数の補足としてスコープを話しつつ、ループ処理が主題。

例によって「今週のお告げ」。今日は「教科書を活用しよう」ということで、ついでに「読んでない人?」と手を挙げさせたら半数ぐらいが手を挙げるという悲しい状況に。逆に言えば半分近くは読んでるっぽいですが、少ないなー。

正直な話、個人的には「自分で教科書読もうとしない」人は、高い授業料払って何かを学びに来てるとは思えないです。やりたいことを自分のペースでやりつつ、授業を効果的に使うなら授業前授業後のアクションが大切。その一手段が教科書なんだけどな。

教科書無視して授業メインでやるとか、好きな教科とそうでない教科とで力の入れ具合が違うとか、そもそもpaiza/progateとかwebリソースも大量にあるとかいろんな事情があるだろうなとは思います。それでも情報系のコースに第1希望で入ってきて、プログラミングの教科書読まないのが半分ぐらいというのはやっぱり悲しい。英語だからってのも主要因の一つだと想像するけど、それ避けちゃう人は何やるにしても損するぞっと。

P.S.
授業中や授業後に質問する頻度は高いです。何も自習してないという訳ではなく、「英語の教科書を避けて、他で勉強してる」学生が多いんだろうなぁ。

やっとこさ輪読ゼミの始まり

水曜日, 5月 10th, 2017

複雑研全体ゼミゼロから作るDeep Learningの輪読をやっています。1回目は私が学生実験の都合でキャンセル。2回目はガイダンス(論文の読み方とか)に利用。3回目は関連イベント参加に代替。4回目はGWということで、実質的な輪読は今日が1回目です。輪読って何?という人は(Quiz/4年次) セミナー: 輪読をどうぞ。

基本的には「担当を割り振って、担当者を中心として討論しやすい形で準備してもらう(大抵はプレゼン->Q&A)」というものです。一緒に教科書読もうというのをイメージすると良いか。何気なく読むだけではなくて、気になるところを可能な限り掘り下げていきたい、その掘り下げを通して知見を深めたい。

「個々人で独立してやるだけ」なら一緒に集まってやる必要無くって。例えば授業中にTimelineで「**って何?」とか書く学生はそこそこ多いですが、そういう疑問の種をなるべく共有したい。その一手段として、共同でリアルタイム議事録を書き上げることを、去年からやってみてます。TLで書くぐらいならここに書け、と。TLで書いても良いんですが、hashtag付け忘れたりするぐらいならということでgoogle documentでやってます。Scrapboxも面白そうなんですが、ちょっと試して見た限りではピンときてないのでまだ導入してません。

通常の授業でも、日毎の共同編集できるページ用意して、そこに質問なり書きやすい雰囲気作ると良いのかなぁ。

for data mining or machine learning beginners

火曜日, 5月 9th, 2017

if you want to try some models (e.g., Naive Bayes Classification), I recommend (1) Weka, (2) R or (3) Scikit-learn.
Weka and R are really famous tools, so you can find their usage on web search easily. In addition, Weka and R have GUI. Weka requires Java, R requires R (R language).
Scikit-learn is good choice also, because easy to use and easy to cusmize (for Python user).

or 4th choise, if you want to use Deep Learning, you’ll use other tool such as Caffe, Chainer, TensorFlow, SkFlow, CNTK, DSSTNE. These tools can move on GPUs.

By the way, if you want to get dataset, goto UCI Machine Learning Repository.


留学生から「手持ちのデータで機械学習か何か適用してみたいのだけど〜」という話が届いたので。

連休が終わって通常モードの始まり

月曜日, 5月 8th, 2017

最初に飛び込んできたタスクはGAの動作がおかしいんだけどというバグ報告。確認すると確かに荷重の総和がおかしくて。よくある境界条件ミスでした。ユニットテスト書けよ>昔の私。これが今まで気づかれてなかったのも不思議だけど、特定条件下でしか発生しなかったのかも。CVS管理されてたのも懐かしいですが、混ざってると嫌だなということでGitHubに移行しました。正確には移行スクリプトかましてなくってバージョン情報ざっくり削除してたりするけど、別にそのぐらいのプログラムなので。

午後はプログラミング1の準備と、既に提出されてるレポート1の採点。1回目なので甘めの採点です。少しずつ辛くしていこう。

4時頃には一段落したので、デザインスクールの前準備を開始。どうやら今年度もやれるようです。テーマは遠藤先生案から叩き台が出てますが、どうなるかなー。

textlintで遊ぼう

木曜日, 5月 4th, 2017

Qiita:Team + Hubot + textlintで文章校正を自動で実行するという記事に触発されたので、textlintしてみよう。


事前準備

nvmのインストール。

textlintにはNode.jsが必要。それだけを準備しても良いのだけど、Node.jsを含む関連ライブラリのバージョン管理してくれる NVM (Node Version Manager を入れておくと便利っぽいので入れておきます。

cd
git clone https://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh

上記実行後、下記設定を ~/.zshrc に追加しておこう。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

Node.jsのインストール。

nvm install node

本題(textlint周り)

textlintとお試しルールのインストール。

デフォルトではtextlintでチェックするためのルールがないので、ここではtextlint-rule-preset-japanesetextlint-rule-preset-ja-technical-writingtextlint-spellcheck-tech-wordを入れてます。インストール時にtextlintバージョン周りのwarning出ても、気にしないのが吉かも。多分。4行目のtextlint-spellcheck-tech-wordはインストールでコケるのでコメントアウトしてます。あとtextlintを「-gオプション (global install)」付きでインストールしたのなら、ルールも同じようにインストールする必要があるらしい。

npm install textlint -g
npm install --save textlint-rule-preset-japanese -g
npm install --save textlint-rule-preset-ja-technical-writing -g
# npm install --save textlint-spellcheck-tech-word -g

インストールできたら、以下の設定を ~/.textlintrc に保存。

{
    "rules": {
        "spellcheck-tech-word": true,
        "preset-ja-technical-writing": true
    }
}

動作確認

適当なテキストファイルかMarkdownファイルを用意して、コマンドラインで以下のように実行。ちゃんと動くなら、~/.textlintrcでtrue設定したルールを適用した結果が出力されるはず。

textlint filename.txt


参考サイト


一応textlint自体は動くっぽいのだけど、ルールどうしよっかなー。