宮下/日誌/過去/201608
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
Japanese
/
English
]
研究について
研究の概要
論文発表
メディア
メンバー
教員
大学院生
学部生
OB
リンク
リンク集
授業
コンピュータプログラミング基礎II
機械知能システム工学特別講義I
機械システム工学特論(MORE SENSE特論)
内部用
物品管理(registries)
外部ソフトウェア
PC環境設定
買い物
プリンタ設定
定例研究会(weekly)
研究発表会(monthly)
閲覧回数順
開始行:
[[宮下]]
#setlinebreak(1);
*目次 [#w01c287d]
#contents
*2016年8月 [#o9041bf1]
**2016/8/31 [#a7fa0d01]
8月が始まったと思ったら,もう最終日になっていた.時間が経...
実は今週の目標は毎日研究室に行くことだったが,すでに失敗...
----
日誌の運用について思うのは,別にpukiwikiで書くメリットは...
完全にブログ形式だしwordpressとかのブログ用のツール?にし...
pukiwikiだと月末に近づくにつれて処理が重くなるので,あま...
----
[[前に書いた数式変形メモなど>#w0e1512f]]を[[宮下/数式]]に...
これからはそちらで考えたいと思う.
**2016/8/29 勉強会と収束速度と数式 [#i12afaed]
数式
-[[前に書いた数式変形メモなど>#w0e1512f]]に追記
----
いろいろ勘違いしていた.結局のところ,推定する$\sigma$を...
数式から変形させて考えても学習率と逆の関係になっていそう.
→その結果,確かにそうなった!
対数尤度の平均についても勘違いしていて,尤度を算術平均し...
正しくは対数尤度を算術平均することであり,尤度を平均する...
もう一つ,プログラム上で尤度を計算してから対数を取って対...
直接対数を総和したら問題なかったのでそうしているが,「/1...
----
以下,勉強会メモ
-シグモイド関数のいいところ:2値だけでないし,線形だけじ...
--ハイパボリックタンジェントも同じような性質がある
-パーセプトロンが線形でのみ分離できるが収束しない
-ロジスティック回帰は線形でのみ分離できて収束する
-SVMは線形分離
-カーネル化SVMは次元をあげて線形分離→非線形分離が可能に!
-決定木学習:単純なアルゴリズムだけど,精度は高くない.自...
--エントロピーなどを最小化したい,ということだよね?
--P.85の図はエントロピーなど最小化したい式を比較している
-ランダムフォレスト
-計算量と精度は一般にトレードオフ
-「次元の呪い」っていろいろあるっぽい?
→pythonの本では「サンプルを固定したトレーニングデータセッ...
↔️私が知っていたのは計算量の増加の話だけだった
-カーネル化SVMのカーネルとは?
--カーネルとは「核」
--カーネル法([[カーネル法 - Wikipedia:https://ja.wikipedi...
→カーネル法はカーネル関数([[カーネル (統計学) - Wikipedia...
--[[カーネル法を視覚的に理解する - Qiita:http://qiita.com...
つまりカーネルSVMにおける「カーネル」とは,入力空間のベク...
座標変換っぽいが,違うらしい….
--やりたいことは座標変換と同じだが,内積を用いて同じこと...
[[今さら聞けないカーネル法とサポートベクターマシン:http:/...
[[カーネル法 - Wikipedia:https://ja.wikipedia.org/wiki/%E...
-[[正則化つき線形モデル(「入門機械学習第6章」より):http:/...
正則化もふわっとしかわかっていないので数学的に理解する必...
**2016/8/28 [#y318a0e2]
先生に書いていただいたメモを見返してみると,図の1次元の方...
まあそうだよなあ.2次元のほうだと変だし.
では収束はどうやって判断したものか?→とりあえず尤度は使わ...
初期パラメータと収束させたい(=真のパラメータ)が遠いほ...
----
昨日の続きで調べてみた.
-[[Tech Tips_ ベイズ推定と最尤推定の違い:http://techtipsh...
ベイズ推定と最尤推定の違いについて説明されている.わかり...
-[[最尤法とその計算アルゴリズム:http://mcm-www.jwu.ac.jp/...
「オンライン 最尤推定」で調べてもほとんどなにも出なかった...
ニュートン・ラプソン法が勾配法に相当する?
--[[第7章 降下法:http://www-optima.amp.i.kyoto-u.ac.jp/~n...
そうっぽい.
--[[最適化超入門:http://www.slideshare.net/tkm2261/ss-421...
厳密には違うみたい.ニュートン法は二階微分まで考慮するけ...
**2016/8/27 最尤推定とベイズ推定[#a0dc9232]
一歩戻って,最尤推定とベイズ推定のそれぞれについてと,2つ...
よくわからなくなっているのはこれらの基礎知識が足りないか...
-[[PRML 第1章の「最尤推定によるパラメータフィッティング」...
最尤推定とベイズ推定について説明されている.
-[[SOMによるフォーメーション形成に関する研究:http://hokka...
「"学習率と分散"」で調べてみたら,これしか出なかった.
-[[Python_ Boston データセットで線形回帰分析を学ぶ _ CUBE...
これは最小二乗法を使った回帰分析.最尤推定は最小二乗法と...
**2016/8/26 [#mc48a2fd]
なにがしたいのかわからなくなってきた.
-そもそも
PI^2のノイズの分散を大きくすると収束は速くなる傾向がある...
…勾配降下法で言う学習率が大きいときの挙動に似ている.
→ノイズの分散と学習率($\eta$)は正の相関がありそう
-ノイズの分散の気持ち(予想)…どのくらいの範囲に$\theta$...
ノイズの分散が大きい場合,広い範囲にばらまく→1ステップご...
ノイズの分散が小さい場合,狭い範囲にばらまく→1ステップご...
-ノイズの分散は(オンライン)最尤推定で言うと,何に相当す...
-先生が言っていたのは
--最尤推定は分散が大きいと収束が遅い.=分散と学習率は負...
ベイズ推定は分散が大きいと収束が速い.=分散と学習率は正...
--分散を設定できるようにして,分散と収束速度の違いを見る
-図解
&resizeimage(./20160826_likelihood.jpg);
--左は1次元的に平均$\mu$,分散$\sigma$の点が得られて,そ...
↔しかしこれだと,分散が学習率になるとは思えない.仮に相関...
--右は2次元的に$y=f(x)+\epsilon$の点が得られてその$f(x)$...
[[確率的勾配降下法とは何か、をPythonで動かして解説する - ...
ただ,これだと得られる点のx座標の規則も指定しないといけな...
正規分布にする意味もわからない.別に$f(x)=\frac{1}{\sqrt{...
でも,$\sigma'$がノイズの分散に近い気がする.これが大きい...
**2016/8/23 [#r7fcb12a]
よく考えたら尤度って「観測値」と「観測値から推定した分布...
二乗平均でも表されるし,尤度そのものであるともいえる.
しかし,私が知りたいのは「真の分布」と「観測値から推定し...
PI^2のノイズの分散というのは,真の分布から観測値を得ると...
----
もしかしたら私の実装したものはレイヤーを間違えている?
**2016/8/22 [#cda23c9b]
ノイズの分散が学習率に相当するというところが気になったの...
しかし,尤度はデータ数に依存するので,データの数が増える...
それはそうだよね,P<=1で掛け合わされる数が増えるんだから...
なにかデータ数に依存しない尤度の取り方はあるのかな?
参考資料など
-[[【統計学】尤度って何?をグラフィカルに説明してみる。 -...
-[[最尤法によるパラメータ推定の意味と具体例 _ 高校数学の...
-[[尤度関数と最尤推定量(maximum likelihood estimato:https...
-[[pythonによる機械学習[最尤推定法編] - ぱろっくの日記:ht...
-[[最尤法をニュートン法で解く _ Sunny side up!:http://nor...
-[[尤度と最尤推定法について _ Sunny side up!:http://norim...
-[[機械学習でパラメータ推定 - 最尤推定法 - · けんごのお屋...
-[[確率的勾配降下法とは何か、をPythonで動かして解説する -...
-[[第19回 ロジスティック回帰の学習:機械学習 はじめよう...
----
矢野先生より
-引用文献の読み取り方(本当は自分で判断するのがよいが…)
--引用件数の目安は分野によって違う
--誰が引用しているのか見る
大物の文献が引用していれば,問題なさそう.その文献がさら...
著者や著者のグループが引用していたら,まあそんなもんか.
-シナリオはおおまかに3つ
++PI^2をBBOの考えで改善→ROCK*についてモデル切り替えを考慮...
++PI^2をBBOの考えで改善→改善したPI^2をアプリケーション化
++ROCK*についてモデル切り替えを考慮した改善→ROCK*アプリケ...
-ひとまずの流れ
PI^BBを読んで指数勾配降下法を使っていないか確認する→問題...
-PI^2に出てくるRとは,確率を考慮した距離を求めるためのも...
-良い本
--[[生きること学ぶこと (集英社文庫) Amazon.co.jp:https://...
--[[考えるヒント (文春文庫) Amazon.co.jp:https://www.amaz...
----
水内先生より
-来年度から始まりそうなこと.
--学内インターンシップ
---他学科の研究室体験ができる!(M1向け)
単位も取れるらしい!?
【面白そうだなあ】
--学部3年生の後期から研究室配属されるようになる
---農学部ではすでにやっている.
工学部でも一部やっているところもある.
-先人の知恵は大事
-「プロだったらどうやるだろう?」と考えることでプロになれる
-研究倫理教材は先に試験をやってから,資料を読むのでもよい...
-遅延評価(lazy evaluation)
必要になるまで計算を実行しない
→一般化すると…必要になるまでやらない!
【私はどうなんだろうなあ】
-[[Welcome to CLAWAR 2016:https://clawar.org/clawar2016/]]
CLAWARはClimbing and Walking Robotsの略.
**2016/8/21 数学のことを考える [#p6bcc92e]
-更新式って漸化式みたいなものだが,それを等式として考える...
(正しくは漸化式$\in$更新式かな?)
>
\[\Theta_{t,k}\leftarrow\frac{\rm{exp}(-\frac{g_{t,k}}{\e...
<
のように「(時刻tの変数)←(時刻t-1の変数)」が
>
\[\Theta_{t-1,k}=\frac{\sum_{k=1}^K\rm{exp}(-\frac{g_{t,k...
<
と「(時刻t-1の変数)←(時刻t-1の変数)」なるのがどうもし...
>&color(blue){2016/8/22に補足};
少なくとも更新式ではない(自己無撞着,陰関数方程式)
更新式の収束:平衡点,アトラクター
下の式は無限時間後の更新式に相当?
<
-もしかしたら先に$\sum^K_{k=1}\Theta_{t,k}=1$を代入してし...
それを踏まえて+スライドで改悪している気がするので前に聞...
>指数勾配降下法の式より
\[\Theta_{t,k}\leftarrow\frac{\rm{exp}(-\frac{g_{t,k}}{\e...
両辺を$\Theta_{t-1,k}$で割ると
\[\frac{\Theta_{t,k}}{\Theta_{t-1,k}}\leftarrow\frac{\rm{...
両辺の総和をとって
\[\sum^K_{k=1}\frac{\Theta_{t,k}}{\Theta_{t-1,k}}\leftarr...
分子と分母を入れ替えると
\[\frac{\Theta_{t-1,k}}{\sum^K_{k=1}\Theta_{t,k}}\leftarr...
ここで
\[
\theta_t\leftarrow\frac{\sum_{k=1}^K\rm{exp}(-\frac{g_{t,...
\]
とおくと,式(1)は
\[
\begin{align}
\Theta_{t,k}&\leftarrow\frac{\rm{exp}(-\frac{g_{t,k}}{\et...
\frac{\Theta_{t,k}\theta_{t}}{\Theta_{t-1,k}}&\leftarrow\...
\end{align}
\]
両辺の総和をとって
\[
\begin{align}
\frac{\sum^K_{k=1}\Theta_{t,k}\theta_{t}}{\Theta_{t-1,k}}...
\frac{\theta_{t}\sum^K_{k=1}\Theta_{t,k}}{\Theta_{t-1,k}}...
\end{align}
\]
ここでKLダイバージェンスを満たす場合$\sum^K_{k=1}\Theta_{...
\[
\begin{align}
\frac{\theta_{t}}{\Theta_{t-1,k}}&\leftarrow 1\\
\theta_{t}&\leftarrow\Theta_{t-1,k}\tag{1'}
\end{align}
\]
$\Theta_{t-1,k}=\theta_{t-1}+M_{t-1,k}\epsilon_{t-1,k}$と...
\[
\begin{align}
\theta_t&\leftarrow\frac{\sum_{k=1}^K\rm{exp}(-\frac{g_{t...
\theta_t&\leftarrow\frac{\sum_{k=1}^K(\theta_{t-1}+M_{t-1...
\theta_t&\leftarrow\frac{\sum_{k=1}^K\theta_{t-1}\rm{exp}...
\theta_t&\leftarrow\theta_{t-1}+\frac{\sum_{k=1}^KM_{t-1,...
\theta_t&\leftarrow\theta_{t-1}+\sum_{k=1}^KP_{t-1,k}M_{t...
\end{align}
\]
これは$\theta_{t-1}+M_{t-1,k}\epsilon_{t-1,k}$がKLダイバ...
<
%%(KLダイバージェンスを満たす,という表現は正しいのだろ...
%%この変形を日本語で言うと以下のようになる.指数勾配降下...
%%これだったら私もしっくりくる.%%
%%たぶん等号と更新が混ざっていたのが,混乱の元だったのだ...
やっぱりしっくりこない.
式(5)で$\Theta_{t-1, k}=\theta_t\sum^K_{k=1}\Theta_{t,k}$...
なんだかおかしい気がする.何か勘違いしているのかな?
ポイントとして$\Theta_{t-1,k}=\theta_{t-1}+M_{t-1,k}\epsi...
**2016/8/20 わかっていない部分の洗い出し [#s989d84f]
なぜわからないのか
-代入演算子$\leftarrow$と等号$=$の区別ができていない
→代入演算子の両辺を割るのは問題ないのか?
つまり,勾配降下法の式は更新式であるので,以下の変形は問...
>
\[\Theta_{t,k}\leftarrow\frac{\rm{exp}(-\frac{g_{t,k}}{\e...
両辺を$\Theta_{t-1,k}$で割ると
\[\frac{\Theta_{t,k}}{\Theta_{t-1,k}}=\frac{\rm{exp}(-\fr...
<
--[[同期回数削減版反復解法に関する考察について:https://ip...
実際に更新式の変形をしている例を見てみる.3.2より,更新式...
--[[Minibatch and Parallelization for Online Large Margin...
P.14の式(1)あたりで更新式を両辺いじっている.これは自然な...
--[[分散演算を用いたLMS適用フィルタの収束条件:http://www....
P.3の式(19)あたりで更新式を両辺いじっている.
***構想発表用に作成したスライドより [#cb2fda55]
スライド自体は前に書いた[[数式変形メモなど>研究/日誌/過去...
指数勾配降下法の式より
\[\Theta_{t,k}=\frac{\rm{exp}(-\frac{g_{t,k}}{\eta_t})\Th...
両辺を$\Theta_{t-1,k}$で割ると
\[\frac{\Theta_{t,k}}{\Theta_{t-1,k}}=\frac{\rm{exp}(-\fr...
両辺の総和をとって
\[\sum^K_{k=1}\frac{\Theta_{t,k}}{\Theta_{t-1,k}}=\frac{\...
$\sum^K_{k=1}\Theta_{t,k}=1$より
\[\frac{1}{\Theta_{t-1,k}}=\frac{\sum^K_{k=1}\rm{exp}(-\f...
分子と分母を入れ替えると
\[\Theta_{t-1,k}=\frac{\sum_{k=1}^K\rm{exp}(-\frac{g_{t,k...
$\Theta_{t-1,k}=\theta_{t-1}+M_{t-1,k}\epsilon_{t-1,k}$と...
\[\begin{align}\frac{\sum_{k=1}^K(\theta_{t-1}+M_{t-1,k}\...
***前に書いた[[数式変形メモなど>研究/日誌/過去/201607#u97...
変数をスライドに合うように変えた.&color(red){+読んで思...
確率的最急降下法(SMD)からPI^2への式変形
SMDは(1)のように書ける.
\[\Theta_{t,k}=\frac{\rm{exp}(-\frac{g_{t,k}}{\eta_t})\Th...
ある$\theta_{t}$について
\[\sum^K_{k=1}\frac{\Theta_{t,k}}{\Theta_{t-1,k}}=\frac{\...
これより
\[\Theta_{t,k}=\frac{\rm{exp}(-\frac{g_{t,k}}{\eta_t})\Th...
両辺の$k=1$から$K$までの総和をとって
\[\sum^K_{k=1}\Theta_{t,k}=\frac{\sum^K_{k=1}\rm{exp}(-\f...
ここで$\sum^K_{k=1}\Theta_{t,k}=1$より
\[1=\frac{\sum^K_{k=1}\rm{exp}(-\frac{g_{t,k}}{\eta_t})\T...
したがって
\[\theta_{t}=\Theta_{t-1,k}\]
が成り立つ.&color(red){←そうなるように定義したんだから,...
$\Theta_{t-1,k}=\theta_{t-1}+M_{t-1,k}\epsilon_{t-1,k}$と...
(2)での置き換えとPI^2について.
\[\begin{align}\theta_{t}&=\int\Theta_{t-1,k}\frac{\rm{ex...
&color(red){$\eta_t$としている中で$\eta_{t-1}$にするべき...
**2016/8/19 デモができるようになった [#ve3df90f]
せっかくなので,田先輩のプログラムを参考にデモができるよ...
具体的には$\theta$の更新ごとにコストが出力され,同時にそ...
描画はボタンで ON/OFFできる.
pauseがないとcallback関数が動かないのが気になるが,まあそ...
改善点はあるが,動くことは確認できた.
----
学習としても,概ね先行研究通りな気がするし,一応問題なく...
時間を掛けすぎた気しかしないし,むしろ最初からmatlabコー...
過信しすぎはよくないし,そもそも自分はアルゴリズムの実装...
現時点で完璧に同じを目指してもキリがないし,そろそろ理論...
何から始めようか….
----
Adagrad→Adadeltaと勉強してみる.学習率を学習する手法だと...
-Adagrad
--[[AdaGrad, RMSProp, AdaDelta, Adam, SMORMS3 - Qiita:htt...
\[
\begin{align}
r &\leftarrow r + g_\vec{w}^{2} \\
w &\leftarrow w - \frac{\alpha}{\sqrt{r} + \epsilon} g_\v...
\end{align}
\]
を読んだとき,
matlabコードのdcp.m内でも似たようなこと
#code(matlab){{
f = sum(in*(dcps(ID).w+cw).*dcps(ID).psi)/...
}}
などをやっていたのを思い出したが,多分違う.matlabの方は0...
それに意味のある数字だったら,直接書かずに変数などで定義...
--そういえば文献中に「速くするテクニックがあるが,ここで...
--matlabサンプルコードのノイズの探索はちょっと変わったこ...
割愛しつつ抜き出し.
#code(matlab){{
function runProtocol(p)
...
% run learning roll-outs with a noise annealing multiplier
noise_mult = double(p.updates - i)/double(p.updates);
noise_mult = max([0.1 noise_mult]);
D=run_rollouts(D,p,noise_mult);
...
function D=run_rollouts(D,p,noise_mult)
...
std_eps = p.std * noise_mult;
for j=1:n_dmps,
% generate noise
if ~p.bases_noise, % this case adds noise at every ...
epsilon = randn(n_rfs,1)*std_eps;
else % this case only adds noise for the most activ...
% is not change during the activity of the bas...
if (n==1),
epsilon = [randn*std_eps ; zeros(n_rfs-1,1)];
else
% what is the max activated basis function from...
[val,ind_basis] = max(D(k).dmp(j).psi(n-1,:));
% what was the noise vector from the previous t...
epsilon_prev = D(k).dmp(j).theta_eps(n-1,:)-dcp...
% ... and find the index of the basis function ...
[val,ind_eps] = max(abs(epsilon_prev));
% only add new noise if max basis function inde...
if (ind_eps ~= ind_basis),
epsilon = zeros(n_rfs,1);
epsilon(ind_basis) = randn*std_eps;
else
epsilon = epsilon_prev';
end
...
}}
ノイズは学習率に相当する気がしてきた.
----
よく考えたらまだPI^2と確率的勾配降下法の変形がしっくりき...
それが先ですな.
**2016/8/18 visualize [#mb05fd58]
やはり,ビジュアライズすると楽しい.
&ref(20160818_2dof-1000rollout.mp4);
&ref(20160818_10dof-1000rollout.mp4);
こんなんでいいのかなあ….うーん.
**2016/8/17 dmpbboとmatlabコードの見直し [#y42fcd43]
このwikiのアクセス数が今日だけで%%600%%1000件と跳ね上がっ...
とにかくアクセス解析ツールを早急に入れる必要がありそう;
それとか,http→httpsにしてセキュアにしたり,ポート設定を...
----
dmpbboを動かしてみる.
pi^2-bbはpi^2の派生のようだし,viapointがあるということは...
これを漁ってみると,これが怪しい気がした.
https://github.com/stulp/dmpbbo/blob/4bbb90ae679053e04bb4...
bool use_viapoint_traj= false;
を
bool use_viapoint_traj= true;
にしたら,何か手がかりが掴めると思ったが,これは単純にDMP...
falseだとminjerkになるようだ.
気になるところその2.
https://github.com/stulp/dmpbbo/blob/3ce1c09c66ca1890bb10...
そのまま貼ってしまう.
#Code(C){{
void TaskViapoint::evaluateRollout(const MatrixXd& cost_v...
{
// cost_vars is assumed to have following structure
// y_1..y_D yd_1..yd_D ydd_1..ydd_D t=0 forcing_1.....
// y_1..y_D yd_1..yd_D ydd_1..ydd_D t=1 forcing_1.....
// | | | | | | | | ...
// y_1..y_D yd_1..yd_D ydd_1..ydd_D t=T forcing_1.....
int n_dims = viapoint_.size();
int n_time_steps = cost_vars.rows();
int n_cost_vars = cost_vars.cols();
//cout << " n_dims=" << n_dims << endl;
//cout << " n_time_steps=" << n_time_steps << endl;
//cout << " n_cost_vars=" << n_cost_vars << endl;
// y_1..y_D yd_1..yd_D ydd_1..ydd_D t forcing_term_1...
assert(n_cost_vars==(4*n_dims + 1));
// rollout is of size n_time_steps x n_cost_vars
VectorXd ts = cost_vars.col(3 * n_dims);
double dist_to_viapoint = 0.0;
if (viapoint_weight_!=0.0)
{
if (viapoint_time_ == TIME_AT_MINIMUM_DIST)
{
// Don't compute the distance at some time, but rat...
const MatrixXd y = cost_vars.block(0, 0, n_time_ste...
dist_to_viapoint = (y.rowwise() - viapoint_.transpo...
}
else
{
// Compute the minimum distance at a specific time
// Get the time_step at which viapoint_time_step ap...
int viapoint_time_step = 0;
while (viapoint_time_step < ts.size() && ts[viapoin...
viapoint_time_step++;
assert(viapoint_time_step < ts.size());
VectorXd y_via = cost_vars.row(viapoint_time_step)....
dist_to_viapoint = sqrt((y_via-viapoint_).array().p...
}
if (viapoint_radius_>0.0)
{
// The viapoint_radius defines a radius within whic...
dist_to_viapoint -= viapoint_radius_;
if (dist_to_viapoint<0.0)
dist_to_viapoint = 0.0;
}
}
double sum_ydd = 0.0;
if (acceleration_weight_!=0.0)
{
MatrixXd ydd = cost_vars.block(0,2*n_dims,n_time_step...
// ydd = n_time_steps x n_dims
sum_ydd = ydd.array().pow(2).sum();
}
double delay_cost = 0.0;
if (goal_weight_!=0.0)
{
int goal_time_step = 0;
while (goal_time_step < ts.size() && ts[goal_time_ste...
goal_time_step++;
const MatrixXd y_after_goal = cost_vars.block(goal_ti...
n_time_steps - goal_time_step, n_dims);
delay_cost = (y_after_goal.rowwise() - goal_.transpos...
}
int n_cost_components = 3;
costs.resize(1+n_cost_components); // costs[0] = sum(co...
costs[1] = viapoint_weight_*dist_to_viapoint;
costs[2] = acceleration_weight_*sum_ydd/n_time_steps;
costs[3] = goal_weight_*delay_cost;
costs[0] = costs[1] + costs[2] + costs[3];
}
}}
----
(最低限の)使い方メモ
-ダウンロード
git clone https://github.com/stulp/dmpbbo.git
-コンパイル
[[INSTALL.txt:https://github.com/stulp/dmpbbo/blob/master...
mkdir -p build_dir_debug; cd build_dir_debug; cmake .. -...
-viapointのデモを実行
cd ./src/dmp_bbo/demos
./demoOptimizationDmp tmp
tmp内にデータができるので,移動してプロットする.
cd ./tmp
python plotRollout.py update00000/rollout001/
0回目の更新の1ロールアウト目の様子がプロットされる.
どうみてもアームの問題ではない….
----
matlabのコードを見直して動かしてみたら,2nd canonicalなら...
状況から察するに学習率に相当するパラメータが大きすぎる気...
いろいろ試してみたら,protocolの
std : standard deviation of added noise for ...
の大きさが影響しているようだった.元は20だったが,小さく...
それと元の論文について,手法が違うのにこんなに綺麗にコス...
そこらへんもどこかにはっきり書かれているのかもしれない.
↔️いやでも,コスト関数を完全に一致させることができればそ...
----
結果→&ref(20160817_PI2result2dof.txt);
これはスケーリング後のもの.stdは1.
protocolはこんな感じ.viapointは手先位置からコストを計算...
0 0 1.57079632679 0.78539816339 0.5 1 15 viapoint...
まあいいのかなあ.本当にいいのかなあ.
----
もやもやするポイント.
protcolで定めるstdとrand関数で定める標準偏差のstdはどう違...
protocolのやつはノイズの探索ってやつだと思うのだが,本当...
→確認してみたら結局やってることは同じ.
ただ,文献通りのN(0, 0.1)じゃ,収束まで時間がかかりすぎる...
----
matlabコードを改造した.
さすがに10自由度だと実行に時間がかかる.
結果→&ref(20160817_PI2result10dof.txt);
これはスケーリングなし.
結構近い値だし,収束後の値もいい感じ.
なんでだろう?
実際の軌道もgitには上げたが,問題なさそう.
ひとまず,pythonのコードと同じように可視化してみようと思...
なくてもいいかもしれないが,ちゃんと見えた方が安心するの...
**2016/8/15 文献探し [#v4c0596d]
A Genelized Path Integral Control Approach to Reinforceme...
-[[Emergent Proximo-Distal Maturation through Adaptive Ex...
アームの問題を解いている!がなんだか違うみたい.
-[[Adaptation de la matrice de covariance pour l’apprenti...
PI^2-CMAのフランス語版.よく読めないが,言っていることは...
-[[Model-free Reinforcement Learning of Impedance Control...
PI^2関連の論文でこういう図が使われているものは初めて見た...
-[[Policy Improvement: Between Black-Box Optimization and...
PI^BB.見覚えがあるが一応.
-[[Reinforcement Learning in Robotics: Applications and R...
面白そうだけど,あとで.
-[[Regularized Covariance Estimation for Weighted Maximum...
----
-https://github.com/stulp/dmpbbo/blob/master/src/dmp_bbo/...
ええいっ!と「task_viapoint」で調べてみたらこれが出てきた...
--https://github.com/stulp/dmpbbo/blob/master/src/dmp_bbo...
でもこれはviapointとpi-bbというキーワードを両方含むのであ...
-[[Learning Policy Improvements with Path Integrals:http:...
構成が違うやつ.
-[[Sylvain Calinon:http://calinon.ch/sourcecodes.php]]
関係なさそうだけど,サンプルコード.DMPとかGMMとか.面白...
-[[Enhanced Policy Adaptation Through Directed Explorativ...
それっぽい単語「Viapoint task dmp pi2」を並べてgoogleで調...
Fig1がアームの実験.著者の名前には見覚えがないし,この人...
プロットには
[[Integrated environment for modelling, simulation and co...
を使ったらしい.MATLABのツールボックスっぽい.
--[[Pridobivanje elementarnih gibov za robotsko učenje:h...
そのまま落ちてくるので注意.
Rok Vugaさんの長い論文.内容は上のものとだいたい一緒+α....
-[[Optimal and Learning Control for Autonomous Robots Lec...
講義資料.
----
最近スパムコメントがめっちゃ来る.
コメント欄を閉じてしまおうかな….
**2016/8/11 勉強会準備 [#g9e6c49a]
環境設定
-Macの場合
python3をbrewで入れる.
brew install python3
何がインストールされているか確認.
pip3 list
念のためアップグレード.
pip3 install --upgrade pip
一気に入れる.
pip3 install numpy scipy scikit-learn matplotlib pandas
これでok!
**2016/8/10 文献探し [#uf2661e6]
Reinforcement learning of motor skills in high dimensions...
-[[Biologically inspired motor skill learning in robotics...
P.43あたりが気になる.
-[[Dimensionality Reduction and Motion Coordination in Le...
6/11にも目を通していたみたいだが,Appendixが気になる.
-[[Towards the Improvement of Robot Motion Learning Techn...
PI^2_BBってまさにブラックボックスのBBなんだね….
PI^2についてはP.18に,他にもいろいろまとまっている.
-[[Learning and Chaining of Motor Primitives for Goal-dir...
PI^2をヘビ型ロボットに適用している.
-[[Nonlinear Policy Gradient Algorithms for Noise-Action ...
NMDP−REINFORCEと名付けられたアルゴリズムをPI^2と比較して...
-[[Probabilistic Gradient Ascent with Applications to Bip...
PI^2の最近のことも書いてありそう.後で読む.
-[[Path Integral Reinforcement Learning:http://s3.amazona...
TheodorouとSchaalの論文.文献講読で読んだ論文の著者+Free...
**2016/8/8 文献探しに飽きてmatlabコードを触る [#n15f112c]
ロボットアーム&&PI^2のプログラムを探していたが案の定見つ...
2nd canonicalを使うモードにすると,とても性能が高くなるこ...
一例.はじめは33983099.732059で論文のものと誤差があるが,...
しかも今までみたいに途中で跳ね上がったりしていない.
なにかここに打開策があるかもしれないが,やはり最初が高い...
引き続き探してみる.
**2016/8/7 MFTメモ [#pfe264a6]
NVIDIAの人
-CNNは畳み込みニューラルネットワークのこと.
畳み込みの最初はエッジ検出のように単純なものだが,だんだ...
-教師データは人が手作業で作る.
googleに,仕事をしたい人と仕事を与えたい人を結びつけるサ...
あるいは大学生のアルバイトとしてラベル付けがある.
-GPUであればリアルタイム処理もできる.
-社員はハードウェア設計が専門の人ばかりだと思われがちだが...
-研究の目線でいうと,まだまだ現状のGPUじゃ速度が足りない...
昔のラジオを真空管音楽プレイヤーにする人
-Bluetoothでスマホと通信して音楽を流せる.局を調整するつ...
-真空管はこだわりや自己満足に近い,正直なところトランジス...
-こだわり
--元の姿を大切にする
--ラジオの製造時期に合わせた真空管を使う【いいこだわりだ...
モジュールロボットを作った人
-モチベーションは内部の仕組みがわからなくても動かせるロボ...
-電車で使われる電源と通信をいっぺんに送れる規格を使ってい...
-リニア鉄道(?)を作った人
-円形のレールの上を走る.センサで位置を検知し,それに従っ...
センサは4cm間隔くらいでたくさんついていて,コイルも同じく...
-マイコンはArduino1つ.
去年はセンサの検知をすべてマイコンでやっていた.複数のマ...
今年はセンサをコンパレータでデジタルに変換し,それらをエ...
【ごもっともな方法だし,美しいやり方だと思った】
ARMの人
-mbedは抽象化されている
--オンラインでコードを書いたりコンパイルしたりできる
--書き込みも簡単.ドラッグアンドドロップでおしまい.
--【よくエエエエンベッド!!!とか聞くが,実際はどんなものか知らな...
中身を詳しく知らなくてもできる,というのは今ものづくりの...
すごいの(F7のNucleoとBluetooth拡張ボード!)もらっちゃっ...
**2016/8/5 サンプルプログラムを動かしてみた [#u6d6d30c]
今日はmatlabを買った.今日買わないとほとんどお盆に入って...
受け取った時,軽くてびっくりしたが,ディスクではなくライ...
素晴らしいことに2台までアクティベート(要するにインストー...
やったね!
とりあえず動かしてみる.
----
[[adrl_software [LAB]:http://www.adrl.ethz.ch/doku.php/ad...
[[adrlab _ c_ROCKstar — Bitbucket:https://bitbucket.org/a...
そのままじゃ動かなかった….
203行目の
[y, yd, ydd,time]=task.perform_rollout_evaluation(task,t...
を
[y, yd, ydd,time]=task.perform_rollout_evaluation(task,t...
に変更する.
結局このmatlabプログラムではリーチングタスクしか行ってい...
task.viapoint=[0.5, 0.5]みたいなそれっぽい変数はあったが...
c++のコードもあるようなので試してみる.
CMakelists.txtってのがあった.確かMakefileを作ってくれる...
brew install cmake
そして
cmake .
すると
#pre{{
kondoLab-no-MacBook-Air-2:cpp_code miyashita$ cmake .
-- The C compiler identification is AppleClang 7.3.0.7030...
-- The CXX compiler identification is AppleClang 7.3.0.70...
-- Check for working C compiler: /Library/Developer/Comma...
-- Check for working C compiler: /Library/Developer/Comma...
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/Com...
-- Check for working CXX compiler: /Library/Developer/Com...
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at /usr/local/Cellar/cmake/3.5.2/share/cmake/...
Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGE...
(Required is at least version "2.91.0")
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.5.2/share/cmake/Modules/FindP...
cmake/FindEigen3.cmake:76 (find_package_handle_standard...
CMakeLists.txt:11 (find_package)
-- Configuring incomplete, errors occurred!
See also "/Users/miyashita/Documents/PathIntegral/c_rocks...
}}
Eigenがないらしい.
なので
brew install eigen
したら
#pre{{
kondoLab-no-MacBook-Air-2:cpp_code miyashita$ cmake .
-- The C compiler identification is AppleClang 7.3.0.7030...
-- The CXX compiler identification is AppleClang 7.3.0.70...
-- Check for working C compiler: /Library/Developer/Comma...
-- Check for working C compiler: /Library/Developer/Comma...
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/Com...
-- Check for working CXX compiler: /Library/Developer/Com...
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Eigen3: /usr/local/include/eigen3 (Required is a...
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/miyashita/Doc...
}}
できたっぽい.
ここでようやく
make
したら
#pre{{
kondoLab-no-MacBook-Air-2:cpp_code miyashita$ make
[ 50%] Building CXX object CMakeFiles/example_Optimizatio...
In file included from /Users/miyashita/Documents/PathInte...
/Users/miyashita/Documents/PathIntegral/c_rockstar/cpp_co...
#include <boost/random/variate_generator.hpp>
^
1 error generated.
make[2]: *** [CMakeFiles/example_Optimization.dir/example...
make[1]: *** [CMakeFiles/example_Optimization.dir/all] Er...
make: *** [all] Error 2
}}
c++のBoostライブラリが必要らしいので入れる.
[[Boostライブラリのビルド方法 - boostjp:http://boostjp.gi...
と思ったが,
brew install boost
でもインストールできるようなのでそうした([[HomebrewでBoo...
他にもgslが足りないと言われたがこれも,
brew install gsl
で解決!
#pre{{
kondoLab-no-MacBook-Air-2:cpp_code miyashita$ make
[ 50%] Building CXX object CMakeFiles/example_Optimizatio...
[100%] Linking CXX executable example_Optimization
[100%] Built target example_Optimization
}}
そして
./example_Optimization
で実行してみたらできたが,よくわからない….
コードを読んでみたら,Rosenbrock関数を解いているらしい.
[[Rosenbrock関数を解くSA:http://mikilab.doshisha.ac.jp/di...
最適化問題かな?
---
-[[GitHub - stulp_dmpbbo_ C++ library for Function Approx...
PI^2-CMAの人のgithub.
-[[Policy Improvement Methods: Between Black-Box Optimiza...
すごく同じことを言っている気がするし,これも参考文献とし...
----
-WorkStationについて考えておくこと
--matlabがCUI環境で動くのかどうか?
--Matlabを買っておく
**2016/8/4 [#w79e17b5]
工学部説明会所感
-強化学習は,他の体験型の研究に比べて説明が「へえ,そっか...
-リアルタイム強化学習をさせると時間がかかって微妙→乱数の...
-なんかモノがあるといいなあ(完全に個人的な趣味だが…)
----
-やはりROCK*は高速な強化学習らしい
--Blackbox OptimizationとPI^2の関係も軽く述べられている
--ROCK*は目的関数の推定を行う
↔️環境変化に追従しづらいという欠点:とはいえ環境変化をと...
--ROCK*を踏まえた研究をする→評価の方法も踏まえる.
目的関数が切り替わる(具体的には,viapointが変わるなど)...
- 目的関数の推定を行わないとは
--簡単なタスクであれば優位に学習できる
--(よくマニュピランダムで行う運動学習の実験と似ている,...
-研究テーマ発想のプロセス(一般化した部分だけ)
--入力はたくさんあったほうがよい.知識 from 本,人間,etc...
知識があると人間と交流でき,ある知識から別の知識を得るこ...
--入力から考えたことをまとめる.忘れないようにきちんとメ...
発想術についてはいろいろあるので参考にするとよい「スウェ...
うまく考えられない場合は,専門外の人間に聞いてみると何か...
**2016/8/2 [#ufc71b2e]
ようやくソフトウェア工学のレポートを始めた.まあさくっと...
----
-ddXiの単位が違ったりする?
→と言っても元々単位はないし,(任意)/s^2が加速度で(任意...
-相互作用を考慮できていない
→1dofなら考慮しなくていいと思うんだけど.
一瞬だけ「重力の考慮」って思ったけど,平面だから考えてい...
-前から怪しいと思っていたところ.
サンプルプログラムについてた説明だと$r_t=\bm{\ddot{q}}^T_...
ここなんじゃないか?
-ある時間の位置・速度・加速度が一緒なら,costも同じになる...
→確認してみたが,大きな違いはなさそうだった.
**2016/8/1 [#w28bc3e7]
とうとう8月になってしまった….
時間は有限であることを認識せざるをえない.
どうもcostが合わないので,文献で紹介されていたもっと単純...
が2500000くらいのはずが103000000000=1.03*10^11になる….40...
-minjerkの有無でコストは相当変わる.
アームのときだけうまくいかないのは,minjerkが角度に適用で...
そんなことはない気がするのだけれど.
-STEPの数でコストも変わる.
ノイズの重み付けをSTEPの数でやっていたが,そういうことが...
→なさそうだし,単純にぶれてるだけっぽい.
終了行:
[[宮下]]
#setlinebreak(1);
*目次 [#w01c287d]
#contents
*2016年8月 [#o9041bf1]
**2016/8/31 [#a7fa0d01]
8月が始まったと思ったら,もう最終日になっていた.時間が経...
実は今週の目標は毎日研究室に行くことだったが,すでに失敗...
----
日誌の運用について思うのは,別にpukiwikiで書くメリットは...
完全にブログ形式だしwordpressとかのブログ用のツール?にし...
pukiwikiだと月末に近づくにつれて処理が重くなるので,あま...
----
[[前に書いた数式変形メモなど>#w0e1512f]]を[[宮下/数式]]に...
これからはそちらで考えたいと思う.
**2016/8/29 勉強会と収束速度と数式 [#i12afaed]
数式
-[[前に書いた数式変形メモなど>#w0e1512f]]に追記
----
いろいろ勘違いしていた.結局のところ,推定する$\sigma$を...
数式から変形させて考えても学習率と逆の関係になっていそう.
→その結果,確かにそうなった!
対数尤度の平均についても勘違いしていて,尤度を算術平均し...
正しくは対数尤度を算術平均することであり,尤度を平均する...
もう一つ,プログラム上で尤度を計算してから対数を取って対...
直接対数を総和したら問題なかったのでそうしているが,「/1...
----
以下,勉強会メモ
-シグモイド関数のいいところ:2値だけでないし,線形だけじ...
--ハイパボリックタンジェントも同じような性質がある
-パーセプトロンが線形でのみ分離できるが収束しない
-ロジスティック回帰は線形でのみ分離できて収束する
-SVMは線形分離
-カーネル化SVMは次元をあげて線形分離→非線形分離が可能に!
-決定木学習:単純なアルゴリズムだけど,精度は高くない.自...
--エントロピーなどを最小化したい,ということだよね?
--P.85の図はエントロピーなど最小化したい式を比較している
-ランダムフォレスト
-計算量と精度は一般にトレードオフ
-「次元の呪い」っていろいろあるっぽい?
→pythonの本では「サンプルを固定したトレーニングデータセッ...
↔️私が知っていたのは計算量の増加の話だけだった
-カーネル化SVMのカーネルとは?
--カーネルとは「核」
--カーネル法([[カーネル法 - Wikipedia:https://ja.wikipedi...
→カーネル法はカーネル関数([[カーネル (統計学) - Wikipedia...
--[[カーネル法を視覚的に理解する - Qiita:http://qiita.com...
つまりカーネルSVMにおける「カーネル」とは,入力空間のベク...
座標変換っぽいが,違うらしい….
--やりたいことは座標変換と同じだが,内積を用いて同じこと...
[[今さら聞けないカーネル法とサポートベクターマシン:http:/...
[[カーネル法 - Wikipedia:https://ja.wikipedia.org/wiki/%E...
-[[正則化つき線形モデル(「入門機械学習第6章」より):http:/...
正則化もふわっとしかわかっていないので数学的に理解する必...
**2016/8/28 [#y318a0e2]
先生に書いていただいたメモを見返してみると,図の1次元の方...
まあそうだよなあ.2次元のほうだと変だし.
では収束はどうやって判断したものか?→とりあえず尤度は使わ...
初期パラメータと収束させたい(=真のパラメータ)が遠いほ...
----
昨日の続きで調べてみた.
-[[Tech Tips_ ベイズ推定と最尤推定の違い:http://techtipsh...
ベイズ推定と最尤推定の違いについて説明されている.わかり...
-[[最尤法とその計算アルゴリズム:http://mcm-www.jwu.ac.jp/...
「オンライン 最尤推定」で調べてもほとんどなにも出なかった...
ニュートン・ラプソン法が勾配法に相当する?
--[[第7章 降下法:http://www-optima.amp.i.kyoto-u.ac.jp/~n...
そうっぽい.
--[[最適化超入門:http://www.slideshare.net/tkm2261/ss-421...
厳密には違うみたい.ニュートン法は二階微分まで考慮するけ...
**2016/8/27 最尤推定とベイズ推定[#a0dc9232]
一歩戻って,最尤推定とベイズ推定のそれぞれについてと,2つ...
よくわからなくなっているのはこれらの基礎知識が足りないか...
-[[PRML 第1章の「最尤推定によるパラメータフィッティング」...
最尤推定とベイズ推定について説明されている.
-[[SOMによるフォーメーション形成に関する研究:http://hokka...
「"学習率と分散"」で調べてみたら,これしか出なかった.
-[[Python_ Boston データセットで線形回帰分析を学ぶ _ CUBE...
これは最小二乗法を使った回帰分析.最尤推定は最小二乗法と...
**2016/8/26 [#mc48a2fd]
なにがしたいのかわからなくなってきた.
-そもそも
PI^2のノイズの分散を大きくすると収束は速くなる傾向がある...
…勾配降下法で言う学習率が大きいときの挙動に似ている.
→ノイズの分散と学習率($\eta$)は正の相関がありそう
-ノイズの分散の気持ち(予想)…どのくらいの範囲に$\theta$...
ノイズの分散が大きい場合,広い範囲にばらまく→1ステップご...
ノイズの分散が小さい場合,狭い範囲にばらまく→1ステップご...
-ノイズの分散は(オンライン)最尤推定で言うと,何に相当す...
-先生が言っていたのは
--最尤推定は分散が大きいと収束が遅い.=分散と学習率は負...
ベイズ推定は分散が大きいと収束が速い.=分散と学習率は正...
--分散を設定できるようにして,分散と収束速度の違いを見る
-図解
&resizeimage(./20160826_likelihood.jpg);
--左は1次元的に平均$\mu$,分散$\sigma$の点が得られて,そ...
↔しかしこれだと,分散が学習率になるとは思えない.仮に相関...
--右は2次元的に$y=f(x)+\epsilon$の点が得られてその$f(x)$...
[[確率的勾配降下法とは何か、をPythonで動かして解説する - ...
ただ,これだと得られる点のx座標の規則も指定しないといけな...
正規分布にする意味もわからない.別に$f(x)=\frac{1}{\sqrt{...
でも,$\sigma'$がノイズの分散に近い気がする.これが大きい...
**2016/8/23 [#r7fcb12a]
よく考えたら尤度って「観測値」と「観測値から推定した分布...
二乗平均でも表されるし,尤度そのものであるともいえる.
しかし,私が知りたいのは「真の分布」と「観測値から推定し...
PI^2のノイズの分散というのは,真の分布から観測値を得ると...
----
もしかしたら私の実装したものはレイヤーを間違えている?
**2016/8/22 [#cda23c9b]
ノイズの分散が学習率に相当するというところが気になったの...
しかし,尤度はデータ数に依存するので,データの数が増える...
それはそうだよね,P<=1で掛け合わされる数が増えるんだから...
なにかデータ数に依存しない尤度の取り方はあるのかな?
参考資料など
-[[【統計学】尤度って何?をグラフィカルに説明してみる。 -...
-[[最尤法によるパラメータ推定の意味と具体例 _ 高校数学の...
-[[尤度関数と最尤推定量(maximum likelihood estimato:https...
-[[pythonによる機械学習[最尤推定法編] - ぱろっくの日記:ht...
-[[最尤法をニュートン法で解く _ Sunny side up!:http://nor...
-[[尤度と最尤推定法について _ Sunny side up!:http://norim...
-[[機械学習でパラメータ推定 - 最尤推定法 - · けんごのお屋...
-[[確率的勾配降下法とは何か、をPythonで動かして解説する -...
-[[第19回 ロジスティック回帰の学習:機械学習 はじめよう...
----
矢野先生より
-引用文献の読み取り方(本当は自分で判断するのがよいが…)
--引用件数の目安は分野によって違う
--誰が引用しているのか見る
大物の文献が引用していれば,問題なさそう.その文献がさら...
著者や著者のグループが引用していたら,まあそんなもんか.
-シナリオはおおまかに3つ
++PI^2をBBOの考えで改善→ROCK*についてモデル切り替えを考慮...
++PI^2をBBOの考えで改善→改善したPI^2をアプリケーション化
++ROCK*についてモデル切り替えを考慮した改善→ROCK*アプリケ...
-ひとまずの流れ
PI^BBを読んで指数勾配降下法を使っていないか確認する→問題...
-PI^2に出てくるRとは,確率を考慮した距離を求めるためのも...
-良い本
--[[生きること学ぶこと (集英社文庫) Amazon.co.jp:https://...
--[[考えるヒント (文春文庫) Amazon.co.jp:https://www.amaz...
----
水内先生より
-来年度から始まりそうなこと.
--学内インターンシップ
---他学科の研究室体験ができる!(M1向け)
単位も取れるらしい!?
【面白そうだなあ】
--学部3年生の後期から研究室配属されるようになる
---農学部ではすでにやっている.
工学部でも一部やっているところもある.
-先人の知恵は大事
-「プロだったらどうやるだろう?」と考えることでプロになれる
-研究倫理教材は先に試験をやってから,資料を読むのでもよい...
-遅延評価(lazy evaluation)
必要になるまで計算を実行しない
→一般化すると…必要になるまでやらない!
【私はどうなんだろうなあ】
-[[Welcome to CLAWAR 2016:https://clawar.org/clawar2016/]]
CLAWARはClimbing and Walking Robotsの略.
**2016/8/21 数学のことを考える [#p6bcc92e]
-更新式って漸化式みたいなものだが,それを等式として考える...
(正しくは漸化式$\in$更新式かな?)
>
\[\Theta_{t,k}\leftarrow\frac{\rm{exp}(-\frac{g_{t,k}}{\e...
<
のように「(時刻tの変数)←(時刻t-1の変数)」が
>
\[\Theta_{t-1,k}=\frac{\sum_{k=1}^K\rm{exp}(-\frac{g_{t,k...
<
と「(時刻t-1の変数)←(時刻t-1の変数)」なるのがどうもし...
>&color(blue){2016/8/22に補足};
少なくとも更新式ではない(自己無撞着,陰関数方程式)
更新式の収束:平衡点,アトラクター
下の式は無限時間後の更新式に相当?
<
-もしかしたら先に$\sum^K_{k=1}\Theta_{t,k}=1$を代入してし...
それを踏まえて+スライドで改悪している気がするので前に聞...
>指数勾配降下法の式より
\[\Theta_{t,k}\leftarrow\frac{\rm{exp}(-\frac{g_{t,k}}{\e...
両辺を$\Theta_{t-1,k}$で割ると
\[\frac{\Theta_{t,k}}{\Theta_{t-1,k}}\leftarrow\frac{\rm{...
両辺の総和をとって
\[\sum^K_{k=1}\frac{\Theta_{t,k}}{\Theta_{t-1,k}}\leftarr...
分子と分母を入れ替えると
\[\frac{\Theta_{t-1,k}}{\sum^K_{k=1}\Theta_{t,k}}\leftarr...
ここで
\[
\theta_t\leftarrow\frac{\sum_{k=1}^K\rm{exp}(-\frac{g_{t,...
\]
とおくと,式(1)は
\[
\begin{align}
\Theta_{t,k}&\leftarrow\frac{\rm{exp}(-\frac{g_{t,k}}{\et...
\frac{\Theta_{t,k}\theta_{t}}{\Theta_{t-1,k}}&\leftarrow\...
\end{align}
\]
両辺の総和をとって
\[
\begin{align}
\frac{\sum^K_{k=1}\Theta_{t,k}\theta_{t}}{\Theta_{t-1,k}}...
\frac{\theta_{t}\sum^K_{k=1}\Theta_{t,k}}{\Theta_{t-1,k}}...
\end{align}
\]
ここでKLダイバージェンスを満たす場合$\sum^K_{k=1}\Theta_{...
\[
\begin{align}
\frac{\theta_{t}}{\Theta_{t-1,k}}&\leftarrow 1\\
\theta_{t}&\leftarrow\Theta_{t-1,k}\tag{1'}
\end{align}
\]
$\Theta_{t-1,k}=\theta_{t-1}+M_{t-1,k}\epsilon_{t-1,k}$と...
\[
\begin{align}
\theta_t&\leftarrow\frac{\sum_{k=1}^K\rm{exp}(-\frac{g_{t...
\theta_t&\leftarrow\frac{\sum_{k=1}^K(\theta_{t-1}+M_{t-1...
\theta_t&\leftarrow\frac{\sum_{k=1}^K\theta_{t-1}\rm{exp}...
\theta_t&\leftarrow\theta_{t-1}+\frac{\sum_{k=1}^KM_{t-1,...
\theta_t&\leftarrow\theta_{t-1}+\sum_{k=1}^KP_{t-1,k}M_{t...
\end{align}
\]
これは$\theta_{t-1}+M_{t-1,k}\epsilon_{t-1,k}$がKLダイバ...
<
%%(KLダイバージェンスを満たす,という表現は正しいのだろ...
%%この変形を日本語で言うと以下のようになる.指数勾配降下...
%%これだったら私もしっくりくる.%%
%%たぶん等号と更新が混ざっていたのが,混乱の元だったのだ...
やっぱりしっくりこない.
式(5)で$\Theta_{t-1, k}=\theta_t\sum^K_{k=1}\Theta_{t,k}$...
なんだかおかしい気がする.何か勘違いしているのかな?
ポイントとして$\Theta_{t-1,k}=\theta_{t-1}+M_{t-1,k}\epsi...
**2016/8/20 わかっていない部分の洗い出し [#s989d84f]
なぜわからないのか
-代入演算子$\leftarrow$と等号$=$の区別ができていない
→代入演算子の両辺を割るのは問題ないのか?
つまり,勾配降下法の式は更新式であるので,以下の変形は問...
>
\[\Theta_{t,k}\leftarrow\frac{\rm{exp}(-\frac{g_{t,k}}{\e...
両辺を$\Theta_{t-1,k}$で割ると
\[\frac{\Theta_{t,k}}{\Theta_{t-1,k}}=\frac{\rm{exp}(-\fr...
<
--[[同期回数削減版反復解法に関する考察について:https://ip...
実際に更新式の変形をしている例を見てみる.3.2より,更新式...
--[[Minibatch and Parallelization for Online Large Margin...
P.14の式(1)あたりで更新式を両辺いじっている.これは自然な...
--[[分散演算を用いたLMS適用フィルタの収束条件:http://www....
P.3の式(19)あたりで更新式を両辺いじっている.
***構想発表用に作成したスライドより [#cb2fda55]
スライド自体は前に書いた[[数式変形メモなど>研究/日誌/過去...
指数勾配降下法の式より
\[\Theta_{t,k}=\frac{\rm{exp}(-\frac{g_{t,k}}{\eta_t})\Th...
両辺を$\Theta_{t-1,k}$で割ると
\[\frac{\Theta_{t,k}}{\Theta_{t-1,k}}=\frac{\rm{exp}(-\fr...
両辺の総和をとって
\[\sum^K_{k=1}\frac{\Theta_{t,k}}{\Theta_{t-1,k}}=\frac{\...
$\sum^K_{k=1}\Theta_{t,k}=1$より
\[\frac{1}{\Theta_{t-1,k}}=\frac{\sum^K_{k=1}\rm{exp}(-\f...
分子と分母を入れ替えると
\[\Theta_{t-1,k}=\frac{\sum_{k=1}^K\rm{exp}(-\frac{g_{t,k...
$\Theta_{t-1,k}=\theta_{t-1}+M_{t-1,k}\epsilon_{t-1,k}$と...
\[\begin{align}\frac{\sum_{k=1}^K(\theta_{t-1}+M_{t-1,k}\...
***前に書いた[[数式変形メモなど>研究/日誌/過去/201607#u97...
変数をスライドに合うように変えた.&color(red){+読んで思...
確率的最急降下法(SMD)からPI^2への式変形
SMDは(1)のように書ける.
\[\Theta_{t,k}=\frac{\rm{exp}(-\frac{g_{t,k}}{\eta_t})\Th...
ある$\theta_{t}$について
\[\sum^K_{k=1}\frac{\Theta_{t,k}}{\Theta_{t-1,k}}=\frac{\...
これより
\[\Theta_{t,k}=\frac{\rm{exp}(-\frac{g_{t,k}}{\eta_t})\Th...
両辺の$k=1$から$K$までの総和をとって
\[\sum^K_{k=1}\Theta_{t,k}=\frac{\sum^K_{k=1}\rm{exp}(-\f...
ここで$\sum^K_{k=1}\Theta_{t,k}=1$より
\[1=\frac{\sum^K_{k=1}\rm{exp}(-\frac{g_{t,k}}{\eta_t})\T...
したがって
\[\theta_{t}=\Theta_{t-1,k}\]
が成り立つ.&color(red){←そうなるように定義したんだから,...
$\Theta_{t-1,k}=\theta_{t-1}+M_{t-1,k}\epsilon_{t-1,k}$と...
(2)での置き換えとPI^2について.
\[\begin{align}\theta_{t}&=\int\Theta_{t-1,k}\frac{\rm{ex...
&color(red){$\eta_t$としている中で$\eta_{t-1}$にするべき...
**2016/8/19 デモができるようになった [#ve3df90f]
せっかくなので,田先輩のプログラムを参考にデモができるよ...
具体的には$\theta$の更新ごとにコストが出力され,同時にそ...
描画はボタンで ON/OFFできる.
pauseがないとcallback関数が動かないのが気になるが,まあそ...
改善点はあるが,動くことは確認できた.
----
学習としても,概ね先行研究通りな気がするし,一応問題なく...
時間を掛けすぎた気しかしないし,むしろ最初からmatlabコー...
過信しすぎはよくないし,そもそも自分はアルゴリズムの実装...
現時点で完璧に同じを目指してもキリがないし,そろそろ理論...
何から始めようか….
----
Adagrad→Adadeltaと勉強してみる.学習率を学習する手法だと...
-Adagrad
--[[AdaGrad, RMSProp, AdaDelta, Adam, SMORMS3 - Qiita:htt...
\[
\begin{align}
r &\leftarrow r + g_\vec{w}^{2} \\
w &\leftarrow w - \frac{\alpha}{\sqrt{r} + \epsilon} g_\v...
\end{align}
\]
を読んだとき,
matlabコードのdcp.m内でも似たようなこと
#code(matlab){{
f = sum(in*(dcps(ID).w+cw).*dcps(ID).psi)/...
}}
などをやっていたのを思い出したが,多分違う.matlabの方は0...
それに意味のある数字だったら,直接書かずに変数などで定義...
--そういえば文献中に「速くするテクニックがあるが,ここで...
--matlabサンプルコードのノイズの探索はちょっと変わったこ...
割愛しつつ抜き出し.
#code(matlab){{
function runProtocol(p)
...
% run learning roll-outs with a noise annealing multiplier
noise_mult = double(p.updates - i)/double(p.updates);
noise_mult = max([0.1 noise_mult]);
D=run_rollouts(D,p,noise_mult);
...
function D=run_rollouts(D,p,noise_mult)
...
std_eps = p.std * noise_mult;
for j=1:n_dmps,
% generate noise
if ~p.bases_noise, % this case adds noise at every ...
epsilon = randn(n_rfs,1)*std_eps;
else % this case only adds noise for the most activ...
% is not change during the activity of the bas...
if (n==1),
epsilon = [randn*std_eps ; zeros(n_rfs-1,1)];
else
% what is the max activated basis function from...
[val,ind_basis] = max(D(k).dmp(j).psi(n-1,:));
% what was the noise vector from the previous t...
epsilon_prev = D(k).dmp(j).theta_eps(n-1,:)-dcp...
% ... and find the index of the basis function ...
[val,ind_eps] = max(abs(epsilon_prev));
% only add new noise if max basis function inde...
if (ind_eps ~= ind_basis),
epsilon = zeros(n_rfs,1);
epsilon(ind_basis) = randn*std_eps;
else
epsilon = epsilon_prev';
end
...
}}
ノイズは学習率に相当する気がしてきた.
----
よく考えたらまだPI^2と確率的勾配降下法の変形がしっくりき...
それが先ですな.
**2016/8/18 visualize [#mb05fd58]
やはり,ビジュアライズすると楽しい.
&ref(20160818_2dof-1000rollout.mp4);
&ref(20160818_10dof-1000rollout.mp4);
こんなんでいいのかなあ….うーん.
**2016/8/17 dmpbboとmatlabコードの見直し [#y42fcd43]
このwikiのアクセス数が今日だけで%%600%%1000件と跳ね上がっ...
とにかくアクセス解析ツールを早急に入れる必要がありそう;
それとか,http→httpsにしてセキュアにしたり,ポート設定を...
----
dmpbboを動かしてみる.
pi^2-bbはpi^2の派生のようだし,viapointがあるということは...
これを漁ってみると,これが怪しい気がした.
https://github.com/stulp/dmpbbo/blob/4bbb90ae679053e04bb4...
bool use_viapoint_traj= false;
を
bool use_viapoint_traj= true;
にしたら,何か手がかりが掴めると思ったが,これは単純にDMP...
falseだとminjerkになるようだ.
気になるところその2.
https://github.com/stulp/dmpbbo/blob/3ce1c09c66ca1890bb10...
そのまま貼ってしまう.
#Code(C){{
void TaskViapoint::evaluateRollout(const MatrixXd& cost_v...
{
// cost_vars is assumed to have following structure
// y_1..y_D yd_1..yd_D ydd_1..ydd_D t=0 forcing_1.....
// y_1..y_D yd_1..yd_D ydd_1..ydd_D t=1 forcing_1.....
// | | | | | | | | ...
// y_1..y_D yd_1..yd_D ydd_1..ydd_D t=T forcing_1.....
int n_dims = viapoint_.size();
int n_time_steps = cost_vars.rows();
int n_cost_vars = cost_vars.cols();
//cout << " n_dims=" << n_dims << endl;
//cout << " n_time_steps=" << n_time_steps << endl;
//cout << " n_cost_vars=" << n_cost_vars << endl;
// y_1..y_D yd_1..yd_D ydd_1..ydd_D t forcing_term_1...
assert(n_cost_vars==(4*n_dims + 1));
// rollout is of size n_time_steps x n_cost_vars
VectorXd ts = cost_vars.col(3 * n_dims);
double dist_to_viapoint = 0.0;
if (viapoint_weight_!=0.0)
{
if (viapoint_time_ == TIME_AT_MINIMUM_DIST)
{
// Don't compute the distance at some time, but rat...
const MatrixXd y = cost_vars.block(0, 0, n_time_ste...
dist_to_viapoint = (y.rowwise() - viapoint_.transpo...
}
else
{
// Compute the minimum distance at a specific time
// Get the time_step at which viapoint_time_step ap...
int viapoint_time_step = 0;
while (viapoint_time_step < ts.size() && ts[viapoin...
viapoint_time_step++;
assert(viapoint_time_step < ts.size());
VectorXd y_via = cost_vars.row(viapoint_time_step)....
dist_to_viapoint = sqrt((y_via-viapoint_).array().p...
}
if (viapoint_radius_>0.0)
{
// The viapoint_radius defines a radius within whic...
dist_to_viapoint -= viapoint_radius_;
if (dist_to_viapoint<0.0)
dist_to_viapoint = 0.0;
}
}
double sum_ydd = 0.0;
if (acceleration_weight_!=0.0)
{
MatrixXd ydd = cost_vars.block(0,2*n_dims,n_time_step...
// ydd = n_time_steps x n_dims
sum_ydd = ydd.array().pow(2).sum();
}
double delay_cost = 0.0;
if (goal_weight_!=0.0)
{
int goal_time_step = 0;
while (goal_time_step < ts.size() && ts[goal_time_ste...
goal_time_step++;
const MatrixXd y_after_goal = cost_vars.block(goal_ti...
n_time_steps - goal_time_step, n_dims);
delay_cost = (y_after_goal.rowwise() - goal_.transpos...
}
int n_cost_components = 3;
costs.resize(1+n_cost_components); // costs[0] = sum(co...
costs[1] = viapoint_weight_*dist_to_viapoint;
costs[2] = acceleration_weight_*sum_ydd/n_time_steps;
costs[3] = goal_weight_*delay_cost;
costs[0] = costs[1] + costs[2] + costs[3];
}
}}
----
(最低限の)使い方メモ
-ダウンロード
git clone https://github.com/stulp/dmpbbo.git
-コンパイル
[[INSTALL.txt:https://github.com/stulp/dmpbbo/blob/master...
mkdir -p build_dir_debug; cd build_dir_debug; cmake .. -...
-viapointのデモを実行
cd ./src/dmp_bbo/demos
./demoOptimizationDmp tmp
tmp内にデータができるので,移動してプロットする.
cd ./tmp
python plotRollout.py update00000/rollout001/
0回目の更新の1ロールアウト目の様子がプロットされる.
どうみてもアームの問題ではない….
----
matlabのコードを見直して動かしてみたら,2nd canonicalなら...
状況から察するに学習率に相当するパラメータが大きすぎる気...
いろいろ試してみたら,protocolの
std : standard deviation of added noise for ...
の大きさが影響しているようだった.元は20だったが,小さく...
それと元の論文について,手法が違うのにこんなに綺麗にコス...
そこらへんもどこかにはっきり書かれているのかもしれない.
↔️いやでも,コスト関数を完全に一致させることができればそ...
----
結果→&ref(20160817_PI2result2dof.txt);
これはスケーリング後のもの.stdは1.
protocolはこんな感じ.viapointは手先位置からコストを計算...
0 0 1.57079632679 0.78539816339 0.5 1 15 viapoint...
まあいいのかなあ.本当にいいのかなあ.
----
もやもやするポイント.
protcolで定めるstdとrand関数で定める標準偏差のstdはどう違...
protocolのやつはノイズの探索ってやつだと思うのだが,本当...
→確認してみたら結局やってることは同じ.
ただ,文献通りのN(0, 0.1)じゃ,収束まで時間がかかりすぎる...
----
matlabコードを改造した.
さすがに10自由度だと実行に時間がかかる.
結果→&ref(20160817_PI2result10dof.txt);
これはスケーリングなし.
結構近い値だし,収束後の値もいい感じ.
なんでだろう?
実際の軌道もgitには上げたが,問題なさそう.
ひとまず,pythonのコードと同じように可視化してみようと思...
なくてもいいかもしれないが,ちゃんと見えた方が安心するの...
**2016/8/15 文献探し [#v4c0596d]
A Genelized Path Integral Control Approach to Reinforceme...
-[[Emergent Proximo-Distal Maturation through Adaptive Ex...
アームの問題を解いている!がなんだか違うみたい.
-[[Adaptation de la matrice de covariance pour l’apprenti...
PI^2-CMAのフランス語版.よく読めないが,言っていることは...
-[[Model-free Reinforcement Learning of Impedance Control...
PI^2関連の論文でこういう図が使われているものは初めて見た...
-[[Policy Improvement: Between Black-Box Optimization and...
PI^BB.見覚えがあるが一応.
-[[Reinforcement Learning in Robotics: Applications and R...
面白そうだけど,あとで.
-[[Regularized Covariance Estimation for Weighted Maximum...
----
-https://github.com/stulp/dmpbbo/blob/master/src/dmp_bbo/...
ええいっ!と「task_viapoint」で調べてみたらこれが出てきた...
--https://github.com/stulp/dmpbbo/blob/master/src/dmp_bbo...
でもこれはviapointとpi-bbというキーワードを両方含むのであ...
-[[Learning Policy Improvements with Path Integrals:http:...
構成が違うやつ.
-[[Sylvain Calinon:http://calinon.ch/sourcecodes.php]]
関係なさそうだけど,サンプルコード.DMPとかGMMとか.面白...
-[[Enhanced Policy Adaptation Through Directed Explorativ...
それっぽい単語「Viapoint task dmp pi2」を並べてgoogleで調...
Fig1がアームの実験.著者の名前には見覚えがないし,この人...
プロットには
[[Integrated environment for modelling, simulation and co...
を使ったらしい.MATLABのツールボックスっぽい.
--[[Pridobivanje elementarnih gibov za robotsko učenje:h...
そのまま落ちてくるので注意.
Rok Vugaさんの長い論文.内容は上のものとだいたい一緒+α....
-[[Optimal and Learning Control for Autonomous Robots Lec...
講義資料.
----
最近スパムコメントがめっちゃ来る.
コメント欄を閉じてしまおうかな….
**2016/8/11 勉強会準備 [#g9e6c49a]
環境設定
-Macの場合
python3をbrewで入れる.
brew install python3
何がインストールされているか確認.
pip3 list
念のためアップグレード.
pip3 install --upgrade pip
一気に入れる.
pip3 install numpy scipy scikit-learn matplotlib pandas
これでok!
**2016/8/10 文献探し [#uf2661e6]
Reinforcement learning of motor skills in high dimensions...
-[[Biologically inspired motor skill learning in robotics...
P.43あたりが気になる.
-[[Dimensionality Reduction and Motion Coordination in Le...
6/11にも目を通していたみたいだが,Appendixが気になる.
-[[Towards the Improvement of Robot Motion Learning Techn...
PI^2_BBってまさにブラックボックスのBBなんだね….
PI^2についてはP.18に,他にもいろいろまとまっている.
-[[Learning and Chaining of Motor Primitives for Goal-dir...
PI^2をヘビ型ロボットに適用している.
-[[Nonlinear Policy Gradient Algorithms for Noise-Action ...
NMDP−REINFORCEと名付けられたアルゴリズムをPI^2と比較して...
-[[Probabilistic Gradient Ascent with Applications to Bip...
PI^2の最近のことも書いてありそう.後で読む.
-[[Path Integral Reinforcement Learning:http://s3.amazona...
TheodorouとSchaalの論文.文献講読で読んだ論文の著者+Free...
**2016/8/8 文献探しに飽きてmatlabコードを触る [#n15f112c]
ロボットアーム&&PI^2のプログラムを探していたが案の定見つ...
2nd canonicalを使うモードにすると,とても性能が高くなるこ...
一例.はじめは33983099.732059で論文のものと誤差があるが,...
しかも今までみたいに途中で跳ね上がったりしていない.
なにかここに打開策があるかもしれないが,やはり最初が高い...
引き続き探してみる.
**2016/8/7 MFTメモ [#pfe264a6]
NVIDIAの人
-CNNは畳み込みニューラルネットワークのこと.
畳み込みの最初はエッジ検出のように単純なものだが,だんだ...
-教師データは人が手作業で作る.
googleに,仕事をしたい人と仕事を与えたい人を結びつけるサ...
あるいは大学生のアルバイトとしてラベル付けがある.
-GPUであればリアルタイム処理もできる.
-社員はハードウェア設計が専門の人ばかりだと思われがちだが...
-研究の目線でいうと,まだまだ現状のGPUじゃ速度が足りない...
昔のラジオを真空管音楽プレイヤーにする人
-Bluetoothでスマホと通信して音楽を流せる.局を調整するつ...
-真空管はこだわりや自己満足に近い,正直なところトランジス...
-こだわり
--元の姿を大切にする
--ラジオの製造時期に合わせた真空管を使う【いいこだわりだ...
モジュールロボットを作った人
-モチベーションは内部の仕組みがわからなくても動かせるロボ...
-電車で使われる電源と通信をいっぺんに送れる規格を使ってい...
-リニア鉄道(?)を作った人
-円形のレールの上を走る.センサで位置を検知し,それに従っ...
センサは4cm間隔くらいでたくさんついていて,コイルも同じく...
-マイコンはArduino1つ.
去年はセンサの検知をすべてマイコンでやっていた.複数のマ...
今年はセンサをコンパレータでデジタルに変換し,それらをエ...
【ごもっともな方法だし,美しいやり方だと思った】
ARMの人
-mbedは抽象化されている
--オンラインでコードを書いたりコンパイルしたりできる
--書き込みも簡単.ドラッグアンドドロップでおしまい.
--【よくエエエエンベッド!!!とか聞くが,実際はどんなものか知らな...
中身を詳しく知らなくてもできる,というのは今ものづくりの...
すごいの(F7のNucleoとBluetooth拡張ボード!)もらっちゃっ...
**2016/8/5 サンプルプログラムを動かしてみた [#u6d6d30c]
今日はmatlabを買った.今日買わないとほとんどお盆に入って...
受け取った時,軽くてびっくりしたが,ディスクではなくライ...
素晴らしいことに2台までアクティベート(要するにインストー...
やったね!
とりあえず動かしてみる.
----
[[adrl_software [LAB]:http://www.adrl.ethz.ch/doku.php/ad...
[[adrlab _ c_ROCKstar — Bitbucket:https://bitbucket.org/a...
そのままじゃ動かなかった….
203行目の
[y, yd, ydd,time]=task.perform_rollout_evaluation(task,t...
を
[y, yd, ydd,time]=task.perform_rollout_evaluation(task,t...
に変更する.
結局このmatlabプログラムではリーチングタスクしか行ってい...
task.viapoint=[0.5, 0.5]みたいなそれっぽい変数はあったが...
c++のコードもあるようなので試してみる.
CMakelists.txtってのがあった.確かMakefileを作ってくれる...
brew install cmake
そして
cmake .
すると
#pre{{
kondoLab-no-MacBook-Air-2:cpp_code miyashita$ cmake .
-- The C compiler identification is AppleClang 7.3.0.7030...
-- The CXX compiler identification is AppleClang 7.3.0.70...
-- Check for working C compiler: /Library/Developer/Comma...
-- Check for working C compiler: /Library/Developer/Comma...
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/Com...
-- Check for working CXX compiler: /Library/Developer/Com...
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at /usr/local/Cellar/cmake/3.5.2/share/cmake/...
Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGE...
(Required is at least version "2.91.0")
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.5.2/share/cmake/Modules/FindP...
cmake/FindEigen3.cmake:76 (find_package_handle_standard...
CMakeLists.txt:11 (find_package)
-- Configuring incomplete, errors occurred!
See also "/Users/miyashita/Documents/PathIntegral/c_rocks...
}}
Eigenがないらしい.
なので
brew install eigen
したら
#pre{{
kondoLab-no-MacBook-Air-2:cpp_code miyashita$ cmake .
-- The C compiler identification is AppleClang 7.3.0.7030...
-- The CXX compiler identification is AppleClang 7.3.0.70...
-- Check for working C compiler: /Library/Developer/Comma...
-- Check for working C compiler: /Library/Developer/Comma...
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/Com...
-- Check for working CXX compiler: /Library/Developer/Com...
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Eigen3: /usr/local/include/eigen3 (Required is a...
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/miyashita/Doc...
}}
できたっぽい.
ここでようやく
make
したら
#pre{{
kondoLab-no-MacBook-Air-2:cpp_code miyashita$ make
[ 50%] Building CXX object CMakeFiles/example_Optimizatio...
In file included from /Users/miyashita/Documents/PathInte...
/Users/miyashita/Documents/PathIntegral/c_rockstar/cpp_co...
#include <boost/random/variate_generator.hpp>
^
1 error generated.
make[2]: *** [CMakeFiles/example_Optimization.dir/example...
make[1]: *** [CMakeFiles/example_Optimization.dir/all] Er...
make: *** [all] Error 2
}}
c++のBoostライブラリが必要らしいので入れる.
[[Boostライブラリのビルド方法 - boostjp:http://boostjp.gi...
と思ったが,
brew install boost
でもインストールできるようなのでそうした([[HomebrewでBoo...
他にもgslが足りないと言われたがこれも,
brew install gsl
で解決!
#pre{{
kondoLab-no-MacBook-Air-2:cpp_code miyashita$ make
[ 50%] Building CXX object CMakeFiles/example_Optimizatio...
[100%] Linking CXX executable example_Optimization
[100%] Built target example_Optimization
}}
そして
./example_Optimization
で実行してみたらできたが,よくわからない….
コードを読んでみたら,Rosenbrock関数を解いているらしい.
[[Rosenbrock関数を解くSA:http://mikilab.doshisha.ac.jp/di...
最適化問題かな?
---
-[[GitHub - stulp_dmpbbo_ C++ library for Function Approx...
PI^2-CMAの人のgithub.
-[[Policy Improvement Methods: Between Black-Box Optimiza...
すごく同じことを言っている気がするし,これも参考文献とし...
----
-WorkStationについて考えておくこと
--matlabがCUI環境で動くのかどうか?
--Matlabを買っておく
**2016/8/4 [#w79e17b5]
工学部説明会所感
-強化学習は,他の体験型の研究に比べて説明が「へえ,そっか...
-リアルタイム強化学習をさせると時間がかかって微妙→乱数の...
-なんかモノがあるといいなあ(完全に個人的な趣味だが…)
----
-やはりROCK*は高速な強化学習らしい
--Blackbox OptimizationとPI^2の関係も軽く述べられている
--ROCK*は目的関数の推定を行う
↔️環境変化に追従しづらいという欠点:とはいえ環境変化をと...
--ROCK*を踏まえた研究をする→評価の方法も踏まえる.
目的関数が切り替わる(具体的には,viapointが変わるなど)...
- 目的関数の推定を行わないとは
--簡単なタスクであれば優位に学習できる
--(よくマニュピランダムで行う運動学習の実験と似ている,...
-研究テーマ発想のプロセス(一般化した部分だけ)
--入力はたくさんあったほうがよい.知識 from 本,人間,etc...
知識があると人間と交流でき,ある知識から別の知識を得るこ...
--入力から考えたことをまとめる.忘れないようにきちんとメ...
発想術についてはいろいろあるので参考にするとよい「スウェ...
うまく考えられない場合は,専門外の人間に聞いてみると何か...
**2016/8/2 [#ufc71b2e]
ようやくソフトウェア工学のレポートを始めた.まあさくっと...
----
-ddXiの単位が違ったりする?
→と言っても元々単位はないし,(任意)/s^2が加速度で(任意...
-相互作用を考慮できていない
→1dofなら考慮しなくていいと思うんだけど.
一瞬だけ「重力の考慮」って思ったけど,平面だから考えてい...
-前から怪しいと思っていたところ.
サンプルプログラムについてた説明だと$r_t=\bm{\ddot{q}}^T_...
ここなんじゃないか?
-ある時間の位置・速度・加速度が一緒なら,costも同じになる...
→確認してみたが,大きな違いはなさそうだった.
**2016/8/1 [#w28bc3e7]
とうとう8月になってしまった….
時間は有限であることを認識せざるをえない.
どうもcostが合わないので,文献で紹介されていたもっと単純...
が2500000くらいのはずが103000000000=1.03*10^11になる….40...
-minjerkの有無でコストは相当変わる.
アームのときだけうまくいかないのは,minjerkが角度に適用で...
そんなことはない気がするのだけれど.
-STEPの数でコストも変わる.
ノイズの重み付けをSTEPの数でやっていたが,そういうことが...
→なさそうだし,単純にぶれてるだけっぽい.
ページ名: