본문 바로가기

분류 전체보기324

동역학 문제의 최적제어 문제로의 변환 고전 동역학에서 해밀톤의 원리(Hamilton's principle) (https://pasus.tistory.com/155) 에 의하면 고정된 양 끝단을 연결하는 수많은 경로 중에서 실제 경로는 '작용(action)'을 최소화하는 경로다. 여기서 작용이란 운동 에너지와 포텐셜 에너지의 차이를 시간 적분한 것을 의미한다. 이 원리로부터 라그랑지 방정식(Lagrange's equation)이 유도되는데, 여기서는 이를 최적제어 문제를 이용하여 유도해 보도록 하겠다. 먼저 제어 대상 시스템의 운동 방정식을 다음과 같이 표현하자. \[ \frac{d\mathbf{q}}{dt} = \mathbf{u} \tag{1} \] 여기서 \(\mathbf{q}\) 는 일반화 좌표(generalized coordinate).. 2023. 6. 4.
[LSTM] LSTM-AE를 이용한 시퀀스 데이터 이상 탐지 오토인코더(AE, autoencoder)는 입력 데이터를 압축하고 의미 있는 표현으로 인코딩한 다음 복원시켜 복원된 데이터가 원본 데이터와 최대한 유사하도록 만든 신경망이다. AE는 일반적인 용도인 차원축소(dimension reduction) 뿐만 아니라 다양한 응용 분야를 갖고 있는데 그 중 하나가 이상 탐지(anomaly detection) 분야다. 비정상 탐지 또는 이상 탐지란 대부분의 입력 데이터와는 특성이 상이하여 정상이 아닌 것으로 의심을 불러일으킬 만한 어떤 사건 또는 측정값을 식별하는 행위이다. 예를 들면 국내에서 주로 사용되던 신용카드가 갑자기 해외에서 결제된 사건, 공장의 제조라인에서 불량품을 발견하는 일, 또는 센서 또는 시스템의 고장이라고 의심될 만한 측정 신호 검출 등을 들 수 .. 2023. 5. 31.
[LSTM] 주가 예측 LSTM(Long Short-Term Memory)이 시계열 예측(timeseries forecasting)에 특화되어 있다보니 주식 가격을 예측해보는 간단한 LSTM 예제 코드가 Github등에 많이 나와 있다. '주가예측'만큼 학습용 데이터를 손쉽게 얻을 수 있고 대중의 관심도 큰 분야는 없는 듯 하다. 최근 물리 시스템의 동역학 모델을 구축하는 데에 LSTM이 많이 도입되고 있고 개인적으로도 인공지능을 이용한 주식 거래 자동화에 관심이 있기 때문에 코딩 연습 겸 주가예측을 위한 간단한 LSTM 코드를 Tensorflow2로 구현해 보고자 한다. 참고로 특정 회사의 주가 데이터는 Yahoo finance 사이트의 Historical Data에 가면 다운로드 받을 수 있다. 예를 들어 특정 기간의 엔비.. 2023. 5. 19.
판다스(Pandas)에서 CSV파일 읽기 CSV(comma-separated values) 파일은 데이터를 쉼표로 분리된 테이블로 저장한 텍스트 파일이다. 예를 들면 다음과 같은 것이다. 이름, 회사, 직책, 생년월일 대조영, 대우상사, 과장, 1990-02-01 왕건, 미래바이오, 부장, 1981-09-17 이성계, 오성텔레콤, 대리, 2000-05-15 판다스(Pandas) 라이브러리의 read_csv() 함수를 이용하면 CSV파일을 읽어서 판다스의 데이터 구조인 DataFrame 타입으로 저장할 수 있다. read_csv() 함수의 주요 인자는 다음과 같다. import pandas as pd data = pd.read_csv(file_path, thousands=’,’, header=None) thousands는 천 단위로 쉼표로 끊어져.. 2023. 5. 18.
[VAE] beta-VAE 앞서 살펴본 바와 같이(https://pasus.tistory.com/263) VAE의 손실함수는 복원손실 항과 정규화 손실 항으로 구성된다. 식 (1)의 VAE 손실함수에서 첫번째 항인 복원손실은 복원(reconstruction)된 데이터가 원본 데이터와 얼마나 유사한지를 나타내는 오차다. 원본 데이터의 확률분포에 따라서 원본 데이터와 복원된 데이터 간의 교차 엔트로피나 L2 놈(norm)을 사용하여 복원손실을 계산할 수 있다. 두번째 항인 정규화(regularization) 손실은 고차원 입력 데이터를 저차원 잠재변수 공간(latent space)으로 인코딩할 때 잠재변수의 확률분포가 사전에(prior) 규정한 확률분포 \(p(\mathbf{z})\) 와 얼마나 유사한지를 계산하는 KL발산(Kullb.. 2023. 5. 11.
[VAE] 변이형 오토인코더(Variational Autoencoder) 생성모델(generative model)은 데이터를 생성해 낼 수 있는 모델을 말한다. 만약 데이터의 확률분포 \(-\) 데이터가 이산적일 경우는 확률질량함수(probability mass function), 연속적일 경우는 확률밀도함수(probability density function) \(-\) 를 알 수 있으면 샘플링을 통해서 본래 데이터와 같은 확률적 특성을 갖는 새로운 데이터를 임의로 생성할 수 있으므로, 생성모델의 목적은 데이터의 확률분포를 추정하는 것이라고 말할 수 있다. 예를 들면 데이터로서 얼굴 이미지 집합이 주어졌을 때, 그 이미지의 특성을 나타내는 확률밀도함수를 추정할 수 있다면, 새로운 얼굴 이미지를 임의로 생성할 수 있다는 말이다. 생성모델은 고차원(high dimension) .. 2023. 4. 30.
Simulink Constant 블록에서 Matlab 구조체를 사용하는 방법 매트랩 구조체형 배열(struc)을 사용하면 관련 데이터를 그룹화하여 동일한 변수 이름으로 관리할 수 있어서 편리하다. 예를 들면 항공기 날개에 관련된 데이터를 다음과 같이 wing이라는 이름으로 관리할 수 있다. wing.b=30; % wing span (ft) wing.S=300; % wing area (ft^2) wing.cbar=11.32;% mean aerodynamic chord (ft) 하지만 시뮬링크에서 Constant 블록의 상수값을 구조체 wing으로 설정하고 사용하면 오류가 생긴다. 예를 들면 wing을 입력으로 받아서 이중 wing.S 만을 출력시키는 간단한 시뮬링크 모델을 만들고, function a = test(wing) a = wing.S; 실행하면 다음과 같은 오류 메시지가 .. 2023. 4. 29.
[Continuous-Time] LQR 예제 : 비례항법유도 법칙 이전 포스트(https://pasus.tistory.com/259)와 동일한 문제를 풀어본다. 다만 최종시간에서 \(y(t_f )\) 는 주어지지만 \(\theta (t_f )\) 에 관한 제약조건은 없는 경우이다. 편의상 비행체의 선형화된 운동 방정식을 다시 쓴다. \[ \begin{align} & \dot{x} \approx V \tag{1} \\ \\ & \dot{y} \approx V \theta \\ \\ & \dot{\theta}= \frac{a}{V} \end{align} \] 여기서 \(a\) 는 비행체의 가속도로서 제어변수, \(\theta\) 는 x-축과 비행체의 속도벡터 사이의 비행 방향각으로서 매우 작다고 가정한 것이다. 비용함수와 제약조건은 다음과 같다. \[ \begin{alig.. 2023. 4. 23.
[Continuous-Time] LQR 예제 : 타격각 제어 일정한 속력 \(V\) 로 움직이는 비행체가 있다. 제어 목적은 출발지에서 출발하여 비행 시간 \(t_f\) 가 경과한 후 목적지에 최소의 에너지를 사용하여 특정한 방향각 \(\theta_f\) 로 비행체를 목적지 \((x_f, \ y_f)\) 에 도착시키는 것이다. 비행체가 미사일이라면 \(\theta_f\)를 타격각(impact angle)이라고 한다. 아래 그림에 비행체와 목적지, 출발지 간의 기하학적인 관계가 나와 있다. 비행체의 운동 방정식은 다음과 같다. \[ \begin{align} & \dot{x}= V \cos \theta \tag{1} \\ \\ & \dot{y} =V \sin \theta \\ \\ & \dot{\theta}= \frac{a}{V} \end{align} \] 여기서 \.. 2023. 4. 22.
[Continuous-Time] 고정최종상태 (Fixed-final-state) LQR 다음과 같이 선형 시스템이 있다. \[ \dot{\mathbf{x}}=A \mathbf{x}+B \mathbf{u} \tag{1} \] 이 시스템의 초기 시간 \(t_0\) 와 초기 상태변수 \(\mathbf{x}(t_0)\) 는 주어졌다고 가정한다. 또한 최종 시간 \(t_f\) 와 최종 상태변수 \(\mathbf{x}(t_f)\) 도 미리 원하는 값 \(\mathbf{x}_f\) 로 설정되었다고 가정한다. 따라서 \(dt_0=0\), \(d\mathbf{x}(t_0 )=0\), \(dt_f=0\), \(d\mathbf{x}(t_f )=0\) 이 되기 때문에 최적제어의 필요조건을 정리한 표에 의하면 경계조건은 자동으로 만족된다. 이 시스템의 비용함수도 다음과 같이 고정된 시간 구간 \([t_0, \ t.. 2023. 4. 13.