E資格 20250607合同勉強会

Mnistは、10クラス。通し課題は、15クラス。
カタカナの分類もMnistのソースを参考にするとできる。
カタカナの場合は、Predictがインデックスででてくるので、変換が必要。
クロスエントロピー誤差関数は、ゼロに近づく関数だからゼロエラーを回避するために小さい値を足して計算する。
通し課題のデータは3000件
課題を提出するときは、2_notebook.zipは名前をわかるように変更して提出すること

選択値にF値がある場合は、F値を計算すること

POC曲線はでない。
偽陽性率が出る
性能要件を満たす問題が出る
この場合もF値を計算すると計算回数が4回で済む

Day5 VGG
3×3のフィルタを2回 18と5×5フィルタの25と同じ効果
3×3のフィルタを3回 27と7×7フィルタの49と同じ効果

畳み込み演算定式化
パラメータ数が多い場合は、OWとOHは加味しない
パラメータの数か計算量で答えが変わるので注意する。

最新の論文の内容はどこまで調査したらよいのか?現在はないです。
講義のスライドに箇所のところを覚えれば問題ない。

<6/19の合同勉強会>
ステップを踏んだか?全結合層でデータ拡張、CNNの畳み込み層
Test LOSSが大きいままなので低くできるか?
回帰は直接数値を予測。それとは違い自動識別=分類のためLOSSは数値は異なる。バッチ正規化の過学習対策になる。LOSSは大きくなりがち。起こりうる現象。内部のLOSSの関数が異なるため。
モデルの関数を下げるための影響になる。バッチ正規化をいれると手を加えているから。同一のモデル同士であれば見る必要がある。
のぞき穴結合。計算グラフは覚えなくともよい。
Transformarの自然言語処理はE資格にでやすい。C-BOW、Word2vecはやったほうがよい。
並列処理やモデルの開発・運用ででる
YOROは、実務では商用とフリーのライセンスがあるので気を付けること。
アテンションの2つ「ソースターゲット・アテンション」「セルフ・アテンション」
E資格に式がでる。
Transformar(セルフ・ソース)の話が合った時は、ソフト・アテンションのみ
ハードアテンションは使用されなくなっている

承知いたしました。全結合層や他の一般的なニューラルネットワークの層について、それぞれの役割、使われる活性化関数、および主な特徴をまとめた表を作成します。
ニューラルネットワークの主要な層とその役割
層の種類 | 主な役割 | よく使われる活性化関数 | 特徴と用途 |
---|---|---|---|
全結合層<br>(Dense Layer) | 前の層のすべてのニューロンと接続し、入力された特徴を統合する。複雑なパターン認識や分類を行う。 | 隠れ層: ReLU, Leaky ReLU<br>出力層: Softmax (分類), Linear (回帰) | ニューラルネットワークの基本となる層。画像分類や自然言語処理など、多くのタスクで使われる。モデルの学習の大部分を担う。 |
畳み込み層<br>(Convolutional Layer) | 画像などの局所的な特徴(エッジ、テクスチャなど)を抽出する。空間的なパターンを捉えるのに特化している。 | ReLU, Leaky ReLU | 主に画像認識や動画解析などのタスクで、入力データから重要な視覚的特徴を効率的に抽出する。CNN (畳み込みニューラルネットワーク) の中心。 |
プーリング層<br>(Pooling Layer) | 畳み込み層で抽出された特徴マップの次元を削減し、計算量を減らす。ノイズや位置のずれに対する頑健性を高める。 | なし (プーリング操作は活性化関数ではない) | 一般的には畳み込み層の後に配置される。Max Pooling (最大値を選ぶ) や Average Pooling (平均値を取る) が一般的。 |
リカレント層<br>(Recurrent Layer) | 時系列データや連続したデータ(文章など)を処理する。過去の情報を内部状態として保持し、現在の出力に影響を与える。 | tanh, ReLU | RNN (リカレントニューラルネットワーク) の中心。自然言語処理(機械翻訳、テキスト生成)や音声認識に使われる。 |
ドロップアウト層<br>(Dropout Layer) | 学習時にランダムに一部のニューロンを非活性化する。モデルの過学習を防ぎ、汎化性能を高める。 | なし (活性化関数ではない) | 学習時のみ有効で、推論時には無効になる。全結合層の間に挿入されることが多い。正則化の代表的な手法。 |

デフォルトボックス、アンカーボックス、グリッドセル、バウンディングボックス、Selective Searchの比較表
項目 | デフォルトボックス (Default Boxes) | アンカーボックス (Anchor Boxes) | グリッドセル (Grid Cells) | バウンディングボックス (Bounding Boxes) | Selective Search |
---|---|---|---|---|---|
主な役割 | 物体候補領域の生成 | 物体候補領域の生成 | 予測位置の定義 | 最終的な検出結果 | 物体候補領域の生成 |
概念 | 特徴マップの各位置に、事前に定義された複数のサイズとアスペクト比の矩形。 | デフォルトボックスとほぼ同じ概念。様々な形状の物体を検出するための基準となる事前定義された矩形。 | 画像全体を一定のグリッドに分割した、個々のセル。各セルが、その中に中心を持つ物体の検出を担当する。 | 物体の位置と大きさを正確に示す、予測された最終的な矩形。クラス名と信頼度スコアを伴う。 | 画像内の類似したピクセルを階層的にグループ化し、物体候補となる領域を生成する手法。 |
関連する アルゴリズム | SSD (Single Shot Multibox Detector) | YOLO、Faster R-CNN | YOLO (You Only Look Once) | 物体検出を行うすべてのアルゴリズム (YOLO, SSD, Faster R-CNNなど) | R-CNN (Regions with CNN features) |
位置付け | 物体検出の予測の出発点となるテンプレート。 | 物体検出の予測の出発点となるテンプレート。デフォルトボックスと同義で使われることが多い。 | 予測が行われる場所(責任範囲)を定義する、YOLOの基本構造。 | 物体検出の最終的な成果物。これらのボックスがユーザーに提示される。 | CNNによる特徴抽出の前に独立して行われる、事前処理。 |
他の要素との関係 | ・バウンディングボックスは、デフォルトボックスを元に、その位置とサイズを調整して予測される。<br>・アンカーボックスとほぼ同じ概念。 | ・バウンディングボックスは、アンカーボックスを元に、その位置とサイズを調整して予測される。<br>・グリッドセルが、アンカーボックスを配置する場所を定義する。 | ・各グリッドセルは、そのセルに中心が位置する物体の検出に責任を持つ。<br>・セル内に配置されたアンカーボックスを元に、バウンディングボックスが予測される。 | ・デフォルトボックスやアンカーボックスといった候補領域を元に、位置やサイズ、クラス、信頼度を予測して得られる、唯一の最終的な出力。 | ・デフォルトボックスやアンカーボックスとは異なり、Deep Learningモデルの内部で生成されるものではなく、外部で生成された領域をモデルに入力する。 |
補足 | ・SSDでは、各特徴マップのスケールに合わせて、異なるサイズのデフォルトボックスを用いる。 | ・各アンカーボックスには、そのボックスがどれだけ物体に似ているかを示す「オブジェクトネススコア」が付与される。 | ・1つのグリッドセルが検出できる物体の数は限られているため、密集した物体の検出は苦手。 | ・ |
・計算コストが高く、リアルタイムの物体検出には不向きなため、現在はあまり主流ではない。 |

物体検出の主要な概念・技術の比較表
項目 | デフォルトボックス (Default Boxes) | アンカーボックス (Anchor Boxes) | グリッドセル (Grid Cells) | RPN (Region Proposal Network) | ROI Pooling | NMS (Non-Maximum Suppression) | バウンディングボックス (Bounding Boxes) | Selective Search |
---|---|---|---|---|---|---|---|---|
主な役割 | 物体候補領域の生成 | 物体候補領域の生成 | 予測位置の定義 | 物体候補領域の生成 | 特徴マップの固定化 | 検出結果の絞り込み | 最終的な検出結果 | 物体候補領域の生成 |
概念 | 特徴マップの各位置に、事前に定義された複数のサイズとアスペクト比の矩形。 | デフォルトボックスとほぼ同じ概念で、様々な形状の物体を検出するための基準となる事前定義された矩形。 | 画像全体を一定のグリッドに分割した、個々のセル。各セルが、その中に中心を持つ物体の検出を担当する。 | CNNの特徴マップ上で、アンカーボックスを元に物体が存在しそうな領域を予測する、End-to-Endなニューラルネットワーク。 | 検出された関心領域(ROI)に対応する特徴マップの領域を、次の分類層へ入力するために固定サイズに変換する手法。 | 検出された複数の重複するバウンディングボックスの中から、信頼度スコアが最も高いものを選択し、他の重複したボックスを抑制(削除)する後処理アルゴリズム。 | 物体の位置と大きさを正確に示す、予測された最終的な矩形。クラス名と信頼度スコアを伴う。 | 画像内の類似したピクセルを階層的にグループ化し、物体候補となる領域を生成する手法。 |
関連する<br>アルゴリズム | SSD (Single Shot Multibox Detector) | YOLO、Faster R-CNN | YOLO (You Only Look Once) | Faster R-CNN、Mask R-CNN | Fast R-CNN、Faster R-CNN | ほぼすべての物体検出モデル (YOLO, SSD, Faster R-CNNなど) | ほぼすべての物体検出モデル | R-CNN (初代) |
位置付け | ディープラーニングモデルの内部に統合された予測の出発点。 | ディープラーニングモデルの内部に統合された予測の出発点。 | ディープラーニングモデルの内部構造。予測が行われる場所を定義する。 | ディープラーニングモデルの内部に統合された、End-to-Endな候補領域生成器。 | 検出ネットワークの中で、可変サイズの入力(ROI)を処理するための重要な中間処理。 | 物体検出モデルの予測後に行われる、重複を整理するための一般的な後処理。 | 物体検出の最終的な成果物。ユーザーに提示される出力。 | ディープラーニングとは独立して行われる前処理。 |
他の要素との関係 | ・バウンディングボックスは、これを元に予測される。<br>・アンカーボックスとほぼ同じ概念。 | ・バウンディングボックスは、これを元に予測される。<br>・グリッドセルが、これを配置する場所を定義する。 | ・アンカーボックスを配置する場所を定義する。<br>・セル内に配置されたアンカーボックスを元にバウンディングボックスが予測される。 | ・Selective Searchに代わり、より高速で高精度な候補領域生成を実現。<br>・RPNによって生成された領域候補に対してROI Poolingが適用される。 | ・RPNやSelective Searchによって生成された領域候補を入力として受け取り、その特徴を抽出する。 | ・RPNによって生成された候補や、モデルが出力した最終的なバウンディングボックスに対して適用される。 | ・デフォルトボックスやアンカーボックスといった候補領域を元に、位置やサイズ、クラス、信頼度を予測して得られる唯一の最終出力。 | ・RPNが登場するまで、R-CNNにおける候補領域生成の主要な手法。<br>・ROI Poolingに領域候補を出力する。 |

DANNは「Domain-Adversarial Neural Network(ドメイン敵対的ニューラルネットワーク)」の略で、機械学習における**ドメイン適応(Domain Adaptation)**の問題を解決するために提案された技術です。

フローベースの生成モデルは、GAN(敵対的生成ネットワーク)やVAE(変分オートエンコーダ)に並ぶ、ディープラーニングにおける主要な生成モデルの一つです。
このモデルの最大の特徴は、**すべての変換が可逆(Invertible)**である点にあります。
基本的なアイデア
フローベースモデルの基本的なアイデアは、以下の通りです。
- まず、生成したいデータ(例:画像)の複雑な分布を、数学的に扱いやすい単純な分布(例:標準正規分布)に変換する可逆関数の連鎖(フロー)を構築します。
- この変換は可逆であるため、逆に単純な分布から複雑なデータの分布を生成することも可能です。
つまり、単純な分布(潜在空間)
複雑なデータの分布
という双方向の変換を、一つのモデルで学習します。
GANやVAEとの決定的な違い
フローベースモデルは、GANやVAEが抱える問題のいくつかを解決します。
項目 | GAN (敵対的生成ネットワーク) | VAE (変分オートエンコーダ) | フローベースモデル |
---|---|---|---|
学習の安定性 | 不安定(モード崩壊などが起こりやすい) | 比較的安定 | 非常に安定 |
尤度の計算 | 明示的な尤度を計算できない | 近似的な尤度しか計算できない | 厳密な尤度を計算できる |
生成画像の質 | 高品質な画像を生成できる | GANよりぼやけやすい傾向がある | 非常に高品質な画像を生成できる |
仕組みの核心:なぜ厳密な尤度が計算できるのか?
フローベースモデルが厳密な尤度を計算できるのは、変数変換の公式を利用しているためです。
データ
このとき、データ
この式の右辺にある
長所と短所
長所
- 厳密な尤度計算: データがどれだけモデルに適合しているかを正確に評価できるため、異常検知などにも応用可能。
- 安定した学習: 敵対的な学習が必要ないため、GANに比べて学習が安定している。
- 高品質な生成: 高解像度の画像でも、シャープで高品質なサンプルを生成できる。
短所
- 計算コスト: 可逆性を維持するために、各変換層でヤコビアン行列式を計算する必要があり、これが大きな計算コストとなる。
- アーキテクチャの制約: すべての層が可逆でなければならず、ニューラルネットワークの設計に制約が生じる。
代表的なモデル
- NICE: フローベースモデルの初期のモデル
- Real NVP: 有名なフローベースモデルの一つ
- Glow: 高解像度の画像を生成できる高性能なモデルとして知られる

強化学習、Q学習、DQN、DDQN、Dueling DQNについて、それぞれの概念と関係性を解説します。
1. 強化学習 (Reinforcement Learning)
強化学習は、機械学習の一分野で、エージェントが環境の中で行動し、その結果として得られる報酬を最大化するように最適な行動戦略を学習する手法です。
- エージェント: 学習を行う主体。
- 環境: エージェントが行動する場。
- 行動: エージェントが環境に対して行う操作。
- 状態: ある時点における環境の状況。
- 報酬: 行動の結果としてエージェントが得る評価値。
エージェントは、ある状態においてどの行動をとれば将来的に最も多くの報酬を得られるかということを試行錯誤しながら学習していきます。
2. Q学習 (Q-learning)
Q学習は、強化学習の代表的なアルゴリズムの一つで、行動価値関数 (
Q学習では、以下の式(ベルマン方程式)を用いてQ値を更新していきます。
-
: 現在の状態Q(s, a) で行動s をとったときのQ値a -
: 学習率\alpha -
: 行動r をとった直後に得られる報酬a -
: 割引率(将来の報酬をどれだけ重視するか)\gamma -
: 行動s' をとった後の次の状態a -
: 次の状態\max_{a'} Q(s', a') で取りうる全ての行動s' の中で最も高いQ値a'
Q学習は、Qテーブルと呼ばれる表に状態と行動の組み合わせごとのQ値を保持します。しかし、状態や行動の数が膨大になると、Qテーブルは現実的に扱えなくなります。
3. DQN (Deep Q-Network)
DQNは、Q学習の課題(状態や行動の数が膨大になった場合のQテーブルの問題)を解決するために、深層学習(ディープラーニング)を導入したアルゴリズムです。
- Qテーブルの代わり: Q学習で使われるQテーブルの代わりに、ニューラルネットワーク(深層学習モデル)を用いてQ値を推定します。このニューラルネットワークを「Qネットワーク」と呼びます。
- 入力: 状態(例えば、ゲーム画面のピクセル情報)
- 出力: 各行動に対するQ値
DQNは、以下の2つの重要な技術を導入することで、安定した学習を可能にしました。
- 経験再生 (Experience Replay): エージェントが経験した状態、行動、報酬、次の状態のペアを「経験メモリ」に蓄積し、そこからランダムにサンプリングして学習を行います。これにより、データの相関が低くなり、学習が安定します。
- ターゲットネットワーク (Target Network): Q値の更新に用いるターゲット値を計算するために、メインのQネットワークとは別に、更新を遅らせた「ターゲットネットワーク」を使用します。これにより、更新の際の振動や発散を防ぎ、学習を安定させます。
4. DDQN (Double Deep Q-Network)
DDQNは、DQNが抱える「Q値の過大評価」という問題に対処するために提案されました。
DQNの更新式では、ターゲット値の計算に
DDQNでは、この問題を防ぐために、行動の選択とQ値の評価を異なるネットワークに分けます。
-
行動の選択: メインのQネットワークを用いて、次の状態
で最も高いQ値を持つ行動s' を選択します。a' -
Q値の評価: 選択した行動
のQ値を、更新が遅れたターゲットネットワークを用いて評価します。a'
更新式は以下のようになります。
これにより、Q値の過大評価が抑制され、より安定した学習が可能になります。
5. Dueling DQN (Dueling Network Architectures for Deep Reinforcement Learning)
Dueling DQNは、DQNのネットワーク構造を改良したものです。Q値を直接出力するのではなく、状態価値関数 (
-
状態価値関数
: ある状態V(s) がどれくらい良い状態かを示す値。行動に依存しない。s -
アドバンテージ関数
: ある状態A(s, a) において、特定の行動s をとることが、平均的な行動と比べてどれくらい良いかを示す値。a
Q値は、以下の関係式で表されます。
この構造のメリットは、以下の点にあります。
-
学習の効率化: 多くの状態において、行動の選択はあまり重要でない場合があります(例えば、ゲームの画面が何も変わらない静的な状態)。Dueling DQNでは、このような場合でも状態価値関数
のみを効率的に学習することができます。V(s) - 汎化性能の向上: アドバンテージ関数は、各行動の相対的な優劣を学習するため、異なる状態でも共通の行動に対するアドバンテージを共有して学習することができます。
Dueling DQNのネットワークは、共通の畳み込み層の後に、状態価値関数を出力するストリームと、アドバンテージ関数を出力するストリームに分岐し、最後にこれらを結合してQ値を出力します。
まとめ
アルゴリズム | 特徴 | 課題と改善点 |
---|---|---|
強化学習 | 試行錯誤を通じて最適な行動戦略を学習する枠組み | - |
Q学習 | Qテーブルで行動価値を学習 | 状態数が膨大になるとQテーブルが扱えない |
DQN | Qテーブルをニューラルネットワークに置き換え(Qネットワーク) | Q値の過大評価、学習の不安定性 |
DDQN | 行動の選択と評価を分離することで、Q値の過大評価を抑制 | - |
Dueling DQN | ネットワークを状態価値とアドバンテージに分離し、学習を効率化 | - |
これらのアルゴリズムは、強化学習の進化の歴史を物語っており、それぞれの技術が前のアルゴリズムの課題を解決し、より高性能なモデルへと発展させていることがわかります。

物体検出アルゴリズムであるR-CNN、SPP-net、Fast R-CNN、Faster R-CNN、YOLO、SSDについて、それぞれの特徴と進化の過程を解説します。
これらのアルゴリズムは、画像から物体の位置(バウンディングボックス)と種類(クラス)を同時に特定する「物体検出」というタスクにおいて、大きな進歩をもたらしました。
1. R-CNN (Region-based Convolutional Neural Network)
R-CNNは、物体検出に初めてディープラーニングを本格的に応用した画期的なアルゴリズムです。その処理は大きく3つのステップに分かれています。
- 領域候補の抽出 (Region Proposal): 画像から物体が存在しそうな領域を約2,000個生成します。これはSelective Searchなどの従来のアルゴリズムを使って行います。
- 特徴抽出: 抽出された各領域候補を、CNN(畳み込みニューラルネットワーク)に入力し、特徴ベクトルを抽出します。
- 分類: 抽出された特徴ベクトルをSVM(サポートベクターマシン)に入力し、各領域候補にどの物体が含まれているかを分類します。
課題: 各領域候補を個別にCNNに入力するため、処理が非常に遅いという大きな欠点がありました。
2. SPP-net (Spatial Pyramid Pooling Network)
SPP-netは、R-CNNの速度問題を改善するために登場しました。R-CNNは、各領域候補をリサイズしてCNNに入力していましたが、SPP-netでは、画像全体を一度だけCNNに通して特徴マップを作成します。
そして、その特徴マップに対して「Spatial Pyramid Pooling」という手法を適用することで、様々なサイズの領域候補から固定長のベクトルを抽出できるようにしました。これにより、CNNの処理を一度で済ませることができるようになり、R-CNNに比べて大幅に高速化されました。
3. Fast R-CNN
Fast R-CNNは、SPP-netのアイデアをさらに発展させ、R-CNNの課題をより包括的に解決しました。
- 学習の一貫性: R-CNNでは、特徴抽出、分類、位置回帰(バウンディングボックスの微調整)をそれぞれ異なるネットワークやアルゴリズムで行っていました。Fast R-CNNは、これらを一つのネットワークで学習できるように統合しました。
- ROI Pooling: SPP-netのSpatial Pyramid Poolingを単純化した「ROI Pooling」というレイヤーを導入し、任意のサイズの領域候補から固定サイズの特徴ベクトルを効率的に抽出します。
- マルチタスクロス: 分類と位置回帰の損失を一つの関数にまとめ、同時に学習することで、精度と速度を両立させました。
課題: 領域候補の抽出に依然としてSelective Searchのような外部のアルゴリズムを使用しており、この部分がボトルネックとなっていました。
4. Faster R-CNN
Faster R-CNNは、Fast R-CNNの最後のボトルネックを解決しました。
- RPN (Region Proposal Network): 領域候補の抽出を、従来のアルゴリズムではなく、ディープラーニングのネットワーク(RPN)で行うようにしました。このRPNは、画像全体の特徴マップから物体らしき領域を高速に予測します。
- End-to-end学習: これにより、物体検出の全プロセス(領域候補の生成、特徴抽出、分類、位置回帰)を一つのネットワークに統合し、全体をエンドツーエンドで学習させることが可能になりました。
Faster R-CNNは、当時の物体検出において最高レベルの精度を達成し、多くの研究のベースとなりました。これらのアルゴリズムは「2段階検出器(Two-stage Detector)」と呼ばれ、高い精度を誇ります。
5. YOLO (You Only Look Once)
YOLOは、これまでの2段階検出器とは全く異なるアプローチをとるアルゴリズムです。
- 単一のネットワーク: 画像全体を一度だけネットワークに入力し、バウンディングボックスとクラスの確率を直接出力します。
- グリッドセル: 画像をグリッドに分割し、各グリッドセルがその中心に物体が存在するかどうかを予測します。
- リアルタイム性能: 2段階の処理が不要なため、非常に高速な処理が可能で、リアルタイムの物体検出に適しています。
課題: グリッドに分割するため、隣接する小さな物体を複数検出することが苦手で、Faster R-CNNに比べて精度が劣ることがありました。
6. SSD (Single Shot MultiBox Detector)
SSDは、YOLOと同じく「1段階検出器(One-stage Detector)」に分類されますが、YOLOの課題を改善したアルゴリズムです。
- マルチスケール特徴マップ: 異なるスケールの特徴マップ(CNNの深い層と浅い層)を利用することで、様々なサイズの物体を検出できるようにしました。これにより、小さな物体の検出精度が向上しました。
- アンカーボックス: 事前定義された様々なアスペクト比とサイズの「アンカーボックス」を使用することで、YOLOよりも多種多様な形状の物体を検出できます。
SSDは、YOLOの高速性と、Faster R-CNNに近い精度を両立させ、リアルタイムアプリケーションにおいて非常に有用なモデルとなりました。
まとめ
アルゴリズム | アプローチ | 特徴 | 速度 vs. 精度 |
---|---|---|---|
R-CNN | 2段階(領域候補 + CNN) | 物体検出にDLを本格導入。個別にCNNに通すため遅い。 | 非常に遅い / 高精度 |
SPP-net | 2段階 | 画像全体を1度CNNに通し、速度を改善。 | 速い / 高精度 |
Fast R-CNN | 2段階 | 処理を1つのネットワークに統合。学習が効率化。 | 速い / 高精度 |
Faster R-CNN | 2段階 | 領域候補抽出もネットワーク化。エンドツーエンド学習を実現。 | 比較的遅い / 最高精度 |
YOLO | 1段階 | 1つのネットワークで検出。リアルタイム処理に特化。 | 非常に速い / 精度はやや劣る |
SSD | 1段階 | 1段階で多スケールを検出。速度と精度のバランスが良い。 | 非常に速い / Faster R-CNNに近い精度 |
これらのアルゴリズムは、物体検出の技術が「精度」から「速度」へ、そして「両立」へと進化してきた歴史を示しています。用途に応じて最適なアルゴリズムを選択することが重要です。