전체 글372 A2C 알고리즘-2: 액터 신경망 한 개의 샘플을 이용한 목적함수의 그래디언트는 다음과 같았다. \[ \nabla_\theta J(\theta) \approx \sum_{t=0}^T \left[ ( \nabla_\theta \log \pi_\theta (\mathbf{u}_t | \mathbf{x}_t)) A^{\pi_\theta} (\mathbf{x}_t, \mathbf{u}_t ) \right] \] 앞에서 크리틱 신경망을 설계했으므로 수식 안에 있는 어드밴티지 함수는 크리틱 신경망의 추정값으로 대체한다. \[ \nabla_\theta J(\theta) \approx \sum_{t=0}^T \left[ ( \nabla_\theta \log \pi_\theta (\mathbf{u}_t | \mathbf{x}_t)) \hat{A} (.. 2021. 4. 20. A2C 알고리즘-1: 크리틱 신경망 강화학습에서 에이전트(agent)가 최대화해야 할 누적 보상의 기댓값 또는 목적함수는 다음과 같다. \[ J(\theta)= \mathbb{E}_{\tau \sim p_\theta (\tau)} \left[ \sum_{t=0}^T \gamma^t r_t (\mathbf{x}_t, \mathbf{u}_t ) \right] \] 여기서 \(p_\theta (\tau)\)는 정책 \(\pi_\theta (\mathbf{u}_t | \mathbf{x}_t )\)로 생성되는 궤적의 확률밀도함수이다. 목적함수를 최대화하는 파라미터 \(\theta\)는 다음과 같이 경사상승법으로 구할 수 있다. \[ \theta \gets \theta + \alpha \nabla_\theta J(\theta) \] 경사상승법 또는 .. 2021. 4. 20. 기본 운동학 방정식 (BKE) 동일한 벡터라도 좌표계가 달라지면 그 표현이 달라진다. 뿐만 아니라 동일한 벡터를 시간 미분할 때도 미분을 수행하는 좌표계가 달라지면 그 값이 달라진다. 예를 들어 어떤 원판의 중심에서 원판 위의 한점을 가리키는 위치 백터 \(\vec{r}\)이 있다고 하자. 이 원판이 회전하고 관찰자 A도 원판의 중심에서 원판과 같이 회전한다고 하자. 그러면 관찰자 A에게는 시간이 흘러도 벡터 \(\vec{r}\)의 크기와 방향이 바뀌지 않고 그대로일 것이므로, 이 벡터를 시간에 대해서 미분한다면 관찰자 A는 그 값을 \(0\)이라고 할 것이다. 반면에 원판의 중심에 또다른 관찰자 B가 있다고 하자. 관찰자 B는 원판이 회전함에도 불구하고 원판과는 별개로 그대로 있다고 하자(약간 공중 부양해 있다고 가정). 그러면 관.. 2021. 4. 13. 각속도 벡터 각속도 벡터(angular velocity vector)는 어떤 좌표계를 기준으로 다른 좌표계가 회전 운동할 때, 회전축과 회전 속력을 나타내기 위한 벡터다. 각속도 벡터의 크기는 회전 속력의 크기인 각속력을 나타내고, 각속도 벡터의 방향은 기준 좌표계에 대하여 회전 운동하는 좌표계의 순간적인 회전축 방향을 나타낸다. 각속력의 크기뿐만 아니라 회전축 방향도 순간순간 변할 수 있으므로 각속도 벡터는 시간의 함수다. 좌표계 \(\{b\}\)가 좌표계 \(\{a\}\)를 기준으로 회전 운동할 때, 좌표계 \(\{a\}\)에서 본 좌표계 \(\{b\}\)의 각속도 벡터는 \(^a \vec{\omega}^b\)로 표기한다. 예를 들어서 원판이 점 \(O\)를 중심으로 일정한 각속력 \(\omega_0\)로 회전하.. 2021. 4. 13. 정책 그래디언트 기반 강화학습의 원리 강화학습에서 에이전트(agent)가 최대화해야 할 누적 보상의 기댓값 또는 목적함수(또는 성능지수)는 다음과 같다. \[ J= \mathbb{E}_{\tau \sim p(\tau)} \left[ \sum_{t=0}^T \gamma^t r_t (\mathbf{x}_t, \mathbf{u}_t) \right] \] 여기서 \(\mathbf{x}_t \in \mathbb{R}^n\)은 환경의 상태변수, \(\mathbf{u}_t \in \mathbb{R}^m\)은 에이전트의 행동(action), \( \gamma \in [0,1]\)는 감가율이다. \(r_t\)는 시간스텝 \(t\)일 때 에이전트가 받는 순간 보상을 나타내는 보상함수다. \(\tau\)는 에이전트의 정책(policy)으로 생성되는 궤적 \(\.. 2021. 4. 13. [CR3BP] 라그랑지 포인트 (Lagrange Point) CR3BP의 무차원화된 운동방정식은 다음과 같았다. \[ \begin{align} & \ddot{x}-2 \dot{y} - x = - \frac{ (1-\mu)(x+\mu) }{r_{13}^3 } - \frac{ \mu (x+\mu-1) }{ r_{23}^3 } \tag{1} \\ \\ & \ddot{y}+2 \dot{x} - y = - \frac{ (1-\mu) y }{r_{13}^3 } - \frac{ \mu y }{ r_{23}^3 } \\ \\ & \ddot{z} = - \frac{ (1-\mu) z }{r_{13}^3 } - \frac{ \mu z }{ r_{23}^3 } \end{align} \] 여기서 \[ \begin{align} & r_{13}= \sqrt{ (x+\mu)^2+y^2+z^.. 2021. 4. 10. [CR3BP] 운동방정식의 무차원화 원궤도제한삼체문제(CR3BP)의 운동방정식은 비선형 연립 미분방정식이므로 수치적으로 풀어야 하는데, 방정식에는 스케일이 크게 다른 항이 혼재되어 있다. 예를 들면 각속도 \(\omega_s\)는 매우 작은 값을 갖는 반면 질량, 거리 등은 매우 큰 값을 갖는다. 이와 같이 수치적 방법에서 스케일이 크게 다른 값이 혼재되어 있을 때 각 항들을 적절한 척도를 이용하여 스케일을 조정한다면 수치 오차를 최소화시킬 수 있다. CR3BP의 운동방정식을 무차원화(nondimensionalization)하여 수치 오차를 최소화하고 또한 사용되는 파라미터를 줄여 방정식을 단순화시켜 보자. 방정식을 무차원화하기 위해서는 먼저 기준 질량, 기준 거리, 기준 시간을 정해야 한다. 기준 질량 \(m_0\)으로서 두 주요(pri.. 2021. 4. 9. [CR3BP] 운동방정식 유도 삼체문제(three-body problem)에서 세 질점 중 한 개의 질점의 질량 \(m_3\)이 다른 두 질점 \(m_1\), \(m_2\)보다 훨씬 작아서 무시할 수 있을 정도라고 가정해 보자. 그러면 질점 \(m_3\)는 두 질점 \(m_1\) 및 \(m_2\)에는 어떤 영향도 미치지 못할 것이므로 두 질점 \(m_1\)과 \(m_2\)의 운동은 이체문제(two-body problem)로 간주할 있다. 이와 같이 삼체문제를 특수한 경우로 제한한 문제를 '제한된 삼체문제(restricted three-body problem)' 라고 한다. 제한된 삼체문제에서 두 질점 \(m_1\)과 \(m_2\)의 운동은 이체문제를 따르므로 그 궤도는 두 질점 공통의 질량중심점을 중심으로 한 원, 타원, 포물선, 쌍.. 2021. 4. 8. 삼체문제 (Three-Body Problem) 이체문제(two-body problem)에서는 전 우주에 질점(point mass)이 딱 2개 밖에 없으며 두 질점 사이에는 만유인력만 작용한다는 가정하에서 두 질점의 운동에 관한 문제를 다루었다. 이체문제는 해석적인 해가 존재했으며 두 질점의 절대적인 또는 상대적인 궤도의 모양은 원, 타원, 포물선, 쌍곡선 중의 하나였다. 삼체문제(three-body problem)는 이체문제에 질점 하나를 추가한 것이다. 전 우주에 질점이 3개밖에 없으며 세 질점 사이에 만유인력만 작용한다는 가정하에서 세 질점의 운동을 다루는 문제다. 삼체문제는 질점 하나를 더 추가했을 뿐이지만 이체문제와는 확연히 다른 매우 복잡한 운동의 모습을 보여준다. 우선 삼체문제는 해석적인 해가 없다. 수치적으로 운동 방정식을 풀어야 한다... 2021. 4. 7. 역전파 (Backpropagation) 계산 선형 레이어(또는 fully-connected layer, 완전 연결 레이어)는 레이어의 모든 뉴런이 이전 레이어의 모든 뉴런과 연결된 레이어이다. 선형 레이어는 다음과 같이 선형 방정식으로 표현할 수 있다. \[ \mathbf{z}^{(l+1) }=W^{(l) } \mathbf{a}^{(l) }+\mathbf{b}^{(l) } \] 여기서 위첨자 \(l\)은 \(l\)번째 은닉(hidden) 레이어를 뜻하고 \(W^{(l) }\)은 가중치(weights), \(\mathbf{b}^{(l) }\)는 바이어스를 나타낸다. 레이어의 출력 \(\mathbf{z}^{(l+1) }\)은 활성함수(activation function) \(\sigma^{(l+1)}\)를 통과하여 \(\mathbf{a}^{(l+1)}.. 2021. 3. 31. 벡터 함수를 행렬로 미분하기 다변수 스칼라 함수를 벡터로 미분한 것을 그래디언트(gradient), 벡터 함수를 벡터로 미분한 것을 자코비안(Jacobian), 스칼라 함수를 벡터로 두 번 미분한 것을 헤시안(Hessian)이라고 한다. 이번에는 스칼라 함수를 행렬로 미분해 보자. \( X=\begin{bmatrix} x_{11} & \cdots & x_{1n} \\ \vdots & \ddots & \vdots \\ x_{m1} & \cdots & x_{mn} \end{bmatrix} \in \mathbb{R}^{m \times n}\) 가 행렬이고 스칼라 함수 \(f(X)\)가 주어졌을 때 \(f(X)\)에 대한 \(X\)의 미분은 다음과 같이 정의한다. \[ \frac{d f}{d X} = \begin{bmatrix} \frac.. 2021. 3. 27. 다변수 함수의 연쇄법칙 (Chain Rule) 연쇄법칙(chain rule)은 합성함수(composite function)의 도함수를 구할 때 유용하게 사용되는 법칙이다. 합성함수란 두개 이상의 함수를 연결하여 하나의 함수로 만드는 연산을 말한다. 연쇄법칙은 신경망을 학습시킬 때 사용되는 역전파(backpropagation) 알고리즘의 근간을 이룬다. 벡터 \(\mathbf{y}=[y_1 \ \ y_2 ]^T\)를 변수로 하는 다변수 스칼라 함수 \(f(\mathbf{y})\)의 미분 \(df\)는 다음과 같이 계산된다. \[ df= \frac{\partial f}{\partial y_1} dy_1 + \frac{\partial f}{\partial y_2} dy_2 \tag{1} \] 한편 \(y_1, \ y_2\)도 각각 \(\mathbf{x}=.. 2021. 3. 23. 바람 에너지 바람(wind)이 갖는 운동 에너지는 얼마일까. 그리고 그 중 얼마나 전기 에너지로 변환시킬 수 있을까. 바람 에너지를 전기 에너지로 변환해 주는 장치가 풍력터빈(Wind Turbine)이다. (어린 시절 바람개비를 갖고 놀던 사람으로서 Wind Turbine을 바람터빈이라고 번역하면 어떨까 싶다.) 풍력터빈은 단독으로 운영되기도 하지만 보통 수 십개에서 수 백개를 한꺼번에 운용하는 것이 보통이다. 풍력터빈을 모아 놓은 단지를 Wind Farm이라고 하는데 번역은 풍력단지라고 한다. (TV동물농장의 애청자로서 이 역시 바람농장이라고 번역하면 어떨까 싶다.) 속도가 \(v_1\)이고 질량이 \(m\)인 공기 덩어리가 갖는 운동 에너지는 \(E_{wind}=\frac{1}{2} mv_1^2\)이다. 파워(p.. 2021. 3. 17. Model Subclassing 멀티 입력 신경망 모델 구현 방법 Model Subclassing API를 사용하여 입력을 여러 개 갖는 즉, 멀티 입력 신경망 모델을 어떻게 구현하고 빌드(build)할 수 있을까. 강화학습의 DDPG알고리즘에서는 행동가치 함수(actor-value function)를 크리틱(critic) 신경망으로 구현한다. 크리틱 신경망은 입력으로 상태(state)와 행동(action)등 두 개를 받는데, 이를 Model Subclassing API를 이용해서 구현해 보자. 구현해야 할 신경망 구조는 다음 그림과 같다. 상태변수를 첫번째 은닉층에서 처리한 후 두번째 은닉층에서 행동과 병합하는 구조다. from tensorflow.keras.models import Model from tensorflow.keras.layers import Input.. 2021. 3. 16. 이전 1 ··· 16 17 18 19 20 21 22 ··· 27 다음