狠狠撸

狠狠撸Share a Scribd company logo
システム制御と機械学習
@syuntoku14
自己紹介
● 名前:北村俊徳
● SD 3年
● ロボット技術研究会
● KCS AI班
● 制御工学、確率ロボティクス
?勉強中であり、スライドは間違いを含むかもしれない
このスライドで伝えること
● 事前知識(制御って何?)
● 学習制御というジャンル
● ディープな学习制御について(论文绍介)
このスライドで伝えること
● 事前知識(制御って何?)
● 学習制御というジャンル
● ディープな学习制御について(论文绍介)
事前知識
制御って何?
システム制御でやりたいこと
入力値を操作して出力を目標値に近づける
[例えば] 台車の目標座標への移動
x
モータへ信号u(t)を入力
r(t)
x(t)
偏差e(t)
入力:モータへの入力電圧u(t)
出力:台車位置x(t)
手法のひとつ:古典制御
● 入力に対する出力のみに着目
● 完璧では無いが、いい感じの出力が得られる
● 設計が簡単
②制御器を設計する
①偏差をゼロにした
い
伝達関数
古典制御方法のひとつ PID制御
● 偏差のP(比例)I(積分)D(微分)を入力に追加し、出力の定常偏差を減ら
し、振動現象を抑える
https://ja.wikipedia.org/wiki/PID%E5%88%B6%E5%BE%A1
制御手法(PID制御)
偏差の比例(P)、微分(D)、積分(I)に
基づいて入力値を変える制御手法
● P制御:大きくすると振動が起こる
● I制御:定常偏差を小さくする
● 顿制御:振动现象を抑える
古典制御の問題点
線形時不変系にしか使えない...
世の中非線形なことばっかり 伝達関数->周波数応答解析
ができない!!
現代制御へ…
● 入出力だけでなく、状態空間を扱う
● 多入出力を扱える
● 时変システム、非线形システムも扱える
現代制御の問題点
非線形システムも扱えるが…
● 非線形システムを一般的に扱う理論の展開が非常に難しい
→有用な制御理論が少ない&ほぼ体系化されていない(らしい)
このスライドで伝えること
● 事前知識(制御って何?)
● 学習制御というジャンル
● ディープな学习制御について(论文绍介)
学習制御って?
完璧なモデル化→現代制御でなんとか...
モデル化出来なくても→対象がある程度単純ならPID制御でなんとか...
モデル化出来ない上に複雑、かつ精度もほしい時はどうすれ
ば?
学習制御って?
モデル化出来ない上に複雑な場合はどうすれば?
→学習(繰り返し)を通じて制御しよう
● モデルがわからない&非線形にも対応可能
k回目 ∞回目
繰り返し学習制御の基本:D型学習制御
学習可能なシステム:
● 制御対象が変化しない
● 入出力が正確に計測可能
繰り返しで精度が上がってい
く
D型学習制御の基本構造 目標値
目標値と出力値
の差分
偏差を処理(今回は微分)
次回の
入力値
次回の入力を処理し
た偏差で更新
問題点
● 実空間上で学習する場合
→反復回数を少なく&試行回数を短くする必要
● 微分するので、観測雑音に弱い
● 繰り返すと制御対象は変わってしまう
このスライドで伝えること
● 事前知識(制御って何?)
● 学習制御というジャンル
● ディープな制御について(论文绍介)
ディープな制御について
● どこに深層学習を適用するか?
①制御対象を学習する
②コントローラをNeuralNetworkで置き換える
制御対象
入力
NN
出力
+
-
Modeling of nonlinear system based on deep learning
framework(2016)
● 非線形なシステムをDeepLearningでモデル化した
● ENN(Elman Neural Network)で非線形なシステムの
memory effectも学習している
● RBM(Restricted Boltzman Machine)で初期値を事前学習
→局所解を避け、学習を高速化
● ENNとRBMを組み合わせたDRM(Deep Reconstruction
Model)で学習を行う
D級アンプモデルの学習結果
DRMによる学習結果
周波数に対する振幅特性(上)誤差(下)
RBMとENNとDRMの
周波数誤差の比較
DRMによって精度が
上がっている
ディープな制御について
● どこに深層学習を適用するか?
①制御対象を学習する
②コントローラをNeuralNetworkで置き換える
NN
置き換え
PID制御器のNNでの置き換え
● On replacing PID controller with ANN controller for DC motor position
control (2013)
● On Replacing PID Controller with Deep Learning Controller for DC Motor
System(2015)(Deepにしたやつ)
PID制御器の部分をニューラルネットで置き換え
On replacing PID controller with ANN controller for DC motor position
control (2013)
● PIDコントローラをNNで置き換えることが出来た
● 教師あり学習で、未知のシステムに対してもPIDよりも良く対応できる(ら
しい)
目標値
これを0に
したい
制御対象
DCモータモデルについての学習結果
?許容できる遅れ、偏差
?未知のシステムに対して
PIDよりも良い結果をしめす
目標値
出力
On Replacing PID Controller with Deep Learning Controller for DC Motor
System(2015)
PIDコントローラの出力を教師データとして学習
→DeepLearningControllerのみで制御(テスト時)
学習時
テスト時
DCモータモデルについての学習結果
カスケードステップ入力に対する応答
→PIDを学習できている→DeepLearningをコントローラとして使用できる可能性
PID制御の出力 DeepLearningControllerの出力
まとめ
● 学習によるモデルフリーな制御
● コントローラとしてのDeepLearningの可能性
● 非线形モデルを顿别别辫尝别补谤苍颈苍驳で学习
参考
● On replacing PID controller with ANN controller for DC motor position control
(http://consortiacademia.org/wp-content/uploads/IJRSC/IJRSC_v2i1/236-
1374-1-PB.pdf)
● On Replacing PID Controller with Deep Learning Controller for DC Motor
System
(http://www.joace.org/uploadfile/2015/0408/20150408032023512.pdf)
● Modeling of nonlinear system based on deep learning
framework(http://link.springer.com/10.1007/s11071-015-2571-6)

More Related Content

Control by deep learning

Editor's Notes

  • #4: 伝えたいこと: ?学習制御というジャンルが存在する ?ディープラーニングを使った手法がある ?メリットとデメリット の三点が伝わればそれでよい
  • #5: 多分颁厂の先行が多いと思うので、最初に制御工学について説明しようと思います
  • #7: 台车の位置虫と目标rが与えられた时に、台车のモータへの入力を操作して、偏差别を小さくしたい
  • #8: 入力から出力に至るまでの関数を設計する手法(制御対象はブラックボックスで良い) 至るまでの過程を関数として考え、制御器(コントローラ)によって関数を制御し、欲しい出力を得る。 入力の周波数応答が簡単にわかる
  • #9: あとで出てくるので言及しました 話しが長くなってしまうので簡潔にいう(PとIとDについて述べる) 偏差を定数倍したもの、時間積分したもの、微分したものを加える
  • #11: 线形时不変系、例えばモータの电圧を二倍にするとトルクが二倍になったり(厳密には违うが)
  • #12: 入力に対する出力のみを見るのが古典制御 現代制御は入出力だけでなく状態空間も扱う→これによって、非線形系を陽に扱うことができる 例えば、台車のモータの熱や速度など、制御対象の状態を明示的に記述する手法
  • #13: 一般に、非线形を扱う场合は、システムの予测や线形化、単纯化を行う场合が多く、それは精度出ないよね
  • #14: 伝えたいこと: ?学習制御というジャンルが存在する ?ディープラーニングを使った手法がある ?メリットとデメリット の三点が伝わればそれでよい
  • #15: 例えばロボットなど、复雑かつモデル化も难しい场合がこれに该当する
  • #16: 人間は対象がわかってなくても、何回か繰り返せばだいたい制御できる 職人は訓練を積んですさまじい精度を出す(大体おんなじこと)
  • #17: 最も基本的なやつ 制御対象が変化しない(モータなどが無限時間稼働しても変化しない)
  • #18: 普通のPID制御と何が違うか? 制御を最初から最後まで繰り返す(今まで紹介したやつでは、何回繰り返そうが同じ) 今までのやつは、t+1を更新していたのに対し、学習制御ではk+1を更新する これ、よく見たらフィードバックしていないことに気づくと思う。フィードバックしているように見えて、実は更新しているのは次回の入力である。 これはD型学習というもの なぜ微分?→出力を微分すると入力の次数と一致する場合は、微分する (例えばロボットの場合、出力を一回微分すると間接の角速度、もう一回微分するとトルクが陽に出てくる→入力と同じ) つまり、出力の次数の二回微分が入力と一致する場合は、二回微分にするべき なぜ?→そうすると、試行が繰り返すことで望みの出力が達成される(定数行列Γが適切なとき)
  • #19: シミュレーション上でpretrainingする手法は存在しそう 微分する部分、つまりこれはフィードバック部分が入力値を考慮しておらず、ただ偏差の微分を加えるだけ→ノイズによる大きな微分値が加えられてしまう可能性
  • #20: 伝えたいこと: ?学習制御というジャンルが存在する ?ディープラーニングを使った手法がある ?メリットとデメリット の三点が伝わればそれでよい
  • #21: まず绍介するのは、
  • #22: memory effect: 例えばししおどしみたいな、出力が過去の入力に依存するもの 今までのアプローチでは、初期値を適切に決めないと局所解に陥る RBM→AutoEncoderの前身?入力値から潜在変数をひねり出す ENN→部分的にRNNが使われてる?
  • #23: 周波数応答をどれくらい学習できているか? 実は、元論文を見るとRBMもENNも十分学習できている気がするんだよね あと、RBMで学習できるのがよくわからなかった。
  • #24: さっき説明した、繰り返し学習機の学習記部分をDeepLearningで置き換えてしまおうっていう話 モデルがわかってなくてもいいし、制御も勝手に学習してくれるので汎用性が高い
  • #25: この論文読んだけど、モデルの説明が浅かったり、隠れ層が二層だったり、あんまり参考にはならないかも PIDをDeepLearningで置き換えてもなんかうまく行くよって話
  • #26: らしいっていうのが、なんとここでデータが載っていなかったので 論文で実際に扱っているのが単純なモデルに対してのやつのみだった... メチャメチャ簡単に実装できそう ここでわかんなかったのが、NN Plant Modelの存在意義
  • #27: ちゃんと笔滨顿制御器を学习できているという点で、顿别别辫尝别补谤苍颈苍驳が制御器として可能性があるっていうことが分かった。
  • #28: さっきとの違いは、さっきはreferenceを学習していたのに対し、今回はPIDコントローラを学習している テスト時の形で学習を行っていないのは何故か? →そもそも目的が完全なPID制御器の模倣だったから? 新しく制御器を作ることが目的ではなかった? これなんですが、DeepLearning部分にDeepBeriefNetworkっていうのを使っている →pre-trainingとfine-tuningの二つに分けられるもの? pre-trainingは制限付きボルツマンマシンで行う(なにこれ?)
  • #29: これね、それはそうっていう感じするんですが。。。 先行研究として二層のものがPID以外も学習できているので、DeepLearningでうまく行かないわけ無いと思ったんですが、どうですか?
  • #30: 対象がわからなくても、学習することで制御を実現できる DeepLearningをコントローラ、モデルに適用した事例がある