見出し画像

はじめての機能安全(その5)



5.  IEC 61508の概要

 IEC 61508は、コンピュータ・ソフトウェアを含むE/E/PE(Electrical/Electronic/Programmable Electronic system)システムの安全性を確保するための国際的な基本機能安全規格です。
 IEC 61508は、2000年に初版が発行され、その後、技術的な進歩や経験的な知見などを反映させるために改訂され、2010年に第2版が発行されました 。また、日本工業規格(日本産業規格)としてJIS C 0508にもなっています。IEC 61508は、一般的で水平的な機能安全規格であり、各産業分野で使用されている他の機能安全規格(例えば自動車産業でのISO 26262 )のベースとなっています。
 この機能安全規格は、ソフトウェアとハードウェア、センサー、アクチュエータ、オペレータインタフェースを含むE/E/PEシステムの安全性を担保するために、安全関連系について要件を定めています。安全関連系とは、通常機能を行う部分に故障が発生した場合に危険を回避したり、通常機能を安全状態に移行したりする部分です。安全関連系はIEC 61508では、Safety-related systemと称し、JISで安全関連系と訳しているため、このテキストでも踏襲しています。

 表 5-2にIEC 61508の機能安全の要素となる、安全関連系に係る要件を示します。

                                表 5-2 IEC 61508の機能安全要素

 これら要素の要件に準拠するために、大きく分けて次の5つのフェーズで、規格にある適切な技術や手法を適用し、完全関連系の安全要件と安全インテグリティレベル(SIL) を満たすことで、製品またはシステムの安全性を確保します。

  • 要件定義

  • 設計

  • 開発

  • 試験と検証

  • 運用と保守、廃棄

5.1 安全ライフサイクル

 安全ライフサイクルとは、要件定義から設計、開発、試験と検証、運用と保守、廃棄に至るまでの安全に関わる一連のプロセスを指します。図5-1にIEC61508(JIS C 0508)の安全ライフサイクルを説明する図を示します。

図5-1: JIS C 0508の安全ライフサイクル

 安全ライフサイクルにおける各フェーズのタスクについて説明します。対象は、E/E/PEによる製品またはシステムです。

  • 要件定義フェーズ

製品またはシステムに必要な機能や性能の要件が定義します。また、ハザードを抽出してリスクを解析し、リスクを低減する安全要件を定義します。

  • 設計フェーズ

要件定義フェーズで定義された要件に基づいて製品またはシステムを設計します。
安全要件を安全関連系の構成要素に割り当て機能安全設計を行います。このとき、規格にある、構造化設計、モジュール化、コーディング規約に基づいたり、また故障検出技法を考慮するなどしたりて設計します。また、安全性を確保するための安全性検証や安全性解析を行います。

  • 開発フェーズ

設計フェーズで定義された設計に基づいて、製品やシステムのソフトウェア・ハードウェアを開発します。

  • 試験と検証フェーズ

開発が完了した製品やシステムについて試験と検証を実施します。安全関連系の試験と検証には、リスク解析の再評価、安全性の検証などが含まれます。安全性の検証では、故障挿入試験、故障解析技法が用いられます。

  • 運用と保守、廃棄フェーズ

製品やシステムの運用と保守が行われます。リスクマネジメントを実施し、必要に応じて安全関連系についてもフィールド監視、監視結果に基づく改善案の検討及び改善が行われます。
システムや製品を使用しなくなった場合は廃棄します。廃棄時も廃棄に係る人物や環境への危険性を考慮し適切な方法で処分します。国内または仕向け国の法律を遵守し廃棄を行う必要があります。

このように、IEC 61508に於ける安全ライフサイクルは、要件定義から運用と保守・廃棄までの一連のプロセスを持ち、E/E/PE製品やシステムの安全性開発で使用されます。

コラム:ChatGPTとの対話5

 IEC 61508ではAIの適用が推奨されないため、ChatGPT3.5に次のような質問をしてみました。
 機能安全規格に準拠したAIも開発され、時間を要するかもしれませんが実用化されるのではないかと思います。ChatGPTの回答にあるように、AIの出力をFormal Verificationで検証することができるようになるのでしょうか。興味深いです。

ほぼ同じ質問をChatGPT4.0にしてみました。
Q:IEC 61508ではAIの適用が推奨されません。AIの出力が正しいことが証明できない、検証、評価できないからです。AIの出力が正しいことを証明するにはどのような手段をとればよいでしょうか。AIのソフトウェアがIEC 61508に準拠して開発されていても、学習ピロセス自体がIEC 61508に準拠できていないため、機能安全規格に準拠したAIの開発は難しいと考えます。よい方法がありましたら教えてください。また、どのような研究が行われているかも教えてください。

A:ChatGPT 4.0回答
 IEC 61508などの機能安全規格は、AIのような自己学習型システムの適用には直接的なガイドラインを提供していません。これは、AIシステムの予測不可能性や透明性の欠如が原因です。AIの出力が正しいことを証明するためには、以下のようなアプローチが考えられます。
 
1. データとモデルの厳格な検証と検査
データの検証: 学習に使用するデータセットが正確で、バイアスがないことを確認します。データの品質管理プロセスを設け、データの整合性と代表性を保証します。
モデルの検証: モデルが訓練データに過剰適合していないかを確認し、異なるデータセットでのクロスバリデーションを行います。
2. 形式的手法の適用
形式的検証: モデルの振る舞いを数学的に証明するために、形式的手法を用いた検証を行います。これには、モデルの仕様を形式言語で記述し、証明ツールを使用して正確性を検証する作業が含まれます。
3. シミュレーションとテスト
シミュレーション: 実際の運用環境を模倣したシミュレーションを通じて、AIシステムの振る舞いを評価します。
ロバストネステスト: AIモデルが異常値やノイズデータにどのように反応するかをテストします。
4. 透明性と説明可能性の向上
説明可能なAI (XAI): モデルの決定プロセスを理解しやすくするための技術を開発します。これにより、AIの判断基準が明確になり、信頼性が向上します。
5. 安全監視システムの導入
リアルタイム監視: AIシステムの動作をリアルタイムで監視し、異常が検出された場合には即座に介入できるようにします。

研究動向
AIの安全性に関する研究: AIの安全性を向上させるための新しいアルゴリズムやフレームワークが開発されています。例えば、不確実性を考慮した学習アルゴリズムや、敵対的例に対する耐性を高める研究などがあります。
国際標準の開発: AIの安全性に関する国際標準が開発されています。これにより、AIシステムの設計、実装、運用におけるガイドラインが提供されることが期待されます。
これらのアプローチを組み合わせることで、AIシステムの機能安全性を向上させ、IEC 61508などの標準に準拠することが可能になるかもしれません。ただし、これは非常に複雑で困難なプロセスであり、継続的な研究と開発が必要です。

更新履歴
Rev.1 2023.4.14 初版
Rev.2 2024.4.15 表5-2の誤字を修正、ChatGPT4.0との対話を追記

いいなと思ったら応援しよう!