)164月,20180著者:杉浦screenとshutdown2018/4/16本日、screenからexitするつもりがscreen中でshutdownコマンドを実行してサーバを落とす事故を起こしてしまいました。そんなわけでlinuxのscreenコマンドとshutdownコマンドについて書くことにしました。screenについてはこちらの記事こちらの記事で詳しく話されています。screenscreenは端的に言えば別画面を作るコマンドです。ターミナルと同じ機能を持つ別のプロセスが走り出すような感じです。screen中でexitshutdownシャットダウンを行うコマンドです。命令するだけでも問答無用でshutdownコマンドが実行され出しますがコンピュータのシャットダウンが行われるまで多少猶予があります。CentOS7.4.1708のデフォルト設定におけるオプションなしの猶予は1分でした。-c’で実行できるshutdown処理の中断命令です。-cを入力する必要があります。cancel」と文面がでますが、焦り出す上に英語に親しくない私みたいな人は読み取れないことがあると思います。Viewは、指定した時間や場所におけるみちびきやGPS、GLONASSなどの測位衛星の位置を知ることができるWebアプリです。Viewというアプリを見つけましたが、技術者以外の人も対象にしているような作りのサイトで説明がろくになかったのでざっくりと機能と使えそうな用途の例の説明させてもらいます。web版GNSSViewの全体図が下図です。CONDITIONについてはほぼ割愛。英語が読めれば多分大丈夫です。WeeksもMaskAngle操作してみればわかるでしょう。SATELLITE部。SATELLITEの設定でレーダー部をいじるためです。チェックボックスは衛星の種類です。自分の知りたい受信機に対応する衛星を選ぶとよいです。GPSはほぼすべての受信機で対応しています。ついでGLONASSです。GNSSを謳う受信機でしたらすべてに対応していることもあります。ラジオボタンは発信している信号の種類です。下の方ほど多種で精度の良い信号を持つ衛星になります。SATELLITEの設定で動きます。上部のレーダは見たまま設定時点で見える衛星の配置です。色が衛星の種類を区別しています。GNSSも見たままです。これはGNSSの精度低下率です。この条件でGNSSによる測位を行ったら、という時の精度の目安になります。これらが0に近づくほど良好な受信環境になると予想できるわけです。実際に受信を行っていないのに、精度低下率が出せるのかというと衛星の散らばり具合によって算出しているからです。最近、3DMAPによる工事などが話題に上ったりもします。3DMAPによってマルチパス、可視衛星の精密な予測ができることによってより優れたHDOPに成り代わるものが現れるかもしれません。巨大な数を表す方法にはいろいろあります。掛け算、乗数、n乗のn乗の...数(乗数に乗数が含まれている)と順に大きくなっていきます。この中で2番目の乗数なんかは組み合わせ爆発と合わせてプログラマに縁があると思います。組み合わせ爆発とは機械学習などのアルゴリズムを考える時に考える必要のあることであり、碁や将棋のコンピュータが強くなることが難しいとされていた理由の一つです。多数の項目を組み合わせることで組み合わせ爆発を起こせます。[a-z]と[A-Z]と[0-9]を組み合わせれば26*26*10になります。雑に作ったアルゴリズムになんかはループ中ループ中を含み、こんなことになります。囲碁や将棋の手を進めることはどうしようもなく組み合わせ爆発になります。このため良い手を見つけることはとても難しいとされていました。組み合わせ爆発が起きるか否かはアルゴリズムを図示する際、フローチャートか状態遷移図かの基準なんかにもできます。主成分分析について具体的な過程抜きでざっくり少し前に話題になっており、今も存在感のあるビッグデータという言葉があります。この記事ではビッグデータの解析等で役に立っている統計学の技術である主成分分析の紹介をします。大量のデータはその大きさに違わず大量の重複した情報をはらんでいることがあります。主成分分析とは重複した情報をまとめ、計算効率よく処理することを可能にする方法です。この重複した情報には似た意味を持つ情報というのは異なる項目成れど、片方が分かればもう片方もほとんどわかるような密接な関係にある情報のことも含みます。完全に重複した情報の例にはある物体中に含まれる分子の数と原子の数、似た情報の例には身長と体重が挙げられます。主成分分析はこの重複した情報を一つの情報としてまとめる方法です。項目数を減らすことは計算量の減少に大きく貢献します。8つの選択肢のある項目が3つあった場合、すべてのパターンを網羅するには8^3=512個の処理が必要ですが、主成分分析によって項目を2つに減らした場合、8^2=64個の処理で済むことになります。単純なやり方はある項目Aとある項目Bを最小二乗法で一次式を引き、一次式がよく当てはまれば、その一次式の傾きに合わせて次元を削減、というものです。下図なんかがわかりやすいです。三項目のデータを二項目で表しています。この手法の応用のために使われる関連技術には、平面でなくもっと複雑な面にまとめるカーネルやスカスカなデータは不要と判断するスパース性なんかがあります。tex(きれいに数式を書ける論文向け言語)を使って論文の制作する人の役に立ちそうな道具の紹介になります。Webdemo:https://webdemo.myscript.com/views/math.html手書きで書いた数式をtex形式にするページです。分数を書くたびにいちいち\frac{}{}、ギリシャ文字を書くためにいちいち\alphaなんか書く必要があって手間なtexの数式制作を楽にしてくれます。CSV2TeX:https://www.quark.kj.yamagata-u.ac.jp/~genki/omake/csv2tex_kai_v1.htmlcsv形式のデータをtexの表にしてくれるページです。これまた区切りが七面倒くさいtexの表の制作を楽にしてくれます。smallpdf:https://smallpdf.com/jppdfを大きく圧縮するアプリの紹介です。経験談では20MB越えのpdfファイルが数MBになりました。メールで提出しないといけない大学生なんかには特に役に立つと思います。前情報として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程度になります。この位置と速度を組み合わせてより正確な位置を求めることに使われている技術の主となるのがカルマンフィルタと呼ばれる技術です。広く使われる優れた技術です。条件付き確率の話ここにある事象A、Bがあるとします。Aである時にBである確率とただ単にBである確率は同じでしょうか。AとBに関係がなければ同じですが、AとBに関係があるならばほぼ全ての場合で異なるでしょう。このAである時にBである確率を条件付き確率と呼びます。A、Bには様々なものが適用できます。Aには複数の事象が入ることが多く、aであり、bであり、cである時のBである確率、なんてことによくなります。この条件付き確率をよく用いる分野に自然言語処理というものがあります。自然言語処理は人間が日常的に自然に使っている言語をコンピュータに処理させるという技術のことです。文脈という言葉がで表される様に、文章中の文の続き具合、文中の語の続き具合、というものが存在します。分類でき、おおまかな文法が存在しており、構造化が可能です。構造化によって文脈を明瞭にとらえることが可能になります。先ほどの条件付き確率の説明におけるAを文脈とすることで、様々なBを予測することが可能です。和訳を例にして、文脈がわかることの有用性を説明してみます。goneという言葉があります。言葉の主な意味は”行った”です。無視できない程の頻度で用いられる意味として”逝った”というものがあります。ただの”gone”という言葉を単体で和訳した場合、使用頻度からただ”行った”と訳すのが正解でしょう。is”という文脈からそれぞれ”行った”、”逝った”と使い分けてより正確に翻訳を行うことができます。身近な例としてPCやSPの自動変換があります。文章をまあまあ正しく漢字に直してくれる機能なんかもこの条件付き確率を用いた技術を使っていたりします。System)/全球測位衛星システムの略称であり、GPSを含む衛星を用いた位置情報を得るシステムのことです。System)とはこの記事はGNSS全体に共通することについての話なので、この記事の中のGNSSはGPSと読み替えても何ら問題ありません。スマートフォン、テレビ、ラジオを始め世の中には電波を用いて通信を行う機器が多々あります。それらは都心の様な障害物の多い中であっても良好な通信を行うことができます。GNSSはなぜスマートフォン、テレビの様に障害物の多い中で良好な通信を行うことが簡単でないのでしょうか。この原因はGNSSが位置情報を算出するには直接電波を受け取ることが重要であるという点にあります。GNSSの行っている計算は下図の様な地上のGNSS受信機一台と地球の衛星軌道上の人工衛星三基を結んでできる三角錐をイメージするとなんとなくわかりやすいです。この三角錐をなす四つの点のうち、GNSS受信機の位置は未知であり、人工衛星の位置は既知であります。三角錐を成す辺の長さのいずれも既知であります。GNSS受信機は自身の位置を計算する時、「衛星の三点の位置と各辺の長さのみがわかる。未知である受信機の一点の位置は?」という問題を解いています。(大体このようなことをしているというイメージ程度で実際は異なります)この計算を行う時、受信機と衛星間の辺の長さをGNSSは衛星から電波が発信された時刻と受信機が電波を受け取った時刻の差によって算出しています。電波の速度はほぼ一定のため、電波の発信受信間の時間と合わせることで距離=速度×時間の式で衛星と受信機の距離を求めることができます。ここで電波が建物に遮られ、反射した電波をGNSS受信機が受け取ったと仮定します。この時、反射した電波を受け取った時刻は、反射した分、直接電波を受け取るはずだった時刻より遅れます。この時刻の遅れが前の話とつながって位置の誤差となります。そのため、直接電波が受け取れず反射した電波を受け取りやすい状況が生まれやすいビル街ではGNSSの精度が悪くなりやすいのです。44月,20181著者:杉浦アンケートにかかるバイアスこの記事の話は、アンケートの回答者は本当に知りたい情報の情報源なのかを知ることによってより正確にアンケートを行うことができる、という話です。ある調査会社は固定電話によって次の選挙で誰に投票するか世論調査を行いました。調査結果はAさん、もしくはBさんが当選するだろうと結果を示しました。実際の選挙ではCさんが当選しました。この原因は固定電話による世論調査に応じる人々は有権者のうちわずかであるということです。この話が一昔前の話ならば、固定電話は高価であり、固定電話のみによる調査では有権者のうち富裕層の意見ばかりを集めてしまったのでしょう。この話が最近の話ならば、固定電話を持たない家が増えたため、固定電話のみによる調査では有権者のうちの若年層の意見がぬけてしまったのでしょう。この回答者の集団と知りたい対象の集団のずれを疫学では選択バイアスと呼びます。母集団(知りたい情報を持つ対象群)から標本(アンケート回答者)を抽出する際にバイアスがかかっている、とも言います。選択バイアスがかかったアンケートを試みてしまった場合、前述の例のような失敗が起こることになります。他の例として、動物園や水族館のの出口にのみにただおいてある様なアンケートがあげられます。これは記入が任意かつ無報酬かつ自由な時間を使用させるアンケートになり、とても高い評価やとても低い評価が回答の多くを占めやすいという失敗が起きやすいです。このような失敗が起きる原因はアンケートを書きたいだけの動機がある人ばかりがアンケートを書く、そのような人とは強い感情を持つ人である、強い感情による評価とはとても高い評価ととても低い評価である、ということにあります。選択バイアスの対策として層化というものが試みられています。これはありうるであろうバイアスを埋めるように複数の集団からアンケートを取るようにするという方法です。別々に分け、それぞれからアンケートを集計し、その結果をまとめるというものです。起きうるバイアスが正しく予想できる場合、この方法によってバイアスを打ち消すことが可能です。この方法は分けた集団がそれなりに大きいサンプル数を含んでいない場合、ランダムな誤差が大きくなるという問題があります。このランダムな誤差とバイアスの誤差のバランスをとるためにも、アンケートの回答者がどのような方々なのか、知りたい情報源となるのはどのような方々なのかを知ることが大切になります。前の画像関係におけるディープラーニングの成果のニュースでは、数十万枚の画像データから学習を行った、というようなふれこみがありました。(最近は画像に上手く回転、移動などの変換をかけてデータの情報量を増やすことによって比較的少ない枚数による学習を行うことができるようになりました。数十万枚でも数千枚でもそれほど学習効率は変わらないはずです)ディープラーニングにおいて、数十万枚のデータの学習による結果の精度は、数万枚のデータの学習にかかる時間よりも魅力的でした。この記事の話はディープラーニングがなぜそれだけ多くのデータから学び続けられるのか、という話になります。ディープラーニングはビッグデータと呼ばれるExcelではとても扱いきれないぐらい巨大なデータを用いて学習することができます。これだけ膨大なデータを学習に活かすことができるディープラーニングは多彩な表現が可能になっています。ディープラーニングとは巨大なニューラルネットワークによる機械学習のことです。ニューラルネットワークの持つ表現の仕組みから、多彩な表現が可能な理由の一つを述べます。ニューラルネットワークは下図の黒丸一つ一つで場合分けを行い、矢印先の黒丸一つ一つにその結果を伝え、伝えられた結果から場合分けが行われます。この場合分けの伝達によって、場合分けの組み合わせ爆発ともいえるような状態を作れます。8個の場合分けから成る層(上図の黒丸の縦列のこと)が14層並んでいるならば、場合分けを8^14回まで行えるようなものです。ここで行えるようなもの、というのは厳密には違うということと用いる意味の薄いであろう場合分けはあらかじめ無視し、処理しないということができるからということです。画像認識を例にすると、画像上における近隣の情報との関係が遠方の情報との関係よりも重要になるので、遠い画素との場合分けは省略したほうがお得です。このように場合分けを多くすることで、この画素ならばこの線、この線ならばこの部品、この部品ならばこの物体という演繹を広く行うことができ、精度の高い結果を出力することができます。Playerに頻繁にクラッシュする不具合が発生。現在修正済みで公開待ち状態。