(57)【要約】【課題】汎化性能を保証しながら、訓練データとして不完全データを利用することによって学習される摂動にロバストな学習器を獲得するための学習スキームを提供することである。【解決手段】本開示の一態様は、プロセッサにより実行されるステップからなる学習方法であって、完全データと不完全データとを含む訓練データ集合によって機械学習モデルを学習するステップを有し、前記学習するステップは、訓練データが完全データである場合、前記完全データの敵対的サンプルを決定し、前記訓練データが不完全データである場合、前記不完全データの欠損値の潜在的な値に対して敵対的サンプルを決定するステップと、前記訓練データ集合の各訓練データに対して決定された前記敵対的サンプルの損失値に基づき前記機械学習モデルのパラメータを更新するステップと、を有する学習方法に関する。【選択図】図４
2020052703.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにより実行されるステップからなる学習方法であって、
完全データと不完全データとを含む訓練データ集合によって機械学習モデルを学習するステップを有し、
前記学習するステップは、
訓練データが完全データである場合、前記完全データの敵対的サンプルを決定し、前記訓練データが不完全データである場合、前記不完全データの欠損値の潜在的な値に対して敵対的サンプルを決定するステップと、
前記訓練データ集合の各訓練データに対して決定された前記敵対的サンプルの損失値に基づき前記機械学習モデルのパラメータを更新するステップと、
を有する学習方法。
【請求項２】
前記敵対的サンプルは、前記敵対的サンプルにおける損失関数の値と、前記敵対的サンプルと前記訓練データとの間の距離との差分の和を最大にする点である、請求項１記載の学習方法。
【請求項３】
前記更新するステップは、前記完全データに対して決定された敵対的サンプルの損失値から導出された値と、前記不完全データに対して決定された敵対的サンプルの損失値から導出された値との和に基づき、勾配法又は劣勾配法によって前記機械学習モデルのパラメータを更新する、請求項１又は２記載の学習方法。
【請求項４】
完全データと不完全データとを含む訓練データ集合によって学習される機械学習モデルを格納したメモリと、
前記メモリに結合されるプロセッサと、
を有し、
前記プロセッサは、
訓練データが完全データである場合、前記完全データの敵対的サンプルを決定し、前記訓練データが不完全データである場合、前記不完全データの欠損値の潜在的な値に対して敵対的サンプルを決定し、
前記訓練データ集合の各訓練データに対して決定された前記敵対的サンプルの損失値に基づき前記機械学習モデルのパラメータを更新する学習装置。
【請求項５】
完全データと不完全データとを含む訓練データ集合によって機械学習モデルを学習する処理をプロセッサに実行させるプログラムであって、
前記学習する処理は、
訓練データが完全データである場合、前記完全データの敵対的サンプルを決定し、前記訓練データが不完全データである場合、前記不完全データの欠損値の潜在的な値に対して敵対的サンプルを決定する処理と、
前記訓練データ集合の各訓練データに対して決定された前記敵対的サンプルの損失値に基づき前記機械学習モデルのパラメータを更新する処理と、
を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、機械学習の技術分野に関する。
【背景技術】
【０００２】
機械学習は、与えられたサンプル（例題とも呼ばれる）からサンプルの要素間に成り立つ統計的な関係性を学習する枠組みと言える。サンプルの要素がどういう意味を有するかは適用事例によって様々に異なるが、しばしば、その要素は入力に対応する要素と出力に対応する要素とに分けられる。例えば、入力となる特徴量から連続的な出力を予測する回帰問題、入力となる特徴量から離散的な値をとる出力を予測する識別問題などがその例である。
【０００３】
この問題設定は、数学的には統計的学習の問題として定式化される。ある真の確率分布p0(z)が存在し、当該確率分布p0(z)からの独立なサンプルz1, ..., zNが訓練データとして与えられる。これらのサンプルに基づきパラメータθで特徴付けられるある損失関数L(z; θ)の期待値Ep0[L(z; θ)]をパラメータθに関して最小化することが学習の目的となる。ここで、Ep[・]は確率分布p(z)による引数の期待値をとることを意味する。例えば、回帰タスクや識別タスクでは、入力xから出力を予測する関数f(x;θ)をパラメータθによって特徴付け、この予測が平均的にどれぐらい正確かであるかを評価する誤差尺度errorの期待値Ep0[error(y, f(x; θ))]（ただし、z=(x, y)）が損失関数Ep0[L(z; θ)]として用いられることになる。
【０００４】
真の確率分布p0(z)は未知であるため、直接、Ep0[L(z; θ)]を最小化することはできない。代わりに、真の確率分布p0(z)からのサンプルが与えられるため、それらを用いた損失関数のサンプル平均
【０００５】
【数１】
2020052703.tif 000003
で損失関数の期待値を近似し、損失関数のサンプル平均を最小化する。
【０００６】
この損失関数のサンプル平均は損失関数の期待値を近似すると期待される一方、異なる損失関数であるため、損失関数の平均値の最小化に過度に特化したパラメータは必ずしも損失関数の期待値(これを狭義の汎化性能と呼ぶ)を最小化するとは限らず、むしろ、悪化させる場合がある。この現象は一般に過学習と呼ばれる。
【０００７】
また、しばしば、訓練データを生成する確率分布p0(z)による損失関数の期待値Ep0[L(z; θ)]の最小化ではなく、確率分布p0(z)に何らかの意味で近い確率分布q(z)による期待値Eq[L(z; θ)]の最小化(広義の汎化誤差)が求められることもある。これは実際には訓練データを生成した確率分布と同一確率分布でのテストが行われるとは限らない事実に起因する。この場合も損失関数のサンプル平均を過度に最小化するものの、目的となる広義の汎化誤差を悪化させる過学習は望ましくない。以下では、広義の汎化性能と狭義の汎化性能をどちらの場合も含む言葉として、汎化性能という言葉を用いる。
【０００８】
このような過学習を軽減するため、訓練データにノイズを含めることによって摂動にロバストな学習器を獲得するというアプローチがある。例えば、図１に示されるように、異なる２つのラベルデータによりラベル付けされた訓練データに対して、線形分離によってラベルを分類する学習器が獲得されたとする。獲得された学習器は、図示されるように、当該訓練データを適切に分離する。しかしながら、例えば、図２に示されるように、ある訓練データにノイズを含めた場合、当該学習器は、ノイズを含む摂動データを適切に分類できず、摂動にロバストでないと言える。他方、破線により図示される学習器は、このような摂動データに対しても適切な分類を実現することができ、より摂動にロバストであると言える。
【０００９】
摂動にロバストになるような学習のアルゴリズムは以前から研究されているが、その中でもいくつかの既存研究ではその手法の統計的な性質も調べられている。例えば、ある条件の下で汎化性能を保証可能な摂動にロバストな学習器を獲得するアルゴリズムが提案されている。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】A. Sinha, H. Namkoong, and J. Duchi, "Certifying some distributional robustness with principled adversarial training," ICLR 2018.
【非特許文献２】Takeru Miyato, Shin-ichi Maeda, Masanori Koyama, and Shin Ishii, "Virtual Adversarial Training: A Regularization Method for Supervised and Semi-Supervised Learning," IEEE TPAMI 2018.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、非特許文献１に開示されるアルゴリズムは、訓練データが入力データ及び出力データ（ラベルデータ）に欠損がない完全データである場合には適用可能であるが、ラベルデータが欠損しているなどのデータの一部が欠損した不完全データに対して適用することはできない。
【００１２】
一方、非特許文献２では、訓練データのラベルデータに欠損がある場合、すなわち、半教師有り学習（semi-supervised learning）において、摂動にロバストな学習器を獲得するアルゴリズムが提案されている。しかしながら、非特許文献２に開示されるアルゴリズムについては、汎化性能の下限を理論的に与えることができない。
【００１３】
上述した問題点を鑑み、本開示の課題は、汎化性能を保証しながら、訓練データとして不完全データを利用することによって学習される摂動にロバストな学習器を獲得するための学習スキームを提供することである。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、本開示の一態様は、プロセッサにより実行されるステップからなる学習方法であって、完全データと不完全データとを含む訓練データ集合によって機械学習モデルを学習するステップを有し、前記学習するステップは、訓練データが完全データである場合、前記完全データの敵対的サンプルを決定し、前記訓練データが不完全データである場合、前記不完全データの欠損値の潜在的な値に対して敵対的サンプルを決定するステップと、前記訓練データ集合の各訓練データに対して決定された前記敵対的サンプルの損失値に基づき前記機械学習モデルのパラメータを更新するステップと、を有する学習方法に関する。
【発明の効果】
【００１５】
本開示によると、汎化性能を保証しながら、訓練データとして不完全データを利用することによって学習される摂動にロバストな学習器を獲得するための学習スキームを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】学習器による訓練データの線形分離を示す概略図である。
【図２】摂動にロバストな学習器による訓練データの線形分離を示す概略図である。
【図３】本開示の一実施例による敵対的サンプルを示す概略図である。
【図４】本開示の一実施例による学習処理を示すフローチャートである。
【図５】本開示の一実施例による学習装置のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下の実施例では、ニューラルネットワーク、強化学習、サポートベクターマシーン、決定木などの任意のタイプの機械学習モデルを学習可能な学習装置が開示される。
【００１８】
本開示を概略すると、学習装置は、訓練データとして機械学習モデルに対する入力データ及び出力データの全ての要素の値が与えられている完全データと、一部の要素の値が欠損している不完全データ（例えば、出力データ（ラベルデータ）が欠損している）とを利用して、摂動にロバストな機械学習モデルを獲得する。
【００１９】
具体的には、訓練データが完全データである場合、学習装置は、完全データの敵対的サンプルを決定し、訓練データが不完全データである場合、不完全データの欠損している要素の潜在的な各値に対して敵対的サンプルを決定する。ここで、敵対的サンプルは、当該敵対的サンプルにおける損失関数の値と、敵対的サンプルと訓練データとの間の距離との差分を最大にする点であり、訓練データの近傍にあって、損失値を最も増加させる点であると言える。例えば、図３に示されるように、訓練データzの周りに損失値Lossの等値線が描かれたとき、訓練データzから等距離にある２点zi及びzjについて、ziはzjより損失値をより増加させるため、ziはzjより訓練データzに関してより敵対的であると言える。学習装置は、このようにして各訓練データに対して決定された敵対的サンプルの損失値（例えば、損失値の加重和）に基づき機械学習モデルのパラメータを更新する。
【００２０】
まず、図４を参照して、本開示の一実施例による摂動にロバストな機械学習モデルのための学習処理を説明する。本実施例では、学習装置１００は、機械学習モデルに対する入力データxと出力データyとのペアからなる完全データ(x, y)と、出力データy（ただし、ラベル値yのとりうる値は有限個である）が欠損している不完全データ(x, )とを含む訓練データ集合によって、任意の機械学習モデルを学習する。当該学習処理は、学習装置１００、より詳細には学習装置１００のプロセッサによって実行される。図４は、本開示の一実施例による学習処理を示すフローチャートである。
【００２１】
図４に示されるように、ステップＳ１０１において、学習装置１００は、機械学習モデルのパラメータθ0を含む各種パラメータを初期化する。
【００２２】
ステップＳ１０２において、訓練データ集合からk個の訓練データを抽出する。ここで、kの値は、後述する経験損失関数（数２２）の評価やその勾配の評価を妥当な計算コストにより実現可能な何れかの値に設定される。経験損失関数（数２２）の評価に全ての訓練データを使うのではなく、その一部であるk個のデータを抽出し、これを利用してパラメータθを逐次更新する（確率勾配法）ことで数２２の経験損失関数を最小化するのが効率的である。以下では、確率勾配法による更新方法を記述するが、最適化にはベイズ最適化などの他の手段をとってもかまわない。
【００２３】
ステップＳ１０３において、学習装置１００は、処理対象のk個の訓練データの各訓練データが完全データ又は不完全データであるか判断する。
【００２４】
訓練データが完全データである場合（Ｓ１０３：ＹＥＳ）、ステップＳ１０４において、学習装置１００は、当該完全データに対して敵対的サンプルを決定する。具体的には、学習装置１００は、図３に示されるように、損失関数の値と当該完全データとの距離との差分を最大にする点を敵対的サンプルとして決定する。例えば、学習装置１００は、当該完全データzi = (xi, yi)について、
【００２５】
【数２】
2020052703.tif 000004
を最大にするzi'を求め、求められたzi'を敵対的サンプルzi*とする。ここで、Lはパラメータθにおけるデータzの損失値を与える損失関数であり、γは非負の定数であり、cは輸送コストと呼ばれる２つのデータの間の距離（例えば、ユークリッド距離）を表す関数である。なお、完全な最大化の計算は困難であるため、実際的には一定の誤差δを許容してもよい。
【００２６】
他方、訓練データが不完全データである場合（Ｓ１０３：ＮＯ）、ステップＳ１０５において、学習装置１００は、当該不完全データの潜在的なラベル値yに対するデータzi = (xi, y)について、
【００２７】
【数３】
2020052703.tif 000005
を最大にするzi'(y)を求め、求められたzi'(y)を敵対的サンプルzi*(y)とする。すなわち、ラベル値y∈Yのとりうる値は|Y|個であるため、学習装置１００は、|Y|個の敵対的サンプルzi*(y)を取得する。なお、完全な最大化の計算は困難であるため、実際的には一定の誤差δを許容してもよい。
【００２８】
潜在的な各値に対して敵対的なサンプルを計算するのは場合によっては計算コストが大きくなりすぎる。このため、全ての潜在的な値を計算せず、近似が利用されてもよい。例えば、後述される経験損失関数の第二項
【００２９】
【数４】
2020052703.tif 000006
はlogのなかにyの取り得る値に関する和がある。この和を近似するという意味では小さい
【００３０】
【数５】
2020052703.tif 000007
は足さずとも大きな影響はでない。そのため、所定の閾値未満の
【００３１】
【数６】
2020052703.tif 000008
に関する和はとらずに経験損失関数を近似して、近似値に基づき算出された経験損失関数の値に基づきパラメータθを更新してもよい。具体的には、
【００３２】
【数７】
2020052703.tif 000009
の計算には敵対的サンプルzを求める最適化が含まれるが、このzを最適化せずに適当な値を選んだ場合、経験損失関数の値はより小さいものとなる。例えば、z=(x,y)とした場合、c((x,y),(x,y))=0であるため、λが負の場合であれば、
【００３３】
【数８】
2020052703.tif 000010
が成り立つ。この大きめに見積もった値が、あるy'での
【００３４】
【数９】
2020052703.tif 000011
に比べて十分小さければ、そのyでの
【００３５】
【数１０】
2020052703.tif 000012
は和に含める必要がなく、敵対的サンプルzを求める手間を省くことができる。
【００３６】
ステップＳ１０６において、学習装置１００は、k個全ての訓練データを処理するまで上述したステップＳ１０３〜Ｓ１０５を繰り返す。
【００３７】
k個全ての訓練データについてステップＳ１０３〜Ｓ１０５を実行すると（Ｓ１０６：ＹＥＳ）、ステップＳ１０７において、学習装置１００は、完全データ及び不完全データを含む各訓練データに対して決定した敵対的サンプルの損失値に基づきパラメータθを更新する。例えば、学習装置１００は、ステップＳ１０４，Ｓ１０５においてそれぞれ決定された敵対的サンプルzi*, zi*(y)に対して、経験損失関数
【００３８】
【数１１】
2020052703.tif 000013
が小さくなるように、すなわち、
【００３９】
【数１２】
2020052703.tif 000014
となるようパラメータθを更新する。ここで、λは非負の定数であり、Ilは完全データに対して決定された敵対的サンプルzi*の個数を表し、Iulは不完全データに対して決定された敵対的サンプルzi*(y)の個数を表す。また、
【００４０】
【数１３】
2020052703.tif 000015
である。
【００４１】
すなわち、学習装置１００は、上述した経験損失関数の右辺第１項に示されるような完全データの敵対的サンプルの損失値から導出される値と、右辺第２項に示されるような不完全データの敵対的サンプルの損失値から導出される値との和に基づき、勾配法又は劣勾配法で機械学習モデルのパラメータθを更新する。パラメータθの更新は、経験損失関数（数２２）の値を減少させる限り、任意の更新方法により行われてもよい。
【００４２】
ステップＳ１０８において、学習装置１００は、所定の終了条件を充足したか判断し、終了条件を充足した場合（Ｓ１０８：ＹＥＳ）、当該処理を終了し、終了条件を充足していない場合（Ｓ１０８：ＮＯ）、ステップＳ１０２に戻り、新たなk個の訓練データに対して上述したステップを繰り返す。例えば、終了条件としては、訓練データ集合の全ての訓練データに対して上述した処理を終了したこと、経験損失関数の値が所定の閾値以下に減少したこと、パラメータθの更新量が所定の閾値以下に減少したこと、などであってもよい。
【００４３】
なお、本開示による学習処理では、最小化したい損失関数の期待値を以下のように上から抑えることによって、汎化性能に関する最悪評価を与えることができる。
【００４４】
【数１４】
2020052703.tif 000016
ここで、Bε(p)はワッサースタインボールと呼ばれる分布p(z)のε近傍の分布の集合を表し、
【００４５】
【数１５】
2020052703.tif 000017
として定義される。分布p(z)のε近傍の分布の集合は、ワッサースタイン距離W(p(z), q(z))がε以下となる分布の集合を表す。なお、ワッサースタイン距離は、
【００４６】
【数１６】
2020052703.tif 000018
として定義される。ここで、c(z, z')は輸送コストと呼ばれるzとz'との間の距離（例えば、ユークリッド距離）を表す関数であり、M(p, q)は、周辺分布が分布p(z)とq(z)と一致するような同時分布の集合を表し、
【００４７】
【数１７】
2020052703.tif 000019
として定義される。
【００４８】
ここで、
【００４９】
【数１８】
2020052703.tif 000020
が広義の汎化性能を表す。
【００５０】
また、式（１）におけるconstは、パラメータθに依存しない定数であり、REAR(θ)は、後述の経験損失関数（数２２）であり、観測したサンプルのみから計算可能である。損失関数L(z; θ)としては、定義域において値が発散しない任意の連続関数が利用可能である。
【００５１】
上記では、確率勾配法による経験損失関数の最小化法を説明したが、いかでは一般的な経験損失関数の最小化アルゴリズムについて説明する。
【００５２】
真の分布p0(z)に従う確率変数z = (x, y)のサンプルのうち、サンプルとして観測されない可能性がある要素をy（上述した例では、ラベルデータ）、必ず観測される要素をx（上述した例では、入力データ）とする。また、yのとりうる潜在的な値は有限個であり、その個数を|Y|とする。x, yの両方が観測されたサンプル（完全データ）の集合を
【００５３】
【数１９】
2020052703.tif 000021
とし、他方、xは観測されたが、yが観測されなかったサンプル（不完全データ）の集合を
【００５４】
【数２０】
2020052703.tif 000022
とする。サンプル集合Dl, Dulを併せたトータルのサンプル数を
【００５５】
【数２１】
2020052703.tif 000023
と表す。
【００５６】
このとき、取得されたサンプルから計算可能な経験損失関数REAR(θ)は、
【００５７】
【数２２】
2020052703.tif 000024
として定義される。ここで、
【００５８】
【数２３】
2020052703.tif 000025
であり、γはワッサースタインボールを規定するεによって決定される非負の定数である。逆にγを定めた場合、暗黙的にワッサースタインボールのεを規定したことになる。実際には、γはユーザなどによって設定される何れか適当な正値である。λは実数をとるスカラー変数であり、ユーザなどによって設定される。
【００５９】
式（１）のように、損失関数の期待値の上限がREAR(θ)及びθに依存しない定数によって抑えられるため、サンプルから計算可能なREAR(θ)をパラメータθに関して最小化することによって、サンプルから直接的には評価できない損失関数の期待値の最悪評価を改善できる。そのため、経験損失関数REAR(θ)を最小化するアルゴリズムが提案される。一般的には、当該アルゴリズムは以下のように記述できる。
１）損失関数L、輸送コストc、非負の定数γ及び実数λを定める。
２）経験損失関数REAR(θ)を最小化するようθを最適化する。
【００６０】
ただし、
【００６１】
【数２４】
2020052703.tif 000026
は、内部にzに関する最適化問題を含む。zに関する最適化が解析的に解けるような損失関数Lと輸送コストcとの組み合わせである場合（例えば、L, cがzに関する二次関数である場合）、
【００６２】
【数２５】
2020052703.tif 000027
をθの関数として評価できる。しかしながら、より一般的な損失関数L及び／又は輸送コストcにおいては、解析的にzを解くことはできず、この場合、特定のθの下でzを勾配法などを利用して数値的に最適化することは容易である。しかしながら、
【００６３】
【数２６】
2020052703.tif 000028
をθの関数として評価することは困難である。
【００６４】
そこで、このような場合にも適用可能なアルゴリズムとして、図４を参照して説明した学習処理が考えられる。より形式的には、当該アルゴリズムは、以下のように記述できる。
１）損失関数L、輸送コストc、非負の定数γ、定数λ及びパラメータの初期値θ0を定める。
２）適当な終了条件が充足されるまで以下を繰り返す。
２−１）全体のサンプル集合Dl∪Dulからk個（0≦k≦n）のサンプル集合を取得する。
２−２）iの各値（i = 1, ..., k）に対して、
・集合Il, Iulを空集合として初期化する。
・データが完全データである場合、すなわち、zi = (xi, yi)∈Dlである場合、
【００６５】
【数２７】
2020052703.tif 000029
が最大となるzi'を求める。ただし、完全な最大化は難しいので実際にはある一定の誤差δを許容する。取得したzi'を敵対的サンプルzi*とし、インデックスiをIlに追加する。
【００６６】
他方、データが不完全データである場合、すなわち、zi = xi∈Dulである場合、とりうるyの値のそれぞれに対して、
【００６７】
【数２８】
2020052703.tif 000030
が最大となるzi'(y)を求める。完全な最大化は難しいので実際にはある一定の誤差δを許容する。取得したzi'(y)をzi*(y)とし、インデックスiをIulに追加する。
２−３）取得したk個のzi*で計算される下記の経験損失関数が小さくなるようパラメータθを更新する。
【００６８】
【数２９】
2020052703.tif 000031
すなわち、
【００６９】
【数３０】
2020052703.tif 000032
となるようにパラメータθt+1に更新し、tをt+1に更新する。
【００７０】
図４を参照して説明した勾配法を利用した学習処理では、所定の条件の下で最適値の近傍への収束が保証される。
【００７１】
ここで、学習装置１００は、例えば、図５に示されるように、CPU (Central Processing unit)、GPU (Graphics Processing Unit)などのプロセッサ１０１、RAM (Random Access Memory)、フラッシュメモリなどのメモリ１０２、ハードディスク１０３及び入出力(I/O)インタフェース１０４によるハードウェア構成を有してもよい。
【００７２】
プロセッサ１０１は、学習装置１００の各種処理を実行し、上述した学習処理の実行、学習装置１００の全体制御などの各種処理を実行する。
【００７３】
メモリ１０２は、学習装置１００における各種データ及びプログラムを格納し、特に作業用データ、実行中のプログラムなどのためのワーキングメモリとして機能する。具体的には、メモリ１０２は、ハードディスク１０３からロードされた機械学習モデルに対する学習処理を実行及び制御するためプログラムを格納し、プロセッサ１０１によるプログラムの実行中にワーキングメモリとして機能する。
【００７４】
ハードディスク１０３は、学習装置１００における各種データ及びプログラムを格納し、学習処理を実行及び制御するための各種データ及び／又はプログラムを格納する。
【００７５】
I/Oインタフェース１０４は、外部装置との間でデータを入出力するためのインタフェースであり、例えば、USB (Universal Serial Bus)、通信回線、キーボード、マウス、ディスプレイなどのデータを入出力するためのデバイスである。
【００７６】
しかしながら、本開示による学習装置１００は、上述したハードウェア構成に限定されず、他の何れか適切なハードウェア構成を有してもよい。例えば、上述した学習装置１００による学習処理は、これを実現するよう配線化された処理回路又は電子回路により実現されてもよい。
【００７７】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７８】
１００  学習装置
１０１  プロセッサ
１０２  メモリ
１０３  ハードディスク
１０４  I/Oインタフェース
【図１】
2020052703.tif 000033
【図２】
2020052703.tif 000034
【図３】
2020052703.tif 000035
【図４】
2020052703.tif 000036
【図５】
2020052703.tif 000037