草薙の研究ログ

英語の先生をやってます。

電子板書はCalmly Writerで

授業をする際に,電子的にその場で板書したりすることを個人的に電子板書と呼んでいる。emacsAtomといった適当なエディタを開いてやることも多いけど,何分学生にとっては見にくい。

最近Calmly Writerという無料のWebAppを知った。これ本当に素晴らしい。

https://www.calmlywriter.com/

 

好きなところは

  • Markdown言語をサポートしているところ
  • Markdownをリアルタイムで表示できるところ
  • UIが非常にシンプル
  • ダークモードにトグルできる
  • フルスクリーンモードにトグルできる
  • ファイルはGoogle Driveと連携できる
  • キーボードショートカットが多い

素晴らしい。電子板書で求める要件のすべてを満たしている

 

関係の数と三角数

2人いれば,2人の関係は1つ。3人いれば3つの関係。4人いれば6個の関係,5人いれば10の関係がある。
総当たり戦の数もいっしょ。2人いれば1試合,3人いれば3試合,4人いれば6試合,5人いれば10試合だ。
これを数列だと考えると,

 0, 0, 1, 3, 6, 10, 15 ....

という見たことあるような数列。今週奇しくも2回出会った。
これは,三角数に似ている。三角数は,

 0, 1, 3, 6, 10, 15, 21...

だから,三角数より一個ずれているみたい。三角数 T_nとすると, T_n = \frac {n(n+1)} {2}なので,この数列(を a_nとすると)は, a_n = \frac {n(n-1)}{2}ということ。もっとわかりやすくすると, T_n = a_{n+1}というかんじ。

入試問題などにも出るみたい。階差数列の単純な問題として。

関係の数,というとなんか曖昧なんだけど,グラフ理論を考えると視覚的にわかりやすい。無向グラフ G = (V, E)があって,Vの要素数nのとき,このグラフが完全グラフになるEの要素数がこの数列。

f:id:kusanagik:20190526110152p:plain

三角数との関係は,完全グラフの隣接行列を考えるとピンとくる。三角数の定義通り,辺の中にある点が同じ正方形になっていて,その和がエッジ数であることがわかるし,増えていく列の中にある1の数が n-1になってることから,階差数列であることもわかる。

 |A_2| = \left|
    \begin{array}{cc}
      0 & 1\\
      1 &  0\\
    \end{array}   \right|

 |A_3| = \left|
    \begin{array}{ccc}
      0 & 1 &1\\
      1 & 0 &1\\
      1 & 1 &0\\
    \end{array}   \right|

 |A_4| = \left|
    \begin{array}{ccc}
      0 & 1 &1&1\\
      1 & 0 &1&1\\
      1 & 1 &0&1\\
      1 & 1 &1&0\\
    \end{array}   \right|

 |A_5| = \left|
    \begin{array}{ccc}
      0 & 1 &1&1&1\\
      1 & 0 &1&1&1\\
      1 & 1 &0&1&1\\
      1 & 1 &1&0&1\\
      1 & 1 &1&1&0\\
    \end{array}   \right|


これ,組み合わせと同じ。要素がn個ある集合から,要素を2個選ぶ組み合わせは, _n C_2なので,やはり, _n C_2 =  \frac {n(n-1)}{2}。一般に,三角数の方がメジャーなので, {}_nC_2 = T_{n-1}とするよう。

ちなみに三角数の方は,それこそ無数に色んなところに出てくる。パスカルの三角形の3列目にも出てくる。

オンライン整数辞典という素晴らしいサイトがあって,この数列のページももちろんある。

0, 0,1,3,6,10,15, 21 - OEIS

最近導入したウェブアプリメモ

Stock

https://www.stock-app.jp/

Snipper.io

https://snipper.io/

  • コードエディタ(ブラウザ上で共同編集できる)

Overleaf

https://www.overleaf.com/

StackEdit

https://stackedit.io/

  • 高性能なMarkdownエディタ
  • 後述のMermaidを使ってUMLのグラフをかける

 Mermaid Live Editor

https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbkFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuQiAtLT4gQ3tMZXQgbWUgdGhpbmt9XG5DIC0tPnxPbmV8IERbTGFwdG9wXVxuQyAtLT58VHdvfCBFW2lQaG9uZV1cbkMgLS0-fFRocmVlfCBGW2ZhOmZhLWNhciBDYXJdXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ

  • Mermaidを使ってUMLのグラフをかける 

 

ウィーナーのサイバネティックスの広い定義

ウィーナーの『サイバネティックス』を読むとやっぱなんか当時の北米の知的雰囲気があってワクワクする。こういう古典って読んでみるとやる気出るね。

特に,岩波文庫版の訳本(池原他訳)で,日本語版へのあとがきのところ…

 

…今日,わたしはそれをこう述べたいと思います。 われわれの状況に関する二つの変量があるものとして,その一方はわれわれには制御できないもの,他の一方は我々に調節できるものであるとしましょう。そのとき制御できない変数の過去から現在にいたるまでの値にもとづいて,調節できる変量の値を適当に定め,われわれに最もつごうのよい状況をもたらせたいと望みがもたれます。それを達成する方法がCyberneticsにほかならないのです。―『サイバネティックス』(岩波文庫版訳本, p. 5)

 

 これすばらしい。なんというかその包括性の大きさにやられる。こんな包括的なことをこんなに明確にいえるのかと。

そして自分がやりたいことは間違いなくこの範疇に入る。

 

マルチレベルのROC曲線

状況

  • 信号検出モデルのおはなし
  • ある信号の有無について多段階評定法(5段階)でデータを取る
  • 横軸にFA(率),縦軸にH(率)を描くとこうなる(ROC曲線)

f:id:kusanagik:20181121155648p:plain

  • このデータを100人について取るとする
  • もちろん,この曲線にも個人差がある

f:id:kusanagik:20181121155958p:plain

  • ところで,FA率,H率をz変換するとおよそ(大雑把にいって)線形回帰で近似できる
  • この線形回帰モデルの傾きが1に等しくなければ,等分散ガウス信号検出モデルの等分散の仮定が怪しい,そういう理屈

f:id:kusanagik:20181121160447p:plain

  • で,これを戻すとまあまあROC曲線に近似するというわけだ

f:id:kusanagik:20181121160728p:plain

  • しかし,これはあくまでもひとりのデータであって,これが100人分ある,と考えよう

ベイズでやろう

  • これは普通に変換したFA率を説明変数,変換したH率を応答変数,個人を変量効果と考えた線形混合効果モデルに帰着する
  • つまり,集団平均の傾きと切片があり,集団内の傾きと切片の分散共分散行列があると考える
  • Rのbrmsパッケージとかでちゃっちゃとやっちゃう

事後分布を見る

  • 基本的に,一番の興味はFAの傾きの母平均
  • ベイズ信用区間からみて,普通に1はなさそうだ(ベイズ因子とかやってもいいけど…)
  • なので,集団平均として見ると,等分散性は怪しそうだ

f:id:kusanagik:20181121161639p:plain

f:id:kusanagik:20181121161836p:plain

  • 0.04から0.20を考えればいいくらいみたいだ

集団平均と個々人の推定値からROC曲線を描いてみる

  • それぞれEAPを使って曲線を描くといいわけだ
  • こんな感じ

f:id:kusanagik:20181121162226p:plain

  • 弁別力が負に入るひともいるし,大体集団平均として等分散はないな,ってことがわかる
  • 次にここから正答率を計算できるわけだけど…って,まあいいや

時代の流れに取り残されていくかんじ

今私がこれを打っているPCは,中古どころかジャンク品として買った2000円のデスクトップPCだ。RAMは1GB,CPUはCore 2 Duo,HDDは欠品だった。今型番を調べたら2004年製だという。前にどこで誰がどのように使っていたかもわからないこのPC。誰も買わないのだろうな,と思うと意味もなくこういうのを買ってしまう。14年前か。自分は大学生だったな,なんておじさんは昔に思いを馳せる。このPCを見るときに,14年前のPC産業というか日本の経済を思い出せる。

最近は本当になんでも安くなってきていて,メモリーは1,000円台も払えばバルク品でも問題なく増設できるし,SSDだって中国系企業の新製品はびっくりするくらいの値段と品質。なんていうか市場の大きさは正義だ。AmazonよりもAliExpressのほうが物欲をそそるのも事実。

ストレージなんてむしろ16GBで十分だなんて思ってたら,そういうSSDは市場に出回っていない。しかたなく64GB SSDを2,000円台で買った。Wifiドングルは1,000円台。全部で8,000円もあれば,私に必要な環境なんて整ってしまう。4GBのRAM,64GBのストレージ,Core 2 Duo程度のCPU。これは,今ARM系のCPUを積んでeMMCをストレージにしている低価格モバイルノートと同じくらいの性能になる。そういうのがだいたい3-4万だから,とっても格安だ。なによりも部品を集めたり入れ替えたりするのが楽しい。

そういう非力でもう現役を引退している,いわゆるジャンクPCに軽量デスクトップ環境をいれるのが馬鹿みたいに好きだ。もう「押し寄せるパターナリズム」のようなアップデートの通知におじさんはため息をつきたくない。

アップデートといえば,10月のUbuntu系のアップデート。私はLubuntu愛好者なのでLubuntuのアップデートをチェックしたら,なんと噂通りLubuntuはLXDE環境を捨てるのだそう。LXQtに全面的に移行する方針のようだ。

これにはまいった。というか,別にLXQtがLXDEよりも遥かに重いとかそういうことではなくて,LXDEを愛した時代はもう終わっていくんだな,という感傷。デスクトップ環境が変わる,というのはいつでもつらい。自分はそういうのにもう適応していけそうにない。かつてUbuntuのデフォルトデスクトップ環境であったGNOMEがUnityに変わったとき,なら俺はもうUnityを触らない,と決めてLXDEにした。UbuntuのUnityはいつのまにかGNOMEに戻ってたけど,もう俺が知っていたGNOMEではないようだった。

なんていうか,こういう移り変わりの激しいものにその場その場でいいようにうまく適応していくような器量は自分にはない。Lubuntuの18.04はLTSで2021年までサポートだから,俺はそれまで18.04を使おうかと思う。なんならサポート切れてもLXDEでいきたい。

なんでもそうだ。時代が変わっていくのに,自分はそれに適応していけない。いつまでもここで足踏みをするだけなんだな,なんて。それでも,それでも,14年前のPCはこうして動いているのを見る。

狭いベゼルなんてすごく気持ち悪い。曲面ディスプレイはもっと気持ち悪い。目の前にデスクトップPCがあり,ネットに繋がっているのにスマートフォンを触るひとが気持ち悪い。フリップ入力とかいう技術が気持ち悪い。

そうやって,自分のほうが気持ち悪いおっさんになっていくんだな。

…などと思ったLubuntu 18.10だった。