「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
G検定とほぼ同じだが以下が異なる。
ビビらなくて良い。
【応用数学】 ◆線形代数 ◇特異値分解 【機械学習】 ◆機械学習の基礎 ◇教師あり学習アルゴリズム ◇教師なし学習アルゴリズム ◇確率的勾配降下法 【深層学習】 ◆順伝播型ネットワーク ◇アーキテクチャの設計 ◇誤差逆伝搬法およびその他の微分アルゴリズム ※以下のみ ・全結合 MLP での誤差逆伝搬法 ◆深層モデルのための最適化 ◇基本的なアルゴリズム ※以下のみ ・ネステロフのモメンタム ◆畳み込みネットワーク ◇構造出力 ◇データの種類 ◇効率的な畳み込みアルゴリズム ◆回帰結合型ニューラルネットワークと再帰的ネットワーク ◇回帰結合型のニューラルネットワーク ※以下のみ ・教師強制と出力回帰のあるネットワーク ・有向グラフィカルモデルとしての回帰結合型のネットワーク ・RNNを使った文脈で条件付けされた系列モデリング ◇深層回帰結合型のネットワーク ◇再帰型ニューラルネットワーク ◇複数時間スケールのための Leaky ユニットとその他の手法 ※以下のみ ・時間方向にスキップ接続を追加 ・接続の削除 ◆深層学習の適応方法 ◇画像認識 ・VGG
※ 個人的には、以下の理由で数学的項目は今後も減って行くと思う。
線形代数からの唯一の項も削除されたので線形代数の出題はナシ。
機械学習の最適化とは「経験損失最小化」で純粋な最適化とは異なる。
一般的な扱い | GPT-3での扱い | |
Few/One-Shot | 少量の教師ありデータに基づく学習方法 | タスク説明と少量のデモンストレーションを入力とした予測 |
Zero-Shot | 学習時に存在しないクラスのデータを扱う枠組み | タスク説明のみを入力とした予測 |
cross_entropyの実装にパターンあるけどコレ同じなの?
return -np.sum(tk * np.log(yk + 1e-7))
return - np.sum(t * np.log(y + 1e-8)) / y.shape[0]
return np.mean(-y*np.log(p)-(1-y)*np.log(1-p))
適切なバッチサイズを選ぶことが、学習を上手く行うために必要になる。
※loss(損失)とacc(正解率)の進捗を確認する。
def im2col(input_data, filter_h, filter_w, stride=1, pad=0): """ Parameters ---------- input_data : (データ数, チャンネル, 高さ, 幅)の4次元配列からなる入力データ filter_h : フィルターの高さ filter_w : フィルターの幅 stride : ストライド pad : パディング Returns ------- col : 2次元配列 """ N, C, H, W = input_data.shape # 何気に割り算は[//]なんだな。 out_h = (H + 2*pad - filter_h)//stride + 1 out_w = (W + 2*pad - filter_w)//stride + 1 # 画像をパティングして取り出す、 # 第1引数には元データ、第2引数には前・後の文字詰め量、第2引数のconstantは0埋め # ちなみに、第2引数はinput_dataの[高さ, 幅]の(上or前, 下or後)の部分以外を0指定。 img = np.pad(input_data, [(0,0), (0,0), (pad, pad), (pad, pad)], 'constant') # 2次元配列の意味だろうか? col = np.zeros((N, C, filter_h, filter_w, out_h, out_w)) # フィルターに対応する入力データの要素を抽出 for y in range(filter_h): # 最大値はOHを使って逆算 y_max = y + stride*out_h for x in range(filter_w): # 最大値はOWを使って逆算 x_max = x + stride*out_w # N, CH, H, F # ↓ # N, CH, FH, FW, OH, OW # a:b:c の指定はa~b-1までcステップずつと言う実装で、 # フィルターの[y, x要素]に対応する入力データの要素を抽出 # 各フィルタが適用される要素、1回目は左上...右上...左下...n回目は右下で、 # 1回のステップで取得される要素数は特徴マップのサイズと等しくなる。 col[:, :, y, x, :, :] = img[:, :, y:y_max:stride, x:x_max:stride] # 絵的にイメージ困難だが並びを替えて # N, CH, FH, FW, OH, OW # ↓ # N, OH, OW, CH, FH, FW # 行数を指定して、行列に展開すれば意図した出力になる。 col = col.transpose(0, 4, 5, 1, 2, 3).reshape(N*out_h*out_w, -1) return col
...
# Wは (フィルタ数, チャンネル, 高さ, 幅)の4次元配列からなるデータ # フィルタ毎、「チャンネル, 高さ, 幅」の行ベクトルに展開後に列ベクトルに転置する。 col_W = self.W.reshape(FN, -1).T
...
スマホ用CNNで、ボトルネックの畳み込みの分割で計算量を減らす。
(ゼロから作るDeep Learning)
徹底攻略ディープラーニングE資格エンジニア問題集 第2版 - インプレスブックス
https://book.impress.co.jp/books/1120101184
(E資格対策)
深層学習ではないんだけど深層学習系の生成モデルばっかなのでココ