はじめに
この記事は、以下の記事の続編です。
前回の精度向上編では、Cohere Multimodal Embed 3(Cohere 社 API 経由)で生成した画像の埋め込みベクトルを線形分類器に入力して訓練し、F2スコアを最適化指標として洪水画像の分類精度を向上させました。
今回は、OCI 生成AIサービス(OCI Generative AI Service)に Cohere Embed 4(cohere.embed-v4.0)に埋め込みモデルを差し替えて同じ検証を行い、Embed 3 との精度差を確認してみました。分類器のアーキテクチャやハイパーパラメータチューニングの方法は前回と同一です。
Cohere Embed 4 とは
Cohere Embed 4(cohere.embed-v4.0)は、Cohere 社の最新のマルチモーダル埋め込みモデルで、OCI 生成AIサービス上でオンデマンドおよび専用AIクラスター(Dedicated AI Cluster)の両方で利用可能です。
Embed 3 からの主な変更点は以下のとおりです。
| 項目 | Embed 3 | Embed 4 |
|---|---|---|
| 埋め込みベクトルの次元 | 1,024 | 1,536 |
| 最大入力トークン数 | 512 | 128,000 |
| テキストと画像の混在入力 | 非対応 | 対応(※) |
今回の検証では、画像単体の埋め込みのみを使用していますので、混在入力などの新機能は活用していませんが、埋め込みベクトルの品質向上が分類精度にどう影響するかを確認します。
※テキストと画像を1つのベクトルへ埋め込む新機能は、この記事執筆時点では OCI 生成AIサービスでは未対応です。対応したら何か試してみたいです。
結果概要
Embed 4 での改善結果(評価データ)
| 指標 | ゼロショット(Embed 4) | 線形分類器・F2最適化(Embed 4) | 改善率 |
|---|---|---|---|
| 正解率(Accuracy) | 0.9667 | 0.9689 | +0.23% |
| 適合率(Precision) | 0.9231 | 0.8689 | -5.87% |
| 再現率(Recall) | 0.8136 | 0.8983 | +10.42% |
| F1スコア | 0.8649 | 0.8833 | +2.14% |
| F2スコア | 0.8333 | 0.8923 | +7.07% |
注目ポイント(Embed 3 との違い)
Embed 3 ではゼロショットの適合率が 40.0% と低く、線形分類器を導入して 75.7% まで大幅に改善することがメインテーマでした。一方、Embed 4 ではゼロショットの時点で適合率が 92.3% と非常に高いため、線形分類器の役割が異なります。
- Embed 4 のゼロショットは適合率は高いが再現率が 81.4% にとどまる(見逃しがやや多い)
- 線形分類器を導入することで再現率が 89.8% に向上(+10.4ポイント)
- 適合率は 92.3% → 86.9% とやや低下するが、F2スコアは 83.3% → 89.2% に向上
つまり、Embed 3 では「誤検知を減らす」ことが線形分類器の主な効果でしたが、Embed 4 では「見逃しを減らす」ことが主な効果となっています。
アプローチ
前回と同じアプローチです。
- Cohere Embed 4 で画像の埋め込みベクトルを生成
- 分類クラスのキャプション埋め込みベクトルを生成
- 画像埋め込みベクトルに対して線形分類器をトレーニング
- F2スコアを最大化するハイパーパラメータを探索
- 最適化されたモデルで予測を実施
F2スコアを用いる理由は前回と同じく、洪水検出においては「見逃し」(偽陰性、False Negative)を最小化することが重要だからです。
F2 = 5 × (Precision × Recall) / (4 × Precision + Recall)
環境とデータセット
前回の記事と同様に、FloodNet Datasetを使用しています。
訓練データ数: 1445
検証データ数: 448
評価データ数: 450
埋め込みベクトルの次元: 1536
それぞれのデータセットに同程度の割合で正例(洪水:Flooded)が含まれていること、多数クラス(non-flooded)と少数クラス(flooded)には大きな不均衡があることは前回と同じです。
| データ | 画像数 | non-flooded | flooded |
|---|---|---|---|
| 訓練データ | 1,445 | 1,263 | 182 |
| 検証データ(テスト) | 448 | 390 | 58 |
| 評価データ | 450 | 391 | 59 |
線形分類器のトレーニング
モデル選択とハイパーパラメータ最適化
前回と同様、2つの線形分類器を検討しました。
- ロジスティック回帰
- 線形SVM
F2スコアを最大化するためのハイパーパラメータをグリッドサーチで最適化しています。
トレーニング結果
ロジスティック回帰のF1交差検証スコア: 0.8426 ± 0.0858
ロジスティック回帰のF2交差検証スコア: 0.8352 ± 0.0916
ロジスティック回帰の最適パラメータ(F2最適化): {'classifier__C': 5e-05, 'classifier__class_weight': {0: 1, 1: 7}}
ロジスティック回帰の最高F2スコア: 0.8841
線形SVMのF1交差検証スコア: 0.7743 (+/- 0.1368)
線形SVMのF2交差検証スコア: 0.8105 (+/- 0.1604)
線形SVMの最適パラメータ(F2最適化): {'classifier__C': 0.001, 'classifier__class_weight': None}
線形SVMの最高F2スコア: 0.8539
前回(Embed 3)と比較すると、ロジスティック回帰のグリッドサーチ最高F2スコアは 0.8442 → 0.8841 に向上しています。最適パラメータは class_weight={0: 1, 1: 7} と同傾向で、少数クラス(flooded)に大きな重みづけをする設定が最適でした。
モデルの評価(検証データ)
===== ロジスティック回帰(F2最適化) の評価 =====
正解率(Accuracy): 0.9732
適合率(Precision): 0.8966
再現率(Recall): 0.8966
F1スコア: 0.8966
F2スコア: 0.8966
分類レポート:
precision recall f1-score support
non-flooded 0.98 0.98 0.98 390
flooded 0.90 0.90 0.90 58
accuracy 0.97 448
macro avg 0.94 0.94 0.94 448
weighted avg 0.97 0.97 0.97 448
===== 線形SVM(F2最適化) の評価 =====
正解率(Accuracy): 0.9732
適合率(Precision): 0.9259
再現率(Recall): 0.8621
F1スコア: 0.8929
F2スコア: 0.8741
分類レポート:
precision recall f1-score support
non-flooded 0.98 0.99 0.98 390
flooded 0.93 0.86 0.89 58
accuracy 0.97 448
macro avg 0.95 0.93 0.94 448
weighted avg 0.97 0.97 0.97 448
ロジスティック回帰モデルが F2 の最適化(再現率を重視しながら適合率とのバランス)という観点では優れていると評価できます。 これは前回(Embed 3)と同じ結論です。
評価
評価データ(訓練やモデル選定に使っていないデータ)をロジスティック回帰モデルで分類した結果は以下のとおりでした。
=== 評価データでの最終評価(F2最適化モデル) ===
===== 評価データでの最良モデル(F2最適化) の評価 =====
正解率(Accuracy): 0.9689
適合率(Precision): 0.8689
再現率(Recall): 0.8983
F1スコア: 0.8833
F2スコア: 0.8923
分類レポート:
precision recall f1-score support
non-flooded 0.98 0.98 0.98 391
flooded 0.87 0.90 0.88 59
accuracy 0.97 450
macro avg 0.93 0.94 0.93 450
weighted avg 0.97 0.97 0.97 450
ゼロショットとの比較
===== モデル比較: コサイン類似度 vs F2最適化線形分類器 =====
コサイン類似度の正解率: 0.9667
F2最適化線形分類器の正解率: 0.9689
改善率: 0.23%
コサイン類似度の適合率: 0.9231
F2最適化線形分類器の適合率: 0.8689
改善率: -5.87%
コサイン類似度の再現率: 0.8136
F2最適化線形分類器の再現率: 0.8983
改善率: 10.42%
コサイン類似度のF1スコア: 0.8649
F2最適化線形分類器のF1スコア: 0.8833
改善率: 2.14%
コサイン類似度のF2スコア: 0.8333
F2最適化線形分類器のF2スコア: 0.8923
改善率: 7.07%
- 洪水の画像を正しく洪水と分類できているかどうかを表す再現率(Recall)は、ゼロショットの 81.4% から線形分類器では 89.8% へ +10.4ポイントの大幅な向上を示しています
- F2スコアは 83.3% から 89.2% へ +7.1ポイント向上しています
- 適合率はゼロショットの 92.3% から 86.9% へやや低下していますが、これは再現率を重視する F2スコア最適化の意図どおりの結果です
誤分類された画像の分析
評価データ450枚のうち、誤分類は 14枚 でした。
| 分類 | 件数 |
|---|---|
| 正しく分類された画像 | 436 |
| 誤分類された画像 | 14 |
| うち偽陰性(見逃し) | 6 |
| うち偽陽性(誤検知) | 8 |
偽陰性の画像を確認すると、信頼度スコアが閾値付近のものが含まれており、浸水域がごく一部にとどまる画像や、水面と舗装路面の区別が難しい画像などが該当しています。
Embed 3 vs Embed 4 の全体比較
前回の精度向上編(Embed 3)と今回(Embed 4)の結果をまとめて比較します。
ゼロショット(コサイン類似度ベース)の比較
| 指標 | Embed 3 | Embed 4 | 差分 |
|---|---|---|---|
| 正解率(Accuracy) | 0.8111 | 0.9667 | +15.56ポイント |
| 適合率(Precision) | 0.4000 | 0.9231 | +52.31ポイント |
| 再現率(Recall) | 0.8814 | 0.8136 | -6.78ポイント |
| F1スコア | 0.5503 | 0.8649 | +31.46ポイント |
| F2スコア | 0.7104 | 0.8333 | +12.29ポイント |
ゼロショットの段階で Embed 4 は Embed 3 を大きく上回っています。特に適合率が 40.0% → 92.3% と劇的に改善されており、Embed 4 の画像埋め込みの品質が大幅に向上していることがわかります。ただし再現率は若干低下しており、Embed 4 のゼロショットは「慎重に(確信が持てるものだけ浸水と判定する)」傾向があるようです。
線形分類器(F2最適化)の比較
| 指標 | Embed 3 | Embed 4 | 差分 |
|---|---|---|---|
| 正解率(Accuracy) | 0.9489 | 0.9689 | +2.00ポイント |
| 適合率(Precision) | 0.7571 | 0.8689 | +11.18ポイント |
| 再現率(Recall) | 0.8983 | 0.8983 | ±0 |
| F1スコア | 0.8217 | 0.8833 | +6.16ポイント |
| F2スコア | 0.8660 | 0.8923 | +2.63ポイント |
| 誤分類数 | 14 |
線形分類器を組み合わせた場合でも、Embed 4 は Embed 3 を全指標で上回っています(再現率は同値)。特筆すべきは適合率が 75.7% → 86.9% と +11.2ポイント改善されている点で、Embed 4 の高品質な埋め込みが線形分類器の学習にも良い影響を与えていることがわかります。
検証データでのモデル評価の比較
| 指標 | Embed 3 | Embed 4 | 差分 |
|---|---|---|---|
| 正解率(Accuracy) | 0.9688 | 0.9732 | +0.44ポイント |
| 適合率(Precision) | 0.8667 | 0.8966 | +2.99ポイント |
| 再現率(Recall) | 0.8966 | 0.8966 | ±0 |
| F1スコア | 0.8814 | 0.8966 | +1.52ポイント |
| F2スコア | 0.8904 | 0.8966 | +0.62ポイント |
まとめ
OCI 生成AIサービスの Cohere Embed 4 を使ったドローン空撮画像の洪水判定について検証しました。
Embed 4 の効果
- ゼロショットの段階で大幅な精度向上: Embed 3 ではゼロショットの適合率が 40.0% と実用に課題がありましたが、Embed 4 では 92.3% と劇的に改善。埋め込みモデルの世代交代の効果が顕著に現れました
- 線形分類器との組み合わせでさらに再現率を改善: Embed 4 のゼロショットでは再現率がやや低め(81.4%)でしたが、線形分類器を導入することで 89.8% に向上。F2スコアも 89.2% を達成しました
- Embed 3 対比で全指標が改善(線形分類器使用時): 特に適合率が +11.2ポイント改善され、誤検知の少ない分類が実現できています
OCI 生成AIサービスで利用可能に
前回の Embed 3 の検証では Cohere 社の API を直接利用していましたが、Embed 4 は OCI 生成AIサービス上で利用可能です。OCI の他のサービス(Oracle Database の AI Vector Search など)と組み合わせて、一貫した ML パイプラインを OCI 上で構築できる点も実用上のメリットです。
今後の展望
洪水判定のような用途に本格的に導入するためには、再現率、適合率ともにさらに改善が必要かと思います。Embed 4 は混在入力(テキストと画像を同一ペイロードで処理)にも対応しているため、画像にメタデータ(撮影場所、日時、天候情報など)をテキストとして付加した埋め込みを生成することで、さらなる精度向上が期待できるかもしれません。
