E資格(エンジニア資格)2024#1に無事合格したのでそれまでの話をつらつらと

E資格について昔話したと思いますが(こちら)、結果はどうだったか、どんな勉強をしたのかを話していこうかと思います。 まずこちらでJDLAが2024年第一回E資格の結果発表が出ています。合格率や平均得点率、年代・業種・職種・役職別の合格者数が出てます。 私の結果がこんな感じです。 応用数学と開発環境は6割切ってますが、機械学習と深層学習は7割近くになってますね。ちなみに今のタイミングでX(旧: Twitter)で"E資格"を調べると他の人の得点率を見れます。落ちた人の結果を見ると機械学習と深層学習の得点率が低かったみたいです。 問題数から見ると応用数学と開発環境は出題数が少ないので最悪ほぼ取れなくても問題なさそうです。機械学習と深層学習が問題数多いのでこちらを抑えればいけそうな気はしてます。 結果はこんな感じでしたが勉強方法は割とシンプルです。 前にもお話ししましたが私はStudy-AIを使って認定証を取りました。Study-AIでは模擬試験とその解説、過去問(32問分)がありますのでそこを徹底的に理解し、満点取れるまでやりました。 他の方法だと黒本だったり参考書をチェックしたりですかね?それからデータ加工のプログラムは仕事で使ってるので “np.array” だったり、論文で書かれてることはこんな書き方できそうだなというのはなんとなくわかります。実際にプログラムを動かすのは大事ですね。 何度も話してますが資格はあくまで資格なので実際に実装できたり、知識を活用していくことが大切だと思います。資格を取って終わり、じゃなくどう活用していくか?なのでそろそろKaggleに挑戦してみようかと思います。ではでは。

2024年3月10日

E資格お疲れさまでした!合格したかどうか五分五分…

2024#1のE資格お疲れさまでした!個人的には五分五分くらいの出来でした。振り返るとあの箇所間違ってたなと思うとこもいくつかあります。 今回テストを受けてみてわかったことは、G検定同様言い回しが少し独特に感じました。言い方を変えると表面だけの理解では解けないと感じました。 全ての問題がそうではないですが4割くらいがそう感じました。 また問題数は103問の120分ですがある程度理解して入れば、計算問題があっても20分くらいは余る気がします。 シラバスを見て記事に簡単にまとめたりしましたが、全く出ない内容(コンテナやCTC等)があったりして少し困惑しました。学べてよかったとは思いますが… 次回のシラバス(こちらからダウンロードできます。)見る感じだと数学の内容はあまり変わらず、機械学習はバッサリ削られてる雰囲気です。深層学習も音声処理とメタ学習はバッサリですね。能動学習と連合学習は元からなかった気がします。 こうやってバッサリカットされたということは他の箇所が頻出するということなので、深層学習はより理解を深めたいといけなさそうですね。特に生成AIに関するGPT系やGNA系は最近の論文も確認したほうがよさそうですね。 今回の学習で色んな事が学べました。Dockerはローカルで使ったことがないので触ってみよう!とかHagging Faceで配布されてるモデル使って自然言語処理のプログラム作ってみよう!とか画像認識でいい使い道ないかな?とか考えてました。 一先ず資格が終わって勉強から解放されたので他にやりたいことをやっていきたいと思います。ちなみに試験後にコオロギラーメン食べてきたのでその話もしようと思います。ではでは!

2024年2月20日

E資格受験前なので復習がてら学んだことをざっくり振り返る ~ 深層学習後編、開発環境編~

前回の続きになります。深層学習の後編になります。もう一息です。 まずは生成モデルと識別モデルについてです。 識別モデルは入力Xから出力Yへの直接的なマッピングを学習することを目指しています。このマッピングは条件付き確率P(Y | X)を使用して表される。与えられた入力データに基づいて出力ラベルの確率を最も正確に予測する。 生成モデルはデータの同時確率P(X,Y)またはデータの周辺確率P(X)を通じて行われる。観測されたデータがどのように生成されるかの理解を深め、新しいデータポイントを生成する能力を持つこと。 ナイーブベイズ:P(X | Y) = ΠnP(xi |Y)、P(xi |Y)は特徴xiが与えられたクラスYに属する条件付確率 GAN:生成器Gがランダムノイズからデータを生成し、識別器Dが実データと生成データを区別しようとする。minG maxD V(D,G) = ExPdata(x) [logD(x)] + EzP(z) [log(1 - D(G(z)))]、V(D,G)は識別機Dと生成器Gの値関数、Pdataは実データの分布、Pzは生成器の入力となるノイズの分布。 次はVAEとVQ-VAEについてです。 VAE(Variational Autoencoder):入力データを低次元の潜在空間にエンコードし、その潜在表現から元のデータを復元するように学習するオートエンコーダの一種。潜在空間における確率分布をモデリングすることにより、新しいデータの生成も可能。 データxから潜在変数zの分布qΦ(z | x)を推定し、デコーダを用いてzからxを再構築する確率pθ(x | z)を最大化する。 潜在変数zの事後分布qΦ(z | x)が事前分布p(x)に近づくように制約をかける。そして以下の損失関数を最大化する。 L(θ,Φ; x) = Eq(z | x)[logpθ(x | z)] - Dkl(qθ(z | x)||p(x))、DklでqΦ(z | x)とp(z)の分布の類似度を測る。 VQ-VAE(Vector Quantized-Variational Autoencoder):VAEの概念を拡張し、潜在空間において離散的な表現を使用する。ンコーダが出力する連続的な潜在表現を、事前に定義された離散的なコードブックにマッピングすることにより、潜在表現をベクトル量子化する。 エンコーダが出力する潜在変数ze(x)を、コードブック内の最も近いコードベクトルzq​にマッピングする。損失関数は以下のように定義する。 L = logpθ(x | zq) + ||sg[ze(x)] - zq||^2 + β||ze(x) - sg[zq]||^2、sg[⋅]はstop-gradient演算子、バックプロパゲーション時にその入力に対する勾配の計算を停止させる。βはハイパーパラメータ 使用例:画像生成や画像編集、データ圧縮、音声合成と音声変換、テキスト生成とスタイル転送、異常検知、強化学習 次はDCGANとConditional GANについてです。 DCGAN(Deep Convolutional Generative Adversarial Networks):CNNを用いたGANの一種、プーリング層を使わずに、ストライド畳み込みと逆畳み込みを使用する。 学習済みモデルは、未ラベルの大規模データセットから有用な特徴を自動で抽出するでき、他のタスクに転移学習で利用可能。 バッチ正規化をGeneratorとDiscriminatorの両方に適用することで、学習過程を安定させる。 ...

2024年2月17日

E資格受験前なので復習がてら学んだことをざっくり振り返る ~ 深層学習前編 ~

前回は応用数学や機械学習につてい振り返ったので、今回は深層学習について振り返ります。おそらく長くなりそうなので2分割しようと思います。 まずは**全結合型ニューラルネットワーク(Fully Connected Neural Network, FCNN)**についてです。 入力層、隠れ層、出力層から構成され各層の全てのノードが前の層の全てのノードに重み付きの接続をしている。 前向き伝播 (Forward Propagation):各ニューロンの出力は、前層の出力、重み、バイアスに基づいて計算され、活性化関数を通過する。活性化関数については後述します。 誤差逆伝播 (Backpropagation):出力層の予測値と実際の値との差を計算し、その差を用いて重みを更新する。連鎖律を用いて各重みに対する誤差の勾配を計算し、勾配降下法等を使用して重みを更新する。 問題点と解決策 過剰適合:機械学習と同様、正則化(L1、L2正則化)やドロップアウトを使用する。 勾配消失/勾配爆発:層を深くしたことで勾配が急速に減少または増加する問題。解決策には重みの初期化方法の工夫(He初期化など)、バッチ正規化、残差接続(ResNet)などがあります 次は損失関数の最尤推定による条件付き分布の学習についてですが、前回の機械学習でも触れたので軽く触れる程度にします。 回帰問題:ガウス分布の尤度を最大化することは、平均二乗誤差を最小化することと同等。損失関数はL(θ) = 1 / nΣ(y - f(x, θ))^2、yは実測値、f(x, θ)は予測値 分類問題:多クラス分類では、カテゴリカル分布の尤度を最大化することが、クロスエントロピー損失の最小化と同等。損失関数はL(θ) = -ΣnΣCylogf(x, θ)、yはi番目のデータがcに属するかを示す指標変数、f(x, θ)はモデルによるクラスcへの所属確立への予測。 次は活性化関数についてです。主に隠れ層と出力層で使われます。 シグモイド関数:σ(x) = 1 / (1 + e^-x) 出力が0から1、二値分類問題の出力層でよく使用されるが、勾配消失問題のため隠れ層ではあまり使用されない。 Softmax関数:Softmax(x) = e^x / Σe^x 出力層の多クラス分類で使用、出力値の合計が1になるようクラスに属する確率を計算する ReLU関数:ReLU(x) = max(0, x) 出力が-1から1、原点に対して対象なので隠れ層でよく使われる。 Leaky ReLU関数:LeakyReLU(x) = max(αx, x)、αは小さな正の定数 ReLUの改良版でx < 0で微小な勾配をすることで、ニューロンが不活性になり,任意の入力に対して出力0だけになる問題を緩和。 双曲線正接関数(ハイパボリックタンジェント):tanh(x) = (e^x - e^-x) / (e^x + e^-x) 計算が効率的で勾配消失問題も緩和するので隠れ層でよく使用される。 次に誤差逆伝播法についてです。前述で述べた個所は省略します。 計算グラフ:この項目については割愛しますが、調べると表は出てきますので、誤差逆伝播法の計算がどのようなものかがよくわかります。 ...

2024年2月12日

E資格受験前なので復習がてら学んだことをざっくり振り返る ~ 応用数学と機械学習編 ~

E資格で出る内容として"確率や情報理論の計算"、“機械学習”、“深層学習”、“開発運用環境"があります。こちらからシラバスをダウンロードして確認できます。LaTeXを導入してないので数式がかなり見にくいですが、よくわからなければ調べてみてください。 まずは確率・統計の式です。 ベルヌーイ分布:P(X=x) = p^x(1−p)^(1−x)、xは結果の値(成功=1、失敗=0)、P は成功確率を表す。例としてスパムメールフィルタリングやクリック予測で使用される ガウス分布(正規分布):P(x) = 1 / √(2πσ^2) exp(-(x-μ)^2/2σ^2)​、ここでμは平均、σ^2 は分散を表す。例として異常検出や回帰分析で使用される 多項分布:P(X1=x1,…,Xk​=xk​) = n! / x1​!…xk!​ p1^x1…pk^xk、期待値E[X] = xp、分散V[X] = E[X^2] - E[X]^2​ = xp(1 - p)、共分散Cov(X,Y) = Σxy - μxμy、相関係数 r = σxy / σxσy(-1~1の範囲)ここでμは平均、σは標準偏差を表す。例としてテキストデータやカテゴリデータのモデリングで使用される。 ベイズ則(条件付き確率):P(A∣B) = P(B∣A)P(A) / P(B)、例として機械学習モデルのパラメータ推定などで使用される。 次は情報理論の式です。 自己情報量:I(x) = - logP(x)、底は2でP(x)はあることが起こる確率→確率が小さくなるほど、情報量は大きくなる 平均情報量(エントロピー):H(X) = -ΣP(x)logP(x)、底は2でP(x)はあることが起こる確率、エントロピーが高いほどランダムで予測が難しくなり、データの圧縮や決定木などの機械学習モデルでの特徴選択に使用される。 結合エントロピー:H(X,Y) = -ΣP(X,Y)logP(X,Y) → XとYがお互いに独立であればH(X, Y) = H(X) + H(Y)が成り立つ。XとYは事象 条件付きエントロピー:H(X | Y) = - ΣxΣyP(X = x | Y = y)P(Y = y)log(P(X = x | Y = y)) ...

2024年2月8日

E資格まで後1ヵ月なので頑張ろう!

さて約1ヵ月後にE資格が迫ってきました。そろそろ本気で取り掛からないとなと感じています。 せっかくなので受ける経緯とどう勉強したかを書いてみようかと思います。 そもそも私はG検定を受けていました。それが1年前ですが転職を考えたときに実務の部分が薄く感じたので資格で補強しようと考えました。 無事G検定は2023年3月頃に合格しました。その直後ですが、とあるメールが届きました。E資格の資格を受ける料金が割引されるという内容でした。 ちなみにE資格は割とお金がかかるものになってます。会社によっては何十万とかかったりします。もちろん国の補助金で安くなったりする場合もありますが、それでも10万以上かかるのが普通です。 ちなみに私はStudy-AIという企業様のe-ラーニングを受けていました。入会料金が3万で月々3千円くらいです。かつ、受験料が3万ぐらいなので最短だと合計7万5千くらいになると思います。これが企業の講習では最安かと思います。大学の講義を受けるなら別かもしれませんが… 私が受験資格を得たStudy-AIという企業様の講習内容ですがざっくり以下になります。 応用数学 機械学習 深層学習-前編 深層学習-後編 E資格試験対策 G検定でも上記の内容はでましたが、E資格ではより詳細でコードも含めた内容となっています。 また、1~4ではレポートの提出とテストの合格が必須条件になっています。 私が提出したレポート内容ですが、配布されたコードの実行キャプチャとビデオ講義の内容で大事な個所をまとめました。 テストの内容は講義で書かれていないことばかりですが、内容を把握していれば問題ないかと思います。ただし、間違っても正しい解答はわからない上にテスト実施は5回までとなっているので少し慎重になったほうがいいかもしれません。 解答料金やテスト実行回数増加料金(いずれも3千円ほど)払えばやりやすくなるかもしれませんが… 1~4まで終わるとE資格の修了者ナンバーがもらえます。ただし、修了者ナンバーをもらうまでの期限があるのでそれまでにレポートの提出とテスト合格しないといけません。大体E資格受験の1ヵ月前までが期限になります。 修了者ナンバーをもらえればこちらからアカウントを作成して、申し込みをし、受験料を払えば当日受験することができます。 果たしてこの資格が役に立つのかといえば微妙かもしれませんが、実際に手を動かすきっかけになるかと思うのでありかもしれません。また、今ならテストについては画像キャプチャしてGPTにでも聞けば解答を得られるかもしれないですね、やったことないですが… ブログの更新が遅くなりましたが引き続き勉強続けていきたいと思います。ではでは

2024年1月17日

E資格の試験勉強を再開し始めました!

私は4月頃にE資格の勉強を始めました。 受験の日付は8月の中旬で受験をするための資格取得期限が7月中旬でした 資格の取得は無事取得できたのですが、残り1か月の期間で合格できる気がしなく2024年2月初旬に受けることを決めました。 で、残り3か月になったのでそろそろ勉強を始めないと頭の悪い私は合格できる気がしないので勉強を再開したという経緯になります。 そもそもE資格とは何ぞやということですが、簡潔に言えば「深層学習の理論を理解し、実装能力や知識を有する認定資格」というものになります。 なのでこの資格を取れば深層学習に関する知識を持ち、プログラムの実装もできるはず… ですが、実際にプログラムの実装をしない人が多いような気もしています。kaggleなどで同時に進めていくとより理解は深まりそうな気もしていますが、そこまでする人もいなさそうです(私含め) 資格はあくまで資格でその先の何をしたいのかが重要なので、転職だったりkaggleで試してみるなど覚えたスキルを活用できる場所を見つけるのが大切ですよね そんなわけでkaggleを触ってみつつ、勉強を進めていきたいなと思うこのころです

2023年10月30日