見出し画像

社会人が0から数学を勉強するために必要だったこと

はじめに

GA technologiesのData Scienceチームに所属している白土です。
私は約1年前にビジネス職から社内のAIチーム(以下AISC)に異動したのですが、その中で課題を感じたことの一つに【数学】があります。

私は文系出身で「微分って何だっけ?」くらいの感じだったので、データサイエンティストの数学レベルとしては0でした。そのため論文を読もうとしても、数式が現れた際に「記号が何を意味しているのかわからない」「使われている公式や定理を知らない」「使われている概念が理解できない」などの課題を感じていました。

色々と試行錯誤はしたのですが、主に以下の理由で社会人が0から数学を勉強するのはめちゃくちゃハードルが高いと感じました。
 1.体系的に学ぼうとした場合にどこから、何をやれば良いかわからない。
 2.本や動画で学ぼうとしても身につかない。
 3.数学ができなくてもすぐには死なないので、優先度が下がってしまう。

最近では少しずつ学習が習慣化してきたのですが、これはひとえにチームのサポートのおかげで、おそらく自分一人では乗り越えることができませんでした。
この記事では、学習を始める際に重要だと感じたポイントを幾つか紹介できればと思います。

どうして数学を勉強しようと思ったのか?

個人的には「データサイエンティストは数学ができないと仕事にならない」とは思いません。簡単な計算だけで成果を出せる場面はたくさんありますし、ライブラリ等を用いれば理論的な部分を理解していなくとも十分モデルを作成することができます。

そんな中、きっかけとなったのは昨年8月のチーム内の勉強会でした。
AISCではメンバーの持ち回りで、論文を紹介する形式で勉強会を行なっています。私が担当した際は「Selection Bias in Housing Price Indexes: The Characteristics Repeat Sales Approach」という論文を選びました。(米国の不動産価格予測の手法に関するものです)

論旨はわりとスムーズに理解できたのですが、具体的な計算方法に関する以下の数式(と関数)を読み取るのにとても時間がかかりました。

私にとって衝撃だったのは、参考程度にと掲載した上記の数式を、他の方々は一目見ただけで「あー〇〇の箇所で✖️✖️をしているんだね」と概ねイメージができていたことです。

これまで私は複雑な数式が出てきた際に、ある種の「魔法」のように捉えて、読み飛ばすことも少なくありませんでした。いずれ実際に使うとなったら調べたり、誰かに聞きながら読み解ければ良いだろう、と。

だけど、もし一見するだけでその内容を大まかにでも理解することができるのなら、今後の学習効率にとても大きな差が出ると感じました。
個人的にはデータサイエンティストは一生、勉強をし続けないといけない職業だと思っています。その上で、この学習効率の差は将来的に死活問題になるな、と危機感を持ちました。

どのように学び始めたのか?

これが数学を学ぼうと考えたきっかけなのですが、一方で、「数学が直近の成果には必ずしも繋がらない」ことも理解していました。タスク分類における「重要だが緊急ではないもの」ですね。この類はどうしても他の緊急度の高いタスクに埋もれてしまいがちです。

結果、「勉強しなきゃな」と思いながら何もしないまま1ヶ月が経過していました。これは、何から勉強をするべきかわからなかった、というのも大きかったと思います。

ということで、「記号が何を意味しているのかわからない」「論文で使われている公式や定理を知らない」「論文で使われている概念が理解できない」など、課題を少しだけ整理した上で、上長やチームの方々に相談をしてみました。

そこで気づいたことが二つあります。
一つ目は理系出身者が多いチームですが、数学に課題を感じているメンバーは私だけではないこと。具体的な課題感には違いがあり、大学で学んだ内容を忘れている or データサイエンスとの結びつきがイメージできない、といったものでした。
二つ目として、私の直近の課題を解決するために注力すべきポイントが「線形代数」「微分」だと明確になりました。
これらの概念や公式、計算方法を学ぶことで、数学的な記号についても自然と慣れていくだろう、と考えています。

チーム内での勉強会

線形代数と微分を学ぶに際して、上長に『プログラミングのための線形代数』と『微分積分 (理工系の数学入門コース 新装版)』をテキストとして紹介していただきました。最初、私には敷居が高く、特に線形代数の「行列は写像である」という概念が理解できず、Youtubeの学習系の動画にはかなり助けられました。

ただ、テキストや動画を眺めるだけでは中々頭には入ってきません。また、業務が忙しくなってくると、どうしても数学の優先度は下がってしまい、2週間以上進捗がない、ということもありました。

その悩みを再度相談したところ、ある程度の強制力を持たせるために、定期勉強会を提案していただきました。
AISCには『10%ルール』という、「業務の10%の時間を、自身で必要性を感じた学習や作業に使用しても良い」制度があります。その一部を使って週に1時間、数学を学びたいメンバー+メンターが集まって、テキストを読み進めていく中で疑問を抱いた点について相談する時間を作りました。また途中からはテキストだけではなく、定期的に宿題として問題も出していただくようになりました。

実際に手を動かす、というのは個人的にめちゃくちゃ効果があり、テキストを読んでいただけのときと比べて、明確に手応えを感じるようになりました。また他の方の時間をいただいていることもあり、毎週少しずつでも進捗させようという意識も強くなり、ようやく習慣となってきたと思います。

終わりに

私が数学を習慣化させるために必要だと感じたのは以下の3点です。
 1.学ぶ範囲を絞る
 2.問題を解いて、手を動かす
 3.何らかの強制力を持たせる

何かを学ぼうとする際には相談できる相手がいることがめちゃくちゃ重要だと改めて感じました。それができるチームの環境に感謝ですね。(何はともあれ、困ったときは先達者に一度相談してみるのが良いと思います)

とはいえ、まだようやく入り口に立てた、程度の状態ですし、数学は手段であって目的ではないと思います。まずは線形代数と微分の基礎を身につけて、データサイエンティストとしての専門性を高めていければと思います。

この記事が気に入ったらサポートをしてみませんか?