IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7342242学習を転移させるための学習のためのフレームワーク
<>
  • 特許-学習を転移させるための学習のためのフレームワーク 図1
  • 特許-学習を転移させるための学習のためのフレームワーク 図2
  • 特許-学習を転移させるための学習のためのフレームワーク 図3
  • 特許-学習を転移させるための学習のためのフレームワーク 図4
  • 特許-学習を転移させるための学習のためのフレームワーク 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-01
(45)【発行日】2023-09-11
(54)【発明の名称】学習を転移させるための学習のためのフレームワーク
(51)【国際特許分類】
   G06N 3/08 20230101AFI20230904BHJP
   G06N 3/092 20230101ALI20230904BHJP
【FI】
G06N3/08
G06N3/092
【請求項の数】 18
(21)【出願番号】P 2022506660
(86)(22)【出願日】2020-08-02
(65)【公表番号】
(43)【公表日】2022-10-11
(86)【国際出願番号】 US2020044687
(87)【国際公開番号】W WO2021026044
(87)【国際公開日】2021-02-11
【審査請求日】2022-03-31
(31)【優先権主張番号】62/881,989
(32)【優先日】2019-08-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ジュー,リンチャオ
(72)【発明者】
【氏名】フィスター,トーマス・ジョン
(72)【発明者】
【氏名】アリク,セルジャン・オメール
【審査官】北川 純次
(56)【参考文献】
【文献】国際公開第2016/158768(WO,A1)
【文献】GE, Weifeng, et al.,Borrowing Treasures from the Wealthy: Deep Transfer Learning through Selective Joint Fine-tuning ,arXiv.org [online],2017年02月28日, [検索日 2023.03.20], インターネット:<URL:https://arxiv.org/pdf/1702.08690v1.pdf>,<DOI: 10.48550/arXiv.1702.08690>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
(57)【特許請求の範囲】
【請求項1】
方法(400)であって、
データ処理ハードウェア(134)において、ソースデータセット(104)およびターゲットデータセット(106)を受信するステップと、
前記データ処理ハードウェア(134)によって、前記ソースデータセット(104)および前記ターゲットデータセット(106)に基づいて深層学習モデル(150)についての損失関数(201)を識別するステップとを含み、前記損失関数(201)は、
エンコーダ重み(210)と、
ソース分類器層重み(202)と、
ターゲット分類器層重み(204)と、
係数(206)と、
ポリシー重み(208)とを含み、前記方法(400)はさらに、
前記深層学習モデル(150)のための重み割当てを学習するように構成された学習を転移させるための学習(learning to transfer learn:L2TL)アーキテクチャ(200)に関する複数の学習反復の各々の第1段階中に、
前記データ処理ハードウェア(134)によって、勾配降下ベースの最適化を適用して、前記損失関数(201)を最小化する前記エンコーダ重み(210)、前記ソース分類器層重み(202)、および前記ターゲット分類器層重み(204)を学習するステップと、
前記データ処理ハードウェア(134)によって、ポリシーモデル(209)のアクションをサンプリングすることによって前記係数(206)を決定するステップと、
前記L2TLアーキテクチャ(200)に関する前記複数の学習反復の各々の第2段階中に、
前記データ処理ハードウェア(134)によって、前記損失関数(201)についての評価メトリック(220)を最大化する前記ポリシー重み(208)を決定するステップとを含
前記L2TLアーキテクチャ(200)は、エンコーダネットワーク層(152)、ソース分類器層(154)、およびターゲット分類器層(156)を備え、前記エンコーダ重み(210)は、前記エンコーダネットワーク層(152)に関連付けられた重みであり、前記ソース分類器層重み(202)は、前記ソース分類器層(154)に関連付けられた重みであり、前記ターゲット分類器層重み(204)は、前記ターゲット分類器層(156)に関連付けられた重みである、方法(400)。
【請求項2】
前記学習反復の前記第1段階の実行中、前記ポリシーモデル(209)は固定されている、請求項1に記載の方法(400)。
【請求項3】
前記ポリシーモデル(209)は強化学習ベースのポリシーモデルを含む、請求項1または2に記載の方法(400)。
【請求項4】
前記損失関数(201)についての前記評価メトリック(220)を最大化する前記ポリシー重み(208)を決定するステップは、前記第1段階中に学習された前記エンコーダ重み(210)および前記ターゲット分類層重み154を用いるステップを含む、請求項1から3のいずれか1項に記載の方法(400)。
【請求項5】
前記損失関数(201)についての前記評価メトリック(220)は、ターゲット評価データセット(106′)上の前記深層学習モデル(150)の性能を定量化し、前記ターゲット評価データセット(106′)は、それまで前記深層学習モデル(150)によって認識されていなかったデータサンプルのサブセットを前記ターゲットデータセット(106)内に含む、請求項1から4のいずれか1項に記載の方法(400)。
【請求項6】
前記複数の学習反復の各々の前記第1段階中に、
前記データ処理ハードウェア(134)によって、特定のサイズを有する前記ソースデータセット(104)からソースデータサンプルのトレーニングバッチをサンプリングするステップと、
前記データ処理ハードウェア(134)によって、前記深層学習モデル(150)をトレーニングする際に用いるためのN個の最適な信頼スコアを有する前記ソースデータサンプルを前記ソースデータサンプルのトレーニングバッチから選択して、前記損失関数(201)を最小化する前記エンコーダ重み(210)、前記ソース分類器層重み(202)、および前記ターゲット分類器層重み(204)を学習するステップとをさらに含む、請求項1から5のいずれか1項に記載の方法(400)。
【請求項7】
前記複数の学習反復の各々の前記第2段階中、
前記データ処理ハードウェアによって、ターゲット評価データセット(106′)上のポリシー勾配を用いて前記ポリシーモデル(209)をトレーニングして、前記評価メトリック(220)を最大化する報酬を計算するステップをさらに含み、
前記損失関数(201)についての前記評価メトリック(220)を最大化する前記ポリシー重み(208)を決定するステップは、前記計算された報酬に基づいている、請求項1から6のいずれか1項に記載の方法(400)。
【請求項8】
前記ソースデータセット(104)は第1の複数の画像を含み、
前記ターゲットデータセット(106)は第2の複数の画像を含む、請求項1から7のいずれか1項に記載の方法(400)。
【請求項9】
前記ソースデータセット(104)の前記第1の複数の画像内の画像の数は、前記ターゲットデータセット(106)の前記第2の複数の画像内の画像の数よりも多い、請求項8に記載の方法(400)。
【請求項10】
システム(100)であって、
データ処理ハードウェア(134)と、
前記データ処理ハードウェア(134)と通信するとともに命令を格納するメモリハードウェア(136)とを備え、前記命令は、前記データ処理ハードウェア(134)上で実行されると、前記データ処理ハードウェアに以下の動作を実行させ、前記以下の動作は、
ソースデータセット(104)およびターゲットデータセット(106)を受信する動作と、
前記ソースデータセット(104)および前記ターゲットデータセット(106)に基づいて深層学習モデル(150)についての損失関数(201)を識別する動作とを含み、前記損失関数(201)は、
エンコーダ重み(210)と、
ソース分類器層重み(202)と、
ターゲット分類器層重み(204)と、
係数(206)と、
ポリシー重み(208)とを含み、前記以下の動作はさらに、
前記深層学習モデル(150)のための重み割当てを学習するように構成された学習を転移させるための学習(L2TL)アーキテクチャ(200)に関する複数の学習反復の各々の第1段階中に、
勾配降下ベースの最適化を適用して、前記損失関数(201)を最小化する前記エンコーダ重み(210)、前記ソース分類器層重み(202)、および前記ターゲット分類器層重み(204)を学習する動作と、
ポリシーモデル(209)のアクションをサンプリングすることによって前記係数(206)を決定する動作と、
前記L2TLアーキテクチャ(200)に関する前記複数の学習反復の各々の第2段階中に、
前記損失関数(201)についての評価メトリック(220)を最大化する前記ポリシー重み(208)を決定する動作とを含
前記L2TLアーキテクチャ(200)は、エンコーダネットワーク層(152)、ソース分類器層(154)、およびターゲット分類器層(156)を備え、前記エンコーダ重み(210)は、前記エンコーダネットワーク層(152)に関連付けられた重みであり、前記ソース分類器層重み(202)は、前記ソース分類器層(154)に関連付けられた重みであり、前記ターゲット分類器層重み(204)は、前記ターゲット分類器層(156)に関連付けられた重みである、システム(100)。
【請求項11】
前記学習反復の前記第1段階の実行中、前記ポリシーモデル(209)は固定されている、請求項10に記載のシステム(100)。
【請求項12】
前記ポリシーモデル(209)は強化学習ベースのポリシーモデルを含む、請求項10または11に記載のシステム(100)。
【請求項13】
前記損失関数(201)についての前記評価メトリックを最大化する前記ポリシー重み(208)を決定する動作は、前記第1段階中に学習された前記エンコーダ重み(210)を用いる動作を含む、請求項10から12のいずれか1項に記載のシステム(100)。
【請求項14】
前記損失関数(201)についての前記評価メトリック(220)は、ターゲット評価データセット(106′)上の前記深層学習モデル(150)の性能を定量化し、前記ターゲット評価データセット(106′)は、それまで前記深層学習モデル(150)によって認識されていなかったデータサンプルのサブセットを前記ターゲットデータセット(106)内に含む、請求項10から13のいずれか1項に記載のシステム(100)。
【請求項15】
前記以下の動作はさらに、前記複数の学習反復の各々の前記第1段階中に、
特定のサイズを有する前記ソースデータセット(104)からソースデータサンプルのトレーニングバッチをサンプリングする動作と、
前記深層学習モデル(150)をトレーニングする際に用いるためのN個の最適な信頼スコアを有する前記ソースデータサンプルを前記ソースデータサンプルのトレーニングバッチから選択して、前記損失関数(201)を最小化する前記エンコーダ重み(210)、前記ソース分類器層重み(202)、および前記ターゲット分類器層重み(204)を学習する動作とをさらに含む、請求項10から14のいずれか1項に記載のシステム(100)。
【請求項16】
前記以下の動作はさらに、前記複数の学習反復の各々の前記第2段階中に、
ターゲット評価データセット(106′)上のポリシー勾配を用いて前記ポリシーモデル(209)をトレーニングして、前記評価メトリック(220)を最大化する報酬を計算する動作を含み、
前記損失関数(201)についての前記評価メトリック(220)を最大化する前記ポリシー重み(208)を決定する動作は、前記計算された報酬に基づいている、請求項10から15のいずれか1項に記載のシステム(100)。
【請求項17】
前記ソースデータセット(104)は第1の複数の画像を含み、
前記ターゲットデータセット(106)は第2の複数の画像を含む、請求項10から16のいずれか1項に記載のシステム(100)。
【請求項18】
前記ソースデータセット(104)の前記第1の複数の画像内の画像の数は、前記ターゲットデータセット(106)の前記第2の複数の画像内の画像の数よりも多い、請求項17に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本開示は、学習を転移させるための学習のためのフレームワークに関する。
【背景技術】
【0002】
背景
機械学習モデルは、入力を受信するとともに、受信した入力に基づいて出力、たとえば、予測された出力、を生成する。いくつかの機械学習モデルは、パラメトリックモデルであり、受信した入力とモデルのパラメータの値とに基づいて出力を生成する。
【0003】
いくつかの機械学習モデルは、受信した入力のための出力を生成するために複数層のモデルを採用する深層モデルである。たとえば、深層ニューラルネットワークは、出力層と1つ以上の隠れ層とを含む深層機械学習モデルである。当該1つ以上の隠れ層は各々、受信した入力に非線形変換を適用して出力を生成するものである。
【発明の概要】
【0004】
概要
本開示の一局面は、ソースデータセットおよびターゲットデータセットのために共同で最適化される深層学習モデルについての重み割当てを適応的に学習する方法を提供する。当該方法は、データ処理ハードウェアにおいて、ソースデータセットおよびターゲットデータセットを受信するステップと、当該データ処理ハードウェアによって、当該ソースデータセットおよび当該ターゲットデータセットに基づいて深層学習モデルについての損失関数を識別するステップとを含む。損失関数は、エンコーダ重み、ソース分類器層重み、ターゲット分類器層重み、係数、およびポリシー重みを含む。深層学習モデルのための重み割当てを学習するように構成された学習を転移させるための学習(learning to transfer learn:L2TL)アーキテクチャに関する複数の学習反復の各々の第1段階中に、当該方法はまた、当該データ処理ハードウェアによって、勾配降下ベースの最適化を適用して、損失関数を最小化するエンコーダ重み、ソース分類器層重み、およびターゲット分類器層重みを学習するステップと、当該データ処理ハードウェアによって、ポリシーモデルのアクションをサンプリングすることによって係数を決定するステップと含む。L2TLアーキテクチャに関する複数の学習反復の各々の第2段階中に、当該方法はまた、データ処理ハードウェアによって、損失関数についての評価メトリックを最大化するポリシー重みを決定するステップを含む。
【0005】
本開示の実現例は、以下の任意の特徴のうちの1つ以上を含み得る。いくつかの実現例では、損失関数についての評価メトリックを最大化するポリシー重みを決定するステップは、第1段階中に学習されたエンコーダ重みおよびターゲット分類層重みを用いるステップを含む。ポリシーモデルは、学習反復の第1段階の実行中、固定され得る。ポリシーモデルは、強化学習ベースのポリシーモデルを含み得る。損失関数についての評価メトリックは、ターゲット評価データセット上の深層学習モデルの性能を定量化し得る。ターゲット評価データセットは、それまで深層学習モデルによって認識されていなかったデータサンプルのサブセットをターゲットデータセット内に含む。
【0006】
いくつかの例では、複数の学習反復の各々の第1段階中に、当該方法はまた、データ処理ハードウェアによって、特定のサイズを有するソースデータセットからソースデータサンプルのトレーニングバッチをサンプリングするステップと、データ処理ハードウェアによって、深層学習モデルをトレーニングする際に用いるためのN個の最適な信頼スコアを有するソースデータサンプルをソースデータサンプルのトレーニングバッチから選択して、損失関数を最小化するエンコーダ重み、ソース分類器層重み、およびターゲット分類器層重みを学習するステップとを含む。追加の例では、複数の学習反復の各々の第2段階中に、当該方法はまた、データ処理ハードウェアによって、ターゲット評価データセット上のポリシー勾配を用いてポリシーモデルをトレーニングして、評価メトリックを最大化する報酬を計算するステップを含む。これらの追加の例では、損失関数についての評価メトリックを最大化するポリシー重みを決定するステップは、計算された報酬に基づいている。
【0007】
いくつかの実現例では、ソースデータセットは第1の複数の画像を含み、ターゲットデータセットは第2の複数の画像を含む。ここで、ソースデータセットの第1の複数の画像内の画像の数は、ターゲットデータセットの第2の複数の画像内の画像の数よりも多くなり得る。L2TLアーキテクチャは、エンコーダネットワーク層、ソース分類器層、およびターゲット分類器層を含み得る。
【0008】
本開示の別の局面は、ソースデータセットおよびターゲットデータセットのために共同で最適化される深層学習モデルのための重み割当てを適応的に学習するためのシステムを提供する。当該システムは、データ処理ハードウェアと、ユーザデバイスのデータ処理ハードウェアと通信するメモリハードウェアとを含む。当該メモリハードウェアは命令を格納している。当該命令は、当該データ処理ハードウェア上で実行されると当該データ処理ハードウェアに以下の動作を実行させる。当該以下の動作は、ソースデータセットおよびターゲットデータセットを受信する動作と、ソースデータセットおよびターゲットデータセットに基づいて深層学習モデルについての損失関数を識別する動作とを含む。損失関数は、エンコーダ重み、ソース分類器層重み、ターゲット分類器層重み、係数、およびポリシー重みを含む。深層学習モデルのための重み割当てを学習するように構成された学習を転移させるための学習(L2TL)アーキテクチャに関する複数の学習反復の各々の第1段階中に、当該以下の動作はまた、勾配降下ベースの最適化を適用して、損失関数を最小化するエンコーダ重み、ソース分類器層重み、およびターゲット分類器層重みを学習する動作と、ポリシーモデルのアクションをサンプリングすることによって係数を決定する動作とを含む。L2TLアーキテクチャに関する複数の学習反復の各々の第2段階中に、当該以下の動作はまた、損失関数についての評価メトリックを最大化するポリシー重みを決定する動作を含む。
【0009】
この局面は、以下の任意の特徴のうちの1つ以上を含み得る。いくつかの実現例では、損失関数についての評価メトリックを最大化するポリシー重みを決定する動作は、第1段階中に学習されたエンコーダ重みおよびターゲット分類層重みを用いる動作を含む。学習反復の第1段階の実行中、ポリシーモデルは固定され得る。ポリシーモデルは、強化学習ベースのポリシーモデルを含み得る。損失関数についての評価メトリックは、ターゲット評価データセット上の深層学習モデルの性能を定量化し得る。ターゲット評価データセットは、それまで深層学習モデルによって認識されていなかったデータサンプルのサブセットをターゲットデータセット内に含む。
【0010】
いくつかの例では、複数の学習反復の各々の第1段階中に、当該以下の動作はまた、特定のサイズを有するソースデータセットからソースデータサンプルのトレーニングバッチをサンプリングする動作と、深層学習モデルをトレーニングする際に用いるためのN個の最適な信頼スコアを有するソースデータサンプルをソースデータサンプルのトレーニングバッチから選択して、損失関数を最小化するエンコーダ重み、ソース分類器層重み、およびターゲット分類器層重みを学習する動作とを含む。追加の例では、複数の学習反復の各々の第2段階中、当該以下の動作はまた、ターゲット評価データセット上のポリシー勾配を用いてポリシーモデルをトレーニングして、評価メトリックを最大化する報酬を計算する動作を含む。これらの追加の例では、損失関数についての評価メトリックを最大化するポリシー重みを決定する動作は、計算された報酬に基づいている。
【0011】
いくつかの実現例では、ソースデータセットは第1の複数の画像を含み、ターゲットデータセットは第2の複数の画像を含む。ここで、ソースデータセットの第1の複数の画像内の画像の数は、ターゲットデータセットの第2の複数の画像内の画像の数より多くてもよい。L2TLアーキテクチャは、エンコーダネットワーク層、ソース分類器層、およびターゲット分類器層を含み得る。
【0012】
本開示の1つ以上の実現例の詳細は添付の図面および以下の記載において説明されている。他の局面、特徴、および利点は以下の記載、添付の図面、および添付の特許請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【0013】
図1】学習を転移させるための学習(L2TL)アーキテクチャと、ソースデータセットおよびトレーニングデータセットのために共同で最適化された深層学習モデルとを含むシステムを示す概略図である。
図2】ソースデータセットから情報を適切に抽出することによってターゲットデータセット上での転移学習を向上させるための学習を転移させるための学習アーキテクチャの例を示す概略図である。
図3】深層学習モデルの重みを更新するための複数の学習反復の各々の第1段階および第2段階を示す例示的な学習を転移させるための学習アルゴリズムを示す概略図である。
図4】ソースデータセットおよびターゲットデータセットのために共同で最適化される深層学習モデルのための重み割当てを適応的に学習する方法についての動作の例示的な構成を示す図である。
図5】本明細書で説明されるシステムおよび方法を実現するために用いられ得る例示的なコンピューティングデバイスを示す概略図である。
【発明を実施するための形態】
【0014】
さまざまな図面における同様の参照符号は同様の要素を示している。
詳細な説明
深層ニューラルネットワークは画像、テキストおよび音声を理解するのに優れている。深層ニューラルネットワークの性能は、より多くのトレーニングデータで著しく向上させられる。アプリケーションが多様化しておりわずかなトレーニングデータセットで複数の使用事例をカバーしているので、従来のトレーニングアプローチは高性能を達成するには不充分であることが多い。余分なソースデータセットを利用し、関連情報をターゲットデータセットに「転移」させることが非常に有益となる。転移学習は、通常、大規模ソースデータセット上で予めトレーニングされたモデルを取得し、次いで、当該モデルをターゲットデータセット上でさらにトレーニングする(微調整(fine-tuning)として公知である)形式であり、大多数の現実世界の人工知能の用途のための標準レシピとなってきている。ランダムに初期化してからトレーニングする場合と比べて、微調整は、オブジェクト認識、意味のセグメント化、言語理解、音声合成、視聴覚認識、および言語翻訳について実証されるように、大幅な性能向上および収束加速をもたらす。
【0015】
本明細書の実現例は、ソースデータセットから情報を適切に抽出することによってターゲットデータセットに対する転移学習を向上させるための、データ処理ハードウェア上で実行される学習を転移させるための学習(learn to transfer learn:L2TL)アーキテクチャを対象としている。固定された重み付け割当て関数を用いてソースドメインとターゲットドメインとの間の関連性を測定する転移学習技術とは対照的に、L2TLアーキテクチャは、ソースデータセットおよびターゲットデータセットのために共同で最適化される深層学習モデルのための重み割当てを適応的に学習することができる。以下で明らかになるように、深層学習モデルに関する適応重みの学習は、ターゲット評価データセット上における深層学習モデルの性能によって導かれ得る。具体的には、当該性能は、ターゲット性能メトリックを用いて定量化することができ、これにより、L2TLアーキテクチャは、ターゲット評価性能を向上させるという目的のために関連性を直接対象にすることができる。
【0016】
重要度重み付け関数を求めて最適化する一方で、スケーリング係数を選択する際の1つの選択肢は、これらスケーリング係数を(1,0)と(0,1)とで交互にすることである。これにより、最適化されたポリシー重み
【0017】
【数1】
【0018】
で収束するまでソースデータセットがトレーニングされ得るとともに、さらに、ソースデータセットから予めトレーニングされた重みで収束するまでターゲットデータセットがトレーニングされ得る。いくつかの実現例では、フレームワークは、単一の係数を、スケール不変で最適化するように最適化する。ポリシー最適化ステップは、トレーニング可能なパラメータについての勾配降下ベースの最適化からは切り離されており、信号は、それらトレーニング可能なパラメータ間で共有されている。
【0019】
実現例は、L2TLアーキテクチャに関する複数の学習反復の各々において2つの段階を用いることに向けられている。複数の学習反復の各々についての第1段階中に、L2TLアーキテクチャは、勾配降下ベースの最適化を適用して、L2TLアーキテクチャについての損失関数を最小化するエンコーダ重み、ソース分類器層重み、およびターゲット分類器重みを学習するとともに、ポリシーモデルのアクションをサンプリングすることによって係数を決定する。第1段階中、ポリシーモデルは固定され得る。場合によっては、損失は、或るバッチ内のソースデータセットサンプルの大部分が無関係である一方でいくつかのバッチがより関連性の高い例を含んでいる場合、歪められる可能性がある。この問題を緩和するために、L2TLアーキテクチャは、より大きなバッチをサンプリングするとともに、より関連性の高い例を動的に選択することができる。各反復ごとに、L2TLアーキテクチャは、特定のサイズを有するトレーニングバッチをサンプリングすることができるとともに、最高信頼スコアを有するいくつかの上位サンプルをトレーニングのために用いることができる。このアプローチは計算上の利益をもたらすことができる。なぜなら、収束に至るまで、ほとんどのソースデータセットサンプルに関して勾配が計算されないであろうからである。
【0020】
複数の学習反復の各々についての第2段階中に、L2TLアーキテクチャは、第1段階中に学習されたエンコーダ重みを用いてターゲット評価データセット上の評価メトリックを最大化するポリシー重み
【0021】
【数2】
【0022】
を最適化する。これは、ポリシーモデルが重要度重み付け関数および単一の係数のためのアクションを報酬の最適化を目指して出力するように、RL問題として処理することができる。ポリシーモデルをトレーニングする場合、L2TLアーキテクチャは、ポリシー勾配を用いることで、特定のサイズを有するバッチを用いてターゲットデータセット上の報酬を最大化することができる。L2TLアーキテクチャは、移動平均ベースラインを用いて変動を減らすことができる。L2TLアーキテクチャは、強化学習を用いてポリシー勾配を計算することができる。L2TLアーキテクチャはまた、確率目標の勾配ベースの最適化、たとえば、Adamオプティマイザ、を用いてポリシー勾配を最適化することもできる。
【0023】
図1を参照すると、いくつかの実現例では、システム100は、命令を格納するデータ処理ハードウェア134(たとえば、サーバもしくはCPU)および/またはリモートメモリハードウェア136などのリソース132を含むコンピューティング環境130を含む。当該命令は、データ処理ハードウェア102上で実行されると、当該データ処理ハードウェア102に動作を実行させる。学習を転移させるための学習(L2TL)アーキテクチャ200および深層学習モデル150はリソース132上に常駐し得る。概して、深層学習モデル150は、受信した入力のための出力を生成するための複数層のモデルを含む深層学習ネットワーク、すなわち、機械学習モデル、を含む。図示される例では、深層学習モデル150は、ソースデータセット104およびターゲットデータセット106のために共同で最適化され、L2TLアーキテクチャ200は、深層学習モデル150のための重み割当てを適応的に学習するように構成されている。
【0024】
図2は、データ処理ハードウェア134上で実行されるとともにソースデータセット104およびターゲットデータセット106を受信するL2TLアーキテクチャ200の例を示す。ソースデータセット104は第1の複数の画像を含み、ターゲットデータセット106は第2の複数の画像を含む。ソースデータセット104の第1の複数の画像は、ターゲットデータセット106の第2の複数の画像よりも多くの枚数の画像を含む。他の実現例では、ソースデータセット104およびターゲットデータセット106は画像以外のデータサンプル、たとえば、オーディオサンプルまたはテキストサンプルなどの、但しこれらには限定されないサンプルを含む。ターゲットデータセット106は、特化されたターゲットタスクを実行するように、たとえば、犬を含む画像を認識するように、深層学習モデル150をトレーニングするためのトレーニングサンプル(たとえば、犬を含む画像)の特化されたセットを含む。しかしながら、ソースデータセット104は、犬を含む可能性もあるし含まない可能性もあるさまざまなクラスにわたる画像のための非常に大規模な公開データセットを含んでいてもよい。特に、ソースデータセット104およびターゲットデータセット106は各々ラベル付けされ得る。ソースデータセット104内のソースサンプルが、ターゲットデータセット106内のターゲットサンプルに暗黙的に関連する特徴を有し得るとともに学習プロセスに利益をもたらす可能性があるが、それらはそれぞれ異なるクラスに属する可能性がある。たとえば、深層学習モデル150をトレーニングして鳥画像の分類を実行する例について検討する。ソースデータセット104は鳥画像を含まない可能性もあるが、類似する視覚的パターンを有する飛行機画像を有する可能性がある。これら類似する視覚的パターンは、未加工データの有益な表現を学習するために類似する視覚的パターンを共有しているので鳥分類器のトレーニングを支援するものとなるだろう。L2TLアーキテクチャ200は、そのポリシー学習を用いてこのような事例を自動的に処理するように設計されており、人手によるソースデータセットの選択または固定ドメイン類似法が実施し得ない方法で性能をさらに推進させることができる。L2TLアーキテクチャ200は、構成要素の損失項のスケーリングのために適応重み202、204、208、210を使用しつつ、ソースタスクおよびターゲットタスクのための深層学習モデル150の協調的最適化を考慮に入れている。図2のL2TLアーキテクチャ200における破線ボックスはトレーニング可能な関数に対応している。
【0025】
L2TLアーキテクチャ200は、ソースデータセット104から情報を適切に抽出することによって、ターゲットデータセット106に対する転移学習を向上させるように構成されている。L2TLアーキテクチャ200は、ソースデータセット104およびターゲットデータセット106に基づいて深層学習ネットワーク150についての損失関数201を識別するように構成されている。損失関数201は、深層学習モデル150のエンコーダニューラルネットワーク152に関連付けられたエンコーダ重み210と、深層学習モデル150のソース分類器層154に関連付けられたソース分類器層重み202と、深層学習モデル150のターゲット分類器層156に関連付けられたターゲット分類器層重み204と、ソースデータセット104およびターゲットデータセット106についての係数206と、深層学習モデル150のポリシーモデル209に関連付けられたポリシー重み208とを含み得る。損失関数201は以下のように表わされ得る。
【0026】
【数3】
【0027】
ここで、(x,y)は入力と出力との対であり、BおよびBはソースバッチサイズおよびターゲットバッチサイズであり、α[i]およびα[i]はi番目の反復におけるスケーリング係数206であり、λは重要度重み付け関数212であり、
【0028】
【数4】
【0029】
はトレーニング可能なパラメータΩ(符号化重み210)、ζ(ソース分類器層重み202)、およびζ(ターゲット分類器層重み204)を有するソースデータセット104およびターゲットデータセット106についての符号化関数である。以下で明らかになるように、式(1)によって表わされる損失関数201の学習目的は、性能メトリックR,220の最大化によって未認識のターゲット評価データセット106′に一般化されている。
【0030】
L2TLアーキテクチャ200に関する複数の学習反復の各々についての第1段階中に、L2TLアーキテクチャ200は、勾配降下ベースの最適化を適用して、損失関数201を最小化するエンコーダ重みΩ210、ソース分類器層重みζ202、およびターゲット分類器層重みζ204を学習するとともに、ポリシーモデル209のアクションをサンプリングすることによって係数206を決定する。たとえば、勾配降下ベースの最適化を適用して、損失関数201を最小化する適応可能な重みΩ210、ζ202、およびζを学習することは以下の式で表わされてもよい。
【0031】
【数5】
【0032】
第1段階中、ポリシーモデル209は固定されたままである。ほとんどのバッチはソースデータセット104からの関連サンプルを含む可能性があるが、損失関数201は、或るバッチ内のソースデータセットサンプルのほとんどが関連性のない(理想的には、より低い重みを得る可能性のある)場合には歪められる可能性がある。この問題を緩和するために、第1段階では、各反復ごとにより大きいバッチサイズを用いて、そこから最も関連性の高い例を動的に選択してもよい。各反復ごとに、L2TLアーキテクチャは、サイズM・Bのトレーニングバッチをサンプリングするとともに、その反復中にトレーニング更新のために最高の重みを有するもののうち上位のBを用いる。このアプローチも計算上の利益をもたらす。なぜなら、収束に至るまで、ほとんどのソースデータセットサンプルに関して勾配が計算されないであろうからである。
【0033】
図2は、ソースデータセット104およびターゲットデータセット106のそれぞれの入力xと、それらの対応するラベル/出力yとの間の勾配を最小化することを含む、ソースデータセット104およびターゲットデータセット106の各々についての学習反復の第1段階中における、トレーニング目的を有するL2TLアーキテクチャ200を示す。ここで、符号化ネットワーク152は、ソースデータセット104からの入力特徴(たとえば、画像)を符号化するとともに、ソース分類器層154(「ソース決定層」とも称する)は、符号化された入力特徴を用いて信頼スコアを出力し、これにより、トレーニング目標は、入力特徴についての信頼スコアと対応するラベル/出力yとの間における(損失関数201の式(1)中の第1の項
【0034】
【数6】
【0035】
に対応する)ソースデータセット分類損失を決定する。ソースデータセット分類損失に、損失関数201の式(1)中の
【0036】
【数7】
【0037】
に対応する重要度重み212を掛けてから、加算関数203が、ソースデータセット分類損失と重要度重み212との積で(損失関数201の式1中の第2の項
【0038】
【数8】
【0039】
に対応する)ターゲットデータセット分類損失を集約して、損失関数201についての集約勾配を決定する。各反復の損失関数の集約済み勾配に基づいて、L2TLアーキテクチャ200は、ソースデータセット103の収束に至るまで、エンコーダ重みΩ210、ソース分類器層重みζ202、およびターゲット分類器層重みζ204の各々を決定/更新する。
【0040】
符号化ネットワーク152はまた、ターゲットデータセット106からの入力特徴(たとえば、画像)を符号化し、ターゲット分類器層156(「ソース決定層」とも称する)は、符号化された特徴を用いて信頼スコアを出力する。これにより、トレーニング目標が、入力特徴についての信頼スコアとターゲットデータセットについての対応するラベル/出力yとの間のターゲットデータセット分類損失
【0041】
【数9】
【0042】
を決定する。上述のとおり、加算関数203は、ソースデータセット分類損失と重要度重み208との積とともにターゲットデータセット分類損失を集約して、損失関数201についての集約勾配を決定する。
【0043】
L2TLアーキテクチャ200に関する複数の学習反復の各々についての第2段階中に、L2TLアーキテクチャ200は、損失関数201についての評価メトリックR,220を最大化するポリシー重みΦ208を決定する。ここで、L2TLアーキテクチャ200は、第1段階中に学習されたエンコーダ重みΩ210およびターゲット分類器層重みζ204を用いて評価メトリックR,220を最大化するポリシー重みΦ208を決定する。本明細書で用いられるように、損失関数についての評価メトリック(「評価メトリック(evaluation metric)」とも称する)220は、ターゲット評価データセット106′上の深層学習モデル150(すなわち、エンコーダネットワーク152およびターゲット分類層154)の性能を定量化する。いくつかの例では、ターゲット評価データセット106′は、トレーニングの第1段階中、それまで深層学習モデル150によって認識されていなかったデータサンプル(たとえば、画像)のサブセットをターゲットデータセット106内に含む。したがって、ポリシー重みΦ208を決定することは、ターゲット評価データセット106′に対する評価メトリックRD′T220を最大化するようにポリシー重み208を最適化することを含む。これは以下のように表わされてもよい。
【0044】
【数10】
【0045】
ここで、D′は未認識のターゲット評価データセット106′であって、第1段階中、それまで深層学習モデル150によって認識されていなかったデータサンプル(入力特徴x、出力ラベルy)のサブセットをターゲットデータセット106内に含み得る。ポリシーモデル209が第1段階中に固定されている間、第2段階中に、L2TLアーキテクチャ200は、ターゲット評価データセット106′上のポリシー勾配を用いてポリシーモデル209をトレーニングして、式3を用いて評価メトリック220を最大化する報酬を計算する。したがって、L2TLアーキテクチャ200は、計算された報酬に基づいて評価メトリックR,220を最大化するポリシー重みΦ208を決定/更新する。更新されたポリシー重みΦ208に基づいて、後続の学習反復の第1段階中に決定されるべきソースデータセット分類損失に対して乗数として適用される重要度重み212は、ポリシーモデル209のアクションをサンプリングすることによって更新される。こうして、L2TLアーキテクチャ200は、ポリシーモデル209を採用して、エンコーダ重みΩ210、ソース分類器層重みζ202、およびターゲット分類器層重みζ204を学習するとともに、ターゲット評価データセット106′に対する評価メトリックR,220を最大化するポリシー重みΦ208を決定/更新する。その結果、L2TLアーキテクチャ200は、ターゲット評価データセット106′についての性能を向上させるという特定の目標に関する関連性を直接ターゲットにすることによって、全体的な関連性をターゲットにする以上のことを行なう。図3は、重みΩ210、ζ202、ζ204およびΦ208を更新するための複数の学習反復の各々についての第1段階および第2段階を示す例示的なL2TLアルゴリズムを示す。
【0046】
実質的には、ポリシーモデル209は、ソースデータセット104の多数のクラスの各々ごとに適応的に重要度重み212を出力し、これにより、L2TLアーキテクチャ200がソースデータセットクラス重みを学習してターゲットデータセット106の性能を直接最適化することを可能にする。重要度重み212が適応的に割当てられていれば、深層学習モデル150をトレーニングしてターゲット目標を学習するための関連情報がソースデータセット104から抽出され得るように、L2TLアーキテクチャ200は、より高い重みをソースデータセット104内のより関連性の高いデータサンプルに割当てる。ポリシーモデル209は強化学習ベースのポリシーモデルを含み得る。さらに、いくつかの例では、L2TLアーキテクチャ200は、ターゲットタスクに対するソースデータセット104のサンプルの寄与に基づいてこれらサンプルのランク付けをもたらす。
【0047】
図4は、ソースデータセット104およびターゲットデータセット106のために共同で最適化される深層学習モデル150のための重み割当てを適応的に学習する方法400についての動作の例示的な構成のフローチャートを示す。データ処理ハードウェア134(図1)は、メモリハードウェア136(図1)に格納された命令を実行することによって方法400のための動作を実行し得る。動作402において、方法400は、ソースデータセット104およびターゲットデータセット106を受信する動作を含む。動作404において、方法400は、ソースデータセット104およびターゲットデータセット106に基づいて深層学習モデル150についての損失関数201を識別する動作を含む。損失関数201は、エンコーダ重み210、ソース分類器層重み202、ターゲット分類器層重み204、係数206、およびポリシー重み208を含む。
【0048】
深層学習モデル150のための重み割当てを学習するように構成された学習を転移させるための学習(L2TL)アーキテクチャ200に関する複数の学習反復の各々の第1段階中、方法400はまた、動作406において、勾配降下ベースの最適化を適用して、損失関数を最小化するエンコーダ重み、ソース分類器層重み、およびターゲット分類器重みを学習する動作と、動作408において、ポリシーモデル209のアクションをサンプリングすることによって係数206を決定する動作とを含む。L2TLアーキテクチャ200に関する複数の学習反復の各々の第2段階中、方法400はまた、動作410において、損失関数201についての評価メトリック220を最大化するポリシー重み208を決定する動作を含む。
【0049】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)とは、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指し得る。いくつかの例では、ソフトウェアアプリケーションは「アプリケーション」、「アプリ」、または「プログラム」とも称され得る。例示的なアプリケーションは、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーミングアプリケーションを含むが、それらに限定されない。
【0050】
非一時的メモリは、プログラム(たとえば命令のシーケンス)またはデータ(たとえばプログラム状態情報)を、コンピューティングデバイスによる使用のために一時的または永続的に格納するために使用される物理デバイスであってもよい。非一時的メモリは、揮発性および/または不揮発性のアドレス可能半導体メモリであってもよい。不揮発性メモリの例は、フラッシュメモリおよび読出専用メモリ(ROM)/プログラマブル読出専用メモリ(PROM)/消去可能プログラマブル読出専用メモリ(EPROM)/電子的消去可能プログラマブル読出専用メモリ(EEPROM)(たとえば、典型的にはブートプログラムなどのファームウェアのために使用される)を含むが、それらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含むが、それらに限定されない。
【0051】
図5は、本明細書で説明するシステムおよび方法を実現するために使用され得る例示的なコンピューティングデバイス500の概略図である。コンピューティングデバイス500は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの、さまざまな形態のデジタルコンピュータを表わすよう意図されている。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は単なる例示を意図したものであって、この文書で説明および/または主張される本発明の実現例を限定するよう意図したものではない。
【0052】
コンピューティングデバイス500は、プロセッサ510(たとえば、データ処理ハードウェア)と、メモリ520(たとえば、メモリハードウェア)と、ストレージデバイス(たとえば、メモリハードウェア)530と、メモリ520および高速拡張ポート550に接続している高速インターフェイス/コントローラ540と、低速バス570およびストレージデバイス530に接続している低速インターフェイス/コントローラ560とを含む。コンポーネント510、520、530、540、550、および560の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。プロセッサ510は、コンピューティングデバイス500内で実行される命令を処理可能であり、これらの命令は、グラフィカルユーザインターフェイス(graphical user interface:GUI)のためのグラフィック情報を、高速インターフェイス540に結合されたディスプレイ580などの外部入出力デバイス上に表示するために、メモリ520内またはストレージデバイス530上に格納された命令を含む。他の実現例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。また、複数のコンピューティングデバイス500が接続されてもよく、各デバイスは(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の部分を提供する。プロセッサ510は、図1のデータ処理ハードウェア134に対応し得るとともに、L2TLアーキテクチャ200および深層学習モデル150を実行し得る。
【0053】
メモリ520は、情報をコンピューティングデバイス500内に非一時的に格納する。メモリ520は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってもよい。非一時的メモリ520は、プログラム(たとえば命令のシーケンス)またはデータ(たとえばプログラム状態情報)を、コンピューティングデバイス500による使用のために一時的または永続的に格納するために使用される物理デバイスであってもよい。不揮発性メモリの例は、フラッシュメモリおよび読出専用メモリ(ROM)/プログラマブル読出専用メモリ(PROM)/消去可能プログラマブル読出専用メモリ(EPROM)/電子的消去可能プログラマブル読出専用メモリ(EEPROM)(たとえば、典型的にはブートプログラムなどのファームウェアのために使用される)を含むが、それらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含むが、それらに限定されない。
【0054】
ストレージデバイス530は、コンピューティングデバイス500のための大容量ストレージを備えることができる。いくつかの実現例では、ストレージデバイス530はコンピュータ可読媒体である。さまざまな異なる実現例では、ストレージデバイス530は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイであってもよい。追加の実現例では、コンピュータプログラム製品が情報担体において有形に具現化され得る。コンピュータプログラム製品は、実行されると上述のような1つ以上の方法を実行する命令を含む。情報担体は、メモリ520、ストレージデバイス530、またはプロセッサ510上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0055】
高速コントローラ540はコンピューティングデバイス500のための帯域幅集中型の動作を管理し、一方、低速コントローラ560はより低帯域幅集中型の動作を管理する。このような役務機能の割当ては例示に過ぎない。いくつかの実現例では、高速コントローラ540は、メモリ520、ディスプレイ580に(たとえば、グラフィックスプロセッサまたはアクセラレータを介して)結合されるとともに、さまざまな拡張カード(図示せず)を受付け得る高速拡張ポート550に結合される。いくつかの実現例では、低速コントローラ560は、ストレージデバイス530および低速拡張ポート590に結合される。さまざまな通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポート590は、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力デバイスに、または、スイッチもしくはルータなどのネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【0056】
コンピューティングデバイス500は、図に示すように多くの異なる形態で実現されてもよい。たとえばそれは、標準サーバ500aとして、またはそのようなサーバ500aのグループにおいて複数回実現されてもよく、ラップトップコンピュータ500bとして、またはラックサーバシステム500cの一部として実現されてもよい。
【0057】
ここに説明されるシステムおよび技術のさまざまな実現例は、デジタル電子および/または光学回路、集積回路、特別に設計されたASIC(application specific integrated circuit:特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せにおいて実現され得る。これらのさまざまな実現例は、データおよび命令をストレージシステムとの間で送受信するように結合された、専用または汎用であり得る少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラマブルシステム上で実行可能および/または解釈可能である1つ以上のコンピュータプログラムにおける実現例を含み得る。
【0058】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても公知である)は、プログラマブルプロセッサのための機械命令を含むとともに、高レベルの手続き型および/またはオブジェクト指向型プログラミング言語で、および/またはアセンブリ/機械語で実現され得る。本明細書中で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、非一時的コンピュータ可読媒体、機器および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(Programmable Logic Device:PLD))を指し、機械命令を機械可読信号として受信する機械可読媒体を含む。「機械可読信号」という語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0059】
この明細書で説明されるプロセスおよび論理フローは、データ処理ハードウェアとも称される1つ以上のプログラマブルプロセッサが、入力データに基づいて動作することおよび出力を生成することによって機能を実行するために1つ以上のコンピュータプログラムを実行することによって行なわれ得る。プロセスおよび論理フローはまた、たとえばFPGA(field programmable gate array:フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった専用論理回路によって実行可能である。コンピュータプログラムの実行に適したプロセッサは、一例として、汎用および専用のマイクロプロセッサと、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサとを含む。一般に、プロセッサは、命令およびデータを、読出専用メモリまたはランダムアクセスメモリまたはそれら双方から受信するであろう。コンピュータの本質的要素は、命令を実行するためのプロセッサと、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータはまた、たとえば磁気ディスク、光磁気ディスクまたは光ディスクなどの、データを格納するための1つ以上の大容量ストレージデバイスを含むこととなるか、または、当該大容量ストレージデバイスからデータを受信するかまたは当該大容量ストレージデバイスにデータを転送するかまたはそれら双方を行なうように動作可能に結合されることとなるだろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、一例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびに、CD ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路によって補完されてもよく、または専用論理回路に組込まれてもよい。
【0060】
ユーザとの対話を提供するために、この開示の1つ以上の局面は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(cathode ray tube:陰極線管)、LCD(liquid crystal display:液晶ディスプレイ)モニタ、またはタッチスクリーンと、任意には、ユーザによるコンピュータへの入力を可能にするキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実現され得る。他の種類のデバイスも同様に、ユーザとの対話を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであり得る。また、ユーザからの入力は、音響入力、音声入力または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、当該デバイスから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答してウェブページを当該ウェブブラウザに送信することによって、ユーザと対話することができる。
【0061】
いくつかの実現例を説明してきた。にもかかわらず、本開示の精神および範囲から逸脱することなく、さまざまな変更を行なってもよいことが理解されるであろう。したがって、他の実現例は添付の特許請求の範囲内にある。
図1
図2
図3
図4
図5