自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

  • AI実装検定S級の疑問点【KerasとPytorchの入出力テンソル、凍結など】

    • 作成日時:
    • 最終更新日時:
    • Categories: others
    • Tags: AI開発 pytorch keras
    主に、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モデルの特徴まとめ

    • 作成日時:
    • 最終更新日時:
    • Categories: others
    • Tags: AI開発 pytorch keras
    簡単にCNNモデルの特徴を確認できるよう、3行〜6行ほどでまとめる。 VGG VGG16は3x3畳み込みを13層、全結合層を3層重ねたシンプル構造 畳み込み後の全結合層の計算コストが非常に高い(パラメーター1億3千万) pytorchではオリジナルのVGGにはないバッチ正規化(Batch Normalization)が使用されている。(※勾配消失・爆発対策) GoogLeNet 1x1 3x3 5x5 の異なる畳込みを並列で行う(後にチャンネル方向 ...
  • KerasでNLPモデルを再現する

    前提知識 本記事では Functional APIを使用する。 FunctionalAPIでは layersの層を積み重ね、Modelクラスの引数として引き渡しインスタンスを作る。 layers.Input : 入力値のデータ型を定義する。 layers.Embedding : 単語をベクトルに変換。 layers.Dense : 全結合層。すべての入力と出力を線で結んで計算をする。 layers.Flatten : 平坦化。多次元のデータを1列の長い棒に変換をする。全結合層(Dense)につなぐ際などに使う。 layers.Dot : テンソルの内積を計算する。 layers.Reshape : 形 ...
  • KerasのCNNモデルのコードを解釈する

    • 作成日時:
    • 最終更新日時:
    • Categories: others
    • Tags: AI開発 keras CNN
    Keras公式GitHubからコードを拝借。一部コメントや不必要な箇所を絞って、各CNNモデルの特徴がわかるように再構成してまとめる。 以下関連記事。 【pytorch】torchvisionのCNNモデルの内部構造から仕組みを知る pytorch の nn.moduleを継承して自作AIモデルを作り、CNNモデルの歴史を辿る VGG VGG は3x3畳み込みをひたすら積み重ねるシンプルモデル。 とりわけ今回はVGG16(畳み込み層+ ...
  • AI実装検定A級合格体験記

    もうすでに2ヶ月以上前のことではあるが、AI実装検定A級の合格をしたのでここにその過程をまとめる。 合格に必要な知識 従来型の機械学習(ML)と深層学習(DL)の違い AIの理論(順伝播、逆伝播、誤差逆伝播法、勾配降下法などの理解) 平均二乗誤差(MSE)、平均絶対誤差(MAE)の計算方法(試験では数学問題として出た) Sigmoid関数、ReLU関数などの活性化関数の用途と理由 過学習と勾配消失が起こる原因 ...
  • 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まで 】

    俯瞰 自然言語処理の入力仕様 Transformer よりも前のモデルには、単語間の関連を理解するための入力仕様が用意されている。 Tokenizerで数値化し、その数値を使いEmbeddingで特徴量のリストを作っている。 Transformerには、Embedding層が用意されている。 Tokenizer Tokenizerは入力値を単語に分けてIDを振る 入力値: "I love AI" ↓ 単語に分ける: ["I","love","AI"] ↓ IDを振る: [ 5, 101, 61 ] このTokenizerにより、 ...
  • 【pytorch】torchvisionのCNNモデルの内部構造から仕組みを知る

    • 作成日時:
    • 最終更新日時:
    • Categories: others
    • Tags: AI開発 pytorch python
    VGG ソースコード: https://github.com/pytorch/vision/blob/main/torchvision/models/vgg.py VGGは3x3フィルタを重ねている単純なモデル。 とりわけVGG16 はプーリング層を除いた、畳み込み層(13)+全結合層(3) の計16層で構成されている。 VGGの全結合層は4096ユニットもあり、これが大量のメモリを消費している。 また、パラメーター数は1億3000万を超えており、caltech-101程度のデータ量(1クラス50件)では過学習を起こす。 期待をしている画像サイズは22 ...