원래는 차근차근 나가고 싶지만... 수업의 진도에 맞춰서 중간부터 시작하게 되었다.

몇 파트는 한빛 아카데미의 인공지능개론으로 진행하고

몇 파트는 수업 자료로 진행한다.


기계학습이란?

컴퓨터가 경험, 예, 유추를 통해 학습할 수 있게 하는 적응 메커니즘과 관련이 있다.

기계 학습 메커니즘은 적응형 시스템의 기초를 형성한다.


기계학습의 접근법

인공 신경망(artificial neural network)

유전 알고리즘(genetic algorithm)


신경망의 적응성

잘못된 답->뉴런들 사이의 연결이 약화

올바른 답->연결이 강화


ANN(Artificial Neural Network)

학습능력이 있다.

성능개선에 경험을 사용한다.

표본이 주어지면 일반화가 가능하다.



인공신경망의 기본구조


동그란 부분을 뉴런이라고 보고 각 화살표(링크)마다 가중치가 주어진다.

링크마다 그와 연관된 수치적인 가중치가 있다. 가중치는 ANN에서 장기기억을 위한 수단으로 각 뉴런의 중요도를 표현한다.

신경망에서는 싸이클을 반복하면서 이 가중치를 조정하여 학습한다.


위와 같이 입력층, 중간층, 출력층으로 계층구조를 이루고 있으며 이에 들어오는 입력과 가중치를 통해 활성화수준(activation level)을 계산할 수 있다.





Bipolar와 Binary

Binary : {0,1}

Bipolar : {-1,1}

'지능제어' 카테고리의 다른 글

역전파 알고리즘(BackPropagation)  (0) 2014.10.27
다층신경망[개념]  (0) 2014.10.26
퍼셉트론[개념]  (0) 2014.10.26
LMS(Linear Mean Square) Algorithm  (0) 2014.10.26
신경회로망 간단개요  (0) 2014.10.26

들어가기 전에 다음 사이트를 참조할 수 있음을 알린다.

http://www.cyworld.com/jung40l/13661169


최적제어에 대해서 다룬다. 총 4파트로 나누어 설명하겠으며 이번 파트는 뒤의 세 파트와는 다른 자료(일본 도서)를 참고했으므로 사용하는 언어가 다를 수 있다.


1.정정행렬(正定行列)

nXn 대칭행렬이며 다음과 같은 특징을 가진다.


임의의 0이아닌 벡터 x∈R (x≠[0,...,0]T)에 대해, 2차형식함수 xTQx가 xTQx>0의 관계를 만족하는 대칭행렬 Q∈R(nXn)을 정정행렬이라 한다. 또한 정정행렬은 대칭행렬만으로 정의됨에 주의한다.


풀어서 설명하면

(1)Q는 대칭행렬이다.

(2)Q는 실수행렬이다.

(3)xTQx는 실수행렬이다.

(4)xTQx는 0보다 크다.


위 모든 조건을 만족하는 행렬 Q이다.

아래 예제를 다뤄보자. 문제를 풀기전에 앞으로 행렬을 다음과 같이 표기하기도 할것임을 밝혀둔다.

Q=[1 0; 0 1]

1행 : 1 0

2행 : 0 1


예제1)다음 행렬의 정정성(正定性)을 확인하시오.

Q=[1 0; 0 1]


 xTQx = x1^2+x2^2 > 0

x1과 x2가 동시에 0이 아닌 한 xTQx는 항상 0보다 크다. 따라서 정정행렬이다.


예제2)다음행렬의 정정성을 확인하시오.

Q=[1 1;1 1]


xTQx = x1^2 + 2x1x2 + x2^2 = (x1+x2)^2 >=0

위의 경우 예를들어 x1= -1, x2=1의 경우 0일 수 있기 때문에 정정행렬이 아니다.


예제3)다음행렬의 정정성을 확인하시오.

Q=[1 2; 2 1]


xTQx = x1^2 + 4x1x2+ x2^2 = (x1+2x2)^2 - 3x2^2

따라서 정정행렬이 아니다.

------------------------------------------

차수가 낮은 행렬은 그 정정성을 확인하기 쉽지만 차수가 높아질수록 이를 판별하기 어려워진다. 이를 위한 판별법이 실베스터 판별법이다. 이 방법은 대칭행렬의 주좌소행렬의 행렬식의 부호를 통해 정정성을 판별한다.


실베스터 판별법

3차 행렬의 경우 3개의 주좌소행렬은 아래와 같다.

위 주좌소행렬의 행렬식을 통해 대칭행렬의 정정성을 판별할 수 있다.


예제)다음 대칭행렬의 정정성을 알아보시오

Q = [2 -1 0;-1 1 0; 0 0 1]


1차 주좌소행렬 : Q(1) = [2]

2차 주좌소행렬 : Q(1,2) = [2, -1;-1 1]

3차 주좌소행렬 : Q(1,2,3) = Q


det(Q(1)) = 2

det(Q(1,2)) = 1

det(Q(1,2,3)) = det(Q) = 1


따라서 Q는 정정행렬이다.

------------------------------------------

2. Ricatti equation


우리가 제어기를 설계할 때, 대상 시스템 방정식은 아래와 같다.


위 시스템행렬 A와 입력벡터 B를 포함한 Ricatti 방정식은 아래와 같다.

증명은 후에 다루도록 하겠다.


행렬 Q는 설계자가 정하는 정정행렬이며 정수 R 역시 설계자가 정하는 양의 정수이다.

행렬 H는 Ricatti방정식을 만족하는 해 이다. Ricatti 방정식의 해 H는 다음과 같다.

:시스템식이 가제어인 경우, 임의의 정정행렬 Q와 힘의의 양의 정수 R에 대해, Ricatti 방정식은 실수로 이루어진 정정행렬의 해를 가진다. 일반적으로 Ricatti방정식은 복수의 해 H를 가지지만, 해가 실수로 이루어진 정정행렬은 단 하나이다.


다시 정리하자면

(1)시스템식이 가제어일 때

(2)H는 정정행렬이다. 따라서

(3)H는 P.D(Positive Definite: 위의 정정행렬의 조건을 만족)이다.


아래 예제를 다뤄보자.


예제)가제어인 아래의 시스템의 Ricatti 방정식의 해를 구하시오

풀이)


h는 실수해만을 가지기 때문에 h2=1이다.


정정성을 조사하면 h3=√3일 때 h가 정정성을 가짐을 알 수 있다.


Q와 R에 있어서 중요한것은 그 값이 아니라 Q와 R의 비라는 것을, 이해하고 있지 않더라고 기억해두기 바란다.

--------------------------------

3.최적제어 시스템의 설계

가제어인 시스템

에 있어서 평가함수(목적함수)는 다음과 같다.


 이 목적함수를 최소로 하는 제어기를 설계하면 목적하는 사항에 대한 Cost를 최소로 하는 제어기를 설계할 수 있다.

대강 설명하자면 위 함수에서 Q와 관계된 첫째항은 상태의 에너지를 가리키며 R와 관련된 둘째항은 입력의 에너지를 가리킨다. 이를 적분한것이 목적함수이다.


상태와 입력에 대한 가중치 Q,R은 설계자가 정할 수 있다. 이 두 가중치를 어떻게 설계하느냐에 따라 그 제어기의 성능이 정해진다 할 수 있겠다.


위 시스템에 대해 목적함수를 최소화하는 제어기는 Ricatti방정식의 실정정행렬의 해 를 사용해

위와같이 구할 수 있다. 이 제어기를 이용해 제어를 할 때, 목적함수식이 최소가 되며

가 된다. 이는 아래의 블록선도로 표현할 수 있다.


목적함수의 가중치 설정법


J의 수식 중 xTQx를 아래와 같이 풀 수 있다.


아래의 질량-댐퍼 시스템과 그 목적함수를 보자.

r은 입력에 대한 가중치이며 본래 목적함수

와 비교하여

를 구할 수 있다. 이에대한 Ricatti 방정식과 제어기는

이다.


여기서 문제는 목적함수 내의 q11, q22, R의 값에 따른 제어기에 의한 시스템의 응답이다.


나중에 그래프로 더 자세하게 다루겠지만 한가지 요소가 상승하면 그 요소에 대한 수렴속도가 빨라지고, 최대치가 낮아지며 나머지 요소에 대한 수렴속도가 낮아지고, 최대치가 높아진다. 따라서 이러한 값들의 비율이 중요하다.


즉, Q와 R의 값 그 자체보다 그 비율이 중요하다는 것이다. 이는 시행착오가 필요한 문제이기도 하다.

--------------------------------

실전, 최적제어를 이용한 가속도제어


아래의 댐퍼시스템의 가속도를 제어하고자 한다.

눈치가 빠르신 분이라면 알겠지만 평범하게 보면 J에 가속도 요소가 들어갈 수 없다. 왜냐하면 xTQx의 x에는 변위와 속도요소까지만 있기 때문이다. 가속도 제어를 위해서는


그러나 (2)식으로는 u(t)의 제곱항이 존재할 수 없기 때문에 목적함수로 나타낼 수 없다.

따라서 입력항 u(t)를 다음과 같이 적분기를 사용하여 생성하도록 한다.



이에 의해 확대된 시스템은 위와 같으며, 새로운 상태벡터 z(t)와 일련의 A,b,c는


가 된다. 목적함수 J는


이에 대한 정정행렬 Q는

정정성 판별을 통해 Q가 정정성을 가지기 위해서는 q11, q22, qa가 양수여야 함을 알 수 있다.


Ricatti 방정식을 통해 해 H와 제어기를 설계할 수 있다.

이번에는 앞서 공부한 상태옵저버를 이산시스템에 적용시켜 보겠다.


실제 개발환경에서는 연속시스템이 아닌 이산시스템을 기반으로 하기 때문이다. 하지만 그렇게 큰 차이는 없다.



연속시스템과 다른부분은 x(k+1)일 것이다. x의 k+1에서의 상태는 k일 때의 x와 u에 의해 정해진다. 따라서 A와 B역시 이를 고려하여 설계해야겠다.




위 세식은 연속시스템과 같은 방식으로 도출할 수 있다.

아래 식을 보자



즉, 에러 e의 안정적인 수렴을 위해서는 (A-LC)의 pole이 단위원 내에 존재해야 한다.

-----------------------------------------------------------------------------------------

위 실선까지가 앞선 연속시스템을 이산시스템으로 옮긴것이다. 지금까지는 센서를 통한 측정값과 추정값간의 오차를 줄여나가는 제어를 다루었다. 이에 더 나아가 예측값까지 다루고자한다.


우선, 예측과 추정은 어떻게 다를까?

예측은 '다음'을 내다보는 것이고, 추정은 측정된 정보에 대하여 판단하는 것이다. 아래 식을 보자.

  : k타임에서 예측한, k+1타임에서의 예측값

 예측값을 토대로한 k+1타임에서의 추정값


k타임의 추정 x와 입력 u를 기반으로 다음 타임인 k+1에서의 상태x를 '예측'하였다. 이는 실제 k+1타임이 오기전, k타임에서 내다본 예측이다.

k+1타임이 되면서 측정출력 y(k+1)와 예측출력 y(k+1|k)간의 오차와 예측상태 x(k+1|x)를 기반으로 추정상태 x(k+1|k+1)을 구하였다.


측정한 상태 x(k+1)과 출력 y(k+1)에는 실제값과는 다른, 노이즈가 있을 수 있다. 추정값과 측정값사이의 오차 e가 0으로 수렴한다면, 그리고 시스템의 제어를 이 추정값을 기반으로 한다면 측정값 x에 노이지가 발생하더라도 이의 영향을 최소화 할 수 있다.


위의 모든 식을 통해 아래와 같은 결론이 나온다. 증명은 스스로 해보자


'제어특론' 카테고리의 다른 글

Linear Quadratic(LQ) Optimal Control  (1) 2014.11.02
Optimal Control(1)  (0) 2014.10.05
Design of state observers(1)  (0) 2014.10.05
상태 피드백 제어와 옵저버  (0) 2014.10.05
시작하기에 앞서  (0) 2014.10.05

+ Recent posts