"시즌 RL - Deep Reinforcement Learning" Wrap-up

학습을 마치며 전반적 강의내용에 대한 정리를 해본다.

Reinforcement의 뜻은(강화학습이지만) "어떻게 하면 좋은선택을 꾸준히 할 수 있을까?"를 목표로 최적화해 나아가는 과정으로 이해된다.

개인적으로 이 강의가 상당히 어렵고 난해하게 느껴졌는데

아마도 Supervised learning의 상식을 가지고 Reinforcement learning분야를 해결해 나아간다는 것이

어떻게 보면 진짜로 잘 될까? 이게 왜 되는거지? 왜 꼭 이렇게 하는거지? 라는 의문이 생겨서 학습을 방해한 것 같다.



몇가지 인상깊은 특징을 나열해보면

- 강의내용은 사실 많은 내용을 함축하고 있는것으로 보인다.

  왜 그렇게 접근하는가를 찾으려다 보면 다른 이론을 알아야만 풀리는 것들이 많다.

- Q-table 방식:

  다음 Action을 정할때 기대하는 가장 큰값을 찾는 논리에 있어서 최적경로 알고리즘과 유사한 부분이 있다.

  하지만, 최적경로 탐색은 path간의 weight이 이미 계산되어 있으나,

  RL에서는 탐험을 통해 이 최적경로를 찾아내는 과정 또한 포함되어 있다.

  이 때문에 탐험으로 찾아진 Q-table은 절대적인 weight도 아니고 최적이라고 판단하기 어렵다.

- Q-Network 방식:

  Q-table 방식과 비교될 수 없는 확실히 다른 것인데 이 점을 빨리 깨닫지 못해서 시간을 허비했다.

- 학습을 위해 일정구간을 저장하고, 그 자료를 샘플링해서, next Q를 더해 학습하는 방법이 DQN의 핵심으로 판단된다.



# Wrap-up

1. Frozen Lake World(OpenAI GYM)


2. Q-function

    a. Deterministic: Q-table(Q-learning)

    b. Stochastic: Q-Network

        diverges due to:

        - Correlations between samples

        - Non-stationary Target


3. Exploit VS Exploration

    a. E-greedy

    b. Decay E-greedy

    c. Add random noise


4. DQN: Deep Q-Network

    a. solutions

        1) Go Deep

        2) Capture and Replay

            - 일정구간을 저장했다가 저장된 구간을 랜덤으로 골라 학습

            - Correlations between samples 을 해결

        3) Separate networks

            - 학습하는 동안 next Q를 구할때는 학습을 반영하지 않는 별도의 DQN(target)을 사용함

            - Non-stationary Target 을 해결

    b. DQN 2013

    c. DQN 2015




Reference:

- http://hunkim.github.io/ml/

"시즌 1 - 딥러닝의 기본" Wrap-up

학습을 마치며 전반적 수업내용에 대한 정리를 해본다.

이 강의을 들으면서 더 깊이있는 지식이 필요하여 Coursera의 "Machine Learning" - Andrew Ng 강의을 들었고 더 잘 이해할 수 있었다.

하지만 딥러닝부분에서는 배경지식이 없어서 CNN, RNN등 에 대한 깊이있는 공부를 위해서 다른 강의를 수강해야 할 것 같다.



몇가지 인상깊은 특징을 나열해보자면

- 이 강의는 15분 내외의 짧은 동영상 강의로 되어있고

- 머신러닝이나 딥러닝의  개념설명과 TensorFlow로 구현하는 방법을 알려준다.

- 하지만 머신러닝이 빠진 타이틀에서 유추할 수 있듯이 딥러닝에 초점이 되어있다.

- TensorFlow가 많은 기능들을 지원하다보니 이론적인 이해가 덜 되어도 실습에는 무리가 없다.

- 이론적인 부분에 있어서는 생략되는 부분이 있다보니 후반부로 갈 수록 왜 그렇게 생각하고 나아가는지에 대한 공감이 어려웠다.



# Wrap-up

1. Machine learning

    a. Supervised

    b. Unsupervised


2. Linear regression

    a. hypothesis

    b. cost function

    c. Minimize cost

        - Gradient descent Algorithm

        - Convex function이 되어야 한다.

    d. Multivariable


3. Logistic regression/classification

    a. Sigmoid

    b. cost function

    c. Minimize cost

    d. Multinomial classification

    e. Softmax

    f. One-hot encoding

    g. Cross-Entropy


4. 머신러닝 관련 용어정리와 tip

    a. learning late

        - 너무 크면 Overshooting 경향

        - 너무 작으면 local minimum 경향

    b. Standardization

    c. Overfitting

    d. Regularization

    e. training / validation / test set

    f. MNIST dataset


5. Neural Networks

    a. Neural net and Activation function

    b. XOR problem

    c. forward propagation

    d. back propagation

        - 초기화를 잘 해야된다.(ex - RBM: Restricted Boatman Machine)

        - vanishing gradient problem: ReLU로 해결

    e. ReLU(Rectified Linear Unit)

        - 다른함수:  Sigmoid, Leaky ReLU, tanh, Maxout, ELU

    f. dropout

    e. ensemble


6. CNN(Convolutional Neural Networks)

    c. Convolution Layer

        - filter

        - stride

    d. Pooling Layer

        - Max pooling


7. RNN(Recurrent Neural Networks)

    a. sequence data

    b. hidden size

    c. batch size



Reference:

- http://hunkim.github.io/ml/

+ Recent posts