ユユユユユ

webエンジニアです

多読より精読

多読の逆を心がけた一年だった。少ない本をじっくりと読む。そうすることで、かえって知恵は深められたようにおもう。

今年読み上げた本のうち、確かに身になったとおもえるものを列挙する。どれもアカデミズムにおける経歴がたしかな著者/訳者によるものであることに納得感がある。

どれも学部生向けの入門レベルにあたるものであるが、「入門こそ正確であらねば」とする学問的誠実さを強く感じた。定義にごまかしはなく、証明も省略されていない。おそらく、必要以上に丁寧に書いてくれており、期待としてはすべて理解するように要請されているのだとおもう。

大学院レベルであれば多読によりガツガツと知識の幅を広げていくことが必要になるのであろうが、学部生レベルであれば、まずは精読により専門用語と議論の論理に慣れることが第一なのだとおもう。基礎力がつかないままに多読をしても、目が文字の上をすべるだけになりかねない。

商業出版寄りの専門書もいくつか読んだが、印象に残らないものばかりだった。軽く読んだか、じっくり読んだかの違いがそのまま表れているにすぎないといえばそれまでだが、ここには真理も含まれているとおもう。すなわち、簡単な参考書を多く消費するより、重厚な参考書をよく選んで取り組むほうが、身になる。

出版社を吟味して、きちんとした先生が書いたテキストを読むのがいまの僕にとってはより健康そうだ。

ベートーヴェン 交響曲第九番

池袋の東京芸術劇場で、日本フィルの第九を観た。

これほど立派なコンサートホールには行ったことがなかった。フルオーケストラの交響曲を生で聴くのは大学のオーケストラ部の定期演奏会以来で、プロのものもはじめてになる。

巨大な神棚のようなパイプオルガンが正面で客席を見下ろしていて、これが鳴らすバッハの三曲がまずはじめにあった。いったいどんな原理で音が出るのかもなにもわからないが、甘さと鋭さを持った粒が折り重なって厚い和音を作ったかと思えば、次の瞬間には水を打ったような静寂がやってくる、という往来がよかった。無心になって聴いた。

  • In dulci jubilio, BMV 729
    1. Sonatina from Cantata "Gottes Zeit ist die allerbeste Zeit", BMV 106
  • Toccata and Fugue in d-minor, BMV 565

第九は、小林研一郎の指揮になる。第1楽章冒頭の乾いたドローンからすでに荘厳を感じていた。キメのフレーズが訪れるたびにウンウンと首を振って楽しんだ。

演奏会のためにいくつかの異なる演奏を聴いて、加えて放送大学西洋音楽史の講義も聞いて、この交響曲がどのような音楽的構造を持っていて、どのような歴史的経緯において受け止められてきたのかも素人ながらに勉強していた。知れば知るほどに、どのような説明を与えても拒まれてしまうような気にさせられる。

歓喜の歌に明白な高揚感を与えられたかと思えば、次の瞬間にはスイングまがいの行進曲になり、オッと思った隙にこんどは静謐なミサ曲のような顔をみせる。で、なんだかんだで最後にはドタドタしたお祭りムードの中で大団円となる。どうしてこんなことになり、しかもそれでいてすべてが最高なのか。明らかに言葉を超えた事態が起こっていて、そしてそれこそが音楽の醍醐味と言うよりない。終わってしまったのが悲しく、帰り途では「ベートーヴェンロス」とか「歓喜、そして、死」とか言って、高揚のあとの空虚を確かめた。

フルート、ホルン、ティンパニの存在感を味わえたのはよかった。対して、ビオラオーボエクラリネットあたりはまだ耳が発達していないのか、うまく味わうことができなかった。

なにせ初めてのフルオーケストラであったから、これから聴いていくだろう演奏の基準点にこれがなるのだろうなと感じている。今日の演奏会に比べて、どこがよかった、どこがよくなかった、というような自分の好みをこれから見つけていけるのを楽しみにしている。

オーディオ入門の年

夏にもらったボーナスの使い途にしばらく悩んで、秋にスピーカーとネットワークレシーバーを購入した。ミニマムなオーディオ入門である。

f:id:jnsato:20211226165815j:plain

こういうセットで鳴らしている。選ぶにあたってはあれこれ悩んだが、最後には結局「初心者へおすすめの組み合わせ」でよく言及されるものをとった。

  • Bowers & Wilkins 707 S2
  • Marantz M-CR612

もっぱらモダンジャズ古典派音楽をかけている。声楽よりも器楽を聴くのがいまはおもしろい。とりわけクラシックはこの環境によって聴くようにさせられたというところもあり、新しい音楽に開眼させられつつあるのがまた嬉しい。あるいは聴き慣れた演奏であっても、かつて聴いたサウンドよりもずっと端正な印象を与えられたり、聞こえていなかった音の工夫が聞こえるようになるのが楽しい。

「いい音」というものにはわりあい無頓着なほうで、「どのように音が鳴るか」よりも「どの音が鳴るか」に偏執していたところがあった。つまり、音高と音価のデジタルな配列を情報として処理することを第一として、譜面に現れない要素は関心の外にしていた。極端な話、エレベーターミュージックでも十分に音楽として楽しんでいた。

それはそれで幸福であったところもあるが、そういう態度で音楽を聴いている自分の姿にあるときハッと気がついて、「これではいけない」という気持ちにさせられたのが 2021 年だった。

きっかけがどこにあったのかを特定するのは難しいが、いま振り返ると、ふたつの音楽会に顔を出したことがひとつの契機にはなっていそうにみえる。

ひとつは4月2日にスタジオコーストで観た DC/PRG の解散コンサートで、もうひとつは6月5日に目黒で観た加藤訓子さんによるクセナキスの演奏会である。どちらもデジタルな情報としては僕には処理不能な、高度に難解な音楽でありながら、それを音楽として気持ちよく楽しむことができた。ポリリズムを分析的に分解しようとするのではなく、同時多発的な一塊のアンサンブルそのものとして楽しめた。まあ、本来音楽というのはそういうものであると言われればそれまでだが、それがおざなりになってしまうくらいには情報中心主義的な認識に囚われていたということなのかもしれない。

オーディオのおもしろいところは、個々の楽音がよく分離していて、ディテールの解像度が上がっているにもかかわらず、それが全体のバランスを損ねないところである。それぞれの要素が固有のテクスチャをよく保ちながら、アンサンブルのなかに溶け合ってひとつの塊をなすような感じ、それがおもしろい。一般にある部分を強調すると残りの部分がぼやけてしまうはずなのだが、どうもここではそうはならないらしい。部分を聴きながら全体を聴き、全体を聴きながら部分を聴く、ということが可能になっている。

などとオーディオ論を一席ぶつにはまだ素人も素人なのだが、なにか新しい認知の可能性が自分の内面に開かれたというのは嬉しいことである。 2022 年にはコンサートホールにもジャズクラブにもより多く通って、音響というものをもっと肉体的に知覚できるようになりたいと思っている。

ベクトル空間の定義

放送大学で隈部先生の講義、「入門線型代数」を受講している。テキストは平易な説明でありながら証明が充実しているし、さらに放送講義で細部を補えて、たいへんよい講義と思っている。

そのいっぽうで、行列式、余因子、正則、線形結合、生成する空間、など、新たな定理や定義の導入が一課進むごとに発生して、ひとつひとつの概念は大雑把に掴めても、やがて検討している文字式がなにを表しているのか--実数なのか、ベクトルなのか、行列なのか--さえも混乱するようなことがあって、多量の文字の操作で迷子になっていた。そして最後には、計算以上に定義を暗記するようなスタンスを持ち始めてしまい、いったいなんのためにこれをやっているのか、となるにいたり、ちょっとモチベーションが下がり気味だった。

そんな折に、ヨビノリ先生の線形代数連続講義というこちらも評判のよいビデオ講義のシリーズを知って、復習のつもりでこの数週間ですこしずつみていた。

https://www.youtube.com/playlist?list=PLDJfzGjtVLHnc1vTpBaCNKMUl6HauQv1a

各種の定義については初学者向けと銘打っている通り、放送大学のテキストによるただでさえ平易なものをさらに易しくしてくれている印象で、復習にはもってこいである。視聴者の多くも同様に、大学での講義で手にし損ねた理解を拾うために訪れているようなコメントを残している。

と、あくまで正規のテキストの補助資料として活用させてもらっていた格好なのだが、「ベクトル空間の定義」というこのビデオだけ、テキストで触れられていなかった(か、あるいは僕が見落としてしまっていたのかもしれないが、いずれまったくわかっていなかった)、ベクトル空間のそもそもの定義というものを知らせてくれて、一気に視界が開けた感触を持った。

https://www.youtube.com/watch?v=F0mkAiRiLik

ベクトルとは、有向線分としての幾何ベクトルを拡張して数の並びとして扱えるようにしたにすぎない、とみなしていた。その先入観を、このビデオの「演算規則が8つの公理を満たしていればそれがベクトルである」とか、「これらの公理を満たすようにうまく演算規則を定義する」などというメッセージが、突き破ってくれた。いかにも恣意的にみえかねないような演算が、実は公理に従属するように設計されている、という視野は所有していなかったものである。また上位のクラスを満たすようにインターフェースを実装するという抽象化の進め方はいかにもプログラムの設計に通じるところがあって、見事な一般化に凄みも感じている。

実際のところ、これらを使ってただちになにかを生み出せるようになったわけではないし、まだまだ学習としては入門レベルに止まっているわけで、状況としてはなにも変わらないのだが、低下傾向だったモチベーションがグッと持ち直しているのを感じて、やる気を活性化させてくれる教育者がいてくれることのありがたさを思った。

微分積分は楽しいけど、線形代数はちょっと苦手かもしれない、と思っていたところに思わぬカンフル剤を打ち込まれた。どちらも入門レベルは無事に完走できそうな気もしてきた。嬉しいことである。

職業で自我を規定しない

このところ、数学ほど楽しいものはないという気持ちと、プログラミングはやっぱり楽しいという気持ちが交じりあっている。いっぽうは趣味でいっぽうは職業であるが、たまたま手近な職業として後者を選択してしまったにすぎず、本分がどちらであるのかはどうでもよくさえなっている。

プログラマという職業がもてはやされていることと、自分がその職業についていること。これらは異なる因果のなかにあるということが見えずに(あるいは積極的に盲目を装い)、「自分の職業はこれ以外にない」と奇妙な自尊心をもっていた時期があった。しかしそれは「私は成功している(はず)」という暗示によって不安をトランキライズするひとつの目くらましにすぎず、まったくもって拙速な、無意味な、愚かな表現であった。それがわかってきた。

別にプログラマじゃなくても生きていけるとおもうし、職業に囚われて感性がタコツボ化してしまうくらいなら、さっさと新しいアクティビティに移行するべきでさえある。現実的には、職業を変えることにはすさまじいエネルギーが要る(実際のところ、他業種からプログラマに転職してくる人はそれだけで尊敬に値する)。ただちになにかを計画して実行に移すというほどのものはまだないけれども、少なくとも僕自身の意識、自画像としては、「たまたま」プログラミングができるだけの並の人間、というくらいで十分であって、それ以上のものではない。楽しいからやっていることではあるが、もっと楽しいことがあるならばそちらに移行する道は空けておきたい。それができるかどうかをシリアスに見極めたい。

Elixir のイントロダクションをスローに読んでいる

世の中では Rust への熱が日に日に高まっている様子であるが、僕はというとなにか本能的に惹かれるものがあったのだろうか、 Elixir のイントロダクションをちまちまと読んでいる。

elixir-lang.org

パターンマッチングだとかアクターモデルだとか、 Ruby 3.0 の文脈でワイワイ言われていたものがごくごく基本的な事項として提示されて、なるほどこういうものであったのか、とふんわり用語法を咀嚼している。

楽しくはあるけれど、深入りはあえてしない。なにせ週末は学生に戻って微積やら化学やらの予習復習をしているわけで、とてもではないがそれ以上のアクティビティに熱中する余裕はない。思えばフルタイムの学生をしていたころも、学期中に限って履修科目から外れたトピックの独学を始めたりしていたものであったから、これも同じように気紛れ、逃避の類なのだろう。講義に追いつけてきたという余裕のあらわれであると思えば、そう悪くもない。

しかしあくまで講義を優先して、こちらは余暇の手慰みである。つい熱中しかけても、主従関係は誤らないようにせよ、という戒めとして記述しておく。結果としてどちらも楽しめればこれほど素晴らしいことはないが、順序の定義は失わないこと。

ランダウの記号

計算量の上界を見るときにビッグオー記法などとよく引き合いに出される、例のランダウの記号というやつについて、解析学のテキストで触れられているものを読んだ。「他の定理はともかくとしてこれなら知っているぞ」といわんばかりの思いで臨んだが、数学的定義のちんぷんかんぷんさに打ちのめされた。とはいえひとまずテキストの内容は理解できたと信じて、この定義を忘れないようにしたいとメモを書いておく。

収束速度の表現

 x \to a のとき  0 に収束するふたつの関数を考える。  a = 0 として  x \to 0 と考えてもよい。

 \displaystyle
\lim_{x \to a}{\varphi(x)} = 0

 \displaystyle
\lim_{x \to a}{\psi(x)} = 0

 \sim 記号

 \displaystyle
\varphi(x) \sim \psi(x)
と書いて  \displaystyle
\lim_{x \to a}{\frac{\varphi(x)}{\psi(x)}} = 1
を意味する。

 \displaystyle \varphi(x) \displaystyle \psi(x) が同じ速さで  0 に収束するということ。

 o (スモールオー)記号

 \displaystyle
\varphi(x) = o(\psi(x))
と書いて  \displaystyle
\lim_{x \to a}{\frac{\varphi(x)}{\psi(x)}} = 0
を意味する。

 \displaystyle \varphi(x) \displaystyle \psi(x) よりも速く  0 にいくということで、このとき  \varphi(x) \psi(x) より 高位の無限小 という。

 Oビッグオー)記号

正の数  K があって

 \displaystyle |\frac{\varphi(x)}{\psi(x)}| \leq K, x \to a

のとき  \varphi(x) = O(\psi(x)) と書く。

 O(\psi(x)) \psi(x) で割って  K で上から抑えられる数」と覚えればよい。

発散速度の表現

 x \to \infty のときもだいたい同じ感じで表現できる。ここでは省略。

テイラー展開の表現

 Rn を剰余項としてこんな風に書くことにする。

 \displaystyle
f(x) = f(a) + f'(a)(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + \cdots \\\
\displaystyle + \frac{f^{(n-1)(a)}}{(n-1)!}(x-a)^{n-1} + Rn, x \to a

このときに  Rn (x - a)^{n} で割れてかつ正数  K で上から抑えられるので、

 \displaystyle
Rn = O( (x - a)^{n} )

とも表現できるわけである。

さらに  (x-a)^{n} (x-a)^{n-1} より高位の無限小なので

 \displaystyle
Rn = o((x-a)^{n-1})

としてしまってもよい。

不定形の極限を計算するときには、テイラー展開を上手に使って  O( (x-a)^{n} ) o(1) のような形に持ち込みたい。  o(1) はつまり「 1 で割って  0 になる数」として処理できる(無視できる)ことになり、  \displaystyle \lim_{x \to 0}{(x + o( 1 ) )} = 0 のように計算できる。

たとえばこのように:

 \displaystyle
\lim_{x \to 0}{\frac{\log(1+x) - x}{x^{2}}} \\\displaystyle
= \lim_{x \to 0} {\frac{( x - \frac{1}{2} x^{2} + O(x^{3}) ) - x}{x^{2}}} \\\displaystyle
= \lim_{x \to 0} {\frac{- \frac{1}{2} x^{2} + o(x^{2})}{x^{2}}} \\\displaystyle
= \lim_{x \to 0} {( - \frac{1}{2} + o( 1 ) )} \\\displaystyle
= - \frac{1}{2}