[AI数理]徹底的に交差エントロピー(7)

[AI数理]徹底的に交差エントロピー(7)

おはようございます!(株) Qualiteg 研究部です。

今回は、交差エントロピーの計算をベクトルや行列で表現する方法について説明します!

8章 交差エントロピーとベクトル演算

そもそも、なぜ、交差エントロピーをベクトルや行列で表現したいのでしょうか?

それは、実際にニューラルネットワークをコンピュータープログラムとして実装するときに、訓練データや予測値はベクトル(1次元配列)や行列(2次元配列)といったN階テンソル(N次元配列)の形式で取り扱われるからです。

なぜベクトルや行列かといえば、ニューラルネットワークの実用的な計算をするときにはデータを1件とりだしては、1件計算する のではなく、多くのデータをベクトル(1次元配列)や行列(2次元配列)やそれ以上の多次元配列に詰めたのちに、まとめてドカっと計算するからです。

(まとめてドカっと計算するのが得意な GPU があるからこそ、これだけ Deep Learning が進展した、ともいえます)

そこで、今までで導出してきた交差エントロピーの計算をコンピュータで実装するときに備えて、 1次元配列 にしてみます。

プログラムコード上は単なる1次元配列ですが、これを配列の各値を成分にもつ ベクトル と見立てることにします。

正解ラベル tk を要素に含む ベクトルを t とすると、以下のような成分を含むベクトルになります。

t=(t1t2t3)

この場合、横に成分(=数字)をならべているので、 行ベクトル(または 横ベクトル) と呼びます。

予測値 yk も同様に y として 行ベクトル にあらわすと

y=(y1y2y3)

となります。

さらに、交差エントロピーの計算の際、 y の成分は 対数 log をとることになるので、 y の成分に log をとったものを yl と定義すると、以下のようになります。

yl=(logy1logy2logy3)

ここで 交差エントロピー E を思い出してみます。

 E=k=1Ktklogyk =(t1logy1+t2logy2+t3logy3) 

この式にあらわれる (t1logy1+t2logy2+t3logy3) をよく見てみましょう。これは、ベクトル t と ベクトル yl のドット積(内積)となっているのがわかります。

ドット積(内積)は同じ添え字の成分どうしの積の足し算です。

 E= tyl =(t1logy1+t2logy2+t3logy3) 

1つ注意したい点は、ベクトルの場合は 成分どうしの積の足し算と定義すればよいですが、ベクトルではなく、行列(2次元配列)どうしのドット積を計算するときには、行列の形状を意識しなければいけません。

たとえば、縦横 2×3 の形状をもつ行列 $(123 456 )3 \times 2(78 910 1112 )$ のドット積

(123 456 )(78 910 1112 )

は、以下のように計算します。

左側の行列の1行目の横一列と、右側の行列の1列目の縦一列の成分どうしの積を足していきます。

次は左側の行列の2行目と、右側の行列の1列目の成分どうしの積を足す、、、以降同様に計算していきます。

このように順に計算していくと結果は以下のようになります。

(123 456 )(78 910 1112 )=(1×7+2×9+3×111×8+2×10+3×12 4×7+5×9+6×114×8+5×10+6×12) =(5864 139154 )

この例からわかる通り縦横 2×3 の形状をもつ行列と 縦横 3×2 の形状をもつ の行列のドット積の結果は 2×2 の行列となります。

つまり m×nn×l のドット積の形状は m×l となります。
またドット積を計算するには、左側の行列の行数と、右側の行列の列数が一致している必要があります。

さて、行列のドット積の計算の仕方を見たところで、さきほどのベクトル同士のドット積を再確認しましょう。

正解ラベルを示す行ベクトルを t と、予測値に log をとった行ベクトル yl はそれぞれ以下のとおりでしたが、

t=(t1t2t3)

yl=(logy1logy2logy3)

さきほどの行列のドット積ルールにしたがって計算しようとすると、横一列並んでいる形状をしている行ベクトル同士の計算はできないことがわかります。

つまり、

(t1t2t3)(logy1logy2logy3)

はこのままでは計算できないということになります。
つまり、この2つの行ベクトルを行列とみなすと、どちらも形状が 1×3 となっています。

ですので、ドット積ができる行列形状である m×nn×l のカタチにするには、ベクトル yl を行ベクトル(横ベクトル)から列ベクトル(縦ベクトル)にすればよさそうです。

yl の成分の行と列を入れ替えた列ベクトル ylT は以下のようになります。

(T は転置を意味します。転置とはある行列の成分の列と縦を入れ)替えた行列です。

ylT=(logy1 logy2 logy3)

これで、ドット積の作法で計算することができるようになりました。

さきほどの、ドット積を使った交差エントロピーの計算式でみてみると、

 E= tylT =(t1t2t3)(logy1 logy2 logy3) =(t1logy1+t2logy2+t3logy3) 

これで、交差エントロピーを行列の計算として求めることができました。

(ちなみに、ベクトル同士のドット積は内積と同じなので計算結果はスカラー(数値)になります。)

今回はいかがでしたでしょうか

冒頭でもふれたとおり、データをベクトルや行列に見立ててドット積を計算したのは、1件ずつ計算をしてループさせるような方式よりも、ベクトルや行列にデータをまとめてイッキに計算したほうが GPU など並列計算が得意な環境では圧倒的に効率が良いためです。

ベクトルや行列にするとコンピューター(とりわけ GPU)との相性がよく計算効率・スピードを高める効果が期待できるからこそこのようなテクニックを用いていますますので、それこそが重要であり、それ以上の数学的な意味・意義はそんなに考えなくてよいのかなというところでしょうか。

それでは、また次回お会いしましょう!


参考文献
https://blog.qualiteg.com/books/

Read more

AIエージェント時代の新たな番人「ガーディアンエージェント」とは?

AIエージェント時代の新たな番人「ガーディアンエージェント」とは?

こんにちは!今日は先日ガートナーが発表したガーディアンエージェントについて解説します ガートナーの公式定義 ハイプカーブで有名なガートナーは2025年6月に、ガーディアンエージェントに関する見解を発表しました。ガーディアン・エージェントとは、AIとの安全で信頼できるやりとりを支援するために設計されたAIベースのテクノロジです。 ざっくりいうと、 「AIエージェントが来るよ」と予言したガートナー社は、次は、「ガーディアンエージェントが来るよ」と予言しました。なぜガーディアンエージェントが来るのでしょうか?本稿では、そのあたりを考察していきたいと思います。 なぜ今、AIの「監視役」が必要なのか 2025年、私たちは本格的なAIエージェント時代の入り口に立っています。AIが単なるツールから、自律的に判断し行動する「エージェント」へと進化する中で、新たな課題が浮上しています。 従来のAIとエージェント型AIの違い さて、ガーディアンエージェントが必要になる理由として、生成AI(以後AIと呼びます)の急速な進化があげられます。従来のAIとエージェント型AIの違いを思い出

By Qualiteg コンサルティング
LLM推論基盤プロビジョニング講座 第4回 推論エンジンの選定

LLM推論基盤プロビジョニング講座 第4回 推論エンジンの選定

こんにちは!前回までの講座では、LLMサービス構築に必要なリクエスト数の見積もりや、使用モデルの推論時消費メモリ計算について詳しく解説してきました。今回は7ステッププロセスの4番目、「推論エンジンの選定」について詳しく掘り下げていきます。 推論エンジンとは何か 推論エンジンとは、GPU上でLLMモデルの推論計算(テキスト生成)を効率的に行うために設計された専用のソフトウェアプログラムです。一般的なディープラーニングフレームワーク(PyTorch、TensorFlowなど)でも推論は可能ですが、実運用環境では専用の推論エンジンを使用することで、大幅なパフォーマンス向上とリソース効率化が期待できます。 推論エンジンは単なる実行環境ではなく、様々な最適化技術を実装しています。特定のモデルアーキテクチャに特化した最適化機能を実装したものや、推論速度の高速化に特化したもの、前回解説したKVキャッシュのメモリ効率化機能を備えたものなど、それぞれ特徴が異なります。そのため、自社で採用したLLMモデルや運用環境、要件に合致した推論エンジンを選定することが重要です。 推論エンジン選定のアプロ

By Qualiteg コンサルティング
発話音声からリアルなリップシンクを生成する技術 第1回:音素とwav2vec

発話音声からリアルなリップシンクを生成する技術 第1回:音素とwav2vec

こんにちは! 今日は当社のMotionVox でも実際に使っている「リップシンク」技術について総合的に解説してみたいとおもいます。 音声に合わせて自然な口の動きを生成するリップシンク技術は、AIアバターや3Dアニメーション制作においても重要な技術です。 本記事では、最新のディープラーニング技術を活用したリップシンク学習の基礎から実装まで、技術的な観点から詳しく解説します。 1. リップシンク学習の基礎概念 1.1 問題設定 リップシンク学習とは、音声データから対応する口の動きを予測する回帰問題ととらえることができます f: 音声特徴量(t) → 口の動きパラメータ(t) この問題のコアは 音韻(音の特徴)と視素(視覚的な口の形)の対応関係を学習する ことにあります。 1.2 音韻-視素マッピングの複雑性 ただし! 人間の発話における音と口の形の関係は、単純な1対1マッピングではないんです。 同じ音でも文脈で変化 「あ」の発音でも: - 「か」の後の「あ」→ 口がやや狭めから開く - 「ん」の後の「あ」→ 口が閉じた状態から大きく開く 調音結合

By Qualiteg 研究部, Qualiteg コンサルティング
LLM推論基盤プロビジョニング講座 第3回 使用モデルの推論時消費メモリ見積もり

LLM推論基盤プロビジョニング講座 第3回 使用モデルの推論時消費メモリ見積もり

こんにちは!前回はLLMサービスへのリクエスト数見積もりについて解説しました。今回は7ステッププロセスの3番目、「使用モデルの推論時消費メモリ見積もり」について詳しく掘り下げていきます。 GPUメモリがリクエスト処理能力を決定する LLMサービス構築において、GPUが同時に処理できるリクエスト数はGPUメモリの消費量によって制約されます。 つまり、利用可能なGPUメモリがどれだけあるかによって、同時に何件のリクエストを処理できるかがほぼ決まります。 では、その具体例として、Llama3 8B(80億パラメータ)モデルをNVIDIA RTX A5000(24GB)にロードするケースを考えてみましょう。 このGPUには24GBのGPUメモリがありますが、すべてをリクエスト処理に使えるわけではありません。最初にモデル自体が一定量のメモリを消費し、残りの領域で実際のリクエスト処理を行います。 GPUメモリ消費の二大要素 GPUの消費メモリ量は主に以下の2つの要素によって決まります 1. モデルのフットプリント LLMをGPUに読み込んだときに最初に消費されるメモリ

By Qualiteg コンサルティング