2022年7月

ログ一覧

07月31日(日)

体調が悪い。

07月30日(土)

体調が悪い。

07月29日(金)

HPC研究会座長。ほぼほぼ現地の方にまわしてもらって、なんちゃってリモート座長だった。

Slackの教育機関向け割引が認められたのでアップグレード。

あとはクレジットカードの情報を入力し、無事にプロになった。後で建て替え払い請求をしないと→した。

眠くて全く頭が回らないぞ。

昔、「一人ジェンガ」という曲があった。記憶では椎名林檎だと思ってたが、矢井田瞳だったか。「一人黒ひげ危機一髪」「一人ババ抜き」など、「一人」シリーズは物悲しい、というイメージがあったが、今日一人情シスという単語を見てしまって、なぜか涙が止まらない。

その後何してたっけ?

思い出した。あんまり頭が回らなかったので、英語版コンパイラいじめ記事をdev.toに書いたんだった。さっそく「pointless」とマジレスされてしまった。

ヽ(`Д´)ノもう来ねえよ!ウワァァン

07月28日(木)

研究室ミーティング。Web3炎上事件を話題に。卒論や修論は、科学的思考の訓練の場なのであって、テーマは二の次といったら問題があるが、少なくとも「就職後はこのテーマ関係ないから手を抜く」ということでは困るよ、ということを話した。

本読み輪講。統計力学の本を読んでいるけれど、統計力学を学ぶのが主目的ではない。輪講は本を批判的に読む訓練。全ての文章について、この文の意味はどうか、本当にロジックが通っているか、計算は正しいか、ギャップはないか、一行一行についてきちっと読む練習。大学の教科書なんて間違いだらけなので、そのまま鵜呑みにしてはいけない。また、当たり前と思っていたことが、当たり前でなくなるのが学問。何が自明で、何が非自明か。自問自答しながら本を読まなければならない。これも折に触れて伝えていかなければならない。

GPGPUマシン発注。その他の仕事が間にあってない。

物理学会の事前参加登録した。

中間発表プログラム修正した。

9月生課題研究発表会のプログラムも修正した。

07月27日(水)

疑似相関の種類。confounder、mediator、colliderの説明。AとBに相関があるが、実はCが存在している、というもの。

うーん、colliderバイアス、もっと簡単な例ないかな。いわゆる生存バイアスなので、そちらの方で例を作る方がわかりやすいか。

ある会社の宣伝文句は、「うちの社員は、入社10年後にこんなに高額な給料を受け取っています」というものだった。その給料は極めて高額であったが、実は社員は入社して数年以内にほとんどやめてしまうような職場であり、その「生存競争」に勝ち抜いた人の給料であるから高かった。

みたいな奴とか?もっと単純に、プロ野球選手の平均年俸とかの方がわかりやすい?でもcolliderバイアスとしての図は作りにくいか・・・

集中講義のスライドを作らなければならないのだが、頭に内容がロードされていない。厳しいな・・・。

制度バグ、仕様ネタについてまとめておきたい。制度バグ、仕様バグとは、「制度・仕様通りだが、意図しない行動により、意図しない結果を生む」というもの。

最近の例だと、ドミノ・ピザの「Lサイズピザを1枚デリバリーで注文すると、Mサイズピザが2枚無料になる」というもの。Lサイズのピザは概ね4000円程度で、Mサイズのピザは2500〜3000円。一般に宅配ピザは原価が安く、人件費が占める割合が大きいため、4000円程度で1枚配るのも3枚配るのもあまり変わらない、という判断だったのだろう。こういった場合、おそらく過去のキャンペーンの経験から、「何倍の注文が来て、これくらいの増員で対応できるはず」という見通しをたてる。それでいけると思ってGoを出したと予想できる。

しかし、何もトッピングがのっていない「プレーンピザ」のLサイズ(2000円)を頼み、残りのMサイズを無料にするというハックが発見され、大人気になってしまった。さすがに2000円で3枚はペイしなかったのか、それとも「お祭り」になってしまったことが大きいのか、ドミノ・ピザは受付中止になった。その後「プレーンピザ」は対象外とすることで、再度キャンペーンを実施するらしい。

他にありがちなのが、就業規則のバグ。例えば、「結婚した時にお祝い金を出す」という規則を設けている時、同じ相手と短期間で結婚+離婚を繰り返すと、いくらでもお金を出さなければならないことになる。このあたりはここによくまとまっている。

うーん、二例しか見つけられなかった。封印。

次世代計算基盤に係る調査研究事業における採択チームを決定。これ、

07月26日(火)

いちばんやさしいWeb3の教本の販売中止・回収。そうか・・・そのまま放っておくと思ったけど、こうしてちゃんと対応したのは素晴らしい。

知っている言葉を適当に並べて作られたいい加減なストーリーを「ワードサラダ」と呼ぶ。これまでもワードサラダな本はわりと出ているのだが、技術系に強い出版社からこれだけいい加減な本が出されたことに批判が強まっていた。

え、物理学会って、発表してなくても座長回ってくるの?まだ参加登録もしてないよ。

ボルツマンマシンの解説記事書いた。あるだろうなと思いつつ確認していなかった「ZennのGitHub連携時の画像ファイルの扱い」についてちゃんと調べた。/imagesに入れれば良いらしい。プレビューはともかく、VSCodeでも正しく表示されるのに驚いた。これでもっと楽になるな。

っていうか、Zennの記事書くならVSCodeのプレビューよりブラウザプレビューの方が便利だな。VSCodeの同時スクロールもなんだか動作が怪しいし。

07月25日(月)

GPGPUマシンの機関発注依頼出した。

中間発表会のプログラム案作った。だいぶ手慣れて来たが、まだ時間かかるな・・・

「最近の新卒は使えない/基礎学力が無い」という言説にたいして、「優秀な学生がこない会社は、優秀な学生に選ばれていないのでは」と発言した。

すると、「優秀な学生が集まる学校で、学生の才能を自分の能力と混同していないか」というリプライが来た。

なんじゃこりゃ、と思ったが、後で考えたがこんなロジックだと思われる。

このうち、AとBが僕が意図した発言。そこから必ずしもCは導けないが、まぁCを主張していると取られても曲解ではないであろう。問題はDとEか。うーん。

CからDはギャップがあるけれど、Dはまぁ主張してはさほどおかしくはないですかね。で、DからEを主張する形の自慢はよく見かけるけれど、実際に発言したA, Bの主張から、暗にEを主張する自慢であったと解釈するのは、さすがに迂遠ではないかなぁ。

07月24日(日)

昨日の炎上の人、過去にも「株式会社は21世紀最大の発明」と書いており、日常的に裏を取らずに文章を書く人であるらしいことがわかる。

問題なのは、「最初の株式会社とされるのが東インド会社で、設立が17世紀である」ということを知っていることではない。「株式会社は21世紀最大の発明」と書く前に、ちょっと裏を取るために調べてみようと思わないこと」だと思う。ちょっと調べれば、近代的な株式会社の仕組みは、少なくとも19世紀ごろには確立していることがわかるはず。

大学で学ぶべきことは知識ではなく、「自分が何を知っていて、何を知らないか」を把握すること、知らないことを妄想で埋めないようにして、きっちり調べること、その姿勢なんだよね。これもちゃんと言語化して、学生さんに継続的に伝えなければならない。

うーん、後でNoteにでも書くために、ちょっと下書きしておこうかな。

「卒論・修論で学ぶべきこと、学んでほしいこと」

理工系の大学では、多くの場合学部で卒業研究を行い、卒業論文を執筆することになります。また、修士に進む人も多く、その場合は修士論文も執筆することでしょう。これまで、小学校、中学校、高校、大学と、基本的に「授業/講義を受けて学ぶ」という受動的な学習から、ここで初めて本格的に能動的な学習を実践することになります。私は、「研究は勉強ではない」と伝えています。優秀な学生ほど、知識不足を恐れて、手を動かす前に十分に勉強をしようとします。しかし、研究の主目的はあくまでもアウトプットであり、インプットはその手段に過ぎません。また、これまでの学習では、基本的に問題と答えがセットでしたが、業研究や修士論文研究では、テーマは与えられるものの、答えは用意されていません。教員は「こうなるんじゃないかな、こんな結果が出るんじゃないかな」と予想はしていますが、それが正しい保証はありません。

繰り返しになりますが、研究は勉強ではありません。卒業研究、修士論文研究は研究成果を出すのが目的であり、勉強が目的ではありません。しかし、大学が教育研究機関である以上、卒業研究、修士論文研究も教育の一貫として行われています。しかし、この教育は就職の準備のために行われているのではありません。研究テーマが就職先での仕事に直接関係することは稀です。にも関わらず、卒業研究、修士論文研究が教育であるとはどういうことでしょうか?また、教育であるならば何を学ぶべきなのでしょうか?以下では卒業研究、修士論文研究の教育的側面について書いてみたいと思います。

なお、卒業研究、修士論文研究に求めるものは、大学、学部、教員によって異なります。ですので、以下はあくまでも執筆者の個人的な意見であることを予めお断りしておきます。

まず、研究を通して一番最初に身に着けて欲しいスキルはサーベイです。全ての研究は、膨大な先行研究の上に立っています。同じ課題であっても、様々な手法、考え方で解決が試みられています。指導教員から「こういう方法でやってみたらどうか?」と言われた場合、まず把握すべきは「他にどういう方法があるのか?」「いつ頃からどんな研究がなされているのか?」ということです。

多くの研究室では、定期的な研究室ミーティングにおいて、論文発表をすることでしょう。これは、自分の研究に関連した論文を読み、それを研究室メンバーに紹介するというものです。この作業を通じて、学生さんは論文の読み方、発表の仕方を学ぶことになります。

論文を読む時、一番大事なことは、その研究の背景を理解することです。なぜその研究をしようと思ったのか、なぜその研究をしなければならなかったのか、その動機を理解しなければいけません。論文に書いている細かいテクニックなどの把握は(もちろん必要ですが)、背景を理解した後でかまいません。

少し前に、ウェブ技術についての本が炎上したことがありました。Web 3についての解説書だったのですが、Web 1やWeb 2の記述があまりにも不正確だ、というものです。実際に読んでみましたが、「自分が話したい結論」が先にあり、その結論に合うように断片的な知識からストーリーを組み上げてしまった、という印象を受けました。また、その人が書いた別の記事に「株式会社は21世紀最大の発明」という文章もあり、裏を取らずに文章を書く人であることがわかります。

ここで重要なのは「株式会社の起源は東インド会社であり、設立が17世紀である」ということを知っていることでも「近代的な株式会社の仕組みは19世紀頃に確立している」ということを知っていることでもありません。「株式会社は21世紀最大の発明」と書く前に、「株式会社についてちょっと検索してみようかな」と思うことです。

学問において非常に重要なのは知識そのものではありません。「『自分が何を知らないか』を知っている」ことです。人間は、自分が知らないことがあると、自分の知っていることで埋めようとします。これは普通のことですが、学問により、その「普通」からの脱却するする技術を身に着けます。

卒業研究、修士論文研究を通じて、ある程度「自分の専門」に近い分野については詳しくなります。すると、その分野に膨大な先行研究があり、とてもじゃないが全てを把握するのは困難であることがわかるでしょう。当然ですが、その全てを把握する必要はありませんが、「全てを把握できないほど先行研究が多数ある」という事実は知っておく必要があります。すると、自分の専門ではない分野においても、同様に先行研究が死ぬほどあるのであろう、と推定することができます。このような感覚を持てば、自分が知らない分野において、自分が簡単だと思う方法を採用していない場合に、「この分野の専門家はアホ」と断じる前に、「なぜそんな誰もが思いつきそうな簡単な方法を採用していないのだろう?何か理由があるのではないだろうか?」と思い、「○○分野 XX法」で検索してみるようになることでしょう。

サーベイの主目的は、当然のことながら自分の専門分野の研究背景について知ることですが、それを通じて、「自分が知らないということを自分で認識すること」そして、「自分が知らないことを妄想で埋めずに、しっかり調べる」という癖をつけることの方が重要です。

TODO: 続く?

どうでも良いけど、「バズったツイートの引用ツイートの内容を、そのツイートのリプライとしてぶら下げるbot」というのが存在するっぽい。アイコンはだいたい煽情的な姿をした女性。しかし、固定されたツイートを見ても、他のツイートを見ても、あからさまな広告への誘導はないっぽい。DMさせて何かするためのbot?バズったツイートのリプライを見て、そのリプライに煽情的な姿をした女性がいるから、そのアカウントにDMしよう、なんて考える人いるのかな?謎。

07月23日(土)

Bolzmann Machineの解説を書いてた。

メモ。いちばんやさしいWeb3の教本 人気講師が教えるNFT、DAO、DeFiが織りなす新世界

Web3の説明をしようとして、あまりにも事実誤認が多すぎて話題の本。

このあたりのまとめが詳しいかな。あとはここも。著者は「政府のブロックチェーンに関する有識者会議にて有識者兼オブザーバーとして参画した経験を持つ」そうで、以前政府関係者がブロックチェーン技術について怪しいことを言ってたのと関係あるのかな、と思う。

こういう炎上ネタを拾うのはあまり趣味の良いことではないけれど、理工系の学生として「先行研究をきちっとサーベイし、ちゃんとした歴史認識を持つ」ということを卒論、修論で学ぶはずだし、学んでほしいので、そのための教材としてメモしておこう。

しかし炎上案件見た時に、「自分が炎上しないように気をつけよう」よりも、「学生さんが将来炎上しないための話のタネにしよう」と思うとか、もう発想が親目線というか、おじいさん目線というか・・・

まぁ教育者としての自覚を持った、ということにしよう。

07月22日(金)

1on1とか。

総務から在職証明が届いたのでSlackの教育支援プログラムへの申請をする。

状況は「ヘルプリクエスト(/help/requests)」で確認可能。「Education Application from 名前 at ワークスペース名」のようになる。また、「We’ve received your Slack for Education application」というメールが来る。

Slackの教育支援プログラムに申請した。いま混んでて時間かかるかも、と返事がきた。

ようやくBolzmann machineのモデルサンプルを作ることができた。なかなかきれいなサンプルを作れなくて苦労した。また、バイアスや重みについてまだ混乱があった。これであとは書くだけかな。

07月21日(木)

研究室ミーティング。

xml.etree.ElementTreeによるXMLのパース、普通にやると成功するのに、glob.globでファイルを多数食わせると失敗するのに悩んでいた。結局原因は、不正なXMLファイルがあって、それを読み込んで失敗していただけ。それなのにglob.globが文字列ではなくファイルオブジェクトを返しているのか?などと見当違いなことを調べてしまった。デバッグ力が落ちている。いかんね。

MDシミュレーション、見当違いなことを言ってしまった。MD力も落ちている。

学生さんの論文がもう一つできそう。素晴らしい。

帰ろうとしたら矢上キャンパスの眼の前で火事。すごい燃えてたけど大丈夫なのかな。

8月11日は山の日とのこと。調べたら慶応は祝日。海の日は(慶応の学事上は)祝日じゃなかったのになぜ?

gitでリモートブランチをローカルに持ってくる方法。いちいち

git fetch
                        git switch -c branch origin/branch

としてたけど、

git fetch
                        git switch branch

で良い(勝手に見つけて上流ブランチの設定もしてくれる)。これ、毎回忘れるな。

07月20日(水)

デスクトップPC購入した。GPGPUマシンの見積もり依頼。

Slack有料化への対応でバタバタ。

学習指導のお仕事。Canvasのモジュールで、必要なページを公開したつもりが、親モジュールが非公開になっていた。学生からの指摘で判明。慌てて公開。いろいろ不手際があって申し訳ない。

学生さんの論文チェック。

むー、ボルツマンマシンの説明を書く時間がとれない。

07月19日(火)

学生さんのPCが壊れたので急遽新しいのを購入。「PCは突然壊れる」という感覚を肌で覚えるのは非常に重要なことだと思います。

いろいろやりたいことがある。いまローカルのエクセルで管理している予算をGoogle SpreadSheetにしたい。Pukiwikiで管理している研究室WikiをGitHubに移行したい。しかし、忙しい。

GitHubのMarkdownがいつのまにか数式をサポートしていた。

Math support in Markdown

いままで、Markdownで書いてからいちいちPandocでHTMLになおしていたのだが、これが不要になるのか。

「一週間でなれる!スパコンプログラマ」の表示がおかしかった気がしてissueを立てたが、いま見たら直っていた上に、そもそもMarkdown上で数式が見えて驚いた。対応の途中で表示がおかしかったのをたまたま目にしたのか?いずれにせよ数式対応はありがたい。

なんか、「進捗が無いと世の中に意見を言いたくなる病」にかかっている。いかん。進捗は百薬の長。

GitHubにブランチ保護機能がついた。例えば「削除を許す」「歴史がまっすぐであることを要求する(マージコミットを含む歴史のpushを許さない)」などがある。とりあえずデフォルトで「Allow force pushes」と「Allow deletions」がオフになっている状態なので、ルールを有効化することで、それができなくなったはず。

ちょっとこれUIがよくないな。デフォルトでオフになっている「Allow force pushes」が、ルールを有効化することで有効化される、つまりforce pushを許さなくなる、というのは、ちょっとよくないと思う。デフォルトでは現状、すなわちAllow force pushesやAllow deletionsがオンになっておき、Protectionの有効化によりオフになる、という方がよいと思う。

Macにnpmが入っていなかったのでいれる。

brew install npm

その後、zennを管理するリポジトリにて

npm install zenn-cli 

でOK。他の場所(WSL)で作成したzenn-contentを、別の場所(Mac)でいじる、ということを想定しておらず、またnpmによる管理がどうなっているか理解していなかったので戸惑った。

あー、でもMacのパワポで絵を描くの大変だから、やっぱりWSLで書こう。

07月18日(月)

修正した論文を再投稿した。再投稿期限ギリギリ。

この論文、1月には査読レポートが来ていたのだが、返事がわりと大変な部類だったのと、ちょうど講義準備で忙しい時期にぶつかってしまって対応できなかった。講義が終わったのが5月23日。その後、去年の9月から放置していた(本当に申し訳ない)学生さんの論文に取り掛かる。そして投稿できたのが7月11日。

そのあたりから気合を入れて、査読の返事を書いて、再投稿まで持っていった。あしかけ10年くらい取り組んでいる、死ぬほど難産な論文。これで通ってくれると良いのだが。

どちらも投稿状態で、まだacceptされたわけではないが、とにかくずーっと気にかかっていた論文を一応片付けられたので、肩の荷がようやく降りた。これから集中講義と秋学期の準備がある。これからガンガン進捗を生むぞ。

07月17日(日)

NOP

07月16日(土)

論文の修正。

07月15日(金)

論文の修正。これで再投稿できると良いなぁ。

学習指導のお仕事。いろいろギリギリだった。いかん。

07月14日(木)

選挙のあと、なんか「知識人」が毎回「自分が正しいと思う未来に賛同しなかった連中は全員愚民であり、この国の未来は暗い、絶望的だ」と言うまでがテンプレだなぁ・・・

研究室ミーティング。

物性研スパコンの審査。

柔道部の大会参加費振り込んだ。

そろそろ集中講義の準備をしなければならないし、秋学期の講義準備もしないといけない。秋学期が始まってしまうと身動きが取れないだろうから。

目の前にたくさんタスクがあるが、一つ一つ片付けるしかない・・・

07月13日(水)

物性研システムC(kugui)でLAMMPS。

mkdir github
                        cd github
                        git clone -b stable --depth=1  https://github.com/lammps/lammps.git
                        cd lammps
                        cd src
                        qsub -I -V -q i2cpu  -l select=1:ncpus=2
                        module load intel intel-mpi
                        make mpi CC=mpiicc LINK=mpiicc CCFLAGS="-g -O3 -std=c++11 -qopenmp" LINKFLAGS="-g -O3 -std=c++11 -qopenmp" -j 20

基本的にコンパイラとリンカにmpiiccを指定するだけだが、module loadするのと、コンパイルオプションだけでなく、リンクオプションにも-qopenmpが必要なのがポイント。

WindowsでPDFをプレビューする時、Adobe Readerが自動再読み込みに対応していないため、WSLでevniceで開いているのが、なんともアホっぽい。

塩漬け論文、子供が寝てから気合で返事をかきあげた。10年近く寝かせた論文。とにかくpublishまでこぎつけなければ。

07月14日(火)

まだ調子悪い。

07月11日(月)

よく寝たので、だいぶ体調が回復した気がする。ただ、まだ頭が回ってない。

学生さんの論文投稿した。

07月10日(日)

選挙行った。

JPSJ投稿覚書。投稿時に必要なのは「Short Summary to the Editorを入力 (300 words or less)」だけで、Cover Letterはいらないのか。後はSuggested refereeをメモしておけば良いと。

土日で全く論文に手をつけることができなかった。しんどい。

とりあえず、最低限の仕事として、明日の別の論文の投稿準備をした。

07月09日(土)

引き続き体調が思わしくない。頭が全く回らない。たまにこうなるんだよなぁ・・・

07月08日(金)

体調がどうも思わしくない。

安倍元総理銃撃事件。参議院選挙を日曜日に控えて。言葉が無い。

07月07日(木)

研究室ミーティング。

学生さんの論文がarxivに掲載されたarXiv:2207.02449。慶應義塾大学渡辺研としての初めての論文。感慨深い。これから量産したい。メールアドレスを間違えるという致命的なミス(僕が修正時に間違えたので学生さんのミスではない)。さっそく修正してもらった。ちゃんとチェックしないとダメだ。

物性研スパコンのポイントをほぼ使い切ったとの連絡。次はさらに大きなクラスにしないとダメだ。3ヶ月でCクラスのポイントを使い切るって、HPCの研究室っぽくなってきましたね。嬉しい悲鳴。

07月06日(水)

printfに4285個アスタリスクをつけたらclangが死ぬ奴、今試したら3460個になってる上に、ギリギリで試すと

test.cpp:3:3461: warning: stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely [-Wstack-exhausted]

という警告が出るな。これ、以前からあったっぽい。前回はApple LLVM version 10.0.1 (clang-1001.0.46.4)だったが、10.0.0のRelease noteにある。

ちなみに (((printf("Hello World\n"))))みたいなことをすると、clang::Parser::ParseParenExpressionというところでスタックを使い切って死ぬらしい。ふむ。

GCCは10000はいけたが、さすがに100000で死んだ。50000も死んだ。ohtakaでは34086が限界ですね。ローカルのiMacだと、g++-11で55179が限界。

arXivの投稿、endorseが必要で、そのためには当該分野にX以内にY編の論文を公開していなければならない、というものルール。そして僕はまさかのcond-mat.stat-mechのendorse権限なし。論文投稿しなさすぎ。ひどい。もっとがんばらないと・・・

07月05日(火)

よく寝た。体調はだいぶ良くなった。

論文投稿のため、スタイルファイルを適用。これでarXivへの投稿準備は完了。

最近、YouTubeの講義動画をよく見ている。Andrew Ngの講義動画もたくさん上がっている。すごい時代だ。

Andrew Ngの発音の仕方を知らなかった。「アンドリュー・ン」らしい。え?Andrew Ngって同い年なの?マジか・・・

TuringというところからSPAMが来るんだけど、それに返事をした人がいた。面白い(と言ってはいけないが、面白い)。最初の返事は明らかにbotだが、最後にちゃんと人っぽい人から返事が来ているのが興味深い。

Turingのメールの「START YOUR APPLICATION」ボタン、URLに「analytics?ti=なんかハッシュっぽい文字列」があるので、ここからどのメールアドレスから返事をしたか調べてるっぽいですね。unsubscribeボタンにも同じハッシュがある。

塩漬け論文に取り組んだ。Referee Reportが厳しかったので、なかなか手をつける気にならなかった。しかし、取り組んだ課題は論文として出版しなければならない。

07月04日(月)

論文最終チェック。

07月03日(日)

急にすごいアレルギー反応。目のかゆみ、鼻水、頭痛。何に反応したんだろう?おそらく原因の数時間後に反応するっぽいので、原因がよくわからない。

07月02日(土)

体調が悪い。庭の草むしりとかした。

07月01日(金)

7月になってしまった。

Restricted Bolzmann Machine、またわかりやすい説明をYouTubeで見つけた。

Ali Ghodsi, Lec [7], Deep Learning , Restricted Boltzmann Machines (RBMs)

この人、Databricksの創業者であり、CEOでもあるのに、講義がとても上手。カリフォルニア大学バークレー校の非常勤講師とのこと。でも、この動画はWaterloo大学のものだな。

僕もなんか講義ビデオあげようかな。日本語の講義がYouTubeに増えるのは良いことだし。

一週間でなれる!スパコンプログラマの星が500を超えた。無理して書いたものだが、報われた気がしてちょっとうれしい。