목록전체 글 (157)
Just Fighting

최적화 문제란?여러 개의 선택 가능한 후보 중에서 최적의 해(Optimal value) 또는 최적의 해에 근접한 값을 찾는 문제기계학습 분야에서는 비용함수(Cost function)을 최소화 혹은 최대화시키는 모델의 파라미터를 구하는 것.convex optimization problem도 최적화 문제의 한 종류! 표현 형식제약조건을 모두 만족하는 정의역에서 목적함수 f를 최소로 만드는 벡터 x를 x∗로 표시하고,이를 최적해optimal solution라고 한다. \begin{align} &\min_{x \in D} && f(x) \ &subject \ to && g_i(x) \le 0, i = 1,\cdots, m \ &&&h_j(x) = 0, j = 1, \cdots, r \end{a..

최적화의 목표는 가능한 많은 해법 세트 중에서 문제에 대한 최적의 해결책을 찾는 것.구글의 ortools를 이용해 최적화 문제를 푸는 방법을 익혀보자. 선형문제에 사용하는 솔버인 GLOP를 사용해 최적화 문제를 해결하는 방법을 연습했다.2가지 방법이 눈에 띄어 함께 테스트해보았다. 1. Constraint와 Objective 사용https://developers.google.com/optimization/introduction/python?hl=ko 먼저 라이브러리를 가져온다.# 라이브러리 가져오기from ortools.init.python import initfrom ortools.linear_solver import pywraplp 문제 해결자(솔버)를 선언하고, 풀고자하는 문제의 변수를..

4. Why Self-Attention 셀프 어텐션 레이어와 순환 레이어, 컨볼루션 레이어에 대한 비교 진행=> 3가지 조건 (층별 계산 복잡성, 연속 연산, 최장 경로 길이) 1. 각 층에 대한 총 계산 복잡도 => 시퀀스의 길이가 차원보다 작으면(nrecurrentlayer=>이런상황은최첨단기계번역모델(예:word−piece,byte−pair)에사용되는시퀀스표현에서자주발생=>separableconvolution의경우O(knd+nd^2)까지복잡성을감소시킴=>그러나,k=n$일 때, separable convolution의 복잡성은 self-attention layer와 point-wise feed-forward layar의 결합과 동일 ..

3.3. Position-wise Feed-Forward Networks 인코더, 디코더의 각각의 레이어는 각 포지션에 따로 그리고 동일하게 적용되는'fully connected feed-forward network 완전 연결 피드 포워드 네트워크'를 포함한다.FFN은 두 번의 선형 변환과 그 사이 ReLU 활성화로 구성된다.

3.1. Encoder and Decoder Stacks - 인코더6개의 동일한 층으로 구성. 각 층은 2개의 서브층을 가짐서브층은 multi-head self-attention mechanism과 positionwise fully connected feed-forward network로 구성서브층 각각에 잔차 연결 residual connection 후, 정규화 진행=> 서브층의 아웃풋은 LayerNorm(x+Sublayer(x))더보기잔차연결이 x+Sublayer(x), 정규화가 LayerNorm() 인듯 함. Sublayer(x)는 주황, 파랑이 * positionwise : 위치별, 개별 위치에 대해 독립적으로. 입력 시퀀스의 각 위치에서 독립적으로 작동하는 연산* feed-forw..

'Transformer(트랜스포머)'라고 하는 간단한 네트워크 아키텍처를 새롭게 제안 반복과 컨볼루션을 완전히 없애고, 어텐션 매커니즘을 기반으로 하는 아키텍쳐=> 보다 병렬적. 학습하는 데 상당히 적은 시간 소요. 질적으로 우수함. 1. Introduction RNN, LSTM, GRN은 언어 모델링이나 기계학습과 같은 시퀀스 모델링이나 번역에 사용하는 최신 기술.이런 접근은 순환 언어 모델과 인코더-디코더 아키텍처의 경계를 계속 넓히는 중 - Recurrent Model 순환 모델입력과 출력의 시퀀스의 *심볼 위치에 따라 계산 진행이전 은닉상태 ht−1과 t시점의 입력의 함수로 ht의 시퀀스를 생성*심볼 : 처리되는 데이터의 기본 단위. 문자, 단어 등 그러나, 순환적..
어드밴티지 액터-크리틱 알고리즘의 단점 몬테카를로 업데이트 문제와 목적함수 그래디언트의 분산이 크다는 점은 개선 완료 but ! 여전히 온-폴리시(on-policy) 온-폴리시 방법은 정책을 업데이트하기 위해서 해당 정책을 실행시켜 발생한 샘플이 필요하기 때문에 효율성이 떨어진다. 두번째 단점은 정책 그리디언트를 이용한다는 것. 정책 파라미터 변화량이 작아도 정책 자체는 크게 변할 수 있다는 단점이 있다. 정책이 점진적으로 업데이트돼야만 안정적인 학습이 가능하기 때문! 이를 개선할 수 있는 대표적인 알고리즘이 PPO(proximal policy optimization, 근접 정책 최적화)이다. PPO 알고리즘 A2C에서 사용된 목적함수 그래디언트는 다음과 같다. \begin{align*} \bigtria..
A3C의 실행하는 과정의 전반적인 흐름을 코드로 공부해보자. ① 환경 초기화 # 상태변수, 행동, 보상을 저장할 배치는 초기화한다. batch_state, batch_action, batch_reward = [], [], [] # 환경을 초기화하고 환경으로부터 첫번째 상태변수 x0를 측정한다. step, episode_reward, done = 0, 0, False state = self.env_reset() ②-1. 행동 선택 # 워커의 액터 신경망을 이용해 행동을 샘플링한다. action = self.get_action(tf.convert_to_tensor([state], dtype=tf.float32)) # 행동이 범위 [-2, 2]를 벗어나지 않도록 제한 action = np.clip(action..
목적함수의 그래디언트를 계산할 때, 어드밴티지가 편향 없이 작은 분산값을 갖도록 추정하는 것이 중요하다. A2C 알고리즘에서는 가치함수를 근사하는 함수 Vϕ(xt)를 다음과 같이 1-스텝 관계식을 이용해 추정한다.

2차원 데이터에서 최외곽선을 표시하기 위한 함수 convexHull, alphashape 함수에 대해서 정리하고자 한다. ConvexHull 모든 데이터를 다 포함하는 외곽선을 그려주는 함수이다. from scipy.spatial import ConvexHull # 랜덤한 점 10개 x = [random.randint(1,10) for i in range(10)] y = [random.randint(1,10) for i in range(10)] # convex hull 구하기 points = np.array([list(p) for p in zip(x,y)]) hull = ConvexHull(points) # 시각화 plt.scatter(x,y) for s in hull.simplices: plt.plot..