MyEnigmaスマートフォン用の表示で見るMyEnigmaとあるエンジニアのブログです。Supportersはじめに大学の理系学科に進学すると、まず初めに受ける授業の一つに『線形代数学』があります。一つ大きな疑問がありました。それは、「これは何に使うのだろう・・・?」ということです。興味が持てなかったことを思い出します(笑)。大学の研究室でロボティクスの研究をし始めると、これまで応用例が全く想像できなかった線形代数の知識が、ふんだんに応用されていることを知りました。今回は、大学での勉強とは逆の方向として、それぞれのロボティクスにおける線形代数の応用について簡単に説明したいと思います。大学時代の教科書や末尾の参考文献を見てもらえると良いと思います。使う行列は回転行列だと思います。本章では回転行列について概要を説明します。2次元空間における回転と並進座標変換ロボットでよく使われる行列演算の代表格として、2次元空間における、並進と回転による座標変換です。この座標変換は同次変換とも呼ばれます。具体的には、あるレーザの観測値をセンサ座標系ではなく、グローバルな座標系に変換する時などに使用されます。行列演算で計算できます。ローカル座標系(センサ座標系)→グローバル座標系ここで、q_1はセンサ座標系の座標値、q_2はグローバル座標系の座標値です。逆にグローバル座標系→ローカル座標系は、で計算することができます。回転行列は、ある座標点を原点中心で回転させるための行列です。回転後の座標を簡単に計算することができます。右手座標系において、x軸、y軸、z軸の回転行列は下記のようになります。最終的な回転後の座標値(0,1,0)を取得することができます。ちなみに上記の回転行列の行列式は常に1になります。それぞれの軸に対して回転させる場合は、これらの回転行列をそれぞれ掛け合わせることによって、3軸の回転を実現できます。実際に3つの回転行列を掛けあわせた行列は下記のようになります。上記の回転行列の掛け合わせる順番は非可換なので注意しましよう。非常に複雑になり、計算コストも大きくなります。下記のようにシンプルなものに近似できます。上記の近似回転行列は、IMUによる3次元速度ベクトルの変換などによく使われます。ある行列を、ある特別な行列に分解する手法の一つです。(ICP)アルゴリズムで利用できます。片方の点群の移動量を簡単に計算できるようになるのです。ヤコビ行列ヤコビ行列は、複数の関数におけるそれぞれの変数の偏微分の値を行列として表現したものです。下記の図のように、ある関数のある点における接平面の方向を表しています。ロボティクスにおいて、このヤコビ行列の応用例は下記の2つが上げられます。複数の多変数関数における最適化をしなくてはならない場合、このヤコビ行列が役に立ちます。このヤコビ行列はある点における接平面の方向なので、それを使って、勾配を下る方向に探索を行うことで最小化(最適化)を実現できます。ヤコビ行列が普通の関数の微分の拡張だと考えると理解しやすいですね。Filter:EKF)がありますが、このEKFは非線形性関数の近似として、ヤコビ行列を使用しています。Updateの際の共分散行列の遷移を実現しているのです。詳しくは下記の記事を参照下さい。変数のいずれか2つで微分した式をそれぞれの行列要素にした行列になります。対角成分は、同じ変数で2回微分した式になり、また、ヘッセ行列は転置しても同じ行列になります。最適化問題における代表的な主表として、ニュートン法などで利用されます。"非線形計画法")共分散行列(分散共分散行列)ロボティクスにおいて、共分散行列は頻繁に出てきます。カルマンフィルタを使用して、位置を推定した場合、その位置の状態ベクトルと、その推定の精度として共分散行列(分散共分散行列)が推定されます。推定精度の楕円を描画することができます。ENIGMA共分散とは、ある二組のデータの各平均からの偏差の平均(期待値)です。Wikipedia(分散)共分散行列は各組の共分散を行列として格納したものです。通常の各変数の分散になります。共分散行列の対角成分は必ず正の値になります。非対角成分は、それぞれの変数の共分散です。共分散行列の上対角成分と下対角成分は同じ値になります。正と負の両方の値をとります。負の値の場合、片方の値が大きくなると、もう片方の値は小さくなる傾向にあります。共分散行列の詳しい説明は下記の資料を参考にされると良いと思います。上記の共分散行列を標準化したものになります。統計学における標準化i行,j列の共分散の項をs_ijとすると、その項に対応する相関行列の項r_ijは下記の式で計算されます。分散共分散行列と相関行列*つまり、それぞれの共分散の項を対応する変数の標準偏差で割ったものになります。共分散行列の対角成分が各変数の分散であることを考えると、それらの値を標準化する相関行列では、対角成分は1になります。非対角成分は相関係数になります。Wikipedia従って、非対角成分の値が、1に近いほど、片方の値が大きくなると、もう片方の値も大きくなる傾向にあり、-1に近いほど、片方の値が大きくなると、もう片方の値は小さくなる傾向にあります。情報行列(精度行列)情報行列は共分散行列の逆行列です。Matrix)とも呼ばれます。情報フィルタといいます。計算コストを非常に小さくすることができます。二次形式の形で書き表せるものが多いです。一般的には下記のような形をしています。ここでx,A,b,cはすべてのベクトルか行列になります。局所的に二次形式で近似するとか(一次だと不安だけど、三次だとやり過ぎな気がするなど(笑))あると思います。多くの研究者が、何故わざわざ二次形式であることを強調するのかがわかりませんでした。それには実は理由があったのです。それは『二次形式の式は最適化がしやすい』ということです。二次形式ではそれが意外と簡単にできます。先ほどの二次形式の式f(x)を最大化してみましょう。-f(x)を最大化)することを考えると,となるような\hat{x}を求めることになります。最大値となる、いわゆる極値はとなることを考えます。そこで、f(x)を微分するととなるので、f'(\hat{x})=0とするととなって、これを整理するとそして、左辺をxのみにするととなります。ここで、ロボティクスで使用される二次形式の式の大部分に当てはまるのですが、行列Aが対称行列である場合、となり、非常に簡単な式で極値を計算できることがわかります。様々な最適化計算をすることができます。xTQxのような形式そのものを二次形式と呼ぶ場合があります。この二次形式を||x||^2_Qと記述する場合もあります。definite)と呼びます。semi-definite)といいます。加えて、この二次形式をV=xTQxとした時、このVの勾配⊿Vは、で計算できます。複数の状態量を推定するカルマンフィルタや、myenigma.hatenablog.com最適化手法である二次計画法myenigma.hatenablog.com最適化問題を利用して制御するモデル予測制御myenigma.hatenablog.comなどで利用されます。最小二乗法あるコスト関数を最小化する入力を計算する最小二乗法も線形代数の知識が必要です。様々な用途で最小二乗法は使用されます。最小二乗法に関しては、下記を参照ください。下記の記事を参照ください。Supportersもしこの記事が参考になり、ブログをサポートしたいと思われた方は、こちらからよろしくお願いします。はてなブログProとあるエンジニアのブログです。Page月別アーカイブスポンサーリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。