일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 텐서플로우
- Transport layer
- demultiplexing
- file descriptors
- GPIO
- 3분 딥러닝
- RDT
- 모두를 위한 딥러닝]
- 인터럽트
- Class Activation Map
- Generalized forward
- Interrupt
- 밑바닥부터 시작하는 딥러닝
- 리눅스
- TensorFlow
- LED 제어
- 스위치
- 모두를 위한 딥러닝
- 신경망
- function call
- Switch
- 딥러닝
- LED
- 디바이스 드라이버
- 펌웨어
- 운영체제
- Router
- Linux
- Network layer
- 신경망 첫걸음
- Today
- Total
목록공부 기록/모두를 위한 딥러닝 (RL) (15)
건조젤리의 저장소
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 네트워크 분리 방법을 구현해보자. DQN 2013에서는 학습할 데이터들을 배치 처리하는 과정을 추가하였다. 추가적으로 네트워크의 분리과정도 추가해보자. Y를 계산할때 TargetDQN을 이용한다. MainDQN / TargetDQN 두개의 네트워크를 만든 후, 메인 네트워크를 타겟 네트워크에 붙여 넣는다. 일정 간격마다 복사 과정을 수행하게 된다. 네트워크의 복사 = 가중치 값들의 복사 학습 가능한 변수들을 불러온 후, .assign을 통해 Tensor값들을 할당하여 복사한다. 복사에 대한 operation들을 list에 저장해 retu..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 상태값을 받아온다. 랜덤값 e를 이용해 e-greedy방법과 최대값 선택 방법중 하나를 실행한다. 상태값과 액션 등 여러 정보들을 버퍼에 넣는다. 배치에서 10개의 데이터를 랜덤으로 뽑아낸다. 학습을 위한 목표값 y를 얻어온 뒤, Cost함수를 이용해 네트워크를 학습시킨다. 위 2개 문제를 해결해보자. 네트워크 클래스를 선언한다. 이전의 얕은 네트워크를 더 깊게 수정하였다. (은닉층 10개) 분류문제가 아닌 회귀문제이므로 출력층의 활성화 함수는 사용하지 않는다. 예측과 학습을 위한 메소드도 추가로 만들어 주자. 버퍼를 만들기 위해 파이썬..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io Q-Table의 한계를 극복하기 위해 Q-Nets을 이용했지만 성능이 매우 떨어지는 현상이 나타났다! 처참한 결과... 위의 2가지 문제를 어떻게 해결해야 할까? 문제점 1. 유사한 샘플들 매번 루프를 돌때마다 받아오는 환경은 서로 유사하다! 각각의 환경이 유사하다! (차이가 거의 없다) 학습시에 서로 유사한 샘플들로 회귀과정을 수행하게 되면, 전체적인 특징을 잘 파악하지 못한다! 2. 불안정한 목표(움직이는 타겟) 목표값과 예측값을 동일하게 만드는 것이 목표이다. 목표값과 예측값을 구하는데 같은 모델을 사용하게 된다. 따라서 네트워크가..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io Cart Pole이란 막대의 밑 부분을 좌우로 움직여 중심을 잡는 게임이다. 4개의 상태를 가지고 있다. 막대가 넘어지지 않는 이상 보상은 항상 1이다. 막대가 넘어지게 되면 끝난다. 막대가 넘어지게 되면 보상으로 -100을 받게 설정한다. Frozen Lake와 다르게 입력값을 One-hot으로 넣지 않는다! (그대로 넣는다) 4개의 상태를 입력으로 넣게되면 2개중 하나의 행동이 출력으로 나오게 된다. 변수를 만들때 Xavier_initializer()을 사용해보자~! Cost는 제곱오차를 이용하고, 최적화 함수는 Adam을 이용한다...
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io One-hot형식으로 상태값을 주게 되면 Action을 출력해주는 구조이다. 입력을 One-hot형식으로 바꿔주기 위해 identity함수를 이용해보자. one_hot함수를 만들었다. 입력과 출력 크기를 설정하고, 이에 맞게 변수들을 설정해준다. 제곱오차를 사용하여 Cost함수를 만들고, 이를 경사하강법을 이용해 최소화 한다. 이때, 이용하는 y값은 위 그림을 참고하자. e-greedy 방법을 사용하여 Actionn을 선택한다. y값을 선택하는 알고리즘이다. 네트워크의 구성과 파라미터 설정 학습을 위한 코드. 현재 취한 Action에 대..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 이전 시간에는 테이블을 사용한 Q-learning 방법을 알아보았다. 하지만 실제 방대한 크기의 게임에 이를 적용하기 위해서는 테이블 크기가 기하 급수적으로 커지게 된다. 이를 해결하기 위해 테이블 보다 적은 크기를 가지는 노드들을 이용해 신경망을 만들고, 상태(s)와 행동(a)를 입력으로 주게 되면 보상값을 출력으로 받을 수 있는 구조를 이용해보자! 또한 상태(s)를 입력으로 넣게되면 취해야 할 행동들을 출력하는 형태의 신경망을 이용할 수도 있다. 정리하자면! 크게 2가지 형태로 나타낼 수 있다. 우리는 아래 형태의 신경망을 사용하게 ..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 번경된 업데이트 식을 그대로 적어 구현하자! FrozenLake-v0을 사용하여 (is_slippery = True) 구현하자. 빠른 학습을위해 학습률을 0.85로 설정하자. 이전보다 더 나은 결과를 보인다! 이유? -> 가끔일어나는 slippery때문에 Q값이 적절하지 않은 값으로 설정될 수 있다. 이를 방지하기 위해 이전의 학습을 어느정도 반영하는 방법이 필요하다! 구현 코드 (환경: ubuntu:16.04 python 3.6) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23..
김성훈 교수님의 강의내용을 정리한 내용입니다. 출처 : http://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 이전의 Fronzen Lake는 평화로웠지만 Windy Frozen Lake는 바람이 많이 부는 위험한 지역이다. 내가 원하는 방향으로 이동하고자 해도 바람이 세기 때문에 미끄러질수 있다! Windy Frozen Lake와 같은 환경은 Stochastic(nondeterministic) 이라 한다.(일정하지 않음) 내가 원하는 방향으로 잘 이동한다! 내가 원하는 방향으로 잘 가지않고 바람이 세기 때문에 미끄러진다!!! (v0 버전은 is_slippery 옵션이 켜져있다.) 기존의 Q-learning이 효율적이지 못하다! Q가 오른쪽으로 ..