#記事概要
#####就職氷河期世代の業界未経験者がエンジニアデビューした最初のタスクとして【準備期間一週間でG検定に合格】を目指します。
いい歳で業界未経験ですが一念発揮して2020年3月に新人エンジニアとして転職しました。
何かやらなきゃな、でも出来るかな。。。と不安いっぱいで申し込み締切日朝4時に寝ぼけながら申し込みの手続きをしました。テキスト自体は3月から読み始めていたのですが、本記事は申込みから書き始めて実践したので実質準備期間が1週間です。
ほんとに受かるのか?と不安を抱きながら必死で本気を出した1週間としてご理解ください。
本記事はそのために作ったメモ的チートシートを再校正した物です。
※個人的な学習メモのため間違いもあります。鵜呑みにせずにファクトチェックしましょう。
本記事はG検定自体の内容よりも新しいことを学ぶ時の手法に焦点を当てています。
全く未経験の分野でも通じる効率的な学習法の参考としていただければ幸いです。
##学習の勘所
新しいことを学ぶ際にはボキャブラリを重視します。徹底的にキーワードを頭に入力しましょう。その場で解らなくても良いので無理だと諦めずとにかく言葉を入力してください。間違ってても後から入ってくる情報が追いつけば補正されます。まずはこれから入力される情報を受け止める網として働くボキャブラリを構築することで意味ネットワークが構築されていきます。理解できない言葉を入力することは大変なストレスが伴いますが、学習行為自体をストレスのない継続可能なコンフォートゾーンにすることが言葉に慣れる過程です。
※ボキャブラリは語彙という集合、キーワードは単語と言語学的には興味深い説明がありますがここでは割愛します。
私の学習法 (独特の持論なので参考)
言葉を記憶のハンドルとする
認識は言葉の相関関係です。これは機械学習でいう特徴量の相関関係を重み付けする過程と同じことで、学習効率を上げるためにはまず言葉その物を自分の認識中に配置してオントロジーを補い、言葉はそれを取り扱うハンドルとすることで認識が進みます。全体を俯瞰する
前項と関連しますが、取り組む対象の全体像を常に意識して相関関係を作り上げます。 認識とは言葉同士が論理的につながることです。存在しない(知らない)概念には名前をつけてしまう
概念を一言で表す名前は記憶を整理する上でとても重要です。知らない言葉があった時にそれが表す言葉を手繰るのと同様に言葉で抽象化されていない概念を取り扱うために自分なりに名前を付けることも重要です。それが間違っていても、すでに存在する言葉でも後で正せば良いのです。失敗を恐れてはいけません。絵で理解する(マインドマップ)
相関関係は言葉だけではなく言葉同士のつながりを絵の配置で認識することでより理解が進みます。 絵にすることのメリットとして脳の機能が記憶と思考であるとするなら、記憶を絵に出力して置くことで思考だけに注力することができます。(一説には言葉とは画像情報と同意であるとか) これは思考整理法のブレインストーミングで行われる手法で、出力された記憶を整理するのにこの後にロジックツリー、タギングなどの手法を使って整理していきますが、それらを統合した思考整理手法としてマインドマップがあります。 マインドマップツールの他、私は最近Diagram.netを使ってます。 思考整理初学の方はまずマインドマップの公式スキームを参考にされると良いと思います。 Xmind https://jp.xmind.net/ diagram.net https://www.diagrams.net/2つ以上の感覚刺激
これは記憶と感覚刺激は紐付いているというオカルト持論。 通常学習は目からの視覚刺激だけですが、記憶は入力される感覚刺激によって呼び起こされる。 ならば他の感覚刺激と共に入力することで定着しやすくなるという考え方です。 例えば音や動作、発声、味覚や匂いを学習時に与えて印象付けます。(私は独り言が多いとよく言われます。)##学習項目
学習法に沿ってまずは全体像を掴みます。
G検定のシラバス
https://www.jdla.org/business/certificate/?id=certificate_No06
##使った学習教材
ボキャブラリ強化と内容把握のためテキストを一読
深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト
https://www.shoeisha.co.jp/book/detail/9784798157559
シラバス、テキストと読みきった所感としては
機械学習について仕組みの概要を理解していて、適切な会話が通じる認識がある
という程度がG検定が目指すレベルだと感じました。
続いて理解度把握のため模試を実施
一度目はテキストなどを見ないで実際にテストを実施します。
これで現在の理解度と実際のテストでの時間配分を把握出来ます。
G検定の出題数は
2020年第一回 226問 120分
と一問約30秒程度で解かなければ成りません。
ここでは理解度を測るものですので時間は無視します。
ここまでで全体像が掴める素地ができました。
模試で自信が持てなかった部分をメインに学習します。
##二度目の模試:理解不足のキーワードをリスト化
もう一度模試をしながら一問ずつ正解を確認
間違ってる設問、少しでも?がついた設問のキーワードはメモとして残します。
この過程で重点を置く学習課題が可視化されるので
各キーワードについてテキスト参照、検索し自分の言葉で説明を書きます。
ここで学習を進めていくと実感すると思いますが、
テキストに載っていない内容も出題されます。
常日頃から機械学習のニュース、話題などを追ってキーワードとして拾っておくことも必要です。
また今年は関連法、倫理問題などのウェイトが多い様に思いました。日頃から関連事項に興味を持っていると苦労しないと思います。
#G検定チートシート ※以下は実際にメモして学習した内容です。
機械学習の手法 教師あり学習、教師なし学習、強化学習と大別できる教師あり学習 データと目的とする変数がセットになっていて、学習することによりデータから目的を導き出すモデル 目的がデータに対して連続値を取るのが「回帰」 データに対して集合を示す離散値になる場合「分類」 + 線形回帰(回帰) アンダーフィッティング - ラッソ回帰(Rasso)(L1正則化 採用から外すパラメータを0にする) - リッジ回帰(Ledge)(L2正則化 過大な寄与パラメータを減衰させる) - ElasticNet(L1,L2両方) + ロジスティック回帰(分類) + 決定木(分類) + ランダムフォレスト(分類) + Boosting + Support Vector Machine(SVM) + ニューラルネットワーク - 単純パーセプトロン - 多層パーセプトロン(入力、隠れ層、出力の3層まで) 教師なし学習 + k-means + Principal Component Analysis(PCA) ディープラーニングの手法 + RestNet 画像分類タスク CNN + VGG16 画像分類タスク CNN + VAE 平均や分散を求める 生成 + GAE 敵対的生成ネットワーク 活性化関数 + ReLU関数 Rectified Linear Unit 正規化線形関数 + tanh関数 Hyperbolic tangent 双曲線正接関数 + sigmoid関数 + ステップ関数 強化学習 行動を学習する 行動によって起こる状態を評価し次の行動に反映し、起こる状態を目的(報酬が高い)に近づける 学習の手法(用語) + アンサンブル学習 複数の学習機(モデル)を組み合わせて平均を取る + 転移学習 関連する別のタスクで学習し、 学習済みの特徴、パラメータを利用する事で効率的に対象タスクを学習する + マルチタスク学習 同時に複数の識別問題に対応できるように学習する手法 + 過学習を避ける目的で汎化誤差を下げるために正則化が用いられる 正則化とは損失関数の値と共にモデルのパラメータの二乗和を最小になるように学習すること パラメータが小さくなり過学習の対策となる + ミニバッチ学習 データをバッチの単位に分割して効率良く学習させること + 平均プーリング(最大プーリング、Lpプーリング) CNNで使われる手法 データの取扱 + 学習データの取扱方と重み付けのタイミング 1.学習に用いるデータは訓練データとテストデータに分けられる 2.訓練データもいくつかのサイズに分割する。このデータ量をバッチと呼ぶ バッチ学習はすべての訓練データを扱う場合(メモリ大) ミニバッチ学習は訓練データをn個に分割して学習効率を上げる場合 オンライン学習は1データ学習する場合(ビッグデータや逐次更新データ向き) それぞれの学習サイクルで終了時に重み付けを更新する。これをエポックと呼ぶ。 ex.) サンプルデータ1000、ミニバッチサイズ10の場合バッチ学習:1回学習で1エポック ミニバッチ学習:100回学習で1エポック オンライン学習:1000回学習で1エポック スパースモデリング(スパース性)` + スパースとは、英語で「すかすか」という意味。スパースモデリングは、あらゆるものごとに含まれる本質的な情報はごくわずか=すかすかであるという仮定(スパース性)に基づき、入力から出力に対して「どこが本当に必要な情報なのか」を見極め、抽出する。
ディープラーニングでは多くのデータがあるほど精度は上がるが、実際は無駄なデータ、無関係なデータを多く含んでいたり、そもそもデータ自体が少ない場合それら無関係のデータがノイズとして大きく働くことで精度が出なくなってしまう。 スパースモデリングでは本質的なデータを求めるためには「データ間の関係性を特定する」作業をおこなう。出力を行うとき、スパースモデリングでは入力となるデータそのものに注目するのではなく、入力と出力の関係性を洗い出す。データ同士の関係性に注目することで、入力データ自体の多寡や質は関係なくなり、結果的に必要なデータは少量で済む。##受験当日
私は過去問を2回、去年の分しかやっていなかったので出題傾向の偏りが不安でした。
が、速度を意識して出来る問題をとにかく進めて気になる問題にチェックマークを入れておくだけにして回答を進めました。
結果全部回答できて残り10分しか残らなかったので、見直しや不安箇所の検索など殆どできなかったです。
途中で調べ物などしていると高確率で全問回答間に合わなくなるので、まずは一気通貫で回答することがおすすめです。
##結論(1週間で受かるのか?)
幸い私は合格することが出来ました。エンジニア未経験でありますが機械学習の話題などは気になっていたのでニュースなどは常にチェックしていたのが功を奏したと思います。ニュースを見ているとはいえ当然その中身については全く踏み入ることなくAlphaGo凄い!と騒いでいる程度です。しかしそういった浅い認識でしたが幅広い言葉について素地を作っていたことが本格的な学習を効率的に受け止める要因になったと思っています。
G検定は全く知見の無い方が1週間で受かるのは流石に無理だと思います。しかし**興味を持って言葉に慣れていれば未経験でも十分にG検定は受かります。**また未経験の分野でも興味を持って言葉に慣れておけばやっていけるという示しなのだと思いました。
機械学習はこれからどんどん活用されて広がっていく分野です。G検定はその一歩を踏み出す入り口に立つ事ができる知見を示す有効な資格になるのでしょう。
私は人生においても大きな変化にチャレンジしていてその一歩をG検定=機械学習という明確な形にできました。
ぜひ私の経験が少しでも皆様のチャレンジを応援できれば幸いです。