Posts Issued in November, 2024

Pongと強化学習 (69)

posted by sakurai on November 8, 2024 #890

DQN損失関数を深掘りしてみます。


DQN損失関数において2乗を取る理由は、確かに予測誤差の正負を問わず、その大きさ(絶対値)を考慮するためです。この損失関数は、TD誤差(Temporal Difference error)の二乗として定義され、エージェントの行動価値関数の予測が実際の報酬からどれだけ離れているかを量る指標となります。具体的には、以下の形で表されます:

$$L(\theta) = \mathbb{E}\left[\left(r + \gamma \max_{a'} Q(s', a'; \theta^-) - Q(s, a; \theta)\right)^2\right]$$

2乗した数値の扱い方

  • 損失の平均化:一般的に、学習データセット全体またはバッチ内のサンプルに対する損失の平均(または総和)を取ることで、モデルのパラメータを更新する際の目的関数とします。期待値$\mathbb{E}[\cdot]$は、この平均化された損失を表しています。

  • 勾配降下法:損失関数の平均化された値に基づいて、勾配降下法(またはそのバリエーション)を用いてネットワークのパラメータ$\theta$を更新します。具体的には、損失関数のパラメータに対する勾配(偏微分)を計算し、その勾配の方向にパラメータを少しずつ動かすことで、損失を最小化するパラメータの値を探します。

  • 安定性と収束の向上:2乗損失は、特に大きな誤差に対してペナルティを大きくするため、予測を正確に行うようにモデルを強く促します。また、二乗損失関数は微分可能であり、勾配降下法による最適化が比較的容易であるため、学習プロセスの安定性と収束の向上に寄与します。

注意点

ただし、二乗損失関数は外れ値に対して敏感であるため、非常に大きな誤差を持つサンプルが存在する場合には、モデルの学習がそのようなサンプルに過剰に影響を受ける可能性があります。この点を考慮し、場合によっては損失関数として絶対値損失(L1損失)を使用することもありますが、DQNの文脈では二乗損失が一般的に使用されています。


左矢前のブログ 次のブログ右矢

Pongと強化学習 (68)

posted by sakurai on November 7, 2024 #889

前記事において、ChatGPTは

  • Q-networkの出力:

    • Q-networkは、ある状態$s$と行動$a$に対するQ値、$Q(s, a; \theta)$を出力します。これは、現在のパラメータ$\theta$を用いたQ-networkの予測値です。
  • Target Q-networkの出力:

    • Target Q-networkは、次の状態$s'$におけるすべての可能な行動$a'$に対するQ値の最大値、$\max_{a'} Q(s', a'; \theta^-)$を出力します。ここで、$\theta^-$はTarget Q-networkのパラメータです。

と回答しました。Q-networkとTarget Q-networkは同じ構造であるという理解なのにTarget Q-networkのみが最大値を出力できるのは不合理なので、そこを追求しました。


確かに、そのような表記は誤解を招く可能性がありますね。実際には、Q-networkとTarget Q-networkは構造的に同一であり、どちらも任意の状態における全ての行動に対するQ値を計算する能力を持っています。彼らの主な違いは使用目的とパラメータの更新頻度にありますが、それぞれが「最大値を計算する」という能力に差はありません。

明確化

  • Q-networkTarget Q-networkはどちらも、入力された状態に対して全ての可能な行動のQ値を計算する能力があります。これらのQ値から最大値を選択するプロセスは、これらのネットワーク自体の内部機構ではなく、アルゴリズムの外部で行われる処理の一部です。

  • 最大値の計算は、DQNアルゴリズムの一部として、特にTarget Q-networkの出力を利用して行われます。これは、未来の報酬の最大化を目指して最適な行動を推定するための手段ですが、この計算自体はアルゴリズムの制御の下で行われるものであり、Target Q-networkが独自に「最大値を計算する能力」を持っているわけではありません。

より正確な表現

したがって、より正確には、「Target Q-networkが次の状態における全ての可能な行動のQ値の最大値を出力する」というよりも、「Target Q-networkは次の状態における全ての可能な行動のQ値を計算し、その中から最大のQ値が選択される」と表現する方が適切です。この最大値の選択は、Target Q-networkの計算結果をもとにしてDQNアルゴリズムが行うプロセスの一部です。

このように表現することで、Q-networkとTarget Q-networkが基本的には同じ機能を持ち、アルゴリズムによってどのように利用されるかが異なるだけであることを、より明確に伝えることができます。


左矢前のブログ 次のブログ右矢

10月の検索結果

posted by sakurai on November 6, 2024 #888

弊社コンテンツの8月の検索結果です。

表888.1 上昇率上位のページ(前月との比較)
タイトル クリック数
故障分類 +74
SPFM, LFM, PMHFの計算法の例 +72
レイテントフォールトの奥深さ +39

表888.2 パフォーマンス上位のページ
タイトル クリック数
1st Editionと2nd Editionとの相違点 (Part 10) 226
機能安全用語集 199
ASILデコンポジション 115

表888.3 上昇率上位のクエリ
クエリ クリック数
FTTI +27
レイテント +11
FTTI FHTI +9

表888.4 パフォーマンス上位のクエリ
クエリ クリック数
FTTI 107
PMHF 31
SPFM 23


左矢前のブログ 次のブログ右矢

PMHFの導出の動画

posted by sakurai on November 5, 2024 #887

PMHFの算出法について以下の動画を見つけました。どうやらコンサル会社のビデオのようです。https://youtu.be/ndG1Kcc89hs

メディニアナライザを使用したようですが、PMHFの値は一見して誤っています。

図%%.1
図887.1 結果レポート

表の数値を見る限り、計算方法はSPFとDPFを加えて $$ PMHF=\lambda_\text{SPF}+\lambda_\text{MPF, latent} $$ となっているようです。

この誤りは大変多く、過去にも

と複数あり、それらの誤りは以下の論文$\dagger$が元凶のようです。

$\dagger$Y. Chang, L. Huang, H. Liu, C. Yang and C. Chiu, "Assessing automotive functional safety microprocessor with ISO 26262 hardware requirements," Technical Papers of 2014 International Symposium on VLSI Design, Automation and Test, Hsinchu, 2014, pp. 1-4, doi: 10.1109/VLSI-DAT.2014.6834876.

一方、以下に前記事にもあるようにPart 5のAnnex Fに掲載されている近似式を示します。 $$ PMHF=\lambda_\text{SPF}+\lambda_\text{MPF, latent}\cdot\lambda_\text{MPF, detected}\cdot T_\text{lifetime} $$ この式はSPFとDPFを正しく意識し、それぞれを確率に直してから加え、最後に車両寿命で割っています

それにしてもPMHFを算出する人たちはなぜ規格Part 10の、もしくはPart 5(上記)の式を用いずに、誤りの論文$\dagger$の式を参照するのでしょうか?参考にするならせめて規格式を参考にすれば良いと思うのですが。


左矢前のブログ 次のブログ右矢

posted by sakurai on November 4, 2024 #886

備忘のために表題の「2nd SMのASILの引き下げ」について記します。ISO 26262ではセレクトハイ原則やFFI等の原則で、低ASILエレメントが高ASILエレメントに影響を及ぼすことが禁止されています。そのような場合は低ASILエレメントはASILを引き上げるべきです。

一方その原則の例外があり、有名なものは「ASILデコンポジション」です。ところでこの用語は厳密には正しくなく、本来は「要求分割(デコンポジション)により結果的にASILが分割される」ものであり、ASILを任意に分割するものではありません。

この他に表記の場合の例外があります。Part 4 6.4.2はシステム設計における安全機構の要件を示したもので、6.4.2.1及び6.4.2.2が「フォールトを検出及び機能安全要求を侵害するシステムの出力に存在する故障を防止又は緩和する安全機構」、つまり1st SMについての要件です。さらに6.4.2.3~6.4.2.5が「フォールトがレイテント状態になるのを防止する安全機構」、つまり2nd SMについての要件です。

ここで6.4.2.5において、2nd SMとしてのみ働くエレメントのASILは以下のように引き下げることが可能と書かれています。以下は規格に書かれていない文言をカッコ内に補って記述しています。

Part 4 - 6.4.2.5

  • (IFまたは1st SMに)割りつけられた安全要求のASILがASIL-Dのとき、その2nd SMはASIL-B
  • (IFまたは1st SMに)割りつけられた安全要求のASILがASIL-BまたはASIL-Cのとき、その2nd SMはASIL-A
  • (IFまたは1st SMに)割りつけられた安全要求のASILがASIL-Aのとき、その2nd SMはQM

すなわち、ASIL-Bを除きASILを2段階引き下げることが可能です。ASIL-Bの時は1段階となります。


左矢前のブログ 次のブログ右矢

Pongと強化学習 (67)

posted by sakurai on November 1, 2024 #885

$\theta$を深掘りしてみます。


ニューラルネットワークの各層には多数のニューロンが存在し、各ニューロン間の接続には重みが割り当てられています。パラメータ$\theta$は、これらの重み(および場合によってはバイアス項も含む)の総体として考えることができます。つまり、$\theta$はネットワークの全ての学習可能なパラメータを表し、これらのパラメータを通じてネットワークの出力が決定されます。

ニューラルネットワークの重み

  • 重み:ニューロン間の接続の強さを表し、入力データが次の層へ伝播する際の重要度を決定します。これらの重みは学習プロセスを通じて更新され、データからパターンを学習するためのキーとなります。
  • バイアス:各ニューロンに加えられる追加のパラメータで、ニューロンの出力がアクティベートされる(活性化関数を通過する)しきい値を調整します。

パラメータ$\theta$の役割

  • 関数の近似:ニューラルネットワークは、基本的には入力から出力への複雑な関数を近似しています。パラメータ$\theta$(重みとバイアス)は、この関数の形状を決定します。
  • 学習プロセス:学習データを使用して損失関数を最小化することにより、パラメータ$\theta$は適切な値に更新されます。このプロセスにより、ネットワークはタスク(例えば、画像の分類、行動価値の推定など)に最適なパラメータを見つけ出します。

ニューラルネットワークの学習可能なパラメータの総体としての$\theta$には、ネットワークが複雑な関数を近似するために必要な全ての情報が含まれています。したがって、$\theta$はネットワークの学習と予測能力の根幹をなすものと言えます。


左矢前のブログ 次のブログ右矢


ページ: