はじめに
「文系で難しい数学はわからないけどE資格に合格できるかな。。。」
「ビジネス職だけどE資格に合格して知識を証明したい!」
このような悩みを抱えたことはありませんか?
私も文系大学卒ですしそもそもエンジニアですらないのですが、E資格2024#2に合格したので、勉強法をご紹介したいと思います。
同じような悩みをお持ちの方の参考になればうれしいです。
プロフィール
まずは私がどの程度プログラミングの能力があったのかを示しておきたいと思います。
私は現在都内の金融機関で経営企画をしており、業務でプログラミングや統計・データ分析の知識を使うことはほとんどありません。
ただ、前職ではデータアナリスト的な仕事をしていたこともあり、独学で2,3年ほどpythonを勉強しました。
とはいえ、職場に本職のエンジニアの方がいるわけでもなかったので、何が正解かもわからず、本や動画で得た知識だけで業務を行っていた形になります。
その後、現職に転職したのですが、時間に少し余裕ができたこともあり、pythonやプログラミングを体系的に勉強しなおしたいと思い、Aidemy Premiumを6か月間受講しました。
Aidemy Premiumでは、最初の3か月間でpythonの基礎や機械学習の基礎を学び、技術ブログを一つ作成して修了しました。
Aidemy Premiumでは残った受講期間は他の講座が受け放題となるので、残りの3か月でE資格取得を目指して勉強を始めました。
文系非エンジニアの戦略
最初にお伝えしたように、私はあくまでビジネス職(経営企画)としてデータサイエンスの知識を活かしたいという考えでE資格取得を目指しましたので、効率的に資格を取得するための戦略を考えました。
それから、大学は文系で高度な数学は学んでいないので、応用数学の問題にどう対応するかという点も問題でした。
そこで、私は以下の戦略で臨みました。
ひとつずつ説明します。
1.数学の問題は捨てる
これが一番重要な戦略です。
数学を捨てる戦略をとった結果、応用数学の得点率は29%です。こんな正答率で受かった人は他にいるんですかね。
私がこの戦略を採用した理由はシンプルに難しい数学がわからないからです。
簡単な確率とかはわかりますが、大学数学になってくると厳しいです。
E資格では以下のような問題が出題されます。
これを見て、勉強してもどうにもならなそうと感じた方は、私と同じように数学問題は捨てたほうが賢明です。
ただ、数学を捨てても他の項目で得点すれば合格できるので、ご安心ください。
例題1:マハラノビス距離の定義式として正しいものを選びなさい。
a)\(d(x, y) = \sqrt{(x – y)^\top S^{-1} (x – y)}\)
b) \(d(x, y) = \sqrt{(x – y)^\top (x – y)}\)
c) \(d(x, y) = \frac{x \cdot y}{|x||y|}\)
d) \(d(x, y) = \sum_{i=1}^{n} |x_i – y_i|)\)
解答:a) マハラノビス距離は\(d(x, y) = \sqrt{(x – y)^\top S^{-1} (x – y)}\)で定義される。
例題2:Triplet Lossにおいて、損失関数の定義は次のどれか。
a)\( L = \max(d_p – d_n + m, 0)\)
b) \(L = \frac{1}{2}(yd^2 + (1 – y)\max(m – d, 0)^2)\)
c) \(L = \sum_{i=1}^{N} (y_i – \hat{y}i)^2\)
d)\(L = -\frac{1}{N}\sum{i=1}^{N} y_i \log(\hat{y}_i)\)
解答:a) Triplet Lossは、アンカーサンプルと正のサンプル間の距離を負のサンプル間の距離よりも小さくするように学習する。
2.機械学習に特に注力し、深層学習は基礎を確実にする。
もう一度私の得点率をお見せしますが、機械学習で9割近く得点し、深層学習は6割となっています。
これはかなり狙い通りの結果でした。
実際に勉強していただくと分かるのですが、機械学習分野は基礎的な知識を問う素直な問題が多く、慣れてくるとかなり得点しやすいです。(最初はわからな過ぎてドキッとすると思いますが)
一方深層学習は、そもそも非エンジニアにとっては高度で理解が難しい分野ですし、問題も最新の論文の内容を問う問題などが多く出題され、なかなか対策が難しいです。(私は特に強化学習が苦手でした。。。)
なので、機械学習分野の対策を中心に行い、深層学習は基礎を固めるのに集中という方針でのぞんだところ、狙い通り合格することができました。
3.生成AIで問題集を作成し、問題演習を多くする。
これは戦略というかテクニックですが、E資格は過去問が公開されておらず、使用できる問題集が非常に少ないです。
多くの人は黒本と呼ばれるこちらの本で勉強していると思います。
ただ、どんな資格でも、一番重要なのは問題演習の量だと私は考えているので、この1冊では到底足りませんでした。
Aidemy Premiumでも問題集はなかったので、生成AIを使って大量に問題を作成することにしました。
幸い、プログラミングなどの分野は生成AIにとっては得意な分野なので、問題集を作るのには苦労しません。
当時私はChatGPTの有料版を使っていましたが、25年1月時点でいろいろ試してみた結果としては、GoogleのGemini adovancedをおすすめします。
もちろん生成AIなので問題や解答に間違いはあるのですが、この問題集だけで勉強するわけではありませんので、違和感があればテキスト等で随時確認すれば問題ないかと思います。
私は以下のような問題集を自分で作って勉強していました。
E資格のシラバスを学習させてから問題集を作成すると、より問題の質が上がるような気がします。
基本的にいくらでも問題集は作成できますので、これを使って納得するだけ演習を繰り返すことで、合格にかなり近づくと思います。
使用した教材
Aidemy Premiuのテキストのほかに以下の教材を使用しました。
勉強時間の大部分はこの教材の勉強に時間を費やしていました。
テキスト
問題集
使い方としては、最初に一通りテキストを読んで、あとはひたすら問題演習という感じです。
- 機械学習→Aidemy Premium
- ディープラーニング→ゼロから作るシリーズ
というイメージです。
E資格を受験するにはJDLA認定講座を修了している必要があるため、皆さん何かしらの講座を受けていると思いますので、それに置き換えて考えてみてさい。
スケジュール
試験当日までの3か月間のスケジュールは以下のような感じでした。
- Aidemy Premiumの講座を一通り学習する。
- 修了試験に挑戦してみて、どんな内容か確認する。(この時に受かればOK)
- ゼロから作るシリーズ3冊を読み切る。
- 時間に余裕があれば問題演習を開始する。
- ひたすら問題演習。
- 受かっていなければAidemy Premiumの修了試験に合格する。
使用教材と同じで、皆さんの講座に置き換えて考えてください。
繰り返しになりますが、一番重要なのは問題演習なので、可能な限り早くテキストの読み込みを終わらせて問題演習に入るようにしてください。
項目別対策
応用数学
戦略でも述べましたが、応用数学の項目は捨てました。
数式など、暗記できるものはしようと思いましたが、ほとんどここに時間は使っていません。
実際、試験で簡単な計算問題も出ましたが多分間違えました。
機械学習
ここは積極的に得点しにいきましょう。
最初はとっつきにくいと思いますが、基礎的な問題が多いので慣れてくれば得点源になります。
ゼロから作るシリーズの中でも、勾配法など機械学習の基礎について丁寧に解説されているので、きちんと読み込んでいれば問題ないと思います。
ディープラーニング
ゼロから作るシリーズで基礎的な内容を固めて、最新の論点などの難しい内容については運まかせに
しました。
試験では全く見たことが無い図表もたくさん出ましたので、そのような問題は解けませんでした。
ただ、それらを捨てたとしても6割くらいは取れるので大丈夫です。
開発環境
特に勉強していません。
一応問題集は作って勉強しましたが、6割程度であれば事足りました。
コーディング問題
LSTM、BERTなどの重要なモデルについてはコーディングできるようにしておきました。
ただ、これもそんなに難しい問題は出ませんし、出たとしても、非エンジニアには厳しいので、深追いしないようにしました。
コーディングの勉強をするより、他の知識問題を得点したほうが効率はいいと思います。
試験本番
本番の内容は生成AIで作成した問題と同じくらいの難易度でした。ただ、Aidemy Premiumの問題よりは難しかったので、問題集を作成するときに少し難しめにしておいて正解でした。
結構時間も厳しいので数式の問題やコーディング等、捨てると決めた問題は深追いせずサクサク進めることを意識しました。結果的に10分くらい余ったので、残りの時間で見直しをして終了でした。
体感的に結構難しかったという印象でしたが、6割で合格の試験はだいたいそんなものなので、受かったかなと思いました。ただ、数学が3割も取れなかったのは予想外でしたが。。。
受験のメリット
現状ディープラーニングの知識を仕事で使うことはほとんどありませんが、それでも受験してよかったと思います。
こうでもしないと、ディープラーニングを幅広く体系的に学ぼうという気にはならなかったと思います。
また、「それなりにディープラーニングわかるよ」という証明ができるのも、今後の転職などを考えるとよかったかなと思っています。
あと、一連の勉強を通して、シンプルに自分のプログラミング能力が上がったのが良かったです。
最後に
本稿では、文系大卒の非エンジニアが3か月でE資格に合格した勉強法をご紹介しました。
試験に合格することを目的とした勉強法なので、本職エンジニアの方から見ると邪道なところもあるかと思いますが、私と同じように「非エンジニアだけどE資格に合格したい」という方の参考になればうれしいです。
コメント