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

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

▶ ネイバー コーポレーションの特許一覧

特許7567148屋内位置推定のための半教師あり変分オートエンコーダ
<>
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図1
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図2
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図3
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図4
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図5
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図6a
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図6b
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図6c
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図7a
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図7b
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図8
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図9a
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図9b
  • 特許-屋内位置推定のための半教師あり変分オートエンコーダ 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】屋内位置推定のための半教師あり変分オートエンコーダ
(51)【国際特許分類】
   G01S 5/02 20100101AFI20241008BHJP
   G06N 3/04 20230101ALI20241008BHJP
【FI】
G01S5/02 Z
G06N3/04
【請求項の数】 22
【外国語出願】
(21)【出願番号】P 2020161495
(22)【出願日】2020-09-25
(65)【公開番号】P2021056222
(43)【公開日】2021-04-08
【審査請求日】2023-07-04
(31)【優先権主張番号】19306204.9
(32)【優先日】2019-09-26
(33)【優先権主張国・地域又は機関】EP
(31)【優先権主張番号】16/904,693
(32)【優先日】2020-06-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】ボリス チドロフスキ
(72)【発明者】
【氏名】レオニッド アンツフェルド
【審査官】渡辺 慶人
(56)【参考文献】
【文献】特開2017-162357(JP,A)
【文献】特表2016-519288(JP,A)
【文献】米国特許出願公開第2017/0161635(US,A1)
【文献】国際公開第2019/118644(WO,A1)
【文献】国際公開第2018/046412(WO,A1)
【文献】MOHAMMADI, Mehdi et al.,Semisupervised Deep Reinforcement Learning in Support of IoT and Smart City Services,IEEE Internet of Things Journal,Volume: 5, Issue: 2, April 2018,米国,IEEE,2017年06月09日,Pages: 624 - 635,インターネット: <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7945258><DOI: 10.1109/JIOT.2017.2712560>
(58)【調査した分野】(Int.Cl.,DB名)
G01S 5/00 - 5/14
19/00 - 19/55
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
屋内環境でのコンピューティングデバイスの位置を予測するように構成された予測子を学習させるコンピュータ実装方法であって、
屋内環境の位置において無線アクセスポイントから受信された信号の強度を含む学習データを受信するステップであって、前記学習データは、
信号強度の値および位置ラベルを含むラベリングされた(labeled)データのサブセットと、
信号強度の値を含み、位置を示すラベルを含まないラベリングされていない(unlabeled)データのサブセットを含む、受信するステップと、
前記学習データの前記信号強度の値の再構成損失を最小化するように変分オートエンコーダ(variational autoencoder)を学習させるステップであって、前記変分オートエンコーダは、
潜在変数(latent variable)に前記信号強度の値をエンコードするように構成されたエンコーダニューラルネットワークと、
前記再構成損失を判定するために、再構成された信号強度の値に前記潜在変数をデコードするように構成されたデコーダニューラルネットワークを含む、学習させるステップと、
ラベリングされたデータに対する予測損失を最小化するように分類ニューラルネットワークを学習させるステップとを含み、
前記分類ニューラルネットワークは、前記潜在変数に基づいて予測された位置を生成し、
前記エンコーダニューラルネットワークおよび前記分類ニューラルネットワークは、前記屋内環境での前記コンピューティングデバイスの位置を予測するように構成された前記予測子を形成する、コンピュータ実装方法。
【請求項2】
屋内環境でのコンピューティングデバイスの位置を予測するように構成された予測子を学習させるコンピュータ実装方法であって、
屋内環境の位置において無線アクセスポイントから受信された信号の強度に関連した学習データを受信するステップであって、前記学習データは、
信号強度の値および位置ラベルを含むラベリングされたデータのサブセットと、
信号強度の値を含み、位置を示すラベルを含まないラベリングされていないデータのサブセットを含む、受信するステップと、
変分オートエンコーダと共に分類ニューラルネットワークを学習させるステップとを含み、
前記分類ニューラルネットワークは、前記学習データの信号強度の値を入力として受信し、予測された位置を前記変分オートエンコーダのデコーダニューラルネットワークに出力するように構成され、
前記変分オートエンコーダと共に前記分類ニューラルネットワークを学習させるステップは、再構成損失および予測損失を最小化するステップを含み、前記再構成損失は、前記学習データの前記信号強度の値と再構成された前記信号強度の値との間で計算され、前記予測損失は、前記予測された位置と前記学習データの前記ラベリングされたデータのサブセットに対する前記位置ラベルとの間で計算され、
前記分類ニューラルネットワークは、前記屋内環境での前記コンピューティングデバイスの位置を予測するように構成された予測子を形成する、コンピュータ実装方法。
【請求項3】
前記分類ニューラルネットワークは、前記予測された位置を前記変分オートエンコーダの前記デコーダニューラルネットワークにカテゴリカル潜在変数(categorical latent variable)として出力するように構成される、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記変分オートエンコーダは、前記信号強度の値を連続潜在変数にエンコードするように構成されたエンコーダニューラルネットワークを含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記デコーダニューラルネットワークは、前記カテゴリカル潜在変数および前記連続潜在変数を再構成された信号強度の値にデコードする、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記再構成損失および前記予測損失を最小化するステップは、前記エンコーダニューラルネットワークの第1の隠れ状態(hidden states)、前記デコーダニューラルネットワークの第2の隠れ状態、および前記分類ニューラルネットワークの第3の隠れ状態に対する第1項(first term)および第2項(second term)の和の勾配(gradients)を決定するステップを含む、請求項4に記載のコンピュータ実装方法。
【請求項7】
前記第1項(first term)は、前記学習データに対する前記再構成損失を測定し、前記第2項(second term)は、前記ラベリングされたデータのサブセットに対する前記予測損失を測定する、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記エンコーダニューラルネットワークは、X座標に対するエンコーダニューラルネットワーク、Y座標に対するエンコーダニューラルネットワーク、およびZ座標に対するエンコーダニューラルネットワークを含む、請求項4に記載のコンピュータ実装方法。
【請求項9】
前記デコーダニューラルネットワークは、X座標に対するデコーダニューラルネットワーク、Y座標に対するデコーダニューラルネットワーク、およびZ座標に対するデコーダニューラルネットワークを含む、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記変分オートエンコーダを学習させるステップは、前記Y座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークと独立して、そして前記Z座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークと独立して、前記X座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークを学習させるステップを含む、請求項9に記載のコンピュータ実装方法。
【請求項11】
前記変分オートエンコーダを学習させるステップは、前記Z座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークと独立して、前記Y座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークを学習させるステップを含む、請求項10に記載のコンピュータ実装方法。
【請求項12】
前記X座標に対する前記エンコーダニューラルネットワークの出力、前記Y座標に対する前記エンコーダニューラルネットワークの出力、および前記Z座標に対する前記エンコーダニューラルネットワークの出力は、連結(concatenate)されて前記潜在変数を形成する、請求項9に記載のコンピュータ実装方法。
【請求項13】
屋内環境でのコンピューティングデバイスの位置を予測するように構成された予測子であって、前記予測子は、1つ以上のプロセッサおよびコードによって実装され、前記予測子は、
潜在変数に信号強度の値をエンコードするように構成されたエンコーダニューラルネットワークと、 前記潜在変数に基づいて前記コンピューティングデバイスの前記位置に対する予測された位置を生成するように構成された分類ニューラルネットワークとを含み、
前記プロセッサが、
ラベリングされたデータおよびラベリングされていないデータを含む学習データを受信し、
構成損失を最小化するために、前記ラベリングされたデータおよび前記ラベリングされていないデータの両方を用いて前記エンコーダニューラルネットワークおよびデコーダニューラルネットワークを含む変分オートエンコーダ学習さ及び
前記ラベリングされたデータの予測損失を最小化するため前記分類ニューラルネットワークを学習さ、ようにコンピュータを機能させる、予測子。
【請求項14】
屋内環境でのコンピューティングデバイスの位置を予測するように構成された予測子であって、前記予測子は、1つ以上のプロセッサおよびコードによって実装され、前記予測子は、信号強度の値から予測された位置を生成するように構成された分類ニューラルネットワークを含み、
前記プロセッサが、
ラベリングされたデータおよびラベリングされていないデータを含む学習データを受信し、 構成損失を最小化するために、前記ラベリングされたデータおよびラベリングされていないデータの両方を用いてエンコーダニューラルネットワークおよびデコーダニューラルネットワークを含む変分オートエンコーダ学習さ及び
前記ラベリングされたデータの予測損失を最小化するために前記分類ニューラルネットワークを学習させ、
前記学習の間、前記分類ニューラルネットワーク、前記予測された位置を前記変分オートエンコーダの前記デコーダニューラルネットワークに出力する、ようにコンピュータを機能させる、予測子。
【請求項15】
前記変分オートエンコーダと共に前記分類ニューラルネットワークを学習させる間、前記予測された位置は、前記変分オートエンコーダのカテゴリカル潜在変数である、請求項14に記載の予測子。
【請求項16】
前記分類ニューラルネットワークが再構成損失および予測損失を最小化することに基づいて変分オートエンコーダと共に学習されることは、前記変分オートエンコーダのエンコーダニューラルネットワークの第1の隠れ状態、前記デコーダニューラルネットワークの第2の隠れ状態、および前記分類ニューラルネットワークの第3の隠れ状態に対する第1項(first term)および第2項(second term)の和の勾配を決定することを含む、請求項14に記載の予測子。
【請求項17】
前記第1項(first term)は、前記再構成損失を測定し、前記第2項(second term)は、前記予測損失を測定する、請求項16に記載の予測子。
【請求項18】
前記エンコーダニューラルネットワークは、X座標に対するエンコーダニューラルネットワーク、Y座標に対するエンコーダニューラルネットワーク、およびZ座標に対するエンコーダニューラルネットワークを含み、
前記デコーダニューラルネットワークは、X座標に対するデコーダニューラルネットワーク、Y座標に対するデコーダニューラルネットワーク、およびZ座標に対するデコーダニューラルネットワークを含む、請求項17に記載の予測子。
【請求項19】
前記X座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークは、前記Y座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークと独立して、そして前記Z座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークと独立して学習され、
前記Y座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークは、前記Z座標に対する前記エンコーダニューラルネットワークおよび前記デコーダニューラルネットワークと独立して学習される、請求項18に記載の予測子。
【請求項20】
予測ラベルは、位置座標を示す多変量(multivariate)データの値であり、前記予測損失は、回帰損失(regression loss)である、請求項14に記載の予測子。
【請求項21】
前記予測ラベルの多変量データの値によって表示された絶対座標に加重された近傍投影(weighted neighborhood projection)を適用するように構成された1つ以上のプロセッサをさらに含み、
前記加重された近傍投影は、ラベリングされたノードのサブセットからの多数の最近接近傍ノードを採用する、請求項20に記載の予測子。
【請求項22】
前記最近接近傍ノードの数は2つである、請求項21に記載の予測子。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2019年9月26日に出願されたEP出願番号第19306204.9の優先権を主張する。参照された出願の全体開示内容は、本明細書に参照として含まれる。
【0002】
技術分野
本開示内容は、屋内位置推定(indoor localization)のためのシステムおよび方法に関するものであり、特に屋内位置推定のための変分オートエンコーダ(variational autoencoder)に関するものである。
【背景技術】
【0003】
本明細書に提供された発明の背景となる技術の説明は、本開示内容の文脈を一般的に提示するためのものである。本背景技術の項目で記述された範囲において、本発明の発明者の研究だけでなく、出願当時の従来技術として認められない本説明の態様は、本開示内容に反する先行技術として明示的にもまたは黙示的にも認められない。
【0004】
電子デバイスの多くのアプリケーションが電子デバイスの現在の位置を受信するのに依存しているが、これは屋内環境(これは完全に密閉されたところ(例えば、建物または地下洞窟の内部)などであり得る)または部分的に密閉されたところ(例えば、駐車場またはトンネル内部)では容易に利用することができない場合がある。屋内では、衛星との視線(line of sight)、GPS(global positioning system)、ガリレオまたはGLONASSグローバルナビゲーション衛星システムのような衛星信号を介した位置決めが利用できない場合がある。
【0005】
屋内位置決めは、無線アクセスポイントから受信された信号に依存することができる。モバイルエージェントまたはデバイスの位置を推定するために、3つ以上の近傍のWi-Fiアクセスポイントの位置を知っている場合、三辺測量を使用することができる。しかし、Wi-Fiアクセスポイントの位置が多数の他のプロバイダによって配信され得るため、Wi-Fiアクセスポイントの位置が利用不可であったり、最新状態でなかったりする場合がある。複雑な屋内環境は、壁やドアなどのような障害物を含むことができ、頻繁に移動する物体を含むことができるため、信号のマルチパスの影響はWi-Fi信号の三辺測量を難しくする。
【0006】
この問題を克服する1つの方法は、屋内位置決めのためのWi-Fiフィンガープリンティング(fingerprinting)を採用することである。Wi-Fiフィンガープリンティングは、1つの位置で受信された多様なアクセスポイントからの信号強度のリストを含み、アクセスポイント自体の正確な位置を知ることに依存しない。建物の無線(または信号)マップを取得するために信号強度のリストを予め収集することができる。Wi-Fiフィンガープリンティングが正常に動作するためには、無線マップを稠密で、最新の状態にする。しかし、屋内位置決めのためにWi-Fiデータに座標、部屋識別子または建物番号のような地理的タグをラベリングする可能性があるため、無線マップを生成するのに大きな費用が必要となる。
【0007】
データの収集とアノテーション作業を減らすことが望ましい。
【0008】
半教師あり(semi-supervised)機械学習は、ラベリングされた(labeled)データとラベリングされていない(unlabeled)データを使用した学習を含み、機械学習(ML)に使用される。機械学習を使用してオフラインWi-Fiデータの収集を減らすことができる。半教師あり機械学習において、システムには、データポイント(xi)のタプルおよびラベルとも呼ばれるアノテーション(yi)を含む学習セット
【0009】
【数1】
が提供され、ラベリングされていないデータポイント(xi)が追加的に提供される。システムは、予測誤差を最小化する最良の関数関係(x→y)を推論する。この問題は、また、学習セットの空間より小さい潜在変数(latent variable)(z)の空間でマッピング関数(F:x→z)を探すものとして記述されることができる。そして、最良の予測子(predictor)は、パラメータ(θ)を有するzの関数
【0010】
【数2】
で定義されることができる。
【0011】
半教師あり学習は、ラベリングされていないデータによって提供される基本データセットの分布に対する情報により増強された地図学習として見做されることができる。ラベリングされていないデータは、予測目標として予測子を明示的に学習させるのに使用されないことができるが、2つのデータポイントが高密度領域において近ければ、それぞれの予測も近くなければならないと仮定することができるため、ラベリングされていないデータは予測子の予測を向上させることができる。同様に、データポイントがデータポイントの分布の同一のクラスタにある場合、これらはアノテーションの空間において近いとすることができ、例えば、アノテーションと同じクラスラベルを有する。
【0012】
変分オートエンコーダ(VAE)は、深層ニューラルネットワーク(deep neural networks)で実装された確率的生成モデルの1つのクラスである。VAEは、確率的エンコーダニューラルネットワークとデコーダニューラルネットワークを同時に学習させる。VAEは、均一な事前分布(p(z))から潜在変数(latent variable)(z)のサンプルを導出することを含む。潜在変数の空間は、VAEの入力および出力よりも小さい次元とすることができる。サンプル(z)は、デコーダニューラルネットワークを通過してオリジナル入力を再構成する。
【0013】
VAEは、潜在変数に対するベイジアン事後分布(Bayesian posterior distribution)である
【0014】
【数3】
を学習することを目標とするが、これは扱いやすい(tractable)式ではない。VAEは、変分推論を採用してパラメータ的分布、例えば、エンコーダニューラルネットワークによりパラメータが学習されたガウス分布によって
【0015】
【数4】
を近似化する。課題は、学習セットの要素(xi)を生成する可能性を最大化する潜在変数(z)を探すことである。
【0016】
屋内位置決めのための分類子(classifier)の学習においてラベリングされたデータの必要性を減少させることが望ましい。
【先行技術文献】
【特許文献】
【0017】
【文献】韓国登録特許第10-0381743号
【発明の概要】
【発明が解決しようとする課題】
【0018】
本開示内容は、ラベリングされる少量の学習データのみを必要としながらも、依然として屋内位置決めのための十分に正確な分類子を生成するディープラーニング技法を提案する。提案されたディープラーニング技法は、変分オートエンコーダ(VAE)に基づくものである。提案されたディープラーニング技法は、学習データセットの1~5%程度の低いアノテーション比率で合理的かつ正確な予測子を得られるようにする。
【課題を解決するための手段】
【0019】
一実施例によると、屋内環境でのコンピューティングデバイスの位置に対する予測子を学習させるコンピュータ実装方法が提供される。方法は、屋内環境の位置において受信された無線アクセスポイントからの信号の強度に関連した学習データを受信するステップを含み、学習データは、信号強度の値および位置ラベルを含むラベリングされたデータのサブセット、および信号強度の値だけを含むラベリングされていないデータを含む。方法は、学習データの信号強度の値の再構成損失を最小化するように変分オートエンコーダを学習させるステップを含み、変分オートエンコーダは、潜在変数に信号強度の値をエンコードするエンコーダニューラルネットワーク、および潜在変数を、再構成損失を計算するための再構成された信号強度の値にデコードするデコーダニューラルネットワークを含む。
【0020】
方法は、分類ニューラルネットワークを学習させてラベリングされたデータに対する予測損失を最小化するステップをさらに含み、分類ニューラルネットワークは、潜在変数を採用して予測された位置を生成する。学習が完了すると、エンコーダニューラルネットワークと分類ニューラルネットワークは、屋内環境でのコンピューティングデバイスの位置に対する予測子を形成する。
【0021】
他の実施例によると、屋内環境でのコンピューティングデバイスの位置に対する予測子を学習させる追加のコンピュータ実装方法が提供される。方法は、屋内環境の位置において受信された無線アクセスポイントからの信号の強度に関連した学習データを受信するステップを含み、学習データは、信号強度の値および位置ラベルを含むラベリングされたデータのサブセットおよび信号強度の値だけを含むラベリングされていないデータを含む。方法は、分類ニューラルネットワークを変分オートエンコーダと共に学習させるステップを含み、分類ニューラルネットワークは、学習データの信号強度の値を入力として受信し、予測された位置を変分オートエンコーダのデコーダニューラルネットワークに出力する。変分オートエンコーダと共に分類ニューラルネットワークを学習させるステップは、再構成損失および予測損失を最小化することに基づいており、再構成損失は、学習データの信号強度の値と再構成された信号強度の値との間で計算され、予測損失は、予測された位置と学習データのラベリングされたデータのサブセットに対する位置ラベルとの間で計算される。学習が完了した後、分類ニューラルネットワークは、屋内環境でのコンピューティングデバイスの位置に対する予測子を形成する。
【0022】
一実施例によると、屋内環境でのコンピューティングデバイスの位置に対する予測子が提供され、予測子は、1つ以上のコンピュータによって実装される。予測子は、潜在変数に信号強度の値をエンコードするエンコーダニューラルネットワークを含む。予測子は、潜在変数を採用してコンピューティングデバイスの予測された位置を生成する分類ニューラルネットワークを含み、エンコーダニューラルネットワークは、対応するデコーダニューラルネットワークと共に再構成損失を最小化するための変分オートエンコーダとして学習され、分類ニューラルネットワークは、予測損失を最小化するよう学習された。
【0023】
他の実施例によると、屋内環境でのコンピューティングデバイスの位置に対する予測子が提供され、予測子は、1つ以上のコンピュータによって実装される。予測子は、分類ニューラルネットワークを含み、分類ニューラルネットワークは、信号強度の値から予測された位置を生成する。分類ニューラルネットワークは、変分オートエンコーダと共に学習され、学習の間に分類ニューラルネットワークは、予測された位置を変分オートエンコーダのデコーダニューラルネットワークに出力し、分類ニューラルネットワークを変分オートエンコーダと共に学習させることは、再構成損失および予測損失を最小化することに基づくものである。
【0024】
他の実施例によると、プログラムが提供され、プログラムは、1つ以上のプロセッサによって実行されるとき、前述されたように、屋内環境でのコンピューティングデバイスの位置に対する予測子を学習させる方法を遂行するコンピュータ実行可能命令語を含むことができる。実施例によると、コンピュータ実行可能命令語は、前述された実施例に基づいて記述されたように、屋内環境でのコンピューティングデバイスの位置に対する予測子を提供することができる。
【0025】
一特徴において、屋内環境でのコンピューティングデバイスの位置を予測するように構成された予測子を学習させるコンピュータ実装方法が記述される。方法は、屋内環境の位置において無線アクセスポイントから受信された信号の強度を含む学習データを受信するステップであって、学習データは、信号強度の値および位置ラベルを含むラベリングされたデータのサブセットと、信号強度の値を含み、位置を示すラベルを含まないラベリングされていないデータのサブセットとを含む、受信するステップと、学習データの信号強度の値の再構成損失を最小化するように変分オートエンコーダを学習させるステップであって、変分オートエンコーダは、潜在変数に信号強度の値をエンコードするように構成されたエンコーダニューラルネットワークと、再構成損失を判定するために、再構成された信号強度の値に潜在変数をデコードするように構成されたデコーダニューラルネットワークとを含む、学習させるステップと、ラベリングされたデータに対する予測損失を最小化するように分類ニューラルネットワークを学習させるステップであって、分類ニューラルネットワークは、潜在変数に基づいて予測された場所を生成する、学習させるステップとを含み、エンコーダニューラルネットワークおよび分類ニューラルネットワークは、屋内環境でのコンピューティングデバイスの位置を予測するように構成された予測子を形成する。
【0026】
一特徴において、屋内環境でのコンピューティングデバイスの位置を予測するように構成された予測子を学習させるコンピュータ実装方法が記述される。方法は、屋内環境の位置において無線アクセスポイントから受信された信号の強度に関連した学習データを受信するステップであって、学習データは、信号強度の値および位置ラベルを含むラベリングされたデータのサブセットと、信号強度の値を含み、位置を示すラベルを含まないラベリングされていないデータのサブセットとを含む、受信するステップと、変分オートエンコーダと共に分類ニューラルネットワークを学習させるステップとを含み、分類ニューラルネットワークは、学習データの信号強度の値を入力として受信し、予測された位置を変分オートエンコーダのデコーダニューラルネットワークに出力するように構成され、変分オートエンコーダと共に分類ニューラルネットワークを学習させるステップは、再構成損失および予測損失を最小化するステップを含み、再構成損失は、学習データの信号強度の値と再構成された信号強度の値との間で計算され、予測損失は、予測された位置と学習データのラベリングされたデータのサブセットに対する位置のラベルの間で計算され、分類ニューラルネットワークは、屋内環境でのコンピューティングデバイスの位置を予測するように構成された予測子を形成する。
【0027】
一特徴において、予測子は、屋内環境でのコンピューティングデバイスの位置を予測するように構成され、予測子は、1つ以上のプロセッサおよびコードによって実装される。予測子は、潜在変数に信号強度の値をエンコードするように構成されたエンコーダニューラルネットワーク、および潜在変数に基づいてコンピューティングデバイスの位置に対する予測された位置を生成するように構成された分類ニューラルネットワークを含み、エンコーダニューラルネットワークは、再構成損失を最小化するために変分オートエンコーダとしてデコーダニューラルネットワークと共に学習され、分類ニューラルネットワークは、予測損失を最小化するように学習される。
【0028】
一特徴において、予測子は、屋内環境でのコンピューティングデバイスの位置を予測するように構成され、予測子は、1つ以上のプロセッサおよびコードによって実装される。予測子は、信号強度の値から予測された位置を生成するように構成された分類ニューラルネットワークを含み、分類ニューラルネットワークは、再構成損失および予測損失を最小化することに基づいて変分オートエンコーダと共に学習され、学習の間に、分類ニューラルネットワークは、予測された位置を変分オートエンコーダのデコーダニューラルネットワークに出力する。
【0029】
本開示の追加の適用分野は、発明を実施するための具体的な内容、請求の範囲および図面から明らかになるだろう。発明を実施するための具体的な内容および特定の例示は、単に例示のためのものであり、本開示の範囲を制限しようとするものではない。
【図面の簡単な説明】
【0030】
本開示内容は、発明を実施するための具体的な内容および以下の添付図面からより完全に理解されるものである。
図1】Wi-Fiベースの屋内位置推定のための予測子を学習させることに関する概略図である。
図2】Wi-Fiベースの屋内位置推定のための予測子を学習させることに関する概略図である。
図3】Wi-Fiベースの屋内位置推定のための予測子を学習させる方法のフローチャートである。
図4】Wi-Fiベースの屋内位置推定のための予測子を学習させる方法のフローチャートである。
図5】Wi-Fiベースの屋内位置推定のための予測子の実施例において実装された構造化された回帰分析の方法を図示する。
図6a】Wi-Fiベースの屋内位置推定のための予測子のテストに採用された建物の航空画像である。
図6b】航空画像において建物をハイライトする。
図6c】建物でのWi-Fiアクセスポイントの分布を図示する。
図7a】屋内のWi-Fi位置推定方法に対するアノテーション比率に応じた位置誤差のプロットを図示する。
図7b】多様なアノテーション比率を有する一実施例に基づいて学習された予測子の位置誤差の累積密度関数を図示する。
図8】アノテーション比率およびテストの時間にアクセスポイントの可用性に基づいて実施例による予測子の位置推定誤差を図示する。
図9a】変分オートエンコーダによるWi-Fi信号の再構成のt分布型確率的近傍埋め込み(t-distributed stochastic neighbor embedding)を図示する。
図9b】変分オートエンコーダによるWi-Fi信号の再構成のt分布型確率的近傍埋め込み(t-distributed stochastic neighbor embedding)を図示する。
図10】開示された方法が遂行され得る例示的なアーキテクチャを図示する。 図面において、参照番号は類似および/または同一の要素を識別するために再使用されることができる。
【発明を実施するための形態】
【0031】
発明の概要
一態様によると、予測された位置を変分オートエンコーダのデコーダニューラルネットワークに出力することは、予測された位置をカテゴリカル潜在変数としてデコーダニューラルネットワークに出力することを含み、変分オートエンコーダは、信号強度の値を連続潜在変数にエンコードするエンコーダニューラルネットワークを含み、デコーダニューラルネットワークは、カテゴリカル潜在変数および連続潜在変数を再構成された信号強度の値にデコードする。
【0032】
一態様によると、再構成損失および予測損失を最小化することは、エンコーダニューラルネットワークの第1の隠れ状態、デコーダニューラルネットワークの第2の隠れ状態、および分類ニューラルネットワークの第3の隠れ状態に対する第1項および第2項の和の傾きを決定することを含み、第1項は、学習データに対する再構成損失を測定し、第2項は、学習データのラベリングされたデータのサブセットに対する予測損失を測定する。
【0033】
他の態様によると、エンコーダニューラルネットワークは、X座標に対するエンコーダニューラルネットワーク、Y座標に対するエンコーダニューラルネットワーク、Z座標に対するエンコーダニューラルネットワークを含み、デコーダニューラルネットワークは、対応するデコーダネットワークを含む。オートエンコーダを学習させるステップは、座標に対するそれぞれのエンコーダ-デコーダのペアを他の座標に対するエンコーダ-デコーダのペアと独立して学習させるステップを含むことができる。
【0034】
一態様によると、X座標に対するエンコーダニューラルネットワーク、Y座標に対するエンコーダニューラルネットワーク、およびZ座標に対するエンコーダニューラルネットワークの出力が連結されて(concatenated)潜在変数を形成する。
【0035】
一態様によると、変分オートエンコーダと共に分類ニューラルネットワークを学習させる間、予測された位置は、変分オートエンコーダのカテゴリカル潜在変数である。
【0036】
一態様によると、再構成損失および予測損失を最小化することは、変分オートエンコーダのエンコーダニューラルネットワークの第1の隠れ状態、デコーダニューラルネットワークの第2の隠れ状態、および分類ニューラルネットワークの第3の隠れ状態に対する第1項および第2項の和の傾きを決定することを含み、第1項は、再構成損失を測定し、第2項は、予測損失を測定する。
【0037】
一態様によると、エンコーダニューラルネットワークは、X座標に対するエンコーダニューラルネットワーク、Y座標に対するエンコーダニューラルネットワーク、Z座標に対するエンコーダニューラルネットワークを含み、デコーダニューラルネットワークは、対応するデコーダネットワークを含み、座標に対するそれぞれのエンコーダ-デコーダのペアは、他の座標に対するエンコーダ-デコーダのペアと独立して学習される。
【0038】
さらに他の態様によると、予測ラベルは、位置座標を示す多変量データの値であり、予測損失は、回帰損失である。
【0039】
さらに他の態様によると、予測子は、予測ラベルの多変量データの値によって表示された絶対座標に加重された近傍投影(weighted neighborhood projection)を適用するように構成された投影コンポーネントを含み、加重された近傍投影は、ラベリングされたノードのサブセットからの多数の最近接近傍ノードを採用する。実施例において、最近接近傍ノードの数は2つであることができる。
【0040】
追加の特徴において、分類ニューラルネットワークは、予測された位置を変分オートエンコーダのデコーダニューラルネットワークにカテゴリカル潜在変数として出力するように構成される。
【0041】
追加の特徴において、変分オートエンコーダは、信号強度の値を連続潜在変数にエンコードするように構成されたエンコーダニューラルネットワークを含む。
【0042】
追加の特徴において、デコーダニューラルネットワークは、カテゴリカル潜在変数および連続潜在変数を再構成された信号強度の値にデコードする。
【0043】
追加の特徴において、再構成損失および予測損失を最小化するステップは、エンコーダニューラルネットワークの第1の隠れ状態、デコーダニューラルネットワークの第2の隠れ状態、および分類ニューラルネットワークの第3の隠れ状態に対する第1項および第2項の和の勾配を決定することを含む。
【0044】
追加の特徴において、第1項は、学習データに対する再構成損失を測定し、第2項は、ラベリングされたデータのサブセットに対する予測損失を測定する。
【0045】
追加の特徴において、エンコーダニューラルネットワークは、X座標に対するエンコーダニューラルネットワーク、Y座標に対するエンコーダニューラルネットワーク、およびZ座標に対するエンコーダニューラルネットワークを含む。
【0046】
追加の特徴において、デコーダニューラルネットワークは、X座標に対するデコーダニューラルネットワーク、Y座標に対するデコーダニューラルネットワーク、およびZ座標に対するデコーダニューラルネットワークを含む。
【0047】
追加の特徴において、変分オートエンコーダを学習させるステップは、Y座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークと独立して、そしてZ座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークと独立して、X座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークを学習させるステップを含む。
【0048】
追加の特徴において、変分オートエンコーダを学習させるステップは、Z座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークと独立して、Y座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークを学習させるステップを含む。
【0049】
追加の特徴において、X座標に対するエンコーダニューラルネットワークの出力、Y座標に対するエンコーダニューラルネットワークの出力、およびZ座標に対するエンコーダニューラルネットワークの出力は、連結されて潜在変数を形成する。
【0050】
追加の特徴において、変分オートエンコーダと共に分類ニューラルネットワークを学習させる間、予測された位置は、変分オートエンコーダのカテゴリカル潜在変数である。
【0051】
追加の特徴において、分類ニューラルネットワークが再構成損失および予測損失を最小化することに基づいて変分オートエンコーダと共に学習されることは、変分オートエンコーダのエンコーダニューラルネットワークの第1の隠れ状態、デコーダニューラルネットワークの第2の隠れ状態、および分類ニューラルネットワークの第3の隠れ状態に対する第1項および第2項の和の勾配を決定することを含む。
【0052】
追加の特徴において、第1項は、再構成損失を測定し、第2項は、予測損失を測定する。
【0053】
追加の特徴において、エンコーダニューラルネットワークは、X座標に対するエンコーダニューラルネットワーク、Y座標に対するエンコーダニューラルネットワーク、およびZ座標に対するエンコーダニューラルネットワークを含み、デコーダニューラルネットワークは、X座標に対するデコーダニューラルネットワーク、Y座標に対するデコーダニューラルネットワーク、およびZ座標に対するデコーダニューラルネットワークを含む。
【0054】
追加の特徴において、X座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークは、Y座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークと独立して、そしてZ座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークと独立して学習され、Y座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークは、Z座標に対するエンコーダニューラルネットワークおよびデコーダニューラルネットワークと独立して学習される。
【0055】
追加の特徴において、予測ラベルは、位置座標を示す多変量データの値であり、予測損失は、回帰損失である。
【0056】
追加の特徴において、1つ以上のプロセッサは、予測ラベルの多変量データの値によって表示された絶対座標に加重された近傍投影を適用するように構成され、加重された近傍投影は、ラベリングされたノードのサブセットからの多数の最近接近傍ノードを採用する。
【0057】
追加の特徴において、最近接近傍ノードの数は2つである。
【0058】
ラベリングされた学習データの小さい部分のみを必要とする半教師あり学習方式でWi-Fiベースの屋内位置推定のためのディープラーニングシステムを学習させるシステムが以下のように記述される。説明の目的として、例示および特定の詳細事項が実施例の完全な理解を提供するために提示される。実施例は、これらの例示の特徴のうち一部または全部を、単独または以下に記述された他の特徴と組み合わせて含むことができ、本明細書において記述された特徴および概念の修正および同等性をさらに含むことができる。以下の説明は図1図10を参照して、例示的な実施例および例示的な技術的利点を詳細に説明する。
【0059】
図1および図2のシステムを学習させることは、ラベリングされたデータのサブセット
【0060】
【数5】
を含む学習データを採用する。nは、ラベリングされたデータの数であり、ベクトル(xi∈R)は、それぞれWi-Fiアクセスポイント(i=1,...,m)のうち1つから受信された信号強度の値のベクトルである。変数(y)は、絶対座標を示すカテゴリカル変数(categorical variables)または多変量変数(multivariate variables)であり得るアノテーションである。
【0061】
(y)がカテゴリ値である前者の場合、予測子を学習させるための実施例によって解決される問題は分類問題である。後者の場合、yは絶対座標を示す多変量データであり、実施例は、回帰分析設定(regression setting)に関連される。
【0062】
学習データは、信号強度の値(xi)のコレクションを含まないラベリングされていないデータの値
【0063】
【数6】
を含む。以下において、ラベリングされたデータの分布は、p(x,y)によって表現され、ラベリングされていないデータの分布は、p(x)によって表現される。半教師あり学習方法の基本仮定は、
【0064】
【数7】
およびp(x)がxの同一な分布からサンプリングされるということである。
【0065】
特に、本明細書において記述された例示的な実施例は、
【0066】
【数8】
である場合にも、正確な予測子を生成することができるようにする。分数
【0067】
【数9】
は、アノテーション比率とも称される。アノテーション比率は、学習データにおいてラベリングされたデータとラベリングされていないデータの比率に対応する。
【0068】
本明細書において記述された学習方法およびシステムは、変分オートエンコーダに基づくものである。変分オートエンコーダの例示は、「ディープ-生成モデルを利用した半教師あり学習(Semi-supervised Learning with Deep Generative Models)」arXiv:1406.5298v2、Kingma et. alに記述されている。
【0069】
本出願は、Wi-Fiベースのような、屋内位置決めのための分類子を学習させるために変分オートエンコーダ(VAE)の学習を採用する概念に基づくものである。VAEのエンコーダは、ラベルが利用可能な場合、ラベリングされたデータの分類子または回帰子(regressor)の役割をし、VAEのデコーダは、正規化器(regularizer)の役割をする。変分オートエンコーダは、エンコードされた入力信号の強度を潜在空間に埋め込むエンコードおよび位置予測を同時に学習する。エンコードは、すべての学習データから学習される一方、位置予測は、学習データのラベリングされたサブセットから学習される。
【0070】
学習されたVAEは、入力データの潜在空間表現を最適化してそれの再構成、分類作業が解決されるようにし、入力データを発生させる位置を決定することを含み、より少ないラベリングされたデータポイントで学習されることができる。
【0071】
図1は、屋内環境でのコンピューティングデバイスの位置の予測子を学習させるシステム(100)を含む。図3は、システム(100)を採用する屋内環境でのコンピューティングデバイスの位置に対して予測子を学習させるための方法のフローチャートを図示する。
【0072】
システム(100)は、1つ以上のプロセッサのような1つ以上のコンピュータで実装されることができる。システム(100)は、エンコーダニューラルネットワーク(122)およびデコーダニューラルネットワーク(124)を含む変分オートエンコーダ(12)を含む。
【0073】
(例えば、VAEの)予測子の学習のために、システム(100)には
【0074】
【数10】
および
【0075】
【数11】
を含む学習データが提供される。
【0076】
【数12】
は、学習データのラベリングされていないポイントであり、
【0077】
【数13】
は、学習データのラベリングされたデータポイントである。
【0078】
【数14】
および
【0079】
【数15】
からすべての信号強度のデータを収集する信号強度の値のセット
【0080】
【数16】
がエンコーダニューラルネットワーク(122)に提供される。エンコーダニューラルネットワーク(122)は、zの潜在変数分布においてそれぞれのx∈Xをエンコードする。エンコーダニューラルネットワーク(122)は、潜在変数(z)の分布のパラメータ(μφ(x),σφ(x))を決定することができる。デコーダニューラルネットワーク(124)は、再構成された信号強度の値(x’∈X’)を生成するためにzにおける潜在変数分布からのサンプル(z)を採用する。
【0081】
システム(100)は、位置予測(y’)を生成するために潜在変数の分布からのサンプル(z)を採用する分類ニューラルネットワーク(16)をさらに含む。実施例において、学習データのラベル(y)は、建物番号、部屋識別子および/または階数のような位置を示すカテゴリカル変数であることができ、予測された位置は、対応するカテゴリ値である。代案的に、学習データのラベルは、地点の高度と共に緯度の座標および経度の座標を提供する3D座標を示す多変量データとすることができ、予測された位置は、対応する多変量データの値である。
【0082】
図1は、潜在特徴識別モデル(latent feature discriminative model)を含む第1の例示的な実施例を示す。第1の実施例は、次の生成モデルに基づくものである。
【0083】
【数17】
ここで、p(z)は平均が0であり、単位行列
【0084】
【数18】
を分散として有するガウス分布である。関数(f(x;y,θ))は、生成パラメータ(θ)を有する非線形尤度関数(likelihood function)である。関数(f)は、確率がデコーダニューラルネットワーク(124)によって形成されるガウス分布とすることができ、生成パラメータ(θ)は、デコーダニューラルネットワーク(124)の隠れ状態(hidden states)に対応する。
【0085】
分布(p(z))は、潜在変数(z)の事前分布である。正確な事後分布は扱いが容易ではない場合がある(intractable)ため、変分オートエンコーダ(12)は、事後分布に対するパラメータ的近似値を採用することができる。変分オートエンコーダ(12)は、以下において説明されたようにパラメータ的近似値と正確な事後分布との間の差を最小化するように学習される。変分オートエンコーダ(12)に適用されたモデルによると、潜在変数(z)の事後分布は以下のパラメータ的ガウス分布に近似される。
【0086】
【数19】
ここで、パラメータ(μφ(x)およびσ2 φ(x))は、エンコーダニューラルネットワーク(122)によって生成される。数式(2)は、潜在変数(z)の潜在変数分布を定義する。パラメータ(φ)は、エンコーダニューラルネットワーク(122)の隠れ状態に対応する変分パラメータである。数式(2)は、変分オートエンコーダの推論モデルを定義する。
【0087】
変分オートエンコーダ(12)は、以下の損失を最小化するために、隠れ状態(φおよびθ)を調整することによって学習される。
【0088】
【数20】
ここで、KLは、潜在変数(z)の事後分布
【0089】
【数21】
と事前分布(pθ(z))との間のカルバック・ライブラー情報量(Kullback-Leibler divergence)である。
【0090】
学習の下で、分類ニューラルネットワーク(16)は、エンコーダニューラルネットワーク(122)の出力から推論/判定された潜在変数(z)の潜在変数分布からのサンプル(z)を受信するように構成される。エンコーダニューラルネットワーク(122)の出力は、
【0091】
【数22】
をエンコードする。
【0092】
分類ニューラルネットワーク(16)は、サンプル(z)から予測されたラベル(y’)を生成する。分類ニューラルネットワーク(16)は、予測されたラベル(y’)とラベル(y)との間の差を最小化するよう学習されることができる。このような方式でエンコーダニューラルネットワーク(122)によって生成された近似値事後分布
【0093】
【数23】
は、分類ニューラルネットワーク(16)を学習させるために、ラベリングされたデータ
【0094】
【数24】
に対する特徴抽出器として使用される。
【0095】
したがって、屋内環境でのコンピューティングデバイスの位置に対して図1による予測子を学習させるための方法(300)は、32において、1つ以上のプロセッサにより、ラベリングされたデータ
【0096】
【数25】
およびラベリングされていないデータ
【0097】
【数26】
を含む学習データを受信するステップを含む。学習データを受信するステップは、ラベリングされていないデータをクラウドソーシング(crowd-sourcing)から、またはブラウジングロボットを採用して得るステップを含むことができる。
【0098】
34において、1つ以上のプロセッサは、エンコーダニューラルネットワーク(122)およびデコーダニューラルネットワーク(124)を含むオートエンコーダを学習させ、例えば、確率的勾配降下法(stochastic gradient descent)によって、信号強度の値(x)および再構成された信号強度の値(x’)の間で算出された損失
【0099】
【数27】
を最小化することを含む。損失を最小化することは、1つ以上のプロセッサが損失を最小化するために生成パラメータ(θ)および変形パラメータ(φ)のうち1つ以上を選択的に調整することを含むことができる。
【0100】
方法(300)は、36において、1つ以上のプロセッサがラベリングされたデータ
【0101】
【数28】
の予測誤差(Err)を最小化するために分類ニューラルネットワーク(16)を学習させることを含む。分類ニューラルネットワーク(16)は、入力(X)の代わりに潜在変数(z)の潜在変数分布によって入力(X)のエンコーダ表現を採用することができるため、分類ニューラルネットワーク(16)は、
【0102】
【数29】
である場合にも高い精度を達成することができる。これは、zの潜在空間においてデータポイントの分離性が向上されたためであると考えられる。
【0103】
システム(100)の学習後に、分類ニューラルネットワーク(16)が電子デバイスの位置に対する予測子としてエンコーダニューラルネットワーク(122)と共に採用されることができる。いったん学習されると、分類ニューラルネットワーク(16)およびエンコーダニューラルネットワーク(122)は、電子デバイスの(現在)位置を予測/決定するように構成される。
【0104】
一例示において、信号強度の値
【0105】
【数30】
は、電子デバイスによって受信され、それから予測子に提供される。予測子の学習されたエンコーダニューラルネットワーク(122)は、
【0106】
【数31】
を受信し、最適化された隠れパラメータ(φ)を採用するパラメータ
【0107】
【数32】
および
【0108】
【数33】
を生成する。サンプル(z)が学習された分類ニューラルネットワーク(16)に提供され、学習された分類ニューラルネットワーク(16)は、予測子の出力として予測ラベル(y’)を生成する。
【0109】
図2は、例示的な実施例による屋内位置推定のための予測子を学習させるためのシステム(200)に対する概略図を図示する。図4は、図2のシステムを採用する屋内環境でのコンピューティングデバイスの位置に対して予測子を学習させるための方法のフローチャートを図示する。図1および図3を参照して説明された実施例と同様に、図2によるシステムは、ラベリングされたデータのサブセット
【0110】
【数34】
およびラベリングされていないデータのサブセット
【0111】
【数35】
を含む学習データ(D)を採用する。
【0112】
システム(200)は、エンコーダニューラルネットワーク(222)およびデコーダニューラルネットワーク(224)を有する変分オートエンコーダ(22)を含む。エンコーダニューラルネットワーク(222)は、信号強度の値(x)を受信し、分類ニューラルネットワーク(26)と共に潜在変数(z)の潜在変数分布のパラメータ(μφ,σφ)を決定する。潜在変数(z)の潜在変数分布のサンプル(z)から、デコーダニューラルネットワーク(224)はx”∈X”を再構成する。
【0113】
分類ニューラルネットワーク(26)は、学習データの信号強度の値(x∈X)を入力として受信し、潜在変数(y)の潜在変数分布のパラメータを推論する。サンプル(y’)が潜在変数(y)の潜在変数分布から導出され、変分オートエンコーダのデコーダニューラルネットワーク(224)に提供される。
【0114】
ラベリングされていないサブセット
【0115】
【数36】
を採用する図2のシステム(200)を学習する場合、変数(y)は変分オートエンコーダの隠れ変数として扱われる一方、
【0116】
【数37】
で学習する場合、変数(y)は入力変数である。
【0117】
図2の例示によると、予測子の学習は、教師あり(supervised)生成モデルのオートエンコーダに基づくものである。予測は、潜在連続変数(z)に追加して潜在クラス変数(y)を使用して生成される。生成モデルは、次のとおりである。
【0118】
【数38】
これにより、元の入力の空間での状態(x)、すなわち、無線強度信号(x)が潜在連続変数(z)と潜在クラス変数(y)から再構成される。パラメータ(θ)は、生成モデルの隠れ状態であり、関数(f)は、非線形尤度関数である。関数(f)は、隠れ状態(θ)を有するデコーダニューラルネットワーク(224)によって実装される。
【0119】
図2の例示において、ラベル(y)の事前分布は次のように仮定される。
【0120】
【数39】
ここで、Catは、要素の和が1である確率ベクトル(π)のある多項分布である。πは、予め知られたクラスのセットであり、作業によって決定されることができる。したがって、ラベル(y)は、クラス(π)のセットからサンプリングされることができる。
【0121】
図1の例示と同様に、図2の例示は、正確な事後分布に対するパラメータ的近似値を採用する。zのパラメータ的近似値は、以下の通りである。
【0122】
【数40】
数式(5)は、潜在変数(z)の潜在変数分布を定義し、オートエンコーダの推論モデルを定義する。図2の例示によると、パラメータ(σ φ(x))は、エンコーダニューラルネットワーク(222)によって生成され、パラメータ(μφ(y,x))は、エンコーダニューラルネットワーク(222)および分類ニューラルネットワーク(26)によって共同で推定される。
【0123】
分類ニューラルネットワーク(26)は、次の式に基づいて潜在変数(y)の潜在変数分布のパラメータである確率(πφ(x))を生成する。
【0124】
【数41】
数式(6)は、潜在変数(y)の潜在変数分布を定義する。数式(6)は、弁別分類子を定義するものと見做すことができる。表記を簡潔にするために、分類ニューラルネットワーク(26)の隠れ状態はφに含まれたものだと仮定する。後述されるような学習の下で、図2の例示による学習は、使用された近似値の下で最適の分類子を得ることができるようにする。
【0125】
したがって、図2の例示によるシステムの学習の間、数式(5)のμφ(y,x)は、分類ニューラルネットワーク(26)によってラベリングされたデータから推定され、エンコーダニューラルネットワーク(222)によってラベリングされていないデータから推定される。
【0126】
図2の実施例による学習は、下記の式を評価することを含む。
【0127】
【数42】
ここで、右辺の第1項(first term)と第2項(second term)は、オートエンコーダモデルが学習データを再現する可能性の下限から発生する。数式(7)の右辺の第1項は、ラベリングされたデータの分布
【0128】
【数43】
を採用して下記の式を評価する。
【0129】
【数44】
ここで、pθ(z)およびpθ(y)は、それぞれ数式(4)のパラメータ(p(z))および
【0130】
【数45】
に対応し、パラメータ(θ)に依存することができる。ラベリングされたデータに対する数式(8)の評価は、ラベリングされたデータ
【0131】
【数46】
をオートエンコーダ(22)および分類ニューラルネットワーク(26)に供給することを含み、これにより変数(y)は、入力変数として扱われる。
【0132】
数式(7)の右辺の第2項は、ラベリングされていないデータ
【0133】
【数47】
の分布(p(x))を採用して下記の式を評価する。
【0134】
【数48】
ここで、
【0135】
【数49】
は、ディープラーニングネットワークによって学習ステップ途中に学習できる事後分布である。これはランダムなもの(例えば、値)で開始されることができ、学習中に再評価されることによって最終のもの(例えば、値)に収束することができる。ラベリングされていないデータに対する数式(9)の評価は、ラベリングされていないデータ
【0136】
【数50】
をオートエンコーダ(22)および分類ニューラルネットワーク(26)に供給することを含み、これにより変数(y)は、潜在変数として扱われる。
【0137】
エンコーダニューラルネットワーク(222)、デコーダニューラルネットワーク(224)および分類ニューラルネットワーク(26)は、下記の式の損失を最小化するように学習される。
【0138】
【数51】
ここで、
【0139】
【数52】
は、数式(7)に基づいて定義され、
【0140】
【数53】
は、ラベリングされたデータに対する予測損失である。数式(10)において、値(α)は、学習過程において生成モデルの寄与度と弁別モデルの寄与度との間のトレードオフ(trade-off)を反映する予め決定された値である。
【0141】
図2の例示による予測子を学習させることは、第1項と第2項の和を最小化することに基づくものであり、第1項は、学習データに対する再構成損失を測定し、第2項は、学習データのラベリングされたサブセットに対する予測損失を測定する。
【0142】
一例示において、ラベル(y)は、例えば、部屋番号または位置の他の適切な識別子のようなカテゴリ値である。この場合、ラベリングされたデータ(x)に対する損失は、次の分類損失である。
【0143】
【数54】
一例示において、ラベル(y)は、位置座標に対する多変量データであるため、ラベル(y)が位置座標(例えば、緯度、経度および高度)を示す。この例示において、数式(8)の分類損失は、下記の式によって記述される回帰損失である。
【0144】
【数55】
図4は、屋内環境でのコンピューティングデバイスの位置に対して図2の例示による予測子を学習させるために1つ以上のプロセッサによって遂行される方法(400)を図示する。42において、ラベリングされたデータ
【0145】
【数56】
およびラベリングされていないデータ
【0146】
【数57】
を含む学習データが受信される。学習データは、ラベリングされたデータのサブセットをクラウドソーシングからのラベリングされていないデータを利用して、またはブラウジングロボットを採用することで増強させることによって得ることができる。
【0147】
44は、変分オートエンコーダ(22)および分類ニューラルネットワーク(26)を学習させるステップを含む。変分オートエンコーダ(22)および分類ニューラルネットワーク(26)を学習させるステップは、例えば、確率的勾配降下法を使用して、
【0148】
【数58】
および
【0149】
【数59】
の両方からの信号強度の値(x)をオートエンコーダ(22)に供給し、信号強度の値(x)および
【0150】
【数60】
からのラベルを分類ニューラルネットワーク(26)に供給し、損失を最小化するためにデコーダニューラルネットワーク(224)の生成パラメータ(θ)およびエンコーダニューラルネットワーク(222)と分類ニューラルネットワーク(26)の変分パラメータ(φ)を調整することによって繰り返して
【0151】
【数61】
を評価することを含む。
【0152】
エンコーダニューラルネットワーク(222)、デコーダニューラルネットワーク(224)、および分類ニューラルネットワーク(26)が学習された後、分類ニューラルネットワーク(26)は、エンコーダニューラルネットワーク(222)およびデコーダニューラルネットワーク(224)と独立して採用されることができる。分類ニューラルネットワーク(26)には、屋内環境においてデバイスによって受信された信号強度の値
【0153】
【数62】
が提供されることができ、前述したように、学習から生成された分類ニューラルネットワーク(26)の隠れ状態(φ)の値を採用する
【0154】
【数63】
を生成する。分布
【0155】
【数64】
から、予測された位置(y’)は、デバイスの位置に対する予測として生成されることができる。
【0156】
実施例は、選択的に実現可能な空間に制約を制限する構造的回帰分析の方法を含む。一部回帰分析の方法は、出力変数の構造を看過する可能性があるため、予測が実行可能性空間を脱する可能性があるという問題があり得る。これは予測空間を、すなわち本件の場合は、屋内の建物空間を、先験的(a priori)に制限することができる。
【0157】
分類ニューラルネットワーク(16、26)によって生成された位置座標をそれぞれ示す予測(y’)は、投影コンポーネント(18、28)にそれぞれ提供され、これらは実現可能な空間内に位置するように予測(y)を補正する。投影コンポーネント(18、28)は、1つ以上のプロセッサおよびコードによって実装されることができる。
【0158】
実施例において、補正は、エンコーダによって予測された位置に最近接した学習データのラベリングされたサブセット
【0159】
【数65】
からのN個の近傍を考慮する加重された最近接近傍投影に基づくものである。投影は、予測された位置と対応する近傍間の距離の逆数(inverse)によって加重値が付与されたN個の最近接近傍ノードの位置の加重された和によって与えられる。この投影は、N個の最近接近傍ノードのコンベックスハル(convex hull)内の投影に対応し、最近接近傍が、例えば、異なる建物に属さず位相的に(topologically)互いに近いときによく作用する。近傍ノードが遠距離のとき、例えば、異なる建物に位置する場合、構造的投影により誤差が増加する可能性がある。この誤差のリスクは、Nの多少小さな値を選択することによって最小化することができる。実験結果によると、N=2は、適切に(例えば、最も)正確な結果を提供することができる。
【0160】
図5は、一例示によって生成された生予測(raw predictions)に適用された構造化され投影の例示を示す。分類ニューラルネットワーク(16、26)の位置予測(凡例において「生予測」と表示される)は、N=2最近接ラベリングされた近傍間の補間(interpolation)に投影され、投影された位置(「投影される」と表示される)を得る。図5は、投影された位置を正解(ground truth)(「GT」と表示される)位置と比較する。図5の例示は、投影が一部の場合を除くすべての場合において位置推定誤差を改善することを示す。
【0161】
実施例によると、エンコーダニューラルネットワーク(122、222)、デコーダニューラルネットワーク(124、224)および分類ニューラルネットワーク(16、26)は、すべてReLU(正規化線形ユニット(rectified linear unit))の活性化を有する3つの全結合層があり、512、256およびz=128の層サイズを有する人工ニューラルネットワークで実装される。例示において、数式(10)で分類/回帰損失はα=1で加重される。例示において、ネットワークは、確率的勾配降下法を使用して学習され、例えば、0.01の学習率、バッチノーマライゼーション(batch normalization)を有する64のバッチサイズ、そして20,000回の繰り返しにおいて学習の中止基準を有するアダムオプティマイザー(Adam optimizer)を採用することによって学習される。0.5の確率を有するドロップアウト(dropout)がニューラルネットワークのすべての層に適用される。テストセットの位置推定誤差は、評価メトリック(evaluation metric)として使用される。
【0162】
一例示によると、エンコーダニューラルネットワーク(122、222)は、X、YおよびZ座標に対する別途のエンコーダニューラルネットワークを含み、デコーダニューラルネットワーク(124、224)は、X、YおよびZに対する対応のデコーダを含む。潜在変数(z)は、3つのエンコーダのエンコーダ出力の連結(concatenation)を含むことができる。図1および図3、または図2および図4による予測子の学習は、X、YおよびZ座標のそれぞれのエンコーダ-デコーダのペアを他のエンコーダ-デコーダのペアと独立して学習させることを含むことができる。したがって、本実施例は、異なる座標の処理を相関解除(decorrelate)するように許容する。
【0163】
他の例示において、エンコーダニューラルネットワーク(122、222)は、XおよびYに対する別途のエンコーダニューラルネットワークを含み、デコーダニューラルネットワーク(124、224)は、対応してXおよびYに対するデコーダを含む。この実施例において、図1および図3、または図2および図4による予測子の学習は、Yに対するエンコーダ-デコーダのペアに独立してXに対するエンコーダ-デコーダのペアを学習させることを含むことができる。この例示において、潜在変数(z)は、2つのエンコーダのエンコーダ出力の連結を含むことができる。
【0164】
図1および図2の例示による学習は、建物のラベルをさらに含む学習データとして建物の分類子(建物内の位置を生成するように構成された分類子)を学習させることをさらに含むことができる。分類ニューラルネットワークは、特定の建物に対して学習される。建物の分類子によって予測された分類に基づいて、1つ以上のプロセッサが該当の建物に対して特別に学習された分類ニューラルネットワークを選択する。これは、特定の建物に対する位置の予測において、より正確な分類ニューラルネットワークを得られるようにする。
【0165】
実験的評価
図6は、前述した実施例によって学習された屋内位置の予測子を評価するために遂行されたテストの設定を図示する。図6a~図6cは、スペイン、カステッロキャンパス、ジャウメ1世大学(Universitat Jaume I、CampusCastellσ、Spain)の3つの建物の108,703平方メートル(m2)の面積をカバーするUJI-IndoorLocデータセットを含む。
【0166】
図6aは、3つの建物の空中ビューを再現し、図6bは、3つの建物の面積をハイライトする。図6cの左側のパネルは、933個のアクセスポイントが3つのUJIキャンパスの建物に分散された方式を図示する。図6cの右側のパネルは、データセットにおいて受信された信号強度の値のヒストグラムをプロット(plot)する。合計して、データセットは、21,049個のサンプルポイントを含み、そのうち19,938個のポイントが学習に使用され、1111個がテストに使用される。データセットの独立性を確保するために、学習サンプルの4ヶ月後にテストサンプルを採取した。互いに異なる25個のモバイルデバイスモデルを利用して、20人のユーザーがデータを収集した。
【0167】
図7は、図6を参照して記述された屋内環境に対して、本開示において記述されたシステムの位置推定誤差に対する結果を図示する。位置推定誤差は、テストポイントの予測された座標と実際の座標との間のユークリッド距離(Euclidean distance)である。テストセットに対する位置推定誤差の平均は、図7a~図7cの方法の性能として報告される。図7aは、本開示において記述された屋内位置推定システムの例示を他の屋内位置推定システムと比較したものであり、図7aは、半教師あり学習の学習セットにおいてアノテーション比率による各方法の位置推定誤差をプロットする。
【0168】
屋内位置推定の例示的な他の方法は、ハイパーパラメータ(Cおよびγ)を採用する半教師ありサポートベクトル回帰分析(support vector regression、SVR)である。例示的なさらに他の方法は、ハイパーパラメータ(k)を採用するk-最近傍回帰分析(k-nearest neighbor regression、kNN)である。最適のハイパーパラメータは、SVRに対して
【0169】
【数66】
を検索し、kNNに対して
【0170】
【数67】
を検索する5重の内部交差検証(five-fold inner cross-validation)によって決定された。kNN方法は、信号強度の値に適用されるノイズ除去(de-noising)オートエンコーダ(AU)と結合されることができる。
【0171】
図7aは、本開示において提案された変分オートエンコーダの位置推定誤差の結果を追加的に図示したものであり、ここで、VAE-M1は、図1の第1の例示を示し、VAE-M2は、図2の第2の例示を示し、VAE1-SPおよびVAE2-SPは、それぞれ図5を参照して上述されたような、構造化された投影によって改善された変分オートエンコーダの第1の例示および第2の例示を示す。図7aに図示されたように、すべての方法はアノテーションデータ比率が100であるときに教師ありの設定で大体5mの平均位置推定誤差を達成する。テストされた方法に対するUJI屋内ログデータセットの学習/テスト分割を採用した位置推定誤差が表1に付与される。VAE2-SPの方法は、テストされた方法のうち最も低い平均位置推定誤差を達成することができる。
【0172】
【表1】
図7aに図示されたように、データの10%のみラベリングされた場合、本出願に記述された方法以外の方法は、少なくとも60m(メートル)の位置推定誤差を発生させる一方、第1および第2の例示の変分オートエンコーダは、より低い位置推定誤差を達成する。変分オートエンコーダが図5の構造化された投影によって向上されるとき、位置推定誤差は大体他の例示の半分である。図7aに表示された結果は、すべての方法が、50%以上のデータがラベリングされるときに適切な(modest)アノテーションの減少に合理的かつ良く対応するということを示す。しかし、減少が大幅になり、ラベリングされたデータの価値の高い収集を大幅に減少させるとき、本開示において議論されたVAEベースの方法は、他の方法より良く対応しながら、依然として合理的な予測精度を達成する。
【0173】
図7bは、データにおいてラベリングされたデータの比率を減少させる効果を図示する。図7bは、VAE2-SP学習に基づいた予測子に対する位置推定誤差の累積分布関数を表示する。図7bに図示されたように、該当の予測子は、1%~5%のアノテーション比率の減少までよく対応する。
【0174】
図8は、Wi-Fiアクセスポイントのうち一部が、例えば技術またはビジネス関連の問題によりその信号の放出を停止する、実際の環境における屋内位置推定のさらに他の問題に関するものである。図8は、アノテーション比率と利用可能なWi-Fiアクセスポイント比率の両方による位置推定誤差をプロットする。利用可能なWi-Fiアクセスポイント比率は、テスト時間にすべてのWi-Fiアクセスポイントが利用可能な場合の100%から、テスト時間にWi-Fiアクセスポイントの半分だけ利用可能な場合の50%まで変化される。図5に図示された結果は、利用可能なWi-Fiアクセスポイントの関数でモデルを再学習することによって得られたものである。
【0175】
図8の結果は、VAE2-SPモデルを含む例示に関するものである。利用可能なアクセスポイントが50%である場合、位置推定誤差は、完全にラベリングされたデータの場合が5.12m、アノテーション比率が5%である場合が6.43mであり、これは100%のアクセスポイントが利用可能な場合に測定された誤差-完全にラベリングされたデータの場合が5.65m、アノテーション比率が5%である場合が6.12 mである-と比較可能な誤差である。
【0176】
図9aおよび図9bはそれぞれ、左側のパネルにおいてVAE以前、すなわち入力信号強度のデータ(X)に適用され、右側のパネルにおいてVAE以降、すなわち再構成された信号強度のデータ(X’orX”)に適用されたt分布型確率的近傍埋め込み(t-SNE)の形態のVAEの視覚化を図示する。データポイントは、分類ニューラルネットワーク、図9aの建物の属性または図9bの層の属性によって生成されたラベルに基づいて灰色である。図9aおよび図9bの結果は、VAEによって生成されたデータが元のデータよりも優れた分離性を有していることを示唆しており、これは低いアノテーション比率の学習下においての予測子の高精度を説明する。
【0177】
上述されたシステム、方法および実施例は、データ交換のためのインターネットのようなネットワーク(106)(無線および/または有線であり得る)を介して通信するサーバー(102)および1つ以上のクライアントデバイス(104)を含む図10に図示されたようなアーキテクチャ内で実装されることができる。サーバー(102)およびクライアントデバイス(104)は、それぞれデータプロセッサ(またはより簡単にプロセッサ)(112)(112-1~112-5)およびハードディスクなどのようなメモリ(113)(113-1~113-5)を含む。クライアントデバイス(104)は、携帯電話(104-2)、コンピュータ(104-3)、自動運転車(104-4)またはロボット(104-5)などのようなサーバー(102)と通信する任意のデバイスであることができる。より正確には、一実施例において、図1および図2の実施例によるシステムは、サーバー(102)によって実装されることができる。クライアントデバイス(104)は、1つ以上のWi-Fi(IEEE 802.11)プロトコルを使用して通信するように構成される。
【0178】
サーバー(102)は、図1および図3、または図2および図4の実施例によって学習データを受信して予測子を学習し、予測子をメモリ(113-1)に格納することができる。例えば、予測子が学習されてクライアントデバイス(104)に格納されると、屋内環境に位置したクライアントデバイス(104)は、無線アクセスポイントから受信された信号強度の値を決定し、ネットワーク(106)を介して決定された信号強度の値をサーバー(102)に提供し、サーバーは、学習された予測子を信号強度の値に適用してクライアントデバイス(104)の予測された位置を決定し、予測された位置をネットワーク(106)を介してクライアントデバイス(104)に提供することができる。代案的に、予測子は、オフライン使用のためにクライアントデバイス(104)にダウンロードされることができる。
【0179】
前述した方法のステップの一部または全部は、プロセッサ、マイクロプロセッサ、電子回路や処理回路部によって(またはそれを使用して)実行される点でコンピュータによって実装されることができる。
【0180】
前述された実施例は、ハードウェアまたはソフトウェアで実装されることができる。実装は、コンピュータ読み取り可能な格納媒体のような非一時的格納媒体、例えば、フロッピーディスク、DVD、Blu-Ray、CD、ROM(read only memory)、PROM、EPROM、EEPROM、RAM(Random Access Memory)またはFLASHメモリを使用して遂行されることができる。そのようなコンピュータ読み取り可能な媒体は、汎用または特殊目的のコンピュータシステムによってアクセスされ得る任意の利用可能な媒体であることができる。
【0181】
一般的に、実施例は、プログラムコードまたはコンピュータ実行可能命令語を有するコンピュータプログラム製品で実装されることができ、プログラムコードまたはコンピュータ実行可能命令語は、コンピュータプログラム製品がコンピュータ上で実行されるときに方法のうち1つを遂行するように動作可能である。プログラムコードまたはコンピュータ実行可能命令語は、例えば、コンピュータ読み取り可能な格納媒体に格納されることができる。
【0182】
一実施例において、格納媒体(またはデータキャリア、またはコンピュータ読み取り可能な媒体)は、1つ以上のプロセッサによって遂行されるとき、本開示において記述された方法のうち1つを遂行するためのコンピュータプログラムまたはコンピュータ実行可能命令語を格納する。
【0183】
したがって、本開示の方法およびシステムは、学習のためのラベリングされたデータポイントに対する必要性を減少させながら、正確な屋内位置推定を可能にして、システムデータの学習コストを減少させる。記述された実施例は、変分オートエンコーダの潜在空間が、低いアノテーション比率において高い精度で分類子の学習を可能にするという認識に基づくものである。
【0184】
前述した説明は、本質的に単に例示的なものであり、本開示は、それの応用、または使用を制限するものではない。本開示の広範な教示は、多様な形態で具現されることができる。したがって、本開示は、特定の例示を含むが、本開示の本当の範囲はそれらに限定されるべきではなく、これは、図面、明細書および以下の請求の範囲の研究によって他の変形が明らかになるためである。方法内の1つ以上のステップは、本開示の原理を変更せずに異なる順序で(または同時に)実行され得ることを理解しなければならない。また、それぞれの実施例は、所定の特徴を有するものとして説明されたが、本開示の任意の実施例に関連して記述されたこれらの特徴のうち任意の1つ以上は、任意の他の実施例の特徴で具現および/または結合されることができ、その組み合わせは明示的に記述されない。言い換えると、記述された実施例は、相互に排他的ではなく、1つ以上の実施例の互いの順列/置換は本開示の範囲内にある。
【0185】
要素(例えば、モジュール、回路素子、半導体層など)間の空間および機能的関係は、「連結された」、「連携された」、「結合された」、「隣接した」、「近接した」、「上部に」、「上に」、「下に」および「配置された」を含む多様な用語を使用して説明される。第1および第2の要素の間の関係が上述された開示において説明されるとき、「直接的な」ものとして明示的に言及されない限り、その関係は、他の中間要素が第1および第2の要素の間に存在しない直接的な関係であることができ、また、1つ以上の介在要素が第1の要素と第2の要素の間に(空間的または機能的に)存在する間接的な関係であることもできる。本開示において使用されたように、語句A、BおよびCのうち少なくとも1つは、非-排他的論理ORを使用する論理(A OR B OR C)を意味するものとして解釈されるべきであり、「Aのうち少なくとも1つ、Bのうち少なくとも1つおよびCのうち少なくとも1つ」を意味するものとして解釈されてはならない。
【0186】
図面において、矢印で表示した矢印の方向は、例示において関連性のある(of interest)情報(例えば、データまたは命令語)の流れを一般的に示す。例えば、要素Aと要素Bが多様な情報を交換するが、要素Aから要素Bに送信される情報が例示と関連がある場合、矢印は、要素Aから要素Bに向かって指すことができる。このような単方向の矢印は、他のどのような情報も要素Bからの要素Aに送信されないということを暗示するものではない。また、要素Aから要素Bに送信された情報に対して、要素Bは、情報に対する要請または受信応答確認を要素Aに送信することができる。
【0187】
用語「コード」は、ソフトウェア、ファームウェアおよび/またはマイクロコードを含むことができ、プログラム、ルーチン、関数、クラス、データ構造および/またはオブジェクトを指すことができる。用語「メモリ」は、用語「コンピュータ読み取り可能な媒体」のサブセットである。本開示において使用される用語「コンピュータ読み取り可能な媒体」は、(例えば、搬送波上で)媒体を通じて伝播される一時的な電気または電磁気信号を含まず、したがって用語「コンピュータ読み取り可能な媒体」は、有形物(tangible)で非一時的なものとして見做されることができる。非一時的で有形のコンピュータ読み取り可能な媒体の制限的ではない例示は、不揮発性メモリ(例えば、フラッシュメモリ、消去可能プログラム可能読み出し専用メモリまたはマスク読み出し専用メモリ)、揮発性メモリ(例えば、スタティックランダムアクセスメモリまたはダイナミックランダムアクセスメモリ)、磁気格納媒体(例えば、アナログまたはデジタル磁気テープまたはハードディスクドライブ)、光学格納媒体(例えば、CD、DVDまたはBlu-rayディスク)である。
【0188】
本出願において説明された装置および方法は、コンピュータプログラムに実行された1つ以上の特定の機能を実行するように汎用コンピュータを構成することで生成された特殊目的のコンピュータによって、部分的または完全に実行されることができる。前述した機能ブロック、フローチャートの構成要素およびその他の要素は、熟練した技術者またはプログラマーのルーチン作業によって、コンピュータプログラムに変換され得るソフトウェア仕様としての役割をする。
【0189】
コンピュータプログラムは、少なくとも1つの非一時的で有形のコンピュータ読み取り可能な媒体に格納されたプロセッサ実行可能命令語を含む。コンピュータプログラムはまた、格納されたデータを含んだり、それに依存したりすることができる。コンピュータプログラムは、特殊目的コンピュータのハードウェアと相互作用する基本入/出力システム(BIOS)、特殊目的コンピュータの特定のデバイスと相互作用するデバイスドライバ、1つ以上のオペレーティングシステム、ユーザーアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーションなどを含むことができる。
【0190】
コンピュータプログラムは、(i)ハイパーテキストマークアップ 言語(HTML)、拡張可能なマークアップ言語(XML)またはJavaScriptのオブジェクト表記(JSON)のような解析される(parsed)説明テキスト、(ii)アセンブリコード、(iii)コンパイラによってソースコードから生成されたオブジェクトコード、(iv)インタプリタによる実行のためのソースコード、(v)JIT(just-in-time)コンパイラによるコンパイルおよび実行のためのソースコードなどを含むことができる。例えば、ソースコードは、C、C++、C#、Objective-C、Swift、Haskell、Go、SQL、R、Lisp、Java(登録商標)、Fortran、Perl、Pascal、Curl、OCaml、Javascript(登録商標)、HTML5(ハイパーテキストマークアップ言語5)、Ada、ASP(Active Server Pages)、PHP(PHP:Hypertext Preprocessor)、Scala、Eiffel、Smalltalk、Erlang、Ruby、Flash(登録商標)、VisualBasic(登録商標)およびPython(登録商標)を含む言語の構文を使用して作成されることができる。
図1
図2
図3
図4
図5
図6a
図6b
図6c
図7a
図7b
図8
図9a
図9b
図10