著者アーカイブ 杉浦

著者:杉浦

GNSSの測定する位置と速度

 前情報としてAccuracy(正確さ)、Precision(精度)の話を挟ませていただきます。誤差はランダムな誤差と規則的な誤差の二種類に分けることができます。計測、予測の世界においては下図の様にランダムな誤差の大きさをAccuracy(正確さ)、規則的な誤差の大きさをPrecision(精度)と呼びます。

 GNSSの測定する位置と速度の精度の話に入らせていただきます。GNSSから得られる情報には様々なものがあります。この中で容易に得られる成形された情報としてNMEAというフォーマットに沿った情報があります。このフォーマットの中には位置と速度が含まれています。しかしながらこの位置と速度を導き出される過程はとても異なるものとなっています。
 GNSSはGNSSはなぜ都心で精度が悪くなりやすいのかに書いた通りGNSS受信機の位置を、GNSS受信機一台と地球の衛星軌道上の人工衛星三基を結んでできる三角錐から受信機の位置を連立方程式によって解く手法によって測定しています。最近はRTK-GNSSによるcm級測位などが話題となっておりますが、この手法による誤差は10m~20mほどです。(受信環境、受信信号を用いた計算に対する工夫、他技術を交えることによって市販されている様々なGNSS受信機における実際の誤差はもっと少ないものが多いです)一方で、GNSS受信機の速度はドップラ効果から測定されます。これは信号を受け取った時点の波長と発信された時点の信号の波長のずれから速度を計算するという手法です。こちらの手法はとても精度がよく、水平速度精度0.36m/sec、垂直速度精度0.72m/secとなっています。RTK-GNSS以前からcm単位で語れる誤差があったわけです。
 一見、このドップラ効果を用いた測定された速度を積算することによって位置を推定したならばとても誤差の小さい位置の推定ができるように思えます。ここでAccuracy(正確さ)、Precision(精度)の話が出てきます。このドップラ効果によって測定された速度の誤差が小さいことは述べた通りです。しかしながら、積算のみによる位置の推定には完璧なAccuracy(正確さ)が求められてしまいます。これは上図の左下のような偏りがわずかでもあった場合、偏りが膨らみ続け大きな誤差を生むことになることが原因です。これによってドップラ効果から得られた速度の積算のみによる位置の推定には問題があるわけです。
 ネガティブな意見を述べましたが、現実にこのドップラ効果による速度は高精度であり、この高精度速度を利用して得られた位置の誤差はRTK-GNSSを用いずとも2、3m程度になります。この位置と速度を組み合わせてより正確な位置を求めることに使われている技術の主となるのがカルマンフィルタと呼ばれる技術です。カルマンフィルタはGNSSのみならず制御工学、宇宙工学、経済学などで広く使われる優れた技術です。

著者:杉浦

条件付き確率の話

 ここにある事象A、Bがあるとします。Aである時にBである確率とただ単にBである確率は同じでしょうか。
 AとBに関係がなければ同じですが、AとBに関係があるならばほぼ全ての場合で異なるでしょう。このAである時にBである確率を条件付き確率と呼びます。A、Bには様々なものが適用できます。特にAには複数の事象が入ることが多く、aであり、bであり、cである時のBである確率、なんてことによくなります。
 この条件付き確率をよく用いる分野に自然言語処理というものがあります。自然言語処理は人間が日常的に自然に使っている言語をコンピュータに処理させるという技術のことです。文脈という言葉がで表される様に、文章中の文の続き具合、文中の語の続き具合、というものが存在します。また、言語は名詞、動詞、形容詞、助詞などと分類でき、おおまかな文法が存在しており、構造化が可能です。構造化によって文脈を明瞭にとらえることが可能になります。先ほどの条件付き確率の説明におけるAを文脈とすることで、様々なBを予測することが可能です。
 この条件付き確率を用いた予測によって翻訳、質問応答、対話生成、文章の意味分析、自動変換などなどのことができます。和訳を例にして、文脈がわかることの有用性を説明してみます。goneという言葉があります。言葉の主な意味は”行った”です。また、無視できない程の頻度で用いられる意味として”逝った”というものがあります。ただの”gone”という言葉を単体で和訳した場合、使用頻度からただ”行った”と訳すのが正解でしょう。しかしここで”He has gone.”、”He is gone.”という文全体の情報があったとした場合、”He has”、”He is”という文脈からそれぞれ”行った”、”逝った”と使い分けてより正確に翻訳を行うことができます。より身近な例としてPCやSPの自動変換があります。文章をまあまあ正しく漢字に直してくれる機能なんかもこの条件付き確率を用いた技術を使っていたりします。

著者:杉浦

GNSSはなぜ都心で精度が悪くなりやすいのか

 GNSS(Global Navigation Satellite System)/全球測位衛星システムの略称であり、GPSを含む衛星を用いた位置情報を得るシステムのことです。
GNSSについて書かれた記事:GNSS(Global Navigation Satellite System)とは
この記事はGNSS全体に共通することについての話なので、この記事の中のGNSSはGPSと読み替えても何ら問題ありません。
 スマートフォン、テレビ、ラジオを始め世の中には電波を用いて通信を行う機器が多々あります。それらは都心の様な障害物の多い中であっても良好な通信を行うことができます。GNSSはなぜスマートフォン、テレビの様に障害物の多い中で良好な通信を行うことが簡単でないのでしょうか。この原因はGNSSが位置情報を算出するには直接電波を受け取ることが重要であるという点にあります。
 GNSSの行っている計算は下図の様な地上のGNSS受信機一台と地球の衛星軌道上の人工衛星三基を結んでできる三角錐をイメージするとなんとなくわかりやすいです。

この三角錐をなす四つの点のうち、GNSS受信機の位置は未知であり、人工衛星の位置は既知であります。また、三角錐を成す辺の長さのいずれも既知であります。GNSS受信機は自身の位置を計算する時、「衛星の三点の位置と各辺の長さのみがわかる。未知である受信機の一点の位置は?」という問題を解いています。(大体このようなことをしているというイメージ程度で実際は異なります)この計算を行う時、受信機と衛星間の辺の長さをGNSSは衛星から電波が発信された時刻と受信機が電波を受け取った時刻の差によって算出しています。電波の速度はほぼ一定のため、電波の発信受信間の時間と合わせることで距離=速度×時間の式で衛星と受信機の距離を求めることができます。ここで電波が建物に遮られ、反射した電波をGNSS受信機が受け取ったと仮定します。この時、反射した電波を受け取った時刻は、反射した分、直接電波を受け取るはずだった時刻より遅れます。この時刻の遅れが前の話とつながって位置の誤差となります。そのため、直接電波が受け取れず反射した電波を受け取りやすい状況が生まれやすいビル街ではGNSSの精度が悪くなりやすいのです。

著者:杉浦

アンケートにかかるバイアス

 この記事の話は、アンケートの回答者は本当に知りたい情報の情報源なのかを知ることによってより正確にアンケートを行うことができる、という話です。
 こんな話があります。ある調査会社は固定電話によって次の選挙で誰に投票するか世論調査を行いました。調査結果はAさん、もしくはBさんが当選するだろうと結果を示しました。しかしながら、実際の選挙ではCさんが当選しました。この原因は固定電話による世論調査に応じる人々は有権者のうちわずかであるということです。この話が一昔前の話ならば、固定電話は高価であり、固定電話のみによる調査では有権者のうち富裕層の意見ばかりを集めてしまったのでしょう。この話が最近の話ならば、固定電話を持たない家が増えたため、固定電話のみによる調査では有権者のうちの若年層の意見がぬけてしまったのでしょう。
 この回答者の集団と知りたい対象の集団のずれを疫学では選択バイアスと呼びます。また、母集団(知りたい情報を持つ対象群)から標本(アンケート回答者)を抽出する際にバイアスがかかっている、とも言います。
 選択バイアスがかかったアンケートを試みてしまった場合、前述の例のような失敗が起こることになります。他の例として、動物園や水族館のの出口にのみにただおいてある様なアンケートがあげられます。これは記入が任意かつ無報酬かつ自由な時間を使用させるアンケートになり、とても高い評価やとても低い評価が回答の多くを占めやすいという失敗が起きやすいです。このような失敗が起きる原因はアンケートを書きたいだけの動機がある人ばかりがアンケートを書く、そのような人とは強い感情を持つ人である、強い感情による評価とはとても高い評価ととても低い評価である、ということにあります。
 選択バイアスの対策として層化というものが試みられています。これはありうるであろうバイアスを埋めるように複数の集団からアンケートを取るようにするという方法です。選挙ならば、人種、財産、宗教、地域などなどを別々に分け、それぞれからアンケートを集計し、その結果をまとめるというものです。起きうるバイアスが正しく予想できる場合、この方法によってバイアスを打ち消すことが可能です。しかしながら、この方法は分けた集団がそれなりに大きいサンプル数を含んでいない場合、ランダムな誤差が大きくなるという問題があります。このランダムな誤差とバイアスの誤差のバランスをとるためにも、アンケートの回答者がどのような方々なのか、知りたい情報源となるのはどのような方々なのかを知ることが大切になります。

著者:杉浦

ディープラーニングのできる多彩な表現

少し前の画像関係におけるディープラーニングの成果のニュースでは、数十万枚の画像データから学習を行った、というようなふれこみがありました。(最近は画像に上手く回転、移動などの変換をかけてデータの情報量を増やすことによって比較的少ない枚数による学習を行うことができるようになりました。数十万枚でも数千枚でもそれほど学習効率は変わらないはずです)
ディープラーニングにおいて、数十万枚のデータの学習による結果の精度は、数万枚のデータの学習にかかる時間よりも魅力的でした。この記事の話はディープラーニングがなぜそれだけ多くのデータから学び続けられるのか、という話になります。

ディープラーニングはビッグデータと呼ばれるExcelではとても扱いきれないぐらい巨大なデータを用いて学習することができます。これだけ膨大なデータを学習に活かすことができるディープラーニングは多彩な表現が可能になっています。ディープラーニングとは巨大なニューラルネットワークによる機械学習のことです。ニューラルネットワークの持つ表現の仕組みから、多彩な表現が可能な理由の一つを述べます。

ニューラルネットワークは下図の黒丸一つ一つで場合分けを行い、矢印先の黒丸一つ一つにその結果を伝え、伝えられた結果から場合分けが行われます。

この場合分けの伝達によって、場合分けの組み合わせ爆発ともいえるような状態を作れます。
例えば、8個の場合分けから成る層(上図の黒丸の縦列のこと)が14層並んでいるならば、場合分けを8^14回まで行えるようなものです。ここで行えるようなもの、というのは厳密には違うということと用いる意味の薄いであろう場合分けはあらかじめ無視し、処理しないということができるからということです。画像認識を例にすると、画像上における近隣の情報との関係が遠方の情報との関係よりも重要になるので、遠い画素との場合分けは省略したほうがお得です。

このように場合分けを多くすることで、この画素ならばこの線、この線ならばこの部品、この部品ならばこの物体という演繹を広く行うことができ、精度の高い結果を出力することができます。

著者:杉浦

ディープラーニングの得意なこと、不得意なこと

この記事の結論は、ディープラーニングは、限られた情報空間内における予測、識別がとても得意であり、学習した情報に類似のない未知の情報に対する予測、識別が不得意、ということです。(y=xという式を予測したいとき、学習データがx=0からx=100までの範囲しかないならx=1000の場合の予測は無茶苦茶になりやすい、みたいな)
近年、ディープラーニングとして多数の層に組まれたニューラルネットワーク(以下NN)が注目されています。ディープラーニングという技術はNNの延長線上にあり、利点を伸ばし、欠点を小さくしながらもNNと同じ利点、欠点を引き継いでいます。
NNは確率的場合分けによる多値分類手法といえます。ここでいう分類とはaはカテゴリAに属する、bはカテゴリBに属する、…といったものです。確率的場合分けと確率的でない場合分けの違いを述べます。たとえば、AとBを場合分けするとします。確率的場合分けはAの確率70%、Bの確率30%と一度出力し、最も高い確率はAなのでAと分類します。確率的でない場合分けは確率を介さずにAと分類します。この場合分けを行う関数が活性化関数と呼ばれます。活性化関数にはステップ関数、シグモイド関数等の関数があります。
ステップ関数

0か1かのみの関数です。縦軸が0ならばA、1ならばBといった具合です。0%、100%という確率を表してるとも言えます。
シグモイド関数

0から1までを滑らかに表す関数です。縦軸が0.3ならばAの確率30%といった具合です。このシグモイド関数のような関数を用いることで確率的場合分けを行うことができます。関数の形からわかる様にこの関数単体で可能な分類は二値分類のみです。
多値分類とは分類結果の種類が3種類以上の場合の分類のことです。先ほど紹介した活性化関数を複数介することで複数種類の分類を行うことができます。下図の黒丸一つ一つが活性化関数です。左端の入力を上からx,y,zとします。活性化関数の出力である矢印はいずれも単一の出力である同じ値のことを示しています。活性化関数の一つであるシグモイド関数は出力:1/(1+exp(ax+by+cz))となるような関数です。このa、b、cはパラメータです。

ネットワークに学習をさせるということは、あるデータがこの関数らを介してどこに分類されるか、それが正しい分類かを試し、より正しく分類できる関数になるようにパラメータを変化させることです。上図では最終出力が二つあります。この最終出力は様々です。それぞれAである確率、Bである確率の様な単なる分類結果とすることもありますし、同じ入力から全く別の二種類の情報を得ようとすることもあります。
学習データに完璧に対応したネットワークが完成した場合、学習に用いたデータと同様のデータを入力した時には正しい分類を行うことができます。ディープなNNを構成するディープラーニングで用いるモデルは柔軟なモデルであり学習データに完璧に対応したネットワークが構成されやすいです。学習を行っていないデータが入力されたときはどうなるか。ネットワークは入力されたデータが学習に用いたデータに類似したデータの場合、正しい分類を行います。一方で学習に用いたデータと類似していないデータの場合、あてずっぽうともいえる的外れな分類を行いやすいです。このためディープラーニングは、学習したデータとその近辺の予測、識別が得意、学習した情報に類似のない未知の情報に対する予測、識別が不得意、ということになります。

余談:ディープラーニングが画像認識を得意とする理由の一因は画像の変化としてありえそうなパターンである拡縮回転、光源等による規則的な色調変化を広くカバーできるためです(学習データを拡縮回転、規則的な色調変化すればそれでありえそうな異なる画像を学習したのと同じことになる。ディープラーニングは学習データを増やしても学習データに対応できる柔軟性がモデルにある)。