AI実装検定S級の疑問点【KerasとPytorchの入出力テンソル、凍結など】
主に、pytorchとkerasの実装上の問題についてまとめる。 Q: pytorch の シーケンス系レイヤ(RNNやTransformer)で使用される batch_first 引数とはなにか? A. 入力テンソルの次元の並び順を指定している。 batch_first 引数が使われる場所 以下、シーケンス系のレイヤで使用されている。 RNN系 torch.nn.RNN torch.nn.LSTM torch.nn.GRU Transformer系 torch.nn.Transformer torch.nn.TransformerEncoderLayer torch.nn.MultiheadAttention batch_first 指定による作用 この引数の指定により、入力テンソルの次元の並び順を指定できる。 batch_fir ...AI実装検定S級の模擬試験
■ CNN(30問) VGGに関する記述として正しいものはどれか A. 畳み込みカーネルは主に7×7を使用 B. 畳み込みカーネルは主に3×3を積み重ねる C. Residual接続を持つ D. Depthwise Separable Convを使用 KerasでVGG風のブロックを作る際に適切なのはどれか A. Conv2D → BatchNorm → ReLU → MaxPool B. Dense → Conv2D → Dropout C. Conv1D → Flatten → LSTM D. GlobalAveragePooling → Conv2D VGGの欠点として適切なのはどれか A. 表現力が低い B. パラメータ数が多い C. 勾配消失が発生しない D. 軽量モデルである G ...【箇条書き】NLPモデルの特徴まとめ
前提と基礎知識 NLPモデルに入力データが与えられるまでの過程 文章を与える ↓ Tokenizerでトークン化(単語・サブワード・文字などに分割) 例: "I love NLP" → ["I", "love", "NL", "##P"] ↓ 語彙表(Vocabulary)を使って、トークン → トークンID に変換 例: ["I", "love", "NL", "##P"] → [101, 2293, 17953, 1925] ↓ ※ 必要に応じてパディング・マスキング・特殊トークン付与 例: [CLS], [SEP], [PAD] などをここで追加(BERTなど) ↓ Embedding層にトークンIDを与える └ ID ...【箇条書き】CNNモデルの特徴まとめ
KerasでNLPモデルを再現する
前提知識 本記事では Functional APIを使用する。 FunctionalAPIでは layersの層を積み重ね、Modelクラスの引数として引き渡しインスタンスを作る。 layers.Input : 入力値のデータ型を定義する。 layers.Embedding : 単語をベクトルに変換。 layers.Dense : 全結合層。すべての入力と出力を線で結んで計算をする。 layers.Flatten : 平坦化。多次元のデータを1列の長い棒に変換をする。全結合層(Dense)につなぐ際などに使う。 layers.Dot : テンソルの内積を計算する。 layers.Reshape : 形 ...KerasのCNNモデルのコードを解釈する
AI実装検定A級合格体験記
CNNとNLPの問題
試験範囲 CNN : VGG,GoogLeNet,ResNet(WideResNet),MobileNet,DenseNet,EfficientNet NLP : Word2Vec(skip-gram),seq2seq,HRED,Transformer 問題 間違えている箇所は → で解答を表示。 1. VGG Q1: VGG16において、すべての畳み込み層で 3×3 カーネルが採用されている理由として適切なものは? 空間方向・チャンネル方向双方に畳み込みを行い、層を増やすため。5x5では特徴量がぼやけてしまい、1x1では空間方向の特徴抽出が難しいため。 Q2: PyTorchの models.vgg16 において、特徴抽出部分の最後にある nn.AdaptiveAvgPool2d((7, 7)) の役割は? 7x7で平均プーリングを行い、全結合 ...pytorchコードでNLPモデルの歴史を辿る【word2vec から Transformerまで 】