読者です 読者をやめる 読者になる 読者になる

seri::diary

プログラミングのこととかポエムとか

高校数学やり直してみた時に使った教材や勉強法やあれこれ

このエントリーは 機械学習に必要な高校数学やり直しアドベントカレンダー Advent Calendar 2016の2日目です。
1日目は現役高校生の方のエントリーでした。自分もこういう話を現役の頃に先生や同級生としたかったですね。現役の頃は数学って大学に行くための手段程度にしか思ってなくて、今考えたら非常にもったいなかったなと思います。。

これは何か

  • Railsおじさんが機械学習の手法を使って仕事でデータ分析できるようになることを目標に12年ぶりに高校数学を復習した(ている)記録です

きっかけ

  • もともと機械学習に興味があったのだが、いい加減仕事でちゃんと使えるレベルになってRailsしか能がないおじさんから脱却しようと思い立ち、2016年5月ぐらいから「データサイエンティスト養成読本 機械学習入門編」を読み始めた

データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

  • のだが、途中途中で出てくる数式の意味が理解できなくてモヤモヤした。

  • わからない所は飛ばしつつ、まずは大枠を理解しようと頑張って読んでいたのだがやっぱりモヤモヤする
  • なので数学をちゃんとやり直すことにした
  • 機械学習でよく出てくる線形代数、等比級数、確率、みたいにピンポイントで勉強し直せばいいかなと思ったけど、いい機会なので高校数学をまるっとやり直すことにした。

やったこと(時系列順)

高校数学をざっとやり直す

  • まずは高校数学一通りやり直そうと思ってことでこれを買って一通り練習問題を手で解いた。

数IA・IIB・IIICがこの1冊でいっきにわかる もう一度 高校数学

数IA・IIB・IIICがこの1冊でいっきにわかる もう一度 高校数学

  • 主に平日に出社前と帰宅後にちょっとずつ解いていき、大体2ヶ月ぐらいで一通り最後までやり終わった。
  • 仕事が忙しかった時期と被ってたりもしたので平日1日の勉強時間は平均して1時間にも満たない程度だったと思う。平日全然できなくて休みの日にガッツリやったりしたときもある。
  • この本にも書いてあるが、テキストを読むだけでは頭に入ってこない。実際にペンと紙で問題を解くことが重要だと感じた。(当たり前だけど)

その時の勉強ノート。字の汚さは昔と全く変わっていない…*1 f:id:serihiro:20161126130616j:plain

12年ぶりに高校数学を勉強してみた気づき

  • 高校数学なんて高校卒業以来12年近く使ってなかったのに、手を動かして問題解き始めたらすぐ思い出せたりして人間の記憶ってすごいなーと思った
  • 高校時代よりかはゆっくりしたペースで勉強できるので一個ずつ自分のペースで理解できてとても楽しい
  • 特に、高校時代はただ丸暗記していただけの公式を、導き方含めてその意味をじっくり考える良い機会になった

高校数学をやり直した成果を形に残したいと思って数学検定を受けてみた

  • 勉強中に、調べたら数学検定という検定試験があったので、まずは高校2年生レベルの2級を受けてみることにした。
  • 調べたら直近の試験日まで1ヶ月程度しかなかったが勢いで受けてみることにした。
  • 教材として上記の本に加えて過去問集を買って解きまくってみた。
  • 過去問の正答率はギリギリ受かるか受からないかといったライン。何度も繰り返し勉強した。

結果

  • センター試験レベルの一次試験は受かったが、二次試験は大問を合計5問説いて各1点満点という配点だったのだが、計算ミスって0.2点足りなくて不合格だった。
  • ので、来年リベンジしたい*2
  • 二次試験の応用問題は青チャートの例題レベルをやっておかないと厳しいかと感じた。過去問で出てないパターンの問題が1パターンずつぐらいは毎回増えていっているように見える。
  • ので、これまた15年近くぶりに青チャート買った。昔は数学は基本的に青チャートシリーズだけで勉強してたが、まさかおっさんになってから改めて買い直すとは思ってなかった。

チャート式基礎からの数学2+B―新課程

チャート式基礎からの数学2+B―新課程

高校数学を改めて勉強してみて思ったこと

  • 現役高校生の頃はセンター試験対策の勉強しかしてなくて、公式丸暗記して問題を解く方法しか練習しておらず「数学が楽しい!」なんて全く思わなかったのに、「機械学習でデータ分析ができるようになる」ことを目標を持って勉強してみるとすごく楽しく感じた。
  • また、数学検定受ける際に時間がなかったので、必要な公式をすべて丸暗記することはできないと分かっていたので、最低限の公式から必要な公式を導けるように勉強してみた。その結果、12年越しに現役高校生の頃にやってたことの意味が理解できるようになったりして新たな発見が多かった。
  • あと特に三角関数複素数平面、ベクトルの辺りの横のつながりや、行列で計算することの意味を少しは理解できるようになった。
    • 昔はこれらの繋がりなんてまるで考えてなかったが、社会人になってプログラミングするようになってから「どういうデータ構造でデータを表現して問題を解決するか」という考え方が身に付いたことも関係しているのかもしれない。

まとめ

*1:なお、後述している数学検定の二次試験は計算過程含めて筆記なので、普段手書きで字を書かない自分にとっては採点者に読める字で時間内に回答を書くのは結構苦労した。。

*2:本当は今年もう一度試験日があったのだがTOEICと被ったので断念した