ML, DL, RL8 [RL] Overview RL은 ML(Machine Learning)의 한 종류로 agent가 어떤 environment에서 어떤 action을 했을 때, 그것이 올바른 action인지를 나중에 판단하여 reward를 받는 과정을 반복하여 스스로 학습을 하는 방법입니다. 결국, RL은 순차적으로 action을 계속해서 결정해야 하는 문제를 푸는 것이라 할 수 있고, MDP는 이런 문제를 수학적으로 표현한 것입니다. Policy는 모든 state에서 agent가 해야 할 action을 결정합니다. Agent가 RL을 통해 학습해야 할 것은 여러 정책 중 optimal policy입니다. Optimal policy는 각 state에서 단 하나의 action만을 선택합니다. 하지만, 학습 시에는 하나의 action을 선택하기 보다는 .. 2021. 5. 22. [RL] Reinforcement Learning Problem RL(Reinforcement Learning)에서 Agent는 Policy에 따라 어떤 Environment에서 특정 Action을 합니다. Action에 따라 State가 바뀌고, 바뀐 state에 따라 Reward를 받습니다. 따라서, RL은 가장 좋은 policy를 찾는 것이 목적이고, 가장 좋은 policy는 reward를 최대로 만듭니다. Markov Chain Markov Property Markov Property는 확률 과정의 특수한 형태로서, 메모리를 가지고 있지 않다는 특성이 있습니다. 즉, Markov Property를 가진다면 현재 state는 바로 이전 state에만 영향을 받습니다. 다시 말해, 현재 state를 알면 미래 state를 추론할 수 있고, 미래의 state는 현재.. 2021. 5. 9. [DL] Save and Load model on Keras 이번 포스팅에서는 Keras를 이용해서 훈련한 모델을 저장하고 다시 불러와서 사용하는 방법을 알아보겠습니다. 일단 모델이 필요하니, 이전에 만들어 두었던 모델을 한 번 활용해 봅시다. 2020.11.10 - [DeepLearning] - Classifying Handwriting with Keras Save and Load Weights 먼저 가중치를 저장하고 불러오는 것을 알아보겠습니다. 다음의 코드를 사용하면 간단하게 우리가 훈련시킨 가중치들을 따로 저장을 할 수가 있습니다. model.save_weights('weights.h5') 각자 원하는 이름을 사용하시면 해당 이름으로 저장이 됩니다. 참고로 h5 확장자를 사용할 경우 HDF5 format을 사용하여 저장됩니다. 저장된 가중치를 불러와 모델에.. 2021. 4. 5. [DL] SimpleRNN with Keras RNN(Recurrent Neural Network)은 자연어, 주가와 같은 순차 데이터를 모델링하는 데 사용되는 신경망 입니다. Keras로 이 모델을 구현하는 방법에 대해 알아보겠습니다. Built-in RNN Layers Keras에는 다음 3가지의 모델이 내장되어 있습니다. SimpleRNN 이전 timestep의 출력이 다음 timestep으로 완전히 연결된 모델입니다. LSTM 기존의 RNN이 가진 vanishing gradient, 장기 기억 의존성 등의 문제를 해결하기 위해 나온 모델입니다. Long Short-Term Memory GRU LSTM을 좀 더 단순화시키고, 보다 적은 데이터로도 학습이 가능한 모델입니다. Learning Phrase Representations using RN.. 2020. 12. 5. [DL] Image Classification using ResNet with CIFAR-10 Dataset on Keras ResNet에서는 Residual Block이라는 구조를 사용하여 복잡한 특징을 추출합니다. Residual Block Convolutional Block은 보통 위와 같은 구조를 갖습니다. 반면 Residual Block은 위와 같이 우회 경로가 추가됩니다. Convolutional Layer에서 학습이 필요하지 않은 부분은 이 Shortcut Connection(우회경로)을 통해 전달이 되어 더 깊은 레이어를 쌓아서 학습을 시킬 수 있습니다. 결과적으로 더 좋은 성능을 끌어낼 수 있는 것입니다. Residual Block에는 그림에서 보듯이 Plain Architecture와 Bottleneck Architecture라는 2개의 구조가 있습니다. 숫자는 논문에서 언급된 최소 사이즈이며, 당연히 더 많.. 2020. 11. 15. [DL] Image Classification using CNN with CIFAR-10 Dataset on Keras 이미지 분류에 주로 사용되는 CNN의 기본 개념을 이해하고 CIFAR-10 데이터세트에 적용을 해보겠습니다. CIFAR-10도 유명한 데이터세트이죠. 10 종류의 이미지와 정답 레이블이 들어있습니다. 즉, 우리의 목표는 CNN을 통해 이 10가지 종류의 이미지들을 적절하게 분류해 내는 것입니다. 부족한 설명은 이전 포스팅을 참고하시면 도움이 될 겁니다. 2020/11/10 - [DeepLearning] - Classifying Handwriting with Keras 2020/11/14 - [DeepLearning] - Regression about Boston House Prices with Keras Input Dataset Getting Dataset 케라스에 이미 들어있기 때문에 손쉽게 가져올 수.. 2020. 11. 15. [DL] Regression about Boston House Prices with Keras 회귀는 특징이 있는 여러 데이터들을 기반으로 수치를 예측하는 것입니다. 여기서 사용할 또 하나의 유명 데이터세트인 보스턴 집값 데이터를 예로 들자면, 이런이런 특징이 있는 집들의 가격이 이거니까 학습해! 라고 한 후, 요렇게 학습된 모델에 이런이런 특징이 있는 집은 가격이 얼마일까? 라고 물으면 기존 집들과 비교해 봤을 때 얼마쯤 하겠네~ 라고 답을 하는 것이죠. 그럼 이것을 Keras를 사용하여 DNN을 만들어서 해봅시다. Input Dataset Getting Dataset 역시 케라스에는 이미 포함이 되어 있어 쉽게 가져올 수 있습니다. from keras.datasets import boston_housing (train_data, train_labels), (test_data, test_labe.. 2020. 11. 14. [DL] Classifying Handwriting with Keras 딥러닝을 배우면 처음으로 항상 하는 MNIST 손글씨 데이터세트를 분류하는 것을 해보겠습니다. ㅎㅎ Keras를 사용해서 DNN 모델로 구현을 해보겠습니다. Input Dataset Getting Dataset Keras를 사용하면 유명한 데이터세트는 이미 다 포함이 되어 있어 쉽게 가져다 쓸 수 있습니다. from keras.datasets import mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data() Analyzing Dataset 이제 이 데이터세트가 어떻게 생겼는지 한 번 살펴볼까요? print(train_images.shape, train_labels.shape) # (60000, 28, 28) (.. 2020. 11. 10. 이전 1 다음