2021年8月24日火曜日

AUGUST

 

ずっと英語ライティングの自動添削に興味があって、以前にも自然言語処理(NLP)の勉強をしているという記事を書いたけど、その続き。

自然言語というのは、要は自分たち人間が普段使っている言語のことで、日本語も英語も自然言語。これをコンピュータに処理してもらうのがNLP技術なんだけど、この勉強を始めると必然的に数学や機械学習(→WikipediaではAIの一種であるとみなされていると説明している)の知識が必要になってくる。

それで、生徒の子からすると「なんでこの人は数学とかの勉強ばっかりしているんだ」ということになるんだけど、気づけば机の上にはそれ関連の本が積まれている。



高校生のとき自分はいわゆる"文系"だったので、数3の知識がない。これがものすごくネックになってくる。自分が高校生の頃は、数3に「行列」という分野が含まれていて(今は違う)、理系の教室にいくと、黒板にこんな数字の並びが書かれていたりした。


当時は「なんじゃこれ」としか思っていなかったが、今となっては「理系だった人いいなー」という状態だ。

NLPの勉強過程で通らざるをえないのが、偏微分、ベクトル、行列、確率…といった範囲。正直、微分といっても「接線の傾きでしょ」とか「xの2乗を微分したら2xだよね」ぐらいの知識の人間にとって、急に「ここでx1, x2をそれぞれ偏微分すれば…」とか言われても、「いやいや、偏微分って何だよ。たしか大学で数学の授業とって、偏微分とか言ってたけど、教授がテンション高い人だったってことしか覚えてないぞ」という反応しかできず、何度も挫折しかけた。

それでも何とか独学で勉強して(インターネットがある時代に生まれて幸運だ)、やっと「ラグランジュの未定乗数法」とかいう、名前を見ただけで本を閉じたくなるような技法も理解できるようになった。(偉そうに書いてるけど、卒業生で大学1年生の工学部の子の数学ノートを見せてもらったら、だいぶ序盤に登場していたので、理系の人にとってはたぶん初歩的な知識なのかもしれない。でも自分にとってはともかく快挙だ。)


何がすごいって、たとえば f(x,y) = xy みたいな手動で書くのは難しいグラフも、GeoGebraといったウェブサイトでは一瞬で表示してくれる。このグラフはこんな形状。


ちなみに「ラグランジュの未定乗数法」は、たとえばx+y=4みたいな制約があるときに、このf(x,y) = xy がとりうる最大値は何でしょう? みたいな問題を解くのに使える。(もちろん、この問題なら y=4-x を xy に代入すればすぐ答えは出るんだけど…。)

この「ラグランジュの~」では、λ っていう記号が出てくるんだけど、最初はこの文字の読み方すら分からなくて(ちなみにラムダ)、もうその時点でパワーが削がれる。「aとかkとかでいいじゃん、なんでλなんだよ…」という気持ち。たぶんラグランジュ(Lagrange)の頭文字エルのギリシア文字ってことなんだけど(ラグランジュは人名)。


興味のない人には全然おもしろくない話で恐縮なんだけど、もう少しだけ書いてみる。


理系の人が大学生になってまず習う数学が線形代数らしい。で、そこでまずベクトルの知識が必要になるんだけど、ここでも、こっちは「ベクトルって、向きと大きさをもつ矢印のことだよね」ぐらいの知識。そこに急に「n次元ベクトル空間」が登場して、「待って待って、3次元までなら分かるけど、4次元とか5次元ってどんな矢印よ」と、お手上げ状態。


そのあと、今度は例の「行列」が出てくる。行列に関しては、この3Blue1Brownの動画シリーズにものすごく助けられた。この人の動画はどれもintuitive(直感的)に概念を理解させてくれて、感動的とすら言ってよいと思う(コメント欄にあふれる賞賛の言葉を見ると、多くの人が同じように感じていることが分かる)。



…と、たくさん書いてしまったけれど(本当はもっと書きたい)、今までどれだけ挫折しかけてきたか、何となく伝わるんじゃないかなと思う。それでも、何とか今のところ継続できている。Khan Academyという、無料で数学などの勉強動画が見られるサイトにも物凄く助けられた(Kahn AcademyについてのWikipediaはこちら)。

いつか、この学んでいることを使ってライティング添削のサービスを作ったりできたら良いんだけど、そこまでの道のりはまだまだ長い…。NLP自体の話を全然書けなかったので、またいつか!


~~~~~


お菓子の差し入れをたくさんいただいています。お気遣い、いつもありがとうございます!
大量の消毒液ボトルを横に置いて(『その手、消毒した?!』が口癖になってきました)、美味しくいただいています!