本明細書において、「コンポーネント」、「モジュール」、「システム」等の用語は、コンピューター関連エンティティ、ハードウェア、ファームウェア、ソフトウェア、ソフトウェアとハードウェアとの組み合わせ、またはソフトウェアの実行を指す。例えば、コンポーネントは、プロセッサー(110)上で実行される処理手順(procedure)、プロセッサー(110)、オブジェクト、実行スレッド、プログラム、及び/またはコンピューターになり得るが、これらに限定されるものではない。例えば、コンピューティング装置(100)で実行されるアプリケーションとコンピューティング装置(100)は、両方ともコンポーネントになり得る。1つ以上のコンポーネントは、プロセッサー(110)及び/または実行スレッドの中に常駐することができる。1つのコンポーネントは、1つのコンピューターの中でローカル化されることができる。1つのコンポーネントは、2つ以上のコンピューターに配分されることができる。また、このようなコンポーネントは、その内部に保存された多様なデータ構造を持つ、コンピューターで読み取り可能な多様な媒体で実行することができる。コンポーネントは、例えば1つ以上のデータパケットを持つ信号(例えば、ローカルシステム、分散システムにおいて、他のコンポーネントと相互作用する1つのコンポーネントからのデータ及び/または信号を通じて、他のシステムと、インターネットのようなネットワークを通じて伝送されるデータ)によってローカル及び/または遠隔処理等を通じて通信することができる。
さらに、ここで用いられる用語「または」は、排他的な「または」ではなく、内包的「または」を意味する意図で使われる。つまり、特に特定されておらず、文脈上明確ではない場合、「XはAまたはBを利用する」は、自然な内包的置換のうち1つを意味する意図を持つ。つまり、XがAを利用したり、XがBを利用したり、またはXがA及びBの両方を利用する場合、「XはAまたはBを利用する」は、これらのいずれにも当てはまるとすることができる。また、本明細書における「及び/または」という用語は、取り挙げられた関連アイテムのうち、1つ以上のアイテムの可能なすべての組み合わせを指し、それらを含むと理解されるべきである。
また、述語としての「含む(含める)」及び/または修飾語として「含む(含める)」という用語は、当該特徴及び/または構成要素が存在することを意味するものと理解されるべきである。ただし、述語としての「含む(含める)」及び/または修飾語として「含む(含める)」という用語は、1つ以上の他のさらなる特徴、構成要素及び/またはこれらのグループが存在すること、または追加されることを排除しないものと理解されるべきである。また、特に特定されていない場合や、単数の形を示すことが文脈上明確でない場合、本明細書と請求範囲において単数は、一般的に「1つまたはそれ以上」を意味するものと解釈されるべきである。
当業者は、さらに、ここに開示される実施例に係るものとして説明された多様な例示的論理的ブロック、構成、モジュール、回路、手段、ロジック及びアルゴリズム段階が、電子ハードウェア、コンピューターソフトウェア、またはその両方の組み合わせによって実現できることを認識すべきである。ハードウェアとソフトウェアとの相互交換性を明確に例示するために、多様な例示的コンポーネント、ブロック、構成、手段、ロジック、モジュール、回路及び段階が、それらの機能性の側面から一般的に上述された。そのような機能性がハードウェアとしてまたはソフトウェアとして実装されるか否かは、全般的なシステムに係る特定のアプリケーション(application)及び設計制限によって決まる。熟練した技術者は、個々の特定アプリケーションのために多様な方法で説明された機能を実現できる。ただし、そのような実現に係る決定が本開示内容の領域を逸脱するものと解釈されてはならない。
ここに示す実施例に係る説明は、本開示の技術分野において通常の知識を持つ者が本発明を利用したりまたは実施できるように提供される。このような実施例に対する多様な変形は、本開示の技術分野において通常の知識を持つ者には明確である。ここに定義された一般的な原理は、本開示の範囲を逸脱することなく他の実施例に適用されることができる。従って、本発明はここに示す実施例だけに限定されるものではない。本発明はここに示す原理及び新規な特徴と一貫する最広義の範囲で解釈されるべきである。
本開示の一実施例におけるサーバーには、サーバーのサーバー環境を実装するための他の構成が含まれることが可能である。サーバーは形を問わずあらゆる装置をすべて含むことができる。サーバーはデジタル機器として、ラップトップコンピューター、ノートパソコン、デスクトップコンピューター、ウェブパッド、携帯電話のようにプロセッサー(110)を搭載しておりメモリーを備えた演算能力を持つデジタル機器になり得る。サーバーはサービスを処理するウェブサーバーになり得る。前述のサーバーの種類は例示に過ぎず、本開示はこれによって限定されない。
本明細書におけるネットワーク関数は、人工神経網(200)、ニューラルネットワークと相互交換可能な形で使われることができる。本明細書におけるネットワーク関数は、1つ以上のニューラルネットワークを含むこともでき、この場合、ネットワーク関数の出力は、1つ以上のニューラルネットワークの出力のアンサンブル(ensemble)になり得る。
本明細書において、モデルはネットワーク関数を含むことができる。モデルは1つ以上のネットワーク関数を含むこともでき、この場合、モデルの出力は、1つ以上のネットワーク関数の出力のアンサンブルになり得る。
図1は、本開示の一実施例に係るデータ収集戦略の策定を実行するコンピューティング装置の構成を示すブロック図である。
コンピューティング装置(100)は、プロセッサー(110)と保存部(120)を含むことができる。プロセッサー(110)は、1つ以上のコアで構成されることができ、コンピューティング装置(100)の中央処理装置(CPU:central processing unit)、汎用グラフィック処理装置(GPGPU:general purpose graphics processing unit)、テンサー処理装置(TPU:tensor processing unit)等のデータ収集戦略を策定するためのプロセッサー(110)を含むことができる。プロセッサー(110)は、保存部(120)に保存されたコンピュータープログラムを読み取り、本開示の一実施例に係るデータ収集戦略を策定するための方法を実行することができる。本開示の一実施例に基づき、プロセッサー(110)は、神経網(200)の学習のための計算を実行することができる。プロセッサー(110)は、ディープラーニング(DL:deep learning)において学習のための入力データの処理、入力データからのフィーチャー(feature)抽出、誤差計算、逆伝播(backpropagation)を利用した神経網(200)の重み更新等の神経網(200)の学習のための計算を実行することができる。
プロセッサー(110)のCPU、GPGPU及びTPUのうち、少なくとも1つがトレーニングデータセット(400)を生成し、複数の推論モデル(500)の学習を処理することができる。また、本開示の一実施例において、複数のコンピューティング装置(100)のプロセッサー(110)を一緒に使って、学習されたモデルを利用した複数の推論結果(600)を生成し、複数の推論結果(600)と実際の結果(ground truth)との対応関係を提供することができる。また、本開示の一実施例に係るコンピューティング装置(100)で実行されるコンピュータープログラムは、CPU、GPGPUまたはTPUで実行可能プログラムになり得る。
保存部(120)は、本開示の一実施例に係るデータ収集戦略を策定する方法を実行するためのコンピュータープログラムを保存することができ、保存されたコンピュータープログラムは、プロセッサー(110)によって読み取られ実行されることができる。
本開示の実施例に係る保存部(120)は、プロセッサー(110)の動作のためのプログラムを保存することができ、入/出力されるデータ(例えば、サービスへのアクセス情報、ユーザー情報、代替サービスへのアクセス情報等)を一時的または永久に保存することもできる。前述の保存部(120)は、ディスプレイや音響に係るデータを保存することができる。保存部(120)は、フラッシュメモリータイプ(flash memory type)、ハードディスクタイプ(hard disk type)、マルチメディアカードマイクロタイプ(multimedia card micro type)、カードタイプのメモリー(例えばSDまたはXDメモリー等)、ラム(Random Access Memory、RAM)、SRAM(Static Random Access Memory)、ロム(Read-Only Memory、ROM)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、PROM(Programmable Read-Only Memory)、磁気メモリー、磁気ディスク、光ディスクのうち、少なくとも1つのタイプの保存媒体を含むことができる。
図2は、本開示の一実施例に係る人工神経網の一部を示す概略図である。
本明細書を通して、神経網(200)、ネットワーク関数、ニューラルネットワーク(neural network)は同じ意味で使われることができる。神経網(200)は、一般的に「ノード」と称されることのできる相互連結された計算単位の集合により構成されることができる。このようなノードは、「ニューロン(neuron)」と称されることもできる。神経網(200)は、少なくとも1つ以上のノードを含めて構成される。神経網(200)を構成するノード(またはニューロン)は、1つ以上のリンクによって相互連結されることができる。
神経網(200)内部で、リンクによって繋がっている1つ以上のノードは、相対的に入力ノードと出力ノードの関係を形成することができる。入力ノードと出力ノードという概念は、相対的なものであり、あるノードに対し出力ノードの関係にある任意のノードは、他のノードとの関係においては入力ノードになることがあり、その逆のことも成立することができる。前述のように、入力ノードと出力ノードとの関係は、リンクを中心にして生成されることができる。1つの入力ノードに1つ以上の出力ノードがリンクによって繋がることができ、その逆も成立することができる。
1つのリンクによって繋がっている入力ノードと出力ノードとの関係において、出力ノードは入力ノードに入力されたデータに基づきその値が決まることができる。ここで入力ノードと出力ノードとを相互連結するノードには重み(weight)が付けられることができる。重みは可変的なものになることもあり、神経網(200)が求める機能を遂行するために、ユーザーまたはアルゴリズムによって変わることができる。例えば、1つの出力ノードに1つ以上の入力ノードがそれぞれリンクによって相互連結されている場合、出力ノードは前述の出力ノードと繋がっている複数の入力ノードに入力された値と、各入力ノードに対応するリンクに設定された重みに基づき出力ノードの値を決めることができる。
前述のように、神経網(200)は、1つ以上のノードが1つ以上のリンクによって相互連結され神経網(200)の中で入力ノードと出力ノードの関係を形成する。神経網(200)の中でノードとリンクの数、ノードとリンクとの間の相関関係、各リンクに付与された重みの値によって、神経網(200)の特徴が決まることができる。例えば、同じ数のノードとリンクが存在し、リンクの重みの値が異なる2つの神経網(200)が存在する場合、2つの神経網(200)は、異なるものと認識されることができる。
図2に示すように、神経網(200)は、1つ以上のノードを含めて構成されることができる。神経網(200)を構成するノードのうち一部は、第1入力ノードからの距離に基づき、1つのレイヤー(layer)を構成することができる。例えば、第1入力ノードからの距離がnであるノードの集合は、nレイヤーを構成することができる。第1入力ノードからの距離は、第1入力ノードから当該ノードにたどり着くために経由しなければならないリンクの最低限の数によって定義されることができる。しかし、このようなレイヤーの定義は説明のための仮のものであり、神経網(200)の中でレイヤーの位置は、前述のものと異なる方法によって定義されることができる。例えば、ノードのレイヤーは、最終出力ノードからの距離によって定義されることもできる。
第1入力ノードは、神経網(200)の中のノードのうち他のノードとの関係においてリンクを経由せずにデータが直接入力される1つ以上のノードを意味することができる。または、神経網(200)ネットワークの中で、リンクを基準にしたノード間の関係において、リンクによって綱がっている他の入力ノードを持たないノードを意味することができる。これと同様に、最終出力ノードは、神経網(200)の中のノードのうち、他のノードとの関係において、出力ノードを持たない1つ以上のノードを意味することができる。また、ヒドンノードは、第1入力ノードや最終出力ノードではない、神経網(200)を構成するノードを意味することができる。図2では出力ノードが省略されている。本開示の一実施例に係る神経網(200)は、入力レイヤーのノードが出力レイヤーに近いヒドンレイヤーのノードより多いことがあり、入力レイヤーからヒドンレイヤーへ展開するにつれノードの数が減っていく形の神経網(200)になり得る。
ディープニューラルネットワーク(DNN:deep neural network、深層神経網(200))は、入力レイヤーと出力レイヤー以外に複数のヒドンレイヤーを含む神経網(200)を意味することができる。ディープニューラルネットワークを利用するとデータの潜在的な構造(latent structures)を把握することができる。つまり、写真、文章、ビデオ、音声、音楽の潜在的な構造(例えば、ある物が写真の中にあるのか、文章の内容と感情はどのようなものなのか、音声の内容と感情はどのようなものなのか等)を把握することができる。ディープニューラルネットワークは、畳み込みニューラルネットワーク(CNN:convolutional neural network)、リカレントニューラルネットワーク(RNN:recurrent neural network)、制限ボルツマンマシン(RBM:restricted boltzmann machine)、深層信頼ネットワーク(DBN:deep belief network)、Qネットワーク、Uネットワーク、シャムネットワーク等を含むことができる。
図3は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数の推論モデルを学習させる一例を示すフローチャートである。
図3を参照すると、プロセッサー(110)は全体データセット(300)から2つ以上のトレーニングデータセット(400)を生成することができる(S100)。
プロセッサー(110)は、相異するデータサブセットを含むサンプリングされたデータセットのペアを少なくとも1つ含むトレーニングデータセット(400)を生成することができる。
本開示の複数の実施例に係るトレーニングデータセット(400)は、全体データセット(300)と同じデータを含むことができる。トレーニングデータセット(400)は、データサブセットとして、学習データセット、検証データセット及びテストデータセットを含むことができる。ただし、トレーニングデータセット(400)を構成する学習データセット、検証データセット及びテストデータセットは、相互排他的(mutually exclusive)な1つ以上のデータサブセットになり得る。ここで、データサブセットは全体データセット(300)からサンプリング(sampling)されることができる。つまり、トレーニングデータセット(400)は、サンプリングされたデータサブセットのペアで構成されることができる。
ここで全体データセット(300)は、本開示における推論モデル(500)を学習させるための全体データと定義されることができる。本開示の複数の実施例に係る全体データセット(300)は、すでにラベル付け(Label)されていることがあり得る。全体データセット(300)に対するラベル付け(Labeling)は、手作業またはラベル付けするためにトレーニングされた分類器/分類モデルによって行われることができる。
複数の推論モデル(500)を生成するために、複数のトレーニングデータセット(400)は、全体データセット(300)からそれぞれ派生されることができる。トレーニングデータセット(400)に関する詳しい内容は、図4の説明で後述する。
一般的に本開示に係る推論モデル(500)と類似したネットワーク関数のトレーニングのためのデータセットは、固定のテストセットを持つように設定される。これはトレーニングされたネットワーク関数の性能を客観的に評価するためである。従って、固定のテストセットは、データに係わる観点を示すものではなく、モデルの性能に係わる観点だけを示すものに過ぎない。
これに対し、相異するデータサブセットのペアによって構成されたトレーニングデータセット(400)に基づき複数の推論モデル(500)を学習させる場合、複数の推論モデル(500)は、全体データセット(300)に含まれたデータに対してテストを行う。その結果、全体データセット(300)に含まれた各データに対する予測正確度、学習有効性を調べることができる。つまり、どの類型のデータが上手くトレーニングされており、どのデータがそうでないかを調べることができる。従って、各トレーニングデータセットが相異するデータサブセットのペアを持つようにすることで、ユーザーがデータ収集戦略を策定するための観点を得るようにすることができる。
プロセッサー(110)は、生成された2つ以上のトレーニングデータセット(400)に基づき、1つ以上のネットワーク関数を含む複数の推論モデル(500)を学習させることができる(S200)。
プロセッサー(110)は、複数の推論モデル(500)を学習させることにより全体データセット(300)に含まれた各データに対する評価を行う複数の推論モデル(500)を生成することができる。
本開示に係るプロセッサー(110)は、複数のトレーニングデータセット(400)に基づき、複数の推論モデル(500)を学習させることができる。後述するが、プロセッサー(110)は、複数の推論モデル(500)から生成された複数の予測結果を総合して各データに対する評価を行うことができる。
プロセッサー(110)は、複数の予測結果を総合するためにアンサンブル手法を利用することができる。ここでアンサンブル手法とは、与えられた資料でいくつかの予測モデルを作成し、これらを組み合わせて1つの最終的な予測モデルを作成する方法と定義されることができる。
本開示に係るプロセッサー(110)は、平均、多数決、ベイズ推論等をアンサンブル手法を実行するための具体的な方法として利用することができる。前述のアンサンブル手法を実行するための具体的な方法は例示に過ぎず、本開示はこれに限定されない。
上述の複数の推論モデル(500)はそれぞれ複数のトレーニングデータセット(400)に対応する。推論モデル(500)はそれぞれトレーニングデータセット(400)に含まれたデータサブセットのペアのうち、学習データに基づき学習される。1つのトレーニングデータセット(400)から複数の推論モデル(500)が生成されることができ、この場合プロセッサー(110)は、検証データに基づき、どのモデルを本開示に係るデータ収集戦略を策定する方法を実現するための複数の推論モデル(500)の一つとして提供するかを決めることができる。決められた複数の推論モデル(500)はそれぞれ全体データセット(300)に対して推論結果を生成することができる。ここで推論結果は、特定のデータに対する分類結果(例えば、ラベル)と、当該分類結果に対する確信度スコアとを含むことができる。ただし、分類結果と確信度スコアは、推論結果に関する一例に過ぎず、推論結果に含まれることのできるデータは、これに限定されない。
ここで確信度スコアは、任意のデータに対して設定されることのできる個々のラベルに対する確率と定義されることができる。例えば、Aという画像に対し、犬と分類される確率が0.4、猫と分類される確率が0.6だとすると、画像Aの確信度スコアは、犬に対しては0.4、猫に対しては0.6になり得る。前述の確信度スコアは例示に過ぎず本開示はこれに限定されない。
相異するデータサブセットのペアで構成されたトレーニングデータセット(400)に基づき、複数の推論モデル(500)を学習させる場合、複数の推論モデル(500)は、全体データセット(300)に含まれたデータに対してテストを行う。その結果、現在の全体データセット(300)の全体に対する評価が可能な複数のモデルが生成されることができる。これによって、本開示に係るデータ収集方法に関わるユーザーは、データ収集戦略を策定するための観点を得ることができる。
図4は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、全体データセットから複数のトレーニングデータセットを生成する一例を示す図面である。
1つのデータセットから複数のトレーニングデータセット(400)を生成するために、一般的にK-分割交差検証(K-Fold Cross Validation)手法が利用されることができる。K-分割交差検証とは、データセットをいくつかのサブセットに分けて、各サブセットをテストセットまたは検証セットとして使い、テストセットまたは検証セットではないサブセットを学習セットとして利用する方法と定義されることができる。これはモデルを学習させるためのデータが十分ではないとき有効なやり方になり得る。
本開示に係るデータ収集戦略を策定する方法は、さらに、上述のようにテストデータセットも可変的に設定することができる。
従って、トレーニングデータセット(400)は、相異する学習データセット、検証データセット及びテストデータセットを含むことができる。
ここで、本開示の複数の実施例に係るプロセッサー(110)は、全体データセット(300)から2つ以上のトレーニングデータセット(400)を生成するとき、同じデータを含まないようにランダムに選択された任意のデータをテストデータセットに割り当てることができる。つまり、各トレーニングデータセット(400)のテストデータセットは相互排他的になり得る。
上述のように複数のテストデータセットを構成すると、全体データセット(300)に含まれたデータはすべて少なくとも1回は推論モデル(500)によって学習・検証・テストの段階をすべて通ることになる。つまり、全体データセットに含まれた各データは、複数のトレーニングデータセットに含まれながら、学習データセット、検証データセット、テストデータセットにそれぞれ含まれることができる。
その結果、全体データセット(300)に含まれた各データに対する予測正確度を調べることができる。つまり、どの類型のデータが上手くトレーニングされており、どのデータがそうでないかを調べることができる。従って、各トレーニングデータセットが相異するデータサブセットのペアを持つようにすることで、各データが学習、検証、テストの用途すべてにおいて使われるようにすることができ、ユーザーがデータ収集戦略を策定するための観点を得るようにすることができる。
図5は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数のトレーニングデータセットを生成する一例を示すフローチャートである。
図5を参照すると、プロセッサー(110)は、全体データセットをM個のサブセットに分割することができる(S110)。
プロセッサー(110)は、分割されたM個のサブセットの中から、少なくとも1つのサブセットをテストデータセットに割り当てることができる(S120)。
これはM‐分割交差検証(M-Fold Cross Test)を行うためのテストデータセットを選択するための一例である。従ってテストデータセットを生成するための具体的な方法はこれに限定されない。
プロセッサー(110)は、全体データセット(300)のうち前述のテストデータセットを除いたデータセットをN個のサブセットに分割することができる(S130)。
プロセッサー(110)は、分割されたN個のサブセットの中から、少なくとも1つのサブセットを検証データセットに割り当てることができる(S140)。
上述のように、トレーニングデータセット(400)に含まれたデータサブセットはそれぞれ相互排他的である。つまり、同じデータを含むことができない。従って、先にテストデータセットが決まると、残りの部分に対してN‐交差検証を行って検証データセットに割り当てることができる。テストデータセットと検証データセットがすべて決まると、プロセッサー(110)は、割り当てられていない残りのデータをすべて学習データセットに割り当てることができる。つまり、複数のトレーニングデータセット(400)はそれぞれ学習データセット、テストデータセット、検証データセットに構成されることができる。各トレーニングデータセット(400)に含まれたテストデータセットは相互排他的になり得る。
図6は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数の推論モデルを生成する一例を示す図面である。
プロセッサー(110)は、2つ以上のトレーニングデータセット(400)に基づき、複数の推論モデル(500)を生成することができる。上述のように、トレーニングデータセット(400)1つに対して1つ以上の推論モデル(500)が生成されることができる。この時前述の複数の推論モデル(500)のうち1つになり得る推論モデル(500)の決定は、検証データセットに基づいて行われることができる。
ここで、複数の推論モデル(500)の各ネットワーク関数の形は、相異するものにもなり得る。周知のように、ディープラーニングを実行するためのネットワーク関数の形は、多様なものがあり得る。従って、複数の推論モデル(500)はそれぞれ同じ形、もしくは異なる形のネットワーク関数から成ることがあり得る。
推論モデル(500)のネットワーク関数の形を多様な形に構成する場合、同じデータに対して色々なモデルを通じて得られた結果を得ることができる。本発明の目的である、データ評価によるデータ収集戦略策定において、多様な形のネットワーク関数によるデータ評価結果(800)を導入すれば、データを多角的に見ることができる。また特定のデータ類型に偏った結果が出ることを避けられるため、複数のモデルの結果を総合してデータに対する評価を行いやすくなる。本開示の一実施例に係るデータ管理方法は、データ別、モデル別の推論正確度、学習の容易性等を判断するようにすることで、データ観点やモデル観点において最適化されたモデル構成に対する洞察を提供することができる。
図7は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、データ収集戦略を策定する一例を示すフローチャートである。
図7を参照すると、プロセッサー(110)は2つ以上のトレーニングデータセット(400)に基づき学習された、1つ以上のネットワーク関数を含む複数の推論モデル(500)に基づき、任意のデータに対する複数の推論結果(600)を生成することができる(S300)。
段階(S300)によると、データセット(300)に含まれた各データに対して、複数の推論モデル(500)それぞれの分類値に対する推論結果が生成される。つまり、推論モデル(500)#1、推論モデル(500)#2、…、推論モデル(500)#NMがそれぞれ、データ#1、データ#2、データ#3、…、データ#Nに対する分類値に対する推論結果を生成することができる。ここで推論結果は、予測ラベルとラベル予測結果に対する確信度スコアを含むことができる。
ここで、任意のデータとは、全体データセット(300)に含まれたデータの中から、任意に選択された1つのデータと定義されることができる。
プロセッサー(110)は、生成された任意のデータに対する複数の推論結果(600)と実際の結果との対応関係を提供することができる(S400)。
ここで実際の結果は、全体データセット(300)に対するグラウンドトゥルース(Ground truth)データを意味することができる。実際の結果は、ある対象に対する実測結果を意味することができる。例えば、子犬に係る写真の実際の結果は、子犬になり得る。上述のラベルは、基本的に、ある対象に対して観測者が設定した分類値に過ぎないため、実際の結果とラベルは相異することがある。
本開示の複数の実施例に係る推論結果と実際の結果との対応関係は、分類結果そのものまたは分類結果に係る情報と定義されることができる。例えば、対応関係は分類結果に係る確信度スコアになり得る。
プロセッサー(110)が対応関係に係る情報を提供することにより、全体データセット(300)に含まれたデータのうち、どの類型のデータについて学習が上手く行われていないか判断することができる。従って、本開示に係るデータ収集戦略がユーザーによって策定されることができる。
プロセッサー(110)は、任意のデータに対する評価結果(800)を提供することができる(S500)。
プロセッサー(110)は、任意のデータの実際の結果と推論結果との間の対応関係を示すとともに、さらに進んで、任意のデータに対する評価結果(800)を提供することができる。評価結果(800)は、推論結果、ラベル及び実際の結果に基づく分析だけでなく、分析結果に基づくデータ収集戦略を含むことができる。これについては図12の説明で詳しく述べる。
図8は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数の推論結果を生成する一例を示す図面である。
プロセッサー(110)が生成する複数の推論結果(600)は、複数の推論モデル(500)がそれぞれ全体データセット(300)に含まれた各データに対して推論した分類結果と定義されることができる。つまり、推論モデル(500)#1、推論モデル(500)#2、…、推論モデル(500)#NMがそれぞれデータ#1、データ#2、データ#3、…、データ#Nに対する分類値に対する推論結果を生成することができる。ここで推論結果は予測ラベルとラベル予測結果に対する確信度スコアを含むことができる。
プロセッサー(110)は、生成された推論結果を総合して単一の推論結果(700)または推論信頼度スコアを生成できるようになる。これについては図10の説明で詳しく後述する。
図9は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、任意のデータに対する複数の推論結果と実際の結果との対応関係を提供する一例を示すフローチャートである。
図9を参照すると、プロセッサー(110)は、任意のデータに対する複数の推論結果(600)に基づき、任意のデータに対する単一の推論結果(700)を決めることができる(S410)。
ここで単一の推論結果(700)は、複数の推論結果(600)に基づき(またはこれを総合して)任意のデータに対して生成される1つの結果を意味する。単一の推論結果(700)は、当該データのラベルに対する推論信頼度スコアになり得る。例えば、複数のモデルにおいてすべて特定の画像に写っているオブジェクトに対して子犬というラベルが付けられた場合、推論モデル(500)が当該データに図示されたオブジェクトを犬と予測する確率(信頼度)値の平均が0.88だったら、単一の推論結果(700)は0.88になり得る。前述の記載は、例示に過ぎず、本開示はこれに限定されない。
ここでアンサンブル手法とは、与えられた資料でいくつかの予測モデルを作成し、これらを組み合わせて1つの最終的な予測モデルを作成する方法と定義されることができる。
本開示に係るプロセッサー(110)は、平均、多数決、ベイズ推論等をアンサンブル手法を実現するための具体的な方法として利用することができる。
上述のようにアンサンブル手法等を利用して単一の推論結果(700)を生成する場合、単一のモデルによる推論に比べ、より良い性能が得られるとされている。データに対する分類予測結果が正確になるほど適切なデータ収集戦略の策定が可能になる。
プロセッサー(110)は決められた単一の推論結果(700)と前述の実際の結果との対応関係を提供することができる(S420)。
本開示の複数の実施例に係る対応関係は、分類結果そのものまたは分類結果に係る情報と定義されることができる。例えば、対応関係は分類結果に対する確信度スコアになり得る。
プロセッサー(110)が対応関係に係る情報を提供することで、全体データセット(300)に含まれたデータのうち、どの類型のデータに対して学習が上手く行われていないか判断することができる。従って、本開示に係るデータ収集戦略がユーザーによって策定されることができる。
図10は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、確信度スコアを生成する一例を示す図面である。
ここで単一の推論結果(700)は、複数の推論結果(600)に基づき(またはこれを総合して)任意のデータに対して生成される1つの結果を意味する。単一の推論結果(700)は、当該データのラベルに対する推論信頼度スコアになり得る。
図10を参照すると、画像#1に対する単一の推論結果(700)は犬に対する0.88の推論信頼度スコアになり得る。
上述のようにアンサンブル手法を利用した単一の推論結果(700)は、単一モデルによる推論結果よりもっと正確な性能を持つとされており、より適切なデータ収集戦略の策定が可能になる。
図11は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、任意のデータに対する評価結果を提供する一例を示すフローチャートである。
図11を参照すると、プロセッサー(110)は、複数の推論結果(600)に基づき任意のデータに対する推論信頼度スコアを演算することができる(S510)。
プロセッサー(110)は、推論結果に含まれた分類予測結果と実際の結果とが一致するか否かと、推論信頼度スコアに対応する評価結果(800)を提供することができる(S520)。
分類予測結果や実際の結果と推論信頼度スコアに基づき評価結果(800)を提供する一例は、図12の説明で詳しく説明する。
図12は、本開示の一実施例に係るプロセッサーが、任意のデータに対する評価結果を提供する一例を示す図面である。
プロセッサー(110)は、任意のデータに対する複数の推論結果(600)に基づき任意のデータに対する単一の推論結果(700)を決めることができる。さらに、プロセッサー(110)は、単一の推論結果(700)と実際の結果との対応関係とを提供することができる。プロセッサー(110)は、任意のデータに対する評価結果(800)を提供することができ、これは前述の複数の推論結果(600)と実際の結果に基づくものになり得る。
以下に、コンピューティング装置(100)のプロセッサー(110)が、任意のデータに対する評価結果(800)を提供し、データ収集戦略を策定する一例を説明する。ただし、以下に述べる内容は、評価結果(800)の提供とデータ収集戦略の策定に係る一例に過ぎず、評価結果(800)の提供やデータ収集戦略の策定は、これに限定されない。
図12に示すように、任意のデータに対する評価結果(800)が提供されることができる。評価結果(800)は、実際の結果とラベルとが一致するかどうかと、推論信頼度スコアの度合い(信頼度が高い、中間、低い)を含むことができる。推論信頼度スコアのレベル(高い、中間、低い)は、推論信頼度スコアと予め設定されている少なくとも1つ以上のしきい値によって決まることができる。
図12に示す各データの例示である画像#1、画像#2、画像#3を例に挙げ、推論信頼度スコアレベルの決定について説明する。本開示に係るプロセッサー(110)は、推論信頼度スコアのレベルを決めるための第1しきい値を0.3に、第2しきい値を0.8に設定することができる。この場合において、画像#1の推論信頼度スコアの0.88は、第2しきい値より大きいため画像#1の推論信頼度スコアレベルは、「高い」となり、画像#2の推論信頼度スコアである0.1は、第1しきい値より小さいため推論信頼度スコアレベルは「低い」となり、画像#3の推論信頼度スコアの0.5は、第1しきい値よりは大きく第2しきい値よりは小さいため画像#3の推論信頼度スコアのレベルは、「中間」となるよう決められることができる。前述の推論信頼度との比較は例示に過ぎず、本開示はこれに限定されない。
このような評価資料は、ユーザーに直接提供されたり、データ収集戦略を策定するための基礎資料として利用ことができる。ラベルと実際の結果は、一致することもあれば一致しないこともあり、データ収集戦略としては、「維持」・「ラベル訂正」・「当該類型のデータ追加」があり得る。維持は、当該類型のデータに対するさらなる収集や加工が不要であることを意味することができる。ラベル訂正は付けられたラベルが実際の結果と相異しているためラベルを実際の結果に合わせる作業が必要であることを意味することができる。当該類型のデータ追加は、特定の類型のデータに対する学習が上手く行われていないため、当該データと類似したデータをさらに収集する活動が求められることを意味することができる。本開示の一実施例において、当該データと類似したデータは、当該データの分類クラスに属するデータを含むことができる。
図12によると、任意のデータに対する評価結果(800)は、実際の結果とラベルとが一致しており、推論信頼度が高い類型のデータ(第1類型)を含むことができる。この場合、複数の推論モデル(500)は、第1類型のデータを上手く予測できるように上手くトレーニングされているとみることができる。従って、複数の推論モデル(500)をトレーニングさせるための第1類型のデータは、十分であると評価されることができる。従って、第1類型のデータに対してはデータのさらなる収集またはラベル訂正が不要で、「維持」というデータ収集戦略がユーザーに提供されることができる。図12の例示において、画像#1は、例えば、犬の画像(つまり、実際の結果(ground truth)が犬である画像)を含み、犬のラベルを含むことが可能である。推論モデルは、画像#1に対し画像#1が犬を含む確率を0.88の推論信頼度と分類することができる。この場合、画像#1は、実際の結果とラベルが一致し、推論モデルが高い推論信頼度と推定したため、推論モデルの学習が容易で、学習データが十分な第1類型のデータに分類されることができる。前述の推論信頼度は例示に過ぎず本開示はこれに限定されない。
また、プロセッサー(110)は、第1類型のデータに対して提供されるデータ収集戦略をタグすることができる。例えば、図12の画像#1に「維持」、「重み付け」、「データ拡張(augmentation)の実行」等のタグが付けられることができる。プロセッサー(110)は、画像#1に付けられたデータ収集戦略に係るタグに基づき、画像#1に対し何ら措置を取らなかったり、学習において当該データに重みを付けることもでき、画像#1に基づきデータ拡張(augmentation)を行うことで類似の画像をさらに生成することもできる。
任意のデータに対する評価結果(800)は、実際の結果とラベルが相異しており推論信頼度が低い類型のデータ(第2類型)を含むことができる。これはラベルが間違っていることになり得る。従って、複数の推論モデル(500)は、実際の結果に対し高い推論信頼度を見せているとみることができる。この場合、ラベルだけ間違っており、複数の推論モデル(500)が十分に上手くトレーニングされた類型のデータだとすることができる。従ってこの場合には、「ラベル訂正」のデータ収集戦略が提供されることができる。
プロセッサー(110)は、推論信頼度が予め設定されているしきい値以下のデータに対し、実際の結果とラベルが相異していると判断することができる。ここで予め設定されているしきい値は、推論結果に基づき当該クラスにデータを分類するためのしきい値より遥かに低いしきい値になり得る。例えば、0.9以上の推論信頼度を持つデータを当該クラスに分類する場合、プロセッサー(110)がラベルが実際の結果と相異していると判断するための推論信頼度のしきい値は、0.1以下になり得る。つまり、学習データ不足等の理由で推論信頼度が低いと判断するためのしきい値より、ラベルが実際の結果と相異しているかどうかを判断するためのしきい値が低いことがあり得る。
プロセッサー(110)は、当該データのラベルのクラスに属する他のデータに対する推論信頼度が予め設定されているしきい値以上の場合は、推論信頼度が予め設定されているしきい値以下のデータに対して、当該データのラベルが実際の結果と相異していると判断することができる。つまり、当該データのクラスに属する他のデータに対しては推論信頼度が高い場合、当該クラスに対しては学習が上手く行われたと判断できるが、当該データに対してのみ推論信頼度が低い場合は、これは実際の結果とラベルが相異していることである可能性がある。
図12の例示において、画像#2は、例えば、犬の画像を含みながら猫のラベルを含むことがあり得る。推論モデルは、画像#2に対して、画像#2が猫を含む確率を0.1の推論信頼度に分類することができる。この場合、画像#2は、実際の結果とラベルが一致しておらず、推論モデルが低い推論信頼度と推定したため、推論モデルの学習が容易ではないと理解されることができる。従って、プロセッサー(110)は、画像#2をラベルに誤りがあった第2類型のデータに分類することができる。前述の推論信頼度は、例示に過ぎず本開示はこれに限定されない。
第2類型のデータに分類されるデータは、ラベルと実際の結果とが一致しないとみることができる。従って、学習時に第2類型のデータに対してラベルを訂正することが考慮されることができる。また、プロセッサー(110)は、第2類型のデータに対して提供されるデータ収集戦略をタグすることができる。例えば、図12の画像#2に「ラベル訂正」等のタグが付けられることができる。この場合、プロセッサー(110)は、ラベル訂正等のタグが付いたデータをユーザーに提供してラベルが修正されるようにすることができる。また、プロセッサー(110)は、この場合、他のクラスに対して推論信頼度が予め設定されているしきい値以上の場合、他のクラスのラベルを当該データの疑似ラベルに決めることができる。
また、第2類型のデータは、実際の結果とラベル付けが相異しており、推論モデルの学習性能に否定的な影響を提供することができるため、第2類型のデータの学習における価値を評価して、学習から排除することもできる。
学習データを評価して学習から排除することに関する具体的な説明は、本出願においてその全体が参照として統合されるData Dropout:Optimizing Training Data for Convolutional Neural Networks、Wang et al.においてより具体的に議論される。
任意のデータに対する評価結果(800)は、実際の結果とラベルとが相異しており推論信頼度が低いか中間程度である類型のデータ(第3類型)を含むことができる。この場合、複数の推論モデル(500)がまだ十分にトレーニングされていないと判断されることができる。従って、このような類型のデータについてはさらなるトレーニングのために「当該類型のデータ追加」のデータ収集戦略が提供されることができる。
図12の例示において画像#3は、例えば、猫の画像を含み、猫のラベルを含むことがあり得る。推論モデルは、画像#3に対し、画像#3が猫を含む確率を0.5の推論信頼度に分類することができる。この場合、画像#3は、実際の結果とラベルが一致しており推論モデルが中間程度の推論信頼度と推定したため、推論モデルの学習が容易ではないと理解されることができる。従って、プロセッサー(110)は、画像#3を当該類型のデータの追加が必要な第3類型のデータに分類することができる。前述の推論信頼度は、例示に過ぎず本開示はこれに限定されない。
プロセッサー(110)は、推論信頼度が予め設定されているしきい値以下のデータに対して、当該データに対して推論モデルの学習が不足していると判断することができる。例えば、プロセッサー(110)は、推論信頼度が予め設定されているしきい値以下のデータのラベルのクラスに属する他のデータの数、当該クラスのラベルを持つデータの全体データセットでの比率等に基づき、推論信頼度が予め設定されているしきい値以下のデータに対して、当該クラスのデータが不足していると判断することができる。つまり、推論信頼度が低い場合、データの数が不足したりラベルが間違ってることがあり得るため、プロセッサー(110)は、当該クラスの他のデータの数に基づき当該クラスのデータの数が不足していると判断することができる。
第3類型のデータに分類されるデータは、学習のためのデータが十分ではないとみることができる。従って、学習時に第3類型のデータに対してデータのさらなる収集だけでなく重みを付けたり、データ拡張(augmentation)を行うことが考慮されることができる。また、プロセッサー(110)は、第3類型のデータに対して提供されるデータ収集戦略をタグすることができる。例えば、図12の画像#3に「重み付け」、「データ拡張(augmentation)の実行」、「データ追加収集」等のタグが付けられることができる。前述の第3類型のデータに分類されるデータに対する重み付けは、例えば、当該クラスに属するデータの学習時の学習率(learning rate)を高く設定して、当該クラスに属するデータに対してより早く誤差が収束するようにすることもできる。
上述した内容に基づき、本開示に係るデータ収集戦略を策定する方法を利用するユーザーは、手元のデータに対するさらなる処理を決めることができる。例えば、第3類型のデータに分類されたデータに付いているタグによって、第3類型やそれに類似したデータに対する重み付け、データ拡張(augmentation)等が行われることができる。従って、人工知能やディープラーニングモデルのトレーニングのためのデータの収集が効率よく行われることができる。
図13は、本開示の複数の実施例によって実現できる例示的なコンピューティング環境を示す簡略で一般的な概略図である。
図13に示すコンピューター(1102)は、本開示に係るデータ収集戦略方法が行われるコンピューティング装置(100)のうち少なくとも1つに対応されることができる。
本開示の内容が一般的に1つ以上のコンピューター上で実行されることのできるコンピューターで実行可能な命令と関連付けられて前述されているが、当業者なら本開示の内容が、他のプログラムモジュールと結合して及び/またはハードウェアとソフトウェアとの組み合わせによって実現されることができることをよく理解するだろう。
一般的に、本明細書におけるモジュールは、特定のタスクを実行したり特定の抽象的なデータ類型を実装するルーティン、プロシージャ、プログラム、コンポーネント、データ構造、その他等々を含む。また、当業者なら本開示の方法がシングルプロセッサーまたはマルチプロセッサーコンピューターシステム、ミニコンピューター、メインフレームコンピューターはもちろん、パーソナルコンピューター、ハンドヘルドコンピューティング装置、マイクロプロセッサー-基盤またはプログラム可能な家電製品、その他等々(これらはそれぞれ1つ以上の関連する装置と繋がって動作することができる)をはじめとする、他のコンピューターシステム構成によって実施されることができることをよく理解できるだろう。
本開示の説明された実施例は、さらに、あるタスクが通信ネットワークを通じて繋がっている遠隔処理装置によって行われる分散コンピューティング環境で実施されることができる。分散コンピューティング環境において、プログラムモジュールは、ローカルや遠隔メモリー保存装置の両方に位置することができる。
コンピューターは通常コンピューターで読み取り可能な 多様な媒体を含む。コンピューターによってアクセス可能な媒体として、揮発性及び非揮発性媒体、一時的(transitory)及び非一時的(non-transitory)媒体、移動式及び非移動式媒体を含む。制限ではなく例として、コンピューターで読み取り可能な媒体は、コンピューターで読み取り可能な保存媒体及びコンピューターで読み取り可能な伝送媒体を含むことができる。
コンピューターで読み取り可能な保存媒体は、コンピューターで読み取り可能な命令、データ構造、プログラムモジュールまたはその他のデータのような情報を保存する任意の方法または技術によって実装される揮発性及び非揮発性媒体、一時的及び非一時的媒体、移動式及び非移動式媒体を含む。コンピューターで読み取り可能な保存媒体はRAM、ROM、EEPROM、フラッシュメモリーまたはその他のメモリー技術、CD-ROM、DVD(digital video disk)またはその他の光ディスク保存装置、磁気カセット、磁気テープ、磁気ディスク保存装置またはその他の磁気保存装置、またはコンピューターによってアクセスされることができ、必要な情報を保存するのに使われることのできる任意のその他の媒体を含むが、これに限定されない。
コンピューターで読み取り可能な伝送媒体は、通常、搬送波(carrier wave)またはその他の伝送メカニズム(transport mechanism)のような被変調データ信号(modulated data signal)にコンピューターで読み取り可能な命令、データ構造、プログラムモジュールまたはその他のデータ等を実装し、すべての情報伝達媒体を含む。被変調データ信号という用語は、信号の中で情報をエンコードするように、その信号の特性のうち一つ以上を設定または変更した信号を意味する。制限ではなく例として、コンピューターで読み取り可能な伝送媒体は、有線ネットワークまたは直接配線接続(direct-wired connection)のような有線媒体、そして音響、RF、赤外線、その他の無線媒体のような無線媒体を含む。前述の媒体のうち、いずれかによる任意の組み合わせもまたコンピューターで読み取り可能な伝送媒体の範囲の中に入るものとする。
コンピューター(1102)を含む本開示の多様な側面を実現する例示的な環境(1100)が示されており、コンピューター(1102)は、処理装置(1104)、システムメモリー(1106)、システムバス(1108)を含む。システムバス(1108)は、システムメモリー(1106)(これに限定されない)をはじめとするシステムコンポーネントを処理装置(1104)につなげる。処理装置(1104)は、多様な商用プロセッサー(110)のうち任意のプロセッサー(110)になり得る。デュエルプロセッサー(110)とその他のマルチプロセッサー(110)アーキテクチャもまた処理装置(1104)として利用されることができる。
システムバス(1108)は、メモリーバス、周辺装置バス、そして多様な商法バスアーキテクチャの中から、任意のものを使用するローカルバスにさらに相互連結されることのできるいくつかの類型のバス構造のうちいずれかになり得る。システムメモリー(1106)は、読み取り専用メモリー(ROM)(1110)やランダムアクセスメモリー(RAM)(1112)を含む。基本的な入出力システム(BIOS)は、ROM、EPROM、EEPROM等の非揮発性メモリー(1110)に保存され、このBIOSは、起動中の時等にコンピューター(1102)の中の複数の構成要素間の情報のやりとりをサポートする基本的なルーティンを含む。RAM(1112)は、またデータをキャッシュするための静的RAM等の高速RAMを含むことができる。
コンピューター(1102)においては、また、内蔵型ハードディスクドライブ(HDD)(1114)(例えば、EIDE、SATA)(この内蔵型ハードディスクドライブ(1114)はまた適切なシャシー(図示は省略)の中で外付け型の用途で構成されることができる)、磁気フロッピーディスクドライブ(FDD)(1116)(例えば、移動式ディスケット(1118)から読み取ったりそれに書き込むためのものである)及び光ディスクドライブ(1120)(例えば、CD-ROMディスク(1122)を読み取ったり、DVD等のその他の高容量光媒体から読み取ったり、それに書き込むためのものである)を含む。ハードディスクドライブ(1114)、磁気ディスクドライブ(1116)及び光ディスクドライブ(1120)はそれぞれハードディスクドライブインターフェース(1124)、磁気ディスクドライブインターフェース(1126)及び光ドライブインターフェース(1128)によってシステムバス(1108)に繋がることができる。外付け型ドライブの実装のためのインターフェース(1124)は、例えば、USB(Universal Serial Bus)やIEEE1394インターフェース技術のうち、少なくとも1つまたはその両方を含む。
これらのドライブ及びこれらに係るコンピューターで読み取り可能な媒体は、データ、データ構造、コンピューターで実行可能な命令、その他等々の非揮発性保存を提供する。コンピューター(1102)の場合、ドライブ及び媒体は、任意のデータを適切なデジタル形式に保存することに対応する。前述におけるコンピューターで読み取り可能な保存媒体に係る説明が、HDD、移動式磁気ディスク及びCDまたはDVD等の移動式光媒体について触れているが、当業者ならジップドライブ(zip drive)、磁気カセット、フラッシュメモリーカード、カートリッジ、その他等々のコンピューターにより読み取り可能な他の類型の保存媒体もまた例示的な運営環境で使われることができ、さらに、これらの媒体のうち任意のある媒体が、本開示の方法を実行するためのコンピューターで実行可能な命令を含むことができることをよく理解できるだろう。
運営システム(1130)、1つ以上のアプリケーションプログラム(1132)、その他のプログラムモジュール(1134)及びプログラムデータ(1136)をはじめとする多数のプログラムモジュールが、ドライブ及びRAM(1112)に保存されることができる。運営システム、アプリケーション、モジュール及び/またはデータの全部またはその一部分がまたRAM(1112)にキャッシュされることができる。本開示が商業的に利用可能な様々な運営システムまたは複数の運営システムの組み合わせにより実装されることができることをよく理解できるだろう。
ユーザーは、1つ以上の有線・無線の入力装置、例えば、キーボード(1138)及びマウス(1140)等のポインティング装置を通じてコンピューター(1102)に命令及び情報を入力することができる。その他の入力装置(図示は省略)としてはマイク、IRリモコン、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーン、その他等々があり得る。これら及びその他の入力装置が、よくシステムバス(1108)に繋がっている入力装置インターフェース(1142)を通じて処理装置(1104)に繋がることがあるが、並列ポート、IEEE1394直列ポート、ゲームポート、USBポート、IRインターフェース、その他等々のその他のインターフェースによって繋がることができる。
モニター(1144)または他の類型のディスプレイ装置も、ビデオアダプター(1146)等のインターフェースを通じてシステムバス(1108)に繋がる。モニター(1144)に加えて、コンピューターは一般的にスピーカー、プリンター、その他等々のその他の周辺出力装置(図示は省略)を含む。
コンピューター(1102)は、有線及び/または無線通信による(複数の)遠隔コンピューター(1148)等の1つ以上の遠隔コンピューターへの論理的接続を利用し、ネットワーク化された環境で動作することができる。(複数の)遠隔コンピューター(1148)は、ワークステーション、サーバーコンピューター、ルーター、パーソナルコンピューター、携帯用コンピューター、マイクロプロセッサー基盤娯の楽機器、ピア装置またはその他の通常のネットワークノードになることができ、一般的にコンピューター(1102)について述べられた構成要素のうち、多数またはその全部を含むが、簡略化するために、メモリー保存装置(1150)のみ図示されている。図示されている論理的接続は、近距離通信網(LAN)(1152)及び/または、より大きいネットワーク、例えば、遠距離通信網(WAN)(1154)における有線・無線の接続を含む。このようなLAN及びWANのネットワーキング環境は、オフィスや会社では一般的なもので、イントラネット等の全社的コンピューターネットワーク(enterprise-wide computer network)を容易にし、これらはすべて全世界のコンピューターネットワーク、例えば、インターネットに繋がることができる。
LANネットワーキング環境で使われるとき、コンピューター(1102)は、有線及び/または無線通信ネットワークインターフェース、または、アダプター(1156)を通じてローカルネットワーク(1152)に繋がる。アダプター(1156)は、LAN(1152)への有線または無線通信を容易にすることができ、このLAN(1152)は、また無線アダプター(1156)と通信するためにそれに設置されている無線アクセスポイントを含む。WANネットワーキング環境で使われるとき、コンピューター(1102)はモデム(1158)を含むことができたり、WAN(1154)上の通信サーバーに繋がったり、またはインターネットを通じる等、WAN(1154)を通じて通信を設定するその他の手段を持つ。内蔵型又は外付け型、そして、有線または無線装置になり得るモデム(1158)は、直列ポートインターフェース(1142)を通じてシステムバス(1108)に繋がる。ネットワーク化された環境において、コンピューター(1102)について説明されたプログラムモジュールまたはその一部分が、遠隔メモリー/保存装置(1150)に保存されることができる。図示されたネットワーク接続が例示的なものであり、複数のコンピューター間で通信リンクを設定する他の手段が使われることができるということはよく理解できるだろう。
コンピューター(1102)は、無線通信で配置されて動作する任意の無線装置またはオブジェクト、例えば、プリンター、スキャナー、デスクトップ及び/または携帯用コンピューター、PDA(portable data assistant)、通信衛生、無線で検出可能なタグに係る任意の装備または場所及、及び電話と通信する動作をする。これは、少なくともWi-Fi(登録商標)及びブルートゥース(登録商標)無線技術を含む。従って、通信は、従来のネットワークのように予め定義された構造であったり、単純に少なくとも2つの装置の間でのアドホック通信(adhoc communication)になり得る。
Wi-Fi(Wireless Fidelity)は、有線で繋がっていなくても、インターネット等への接続を可能にする。Wi-Fiは、このような装置、例えば、コンピューターが室内及び室外で、つまり基地局の通話圏内のどこからでもデータを送受信できるようにするセル電話のような無線技術である。Wi-Fiネットワークは、安全で信頼性があり、高速である無線接続を提供するためにIEEE802.11(a、b、g、その他)という無線技術を使う。コンピューターを互いに、インターネットに及び有線ネットワーク(IEEE802.3またはイーサネットを使う)に接続するためにWi-Fiが使われることができる。Wi-Fiネットワークは、非認可2.4や5GHzの無線帯域において、例えば、11Mbps(802.11a)または54Mbps(802.11b)のデータレートで動作したり、両帯域(デュエル帯域)を含む製品で動作することができる。
本開示の技術分野において通常の知識を持つ者は、ここに開示された実施例に係る説明で取り挙げられた多様な例示的な論理ブロック、モジュール、プロセッサー(110)、手段、回路、アルゴリズム段階が電子ハードウェア、(利便性のために、ここでは「ソフトウェア」と称される)多様な形のプログラムまたは設計コード、またはこれらすべての結合により実装されることができることを理解できるだろう。ハードウェア及びソフトウェアのこのような相互互換性を明確に説明するために、多様な例示的なコンポーネント、ブロック、モジュール、回路、段階がこれらの機能に着目して上記で一般的に説明された。このような機能がハードウェアやソフトウェアで実装されることについては、特定のアプリケーションおよび全体システムに対して付与される設計上の制限によって決まる。本開示の技術分野において通常の知識を持つ者は、個々の特定のアプリケーションについて多様な手法で説明された機能を実現することができるが、このような実現の決定は、本開示の範囲を逸脱するものと解釈されてはならない。
ここに示された多様な実施例は、方法、装置、または標準プログラミング及び/またはエンジニアリング技術を使った製造物品(article)によって実現できる。用語「製造物品」は、任意のコンピューターで読み取り可能な装置からアクセス可能なコンピュータープログラム、キャリアー、または媒体(media)を含む。例えば、コンピューターで読み取り可能な保存媒体は、磁気保存装置(例えば、ハードディスク、フロッピーディスク、磁気ストリップ等)、光学ディスク(例えば、CD、DVD等)、スマートカード及びラッシュメモリー装置(例えば、EEPROM、カード、スティック、キードライブ等)を含むが、これらに限定されるものではない。用語「機械で読み取り可能な媒体」は、(複数の)命令及び/またはデータを保存、保持、及び/または伝達できる無線チャンネル及び多様な他の媒体を含むが、これらに限定されるものではない。
示されたプロセスにおける複数の段階の特定の順番または階層構造は、例示的なアプローチの一例であることを理解すべきである。設計上の優先順位に基づき、本開示の範囲内で、プロセスにおける段階の特定の順番または階層構造が再配列されることができることを理解すべきである。添付の方法請求項は、サンプルとしての順番で、多様な段階のエレメントを提供するが、示された特定の順番または階層構造に限定されることを意味するわけではない。
示された実施例に対する説明は、任意の本開示の技術分野において通常の知識を持つ者が、本開示を利用したりまたは実施できるように提供される。このような実施例に対する多様な変形は、本開示の技術分野において通常の知識を持つ者にとっては明確であり、ここに定義された一般的な原理は、本開示の範囲を逸脱することなく他の実施例に適用されることができる。従って、本開示はここに示す実施例によって限定されるものではなく、ここに示す原理及び新規な特徴と一貫する最広義の範囲で解釈されるべきである。