7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

まめコーヒーAdvent Calendar 2022

Day 1

高卒Python初学者がE資格を取得するまでやってきたこと(2022#2合格)

Last updated at Posted at 2022-11-30

はじめに

この記事は、E資格を受験し合格してから
2ヶ月ほど経過してから書いた記事になります。

多少、記憶から飛んでいることがあると思いますが、
思い出したことは逐次更新していきますので、
よろしくお願いします。

.

▼記事の対象者

  • G検定を取得し、さらにレベルアップしたい人
  • E資格対策をどうしていこうか迷っている人
  • E資格? よくわからんけど、情報が欲しい人

E資格とは?

2019年に開始されたディープラーニングに関わる
人材の育成を目的とした資格試験です。

試験に合格すると、日本ディープラーニング協会によって
E資格の取得が認定されます。

試験では、人工知能や機械学習についての知識やディープラーニングの理論を理解し、
実践に活かせるかどうかが判定されます。

ちなみに、E資格の難易度は応用情報技術者試験と同等だそうです。
詳しいことは、下記の記事をご参照ください。

▼参考記事

受験した理由

現在、自動車会社の会社員として、職場における定常業務のデジタル支援をしています。
主に効率化ツールや組織のメンバーに対して、PythonやAIの基礎を教える講師をしており、

  • もっと学びを深め、学習を継続する必要性を感じた
  • 何か大きな目標を立ててチャレンジしてみたかった
  • なんか機械学習面白そう

と思ったため、E資格に挑戦した次第です。

また、社内ではデジタル化推進の流れが、コロナの影響もあり、
RPAMicrosoft 365のツールを活用した業務の自動化、省人化が
活発になっていきました。

上記のツールはノーコード、ローコードで構築できるので、
プログラミングの知識がなくても、マニュアル見て、なんとなくこう!
で簡単なツールを作ることはできるので、
社内の一定数の人は、改善ツールをワイワイ作っていました。

.

しかし、簡単に出来るが故、

  • 書類をスキャンして特定の位置の文字を読み取って転記したい
  • カメラで撮影した製品のサンプルにキズがないかの良否判定を自動化したい

といった比較的高度なオペレーションには対応できない問題が出てきました。
(有料の追加オプションを購入すればなんとかなると思いますが、そう簡単には・・・)

その需要を見込んで、「ちょっとできる人」「知識あるよの人」になれば、
しばらくそっち側の仕事をやっていける(現場職に戻りたくない)と思ったのも
あったからです。

合格までかかった期間

Python・機械学習を学び始めてからになりますが、
寄り道して 「1年半くらい」 かかりました。
(寄り道しなければ、もっと短い期間で行けると思います)

では、どのような道のりで 「E資格合格」 までたどり着いたのか、
以降の章で1つずつ紹介していきます。

.

前提として、取り組む前の筆者は、

  • プログラミングの経験は少しある(Ruby、HTML、CSSを知っている)
  • Pythonは基礎を学ばずにちょっとだけ触ったことがある(知らないに等しい)
  • プログラミングの基礎は多少心得ている(インスタンスとかスコープがわかる)
  • 最終学歴は高卒(工業高校卒で数1・数A以降は知らない子)

ということを念頭において、ご覧頂ければと思います。

G検定をやる(約2ヶ月)

G検定 はE資格と同じく、
日本ディープラーニング協会が主催している人工知能に関する資格試験です。
内容としては人工知能に関する知識を広く浅く問われる試験となっています。

まずは、人工知能や機械学習とは?から知る必要がありそうだなと思い
G検定の学習から始めました。

これは、E資格の学習を始める前に感じたことですが、
 G検定を先に取ってからE資格に臨む方がいいと思います。

.

その理由としては、

  • 聞いたことない 人名、略語、カタカナ が多く、E資格で深堀りするから
  • E資格の認定プログラムでは、 いきなり深いところを突いてくる から

例として、活性化関数という機械学習では欠かせない関数
について問われる問題があったとします。

G検定では、この活性化関数はなーんだ?と問われるくらいだったと思います。
スクリーンショット 2022-11-21 18.21.40.png
(正解は、シグモイド関数です)

.

E資格では、そこからさらに深堀りします。

▼特徴
:o: Sigmoid関数は入力に対して連続なので微分ができる
:o: 微分ができる点は、誤差逆伝播法による学習を伴うニューラルネットワークにとって重要
:x: 入力が極限に大きく、または小さくなると勾配が消える
:x: 微分値の最大値が0.25であり、学習の収束が遅い
:black_small_square:導関数は下記の式で定義される

{f(x) = \frac{1}{1+e^{-ax}} \ \ (a>0)
}

:black_small_square:実装する場合は下記の通り

def sigmoid(x):
    return 1.0 / (1.0 + np.exp(-x))

上記の紹介は、ほんの一部ですが、
あらかじめ  知っているか、知っていないかでE資格に取り組むハードルの高さが変わる
と思っています。

E資格で初めて聞くこと、知ることの方が多いですが、
心理的にも全く知らないことばかりよりも、「あ、これG検定でやったことだ!」
というものが少しでもあった方が、実体験として気が楽になります。

.

ということで、
G検定は、 人工知能、機械学習の基礎知識をつける、情報の引き出しを増やす
のにご活用していだたくことをおすすめします。

学習方法は、多くの方が実践している情報がたくさん転がっているので、
参考書と問題集を購入して取り組んでいけば問題ないです:ok_hand:

Pythonの基礎を学ぶ(約1ヶ月)

Pythonを知っていないと試験で詰みます

というより、E資格の認定プログラムを受講する際にPythonを必ず使います

.

▼Python例題

クラスAを作り、Aを継承したクラスBを作った。
プログラムでBのインスタンスを生成したとき、
標準出力されるものとして正しいものはどれか。

class A:
    def __init__(self):
        print("A is created")

class B:
    def __init__(self):
        super().__init__()
        print("B is created")

:one: A is created だけ
:two: B is created だけ
:three: 何も表示されない
:four: A is created と B is created の両方

スキルチェックで使われる例題を紹介しましたが、
Pythonの基本文法を抑えていないと、後ほど紹介する機械学習関連のライブラリ
を使う(解読)するのが非常に苦しくなります。

Pyhton基礎は絶対必須であることを、ご承知おきいただければと思います。

.

では、どのようにしてPythonを学んでいったのか?

私は、Python3エンジニア認定基礎試験を通して基礎を学んできました。
「資格試験は知識がつくだけで、実装面では力がつかない」
などの意見もあると思いますが、その通りです。

ただ、試験を受けて合格できたら基礎知識はついた!ではなく、
学び方の過程で身に付く情報量の大小が変わる と思っています。

その辺の詳しい話は、過去の記事に書いていますので、
そちらをご参照いただければと思います。

:point_down:Python基礎学習(Python3エンジニア認定基礎試験)に関する記事はこちら

機械学習を学ぶ(約2ヶ月)

機械学習ライブラリを知っていないと試験で詰みます

というより、E資格の認定プログラムを受講する際に機械学習ライブラリを必ず使います

ちなみにここで申し上げている、機械学習ライブラリとは、
Numpy, pandas, matplotlib, seaborn, scikit-learnになります。

E資格では、上記の他に深層学習ライブラリ(PyTorch, TensorFlowのどちらか)
を使いますが、この章での話は深層学習ライブラリに関しては省略しています。

.

▼機械学習ライブラリ 例題

以下はnumpy配列を利用した計算例である。
(あ)に当てはまるコードとして正しいものを選択せよ。

import numpy as np
ones = np.ones(6)
numpy_I = np.array([[0, 2, 4], [6, 8, 10]])
ones = ones.##(あ)##
print(numpy_I + ones)

:one: shape(3, 2)
:two: reshape(3, 2)
:three: reshape(2, 3)
:four: sum()

こちらもスキルチェックで使われる例題を紹介しましたが、
機械学習ライブラリを抑えていないと、E資格の認定プログラムの演習
(各社認定プログラムの内容によって異なると思いますが、
私が受講したAVILENさんの認定プログラムでは、
コーディング演習という実装問題)
を取り組む際に、非常に苦しい思いをすると思います。

機械学習ライブラリは、実装や解読においても必須であるといっても過言ではありません

.

では、どのようにして機械学習ライブラリを学んでいったのか?

私は、Python3エンジニア認定データ分析試験を通して基礎を学んできました。

機械学習ライブラリに加えてデータ分析の学習についても
過去の記事に書いていますので、そちらをご参照いただければと思います。(またかよ)

:point_down:機械学習の学習(Python3エンジニア認定データ分析試験)に関する記事はこちら

E資格認定プログラムを受講(約7ヶ月)

E資格を受験する為には、「JDLA認定プログラム」を必ず受講する必要があります。

認定プログラム受講するのにも、多くの時間とお金を投資することになるので、
取り組む!と決めたら意地でも合格するつもりで臨まないと、
悲しい結果になってしまいます。

認定プログラムの業者は複数あるので、
自分の好きなところを選択できますが、値段も5万~40万くらいで幅が広く、
また、価格によって受けれるサービスや受講期間が変わります。

各認定プログラム事業者のサーピス内容と価格を比較し、
他の投稿者の情報を見て、どこで受講するかを決めていただくのがよいと思います。

.

参考までに、私は株式会社AVILENさんの
「全人類がわかるE資格講座」を受講しました。

何が決め手で上記の認定プログラムにしたか?と問われたら、
「なんとなく良さそうだったから」です。

受講料に関しては、キャンペーンやG検定合格者特典の割引によって、
価格が変動することがありますのが、20万〜18万円くらいで推移していたと思います。
(私が申し込んだ時には、G検定合格者割のサービスがありませんでした。グヌヌ)

申し込み・決済

当初は、
「Pythonの基礎や機械学習ライブラリのことは抑えたから、
E資格講座の受講だけで大丈夫だろう」と思い、
E資格コースのみで申し込んだのですが、
翌日に基礎講座を追加で申し込みました。
(厳密にいうと、E資格+基礎講座セットでの申し込みに変更しました)

というのも、「E資格コースを受講するまでの前提知識はこの程度です」
という案内をちゃんと見ていなかったためです。

E資格コースの中身と修了試験のテスト内容をざっと見て
「あぁ、これは、無理だ」
と思いました。

ちなみに、E資格コースのみで受講する場合の前提知識は下記の通りです。
スクリーンショット 2022-11-23 19.14.35.png

Pythonの基礎文法、機械学習の基礎実装の要件を仮に満たしていても、
残りの 「関数、数列、微分、線形代数、情報理論の基礎」 と
「確率、統計の基礎」 は全く満たしていませんでした。

.

Python、機械学習だけでは乗り越えられない壁がある

.

壁にぶち当たったら、追加オプション(追加コース)で上記の満たせていない部分を
基礎講座の受講によって知識をつけることができるので、
事前に統計検定2級や大学数学を事前に学ぶ準備は
特にやる必要はないと思います。

詳しい基礎講座での取り組みは以下の通りです。

基礎講座受講

数学の知識(数1、数A程度)で高校を卒業した私。

受講開始から数日後、
初手「線形代数」で心を折られました。

A=\begin{pmatrix}
a_{11} & \cdots & a_{1i} & \cdots & a_{1n}\\
\vdots & \ddots & & & \vdots \\
a_{i1} & & a_{ii} & & a_{in} \\
\vdots & & & \ddots & \vdots \\
a_{n1} & \cdots & a_{ni} & \cdots & a_{nn}
\end{pmatrix}

(心の声)「いやいや、こんなの見たことない...」

それでも、基礎的な行列の乗算や逆行列、〇〇行列などは抑えることはできても
固有値問題から雲行きが怪しくなり、
特異値分解に至っては、脳味噌が蒸発寸前でした。
(特異値分解に関しては、試験範囲外のようです 2022年11月時点)

数学の対策は線形代数のみならず、

  • 関数・数列
  • 微分(連鎖率、偏微分、勾配法)
  • 情報理論(相関係数、情報量、シャノンエントロピー、KLダイバージェンス)
  • 統計学(確率関数、正規分布、〇〇分布、ベイズ定理)

を学習しなければなりません。

.

これらに対して事前知識のなかった私は、
基礎講座の内容だけではついていくのは困難だったため、
書籍やネットの記事で補完して学習していきました。

▼書籍
人工知能プログラミングのための数学がわかる本
IMG_3646.JPG

▼参考サイト

・アタリマエ!
遠田祐人@トダユト先生が運営する、数学・統計学を専門としているサイトです。
大学数学、統計学初心者の私でも理解しやすい説明のおかげで、
大学数学、統計学が楽しい!と感じることができました。

・Youtubeチャンネル『予備校のノリで学ぶ「大学の数学・物理」』
ヨビノリ先生のチャンネルになります。
私にとっては初めて聞くことばかりでしたが、
逆行列やベイズ推定などの解説を1から丁寧に板書していただいたおかげで
スムーズに理解することができ大変お世話になりました。

.

参考にしたサイトは、取り組んでいく過程でキーワードを検索して
出てきたサイトの中から、やさしめの解説のを優先的に、
情報をいただいていました。

上記のサイトは特に利用頻度が多かったので、
紹介させていただきました。

インプットは基礎講座をベースとし、書籍、サイトで補完していき、
アウトプットはひたすらレポート用紙に書き出して知識の定着を図りました。
IMG_3650.JPG

基礎講座では、数学や統計学の他にも、
Python、機械学習概論も含まれています。
d43360-38-315979-2.png

E資格コース受講

E資格コースでは、E資格の試験範囲(シラバス)である範囲を抑えた
講座と実装の演習をやっていきます。

▼2022年11月時点でのE資格の試験範囲(深層学習のみ表示)
スクリーンショット 2022-11-25 17.42.26.png

これらの類似した項目を14チャプターにまとめられた動画講座を閲覧し、
用語や仕組み、数式などを学習していきました。

当然、動画講義では抑えきれない部分があったので、
サイトや書籍で補完して学習していきました。

▼サイト

・Youtubeチャンネル「AIcia Solid Project」
ディ―プラーニングに限らず、機械学習やデータサイエンスに関する技術について、
講義形式で説明しているチャンネルです。
特にRNN、LSTM、Attentionについては、書籍でも理解できなかった部分があり、
そこをイラストを使って分かりやすく説明しており、個人的に大変お世話になりました。

・Youtubeチャンネル「Neural Network Console」
SONYが提供しているDeep Learningの統合開発環境 
Neural Network Console用のチャンネルです。
ディ―プラーニングの基礎知識についても動画で詳しく説明しています。
特に最適化手法について、わかりやすいイラストを使って説明されており、
視覚的に理解することができました。

▼書籍

ディープラーニングの本格的な入門書です。
E資格コースの講座内では、 外部のライブラリを使わずに
ニューラルネットワークや活性化関数などの実装講義
があります。

この書籍では外部のライブラリに頼らない、コーディング解説が詳しく載っているため
ディープラーニングやニューラルネットワークの基礎だけでなく、
誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。

ハイパーパラメータの決め方や重みの初期値といった実践的なテクニック、
Batch NormalizationやDropout、Adamといった最近のトレンド、
自動運転や画像生成、強化学習などの応用例、
さらには、なぜディープラーニングは優れているのか?
なぜ層を深くすると認識精度がよくなるのか?
といった“Why"に関する問題も取り上げられています。

.

前の書籍では補きれなかった、
自然言語処理や時系列データ処理を中心に解説している書籍になります。

word2vecやRNN(リカレントニューラルネットワーク)、
LSTMやGRU、seq2seqやAttentionの技術を実装レベルで学べます。

.

私が熟読していた書籍はこのくらいです。

上記の書籍は知識の補完のみならず、
E資格コースでは 「コーディング演習」という実装の理解度を確認するために、
レポート(実装テストのようなもの)を提出します。

.

コーディング演習(レポートの提出)は、E資格の獲得条件にもなっている

「ディープラーニングの理論を理解し、
適切な手法を選択して実装する能力や知識を有しているか

の要件を、認定プログラムの実施事業者(AVILENさん)がJDLAに代わって
実装能力を確認するためです。

実装する能力に関しては、動画講義のみで力をつけるのは難しいと感じます。
そこで、上記の書籍が非常に参考になります。
いや、上記の書籍がないと私は無理でした。

ですので、E資格を受講されている方で、上記の書籍をお持ちでない方は、
今すぐポチりましょう。

.

他にも、E資格関連の記事を参考にして、
下記の書籍も購入して読んでみたのですが、
活字や数式がびっしりで、学習や試験対策で登場することはありませんでした。

▼買ったけど活用していない(できなかった)書籍たち

  • 深層学習
    B07GQV1X76.01.SCLZZZZZZZ_SX500.jpg
    分厚い・文字多い・数式わからん...
    これを読んで理解できる方を尊敬します。

.

  • プログラミングのための線形代数
    4274065782.01.SCLZZZZZZZ_SX500.jpg
    こちらは基礎講座受講のタイミングで購入した書籍ですが、
    サイトのわかりやすい記事の方が参考になったため、書籍の活用はしませんでした。

.

事前知識の少ない投稿者個人の意見ですので、
必要と感じたら、試し読みしていただき購入していただくのが良いと思います。

他のE資格合格者の方で「深層学習」の書籍はよく読み込んで試験対策になった
と仰っていた方もいます。(AVILENさん主催の交流会にて)

修了試験

▼AVILEN E資格コースの利用規約より抜粋
スクリーンショット 2022-11-25 18.45.39.png

要約すると、E資格の受験資格を得るためには、

  • コーディング演習課題の提出
  • プロダクト演習課題の提出
  • 修了試験(基礎)5科目:Python・機械学習・統計学・情報理論・線形代数
  • 修了試験(深層学習編):本講座の講義内容中心

を満たさなければなりません。

コーディング演習に関しては、前の方で説明しているため省略します。

.

プロダクト演習課題の提出

ディープラーニングを用いて0から開発するプログラムです。

例えば、
「魚の鮮度(品質問題なし、品質問題あり)を入力された画像で良否判定するタスク」
「Yoloを用いて、錠剤の種類と個数を正確に出力するタスク」
のように、各自テーマを設定してプログラムを作る課題です。

自分で作り上げていくので、
今まで不足していた知識や新たな発見が、この演習課題で多く見つかり
楽しいと感じる反面、苦労する部分もありました。

取り組むテーマや実装の内容に関しては、
しっかりサポートしていただけたので、なんとか乗り越えることができました。

修了試験(基礎)5科目:Python・機械学習・統計学・情報理論・線形代数

基礎講座での確認テストになります。
テスト受験前にしっかり復習して臨みました。

修了試験(深層学習編):E資格コースの講義内容中心

E資格コースでの確認テストになります。
範囲が非常に広いので、テスト受験前にたくさん復習して臨みました。

.

修了試験やプロダクト演習課題のポイント

E資格の試験開催の約1ヶ月前までに、
修了条件を満たした上で修了申告を行わなければ、
「修了」とみなされません。

20xx年#1 の試験(2月中旬)の受験を目指す場合は、
その年の1月中旬までに

20xx年#2 の試験(8月中旬)の受験を目指す場合は、
その年の7月中旬までに
修了条件を満たし修了申告を行わなければ、受験資格を得ることができません。

そのため、修了申告の直前期(本番試験の1ヶ月前)には、
駆け込みでプロダクト演習課題の提出、修了試験の合否判定依頼が
通常以上に多くなるため、合否判定、添削の返信が1週間ほど返ってこないこともあります。

そうなってしまうと、E資格の本番試験に向けた準備期間が短くなってしまうため、
修了試験やプロダクト演習課題提出は可能な限り早めに終わらせる
ことをおすすめします。

.

スクリーンショット 2022-11-25 19.24.07.png
上記の課題を全て完了すると、修了証が発行されます。

試験対策をする(約2ヶ月)

AVILENさんのE資格コースでは、
修了試験合格後に、本番試験を想定した模擬試験や
問題集を取り組めるコンテンツが提供されます。

そのコンテンツでの学習に加えて、
黒本と呼ばれているE資格の問題集の書籍を使って試験対策をやっていました。

▼書籍
徹底攻略ディープラーニングE資格エンジニア問題集 第2版
IMG_3649.JPG

この書籍を3周ほど繰り返し問題を解いて
わからなかったところを調べて知識をつけていきました。

E資格の本番試験対策に有効な書籍ですので、
こちらの書籍も購入は必須と言っても過言ではありません

.

参考までに、学習開始からE資格受験までの
学習のペースはどんな感じだったか申し上げますと、

平日は平均2時間、休日は平均5時間の 20時間/週
のペースで取り組んでいました。

残りのE資格コース受講と修了試験、試験対策を含めて、
約650時間 学習にかけてきました。

受験する(2022年8月)

試験センターへ行って受験するだけです。
受験が終わると受験完了レポートを発行してもらえます。
スクリーンショット 2022-11-26 10.41.26.png

合否は受験から約3週間後にメールで通知されます。

.

届いた結果は下記の通りでした。
346230BC-2866-401E-A221-2ED893DE23FD_1_105_c.jpeg
他の方の得点率と比較して、比較的低めだったので、
ギリギリ合格だったのかもしれません。
全体の60%くらいの正解率がボーダーラインなのかもしれないです。

認定プログラムを受講した振り返り

参考までに、私が受講したAVILENさんのE資格コースについて振り返ります。

良かったところ

内容
1 動画講座の中で特に吉川さんが担当していたカリキュラムが非常にわかりやすい
 現在、私は社内講師としてAI概要やCNNの講義をする機会があるのですが、
 説明の仕方は実務でも参考にさせていただいています。
2 コーディング演習は初学者にとって難所であったが、実装力がつくので良かった
3 動画講座やスライドの資料が豊富
4 質問コミュニティがあり、他の受講生のQ&Aが参考になる
5 コーディング演習の評価コメントが丁寧で親切な添削が多かった

悪かったところ

内容
1 テキストや練習問題に誤植が多い
 現在は指摘が上がっていた箇所は修正されているみたいですが、
 他の受講生から同じような指摘が繰り返し上がっているにもかかわらず、
 修正の対応が遅いと感じることが多かったです。
2 コーディング演習のフィードバックが遅い
 修了申告の直前期でないときでもフィードバックが遅く、
 前倒しで次のコーディング演習を実施するも、フィードバックが来る前に
 次のコーティングの提出をしてフィードバック待ちがスタックする。
 そして前の課題にまた戻って修正するのが面倒でした。
3 交流会の運営が雑すぎる
 E資格合格者との交流会がDiscodeで行われたのですが、
 運営の人は前説をするだけで、あとは放置状態だったため、
 交流がされない交流会で驚きました。

最後に

E資格を通して、業務でも扱っている画像処理の分野(前処理、CNN、物体検出、OCR)
を深く学べたこともあり、今回E資格に挑戦してみてよかったと思いました。

しかし、業務では使わない分野(音声、自然言語)も学習するため、
効率よくやっていきたい方にとって、資格取得は遠回りになるかもしれません。

E資格のネームバリューは社内で徐々に認知されてきてはいますが、
まだまだ反応は微妙なところではあります。
(イノベーター理論で言う所のイノベーター層、アーリアダプタ層に該当するため)

E資格の特権みたいなものを活かすのはもう少し先になるかもしれません。

しかし、特権うんぬんより、
「どれだけ自分は学習に取り組めるか?」
挑戦してみて、結果を残せたという事実は自己肯定感に繋がりましたし、
次は応用情報技術者試験の合格を目指そう!と決めており、
学習習慣の定着を獲得できたのも、よかったと思っています。

.

本記事がこれからE資格取得に挑戦される方にとってお役に立てれば幸いです。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?