온라인 플레이그라운드

  • 개발 환경
 

React - StackBlitz

 

stackblitz.com

사실 비주얼 스튜디오 코드 설치할거면 의미는 없는 것 같음.

 

앱 만들기  추천 툴체인

 

 
  • 툴체인: React 개발을 위해 필요한 환경을 기본적으로 제공
  • 사용하려면 터미널에서 명령어 입력 필요함
  • npx 실행을 위해 node.js 설치 필요함
 
 
 
 

 

 

프로젝트 폴더 등록하기

  • 폴더 열기 클릭해서 바탕화면에 추가
  • React 이름은 오동작 가능성 있음. 다른 이름 추천 ex. react-app
 
  • 새 터미널 클릭해서 명령어로 제어 
 
  • npx create-react-app . 입력
  • . 은 현재 디렉토리를 의미
 
 
  • npm~ 들은 사용 가능한 명령어들 정의
  • npm start 입력 시 리액트 개발 가능 환경 세팅
 
  • 만약 3000 포트 관련 문구가 뜨면 Y 누르기

'면접(경력관리&협업) > React' 카테고리의 다른 글

Error & Exception  (0) 2024.01.03
리액트 컴포넌트  (0) 2022.11.06

일반화
• 기능 근사를 사용하여 정말 큰 영역에서 의사 결정을 내리도록 확장

 

심층 강화 학습
• 심층 신경망을 사용하여 표현
 가치, Q 함수
 정책
 모델
• SGD(stochastic gradient descent)로 손실 함수 최적화

 

심층 Q-네트워크(DQN)
• 가중치 w를 갖는 Q-네트워크에 의한 상태-동작 값 함수 표현

 

DQN(Deep Q-Networks)에서 재생 경험
• DQN은 경험 재생 및 고정 Q 타겟을 사용합니다.
• 탐욕스러운 정책에 따라 조치를 취하십시오.
• 리플레이 메모리 D에 트랜지션 저장(st,at,rt+1,st+1)
• D에서 전환(s,a,r,s')의 무작위 미니 배치 샘플
• Q-학습 목표 w.r.t를 계산합니다. 오래된 고정 매개변수 w−
• Q-network와 Q-learning 타겟 간의 MSE 최적화
• 확률적 경사하강법 변형 사용

 

아타리의 DQN
• 픽셀 s에서 값 Q(s,a)에 대한 종단 간 학습
• 입력 상태 s는 마지막 4개 프레임의 원시 픽셀 스택입니다.
• 출력은 18개의 조이스틱/버튼 위치에 대해 Q(s,a)입니다.
• 보상은 해당 단계의 점수 변화입니다.
• 모든 게임에서 수정된 네트워크 아키텍처 및 하이퍼파라미터

 

DQN을 사용하여 Atari 게임하기 
• 게임 화면 전처리
 원시 게임 화면 이미지를 직접 공급하는 것은 비효율적입니다.
 이를 방지하기 위해 게임 화면을 전처리한 후 DQN에 전처리된 게임 화면을 피드합니다.
 이제 게임 상태(게임 화면의 이미지)를 다음과 같이 취하는 preprocess_state라는 함수를 정의합시다.
입력하고 전처리된 게임 상태(게임 화면 이미지)를 반환합니다.

 

DQN을 사용하여 아타리 게임하기
• DQN 구축
 우리는 아타리 게임을 하기 위해 합성곱 신경망을 DQN으로 사용한다는 것을 배웠습니다.
게임 화면의 이미지를 입력으로 입력하고 Q 값을 반환합니다.
 3개의 컨볼루션 레이어로 DQN을 정의합니다.

 

DQN을 사용하여 아타리 게임하기
• 네트워크 교육
 에피소드 수 설정:
 시간 단계 수 정의:
 배치 크기 정의:
 우리가 고려하고 싶은 과거 게임 화면의 수를 설정합니다:
 DQN 클래스 인스턴스화:

 

더블 DQN
• 이 아이디어를 DQN으로 확장
• 현재 Q-network w는 동작을 선택하는 데 사용됩니다.
• 이전 Q-네트워크 w−는 작업을 평가하는 데 사용됩니다.

 

듀얼 DQN
• 직관: 가치를 정확하게 표현하는 데 필요한 기능은 특정 값을 지정하는 데 필요한 기능과 다를 수 있습니다.
행동의 차이
• 예시
 게임 점수는 V(s)를 정확하게 예측하는 데 도움이 될 수 있습니다.
 그러나 반드시 상대 행동 값을 나타내는 것은 아님 Q(s,a1) 대 Q(s,a2)
• 장점 함수(Baird 1993)

 

Atari의 DQN을 위한 실용적인 팁
• DQN은 일부 Atari 작업에서 다른 작업보다 더 안정적입니다. Pong은 신뢰할 수 있는 작업입니다. 달성하지 못하면
좋은 점수, 뭔가 잘못되었습니다
• 큰 재생 버퍼는 DQN의 견고성을 향상시키며 메모리 효율성이 핵심입니다.
 uint8 이미지 사용, 데이터 복제 금지
• 인내심을 가지십시오. DQN은 천천히 수렴됩니다. ATARI의 경우 10-40M 프레임을 기다려야 하는 경우가 많습니다.
(GPU에서 몇 시간에서 하루 교육) 무작위 정책보다 훨씬 더 나은 결과를 볼 수 있습니다.

 

 

 

 

'인공지능(ML)' 카테고리의 다른 글

혼동 행렬의 개념  (0) 2023.09.16
머신러닝 모델 평가하기  (0) 2023.09.16
머신러닝의 유형  (1) 2023.09.16
머신러닝이란?  (0) 2023.09.16
가치함수 근사  (0) 2022.11.06

Q-Table을 이용한 Q-Learning의 한계
• 작은 크기(4 x 4) 맵이 있는 FrozenLake의 경우
 Q 테이블은 64개의 항목이 필요합니다. (4 x 4 position x 4 action)
• 문제가 더 큰 경우에는 어떻게 합니까?

 

가치 함수 근사
• 지금까지 조회 테이블로 가치 함수를 표현했습니다.
 모든 상태 s에는 항목 V(s)가 있습니다.
 또는 모든 상태-동작 쌍 s,a에는 항목 Q(s,a)가 있습니다.
• 대형 MDP의 문제:
 메모리에 저장할 상태 및/또는 작업이 너무 많습니다.
 각 상태의 가치를 개별적으로 학습하기에는 너무 느립니다.
• 대규모 MDP를 위한 솔루션:
 함수 근사로 가치 함수 추정
 본 상태에서 보이지 않는 상태로 일반화
 MC 또는 TD 학습을 사용하여 매개변수 w 업데이트

 

어떤 함수 근사치를 사용할 것인가?
• 많은 함수 근사치가 있습니다.
 특징의 선형 컴비네이션
 신경망(뉴럴 네트워크)
 의사결정 트리
 가장 가까운 이웃(knn)
 푸리에/웨이블릿 베이스

여기서 미분 가능한 함수를 고려하면, 선형 컴비네이션과 신경망이 고려되고

또한 non-stationary, non-iid 데이터에 적합한 훈련 방법이 필요합니다.

 

경사하강법
• J(w)를 매개변수 벡터 w의 미분 가능한 함수라고 하자.
• J(w)의 기울기를 다음과 같이 정의합니다.
• J(w)의 로컬 최소값을 찾으려면
• -ve 기울기 방향으로 w 조정
 여기서 α는 단계 크기 매개변수입니다.

 

값 기능 약. 확률적 경사하강법으로
• 목표: 근사값 fn 𝑣ො(s,w) 사이의 평균 제곱 오차를 최소화하는 매개변수 벡터 w 찾기
참값 fn vπ
(에스)
• 경사 하강법은 로컬 최소값을 찾습니다.
• 확률적 경사 하강법은 경사를 샘플링합니다.
• 예상 업데이트는 전체 그래디언트 업데이트와 동일합니다.

 

특징 벡터
• 특징 벡터로 상태 표현
• 예를 들어:
 랜드마크에서 로봇까지의 거리
 주식 시장의 동향
 체스의 말 및 폰 구성

 

선형 값 함수 근사
• 기능의 선형 조합으로 가치 함수를 나타냅니다.
• 목적 함수는 매개변수 w에서 2차입니다.
• 확률적 경사하강법은 전역 최적값에 수렴합니다.
• 업데이트 규칙이 특히 간단합니다.
 업데이트 = 단계 크기 × 예측 오차 × 특성 값

 

테이블 조회 기능
• 테이블 조회는 선형 값 함수 근사의 특별한 경우입니다.
• 테이블 조회 기능 사용
• 매개변수 벡터 w는 각 개별 상태의 값을 제공합니다.

 

증분 예측 알고리즘
• 참값 함수를 가정함 𝑣𝜋
(𝑠)감독님께서 주신
• 그러나 RL에는 감독자가 없고 보상만 있습니다.
• 실제로는 𝑣𝜋를 대상으로 대체합니다.
(𝑠)
 MC의 목표는 수익률 𝐺t
 TD(0)의 경우 대상은 TD 대상입니다.
 TD(λ)의 경우 목표는 λ-return Gtλ

 

값 함수 근사를 사용한 몬테카를로
• 리턴 GT
참값 vπ의 편향되지 않은 노이즈 샘플입니다.
(상태 St)
• 따라서 지도 학습을 "훈련 데이터"에 적용할 수 있습니다.
• 예를 들어 선형 Monte-Carlo 정책 평가 사용
• Monte-Carlo 평가는 지역 최적값으로 수렴합니다.
• 비선형 값 함수 근사를 사용하는 경우에도 

 

값 함수 근사를 사용한 TD 학습
• TD 타겟 Rt+1+γ𝑣ො(St+1,w)는 참값 vπ의 편향된 샘플입니다.
(성
)
• 여전히 지도 학습을 "훈련 데이터"에 적용할 수 있습니다.
• 예를 들어 선형 TD(0) 사용
• 선형 TD(0)은 전역 최적으로 수렴(닫힘)합니다.

 

값 함수 근사가 있는 TD(λ)
• λ-반환 Gt
λ
또한 참값 vπ의 편향된 샘플입니다.
(에스)
• 지도 학습을 "훈련 데이터"에 다시 적용할 수 있습니다.
• 전방 보기 선형 TD(λ)
• 후방 보기 선형 TD(λ)

 

값 함수 근사로 제어
• 정책 평가
 대략적인 정책 평가,
• 정책 개선
 𝜖 - 탐욕스러운 정책 개선

 

조치 값 함수 근사
• 액션-값 함수 근사화
• 대략적인 조치 값 𝑞ො 𝑆, 𝐴, 𝒘과 실제 조치 값 사이의 평균 제곱 오차 최소화
𝑞𝜋
(S,𝐴)
• 확률적 경사하강법 사용

 

선형 작용 값 함수 근사
• 특징 벡터로 상태 및 동작 표현
• 기능의 선형 결합으로 행동 가치 함수 표현
• 확률적 경사하강법 업데이트

 

 

 

 

'인공지능(ML)' 카테고리의 다른 글

혼동 행렬의 개념  (0) 2023.09.16
머신러닝 모델 평가하기  (0) 2023.09.16
머신러닝의 유형  (1) 2023.09.16
머신러닝이란?  (0) 2023.09.16
Deep Q-Network  (0) 2022.11.06

이 글은 코지 코더 강의를 보고 정리한 글입니다.

 

<React.StrictMode>

- 개발 중에 나타나는 잠재적인 오류를 해결하는데 도움을 주는 도구

 

ReactDOM

-리액트와 브라우저의 돔을 연결해주는 역할.

호출은 import ReactDOM from 'react-dom';

ReactDOM.render(

  <넣고싶은 컴포넌트 명/>,

  document.getElementById('root')

); 

와 같은 형태로 사용.

 

리액트에서 컴포넌트를 만드는 방법

(1) 클래스를 이용 - 구버전

(2) 리액트 훅스(함수)를 이용 - 신버전 

(2)를 권장하므로 (2)에 대해서만 공부.

 

리액트에서 함수 컴포넌트 만들기

function 함수명() {

 return(

 <div>넣고싶은 컨텐츠</div> //브라우저에 이 컨텐츠가 출력되어 나타남

 );

}

export default 함수명; //function 함수명과 동일

 

 

'면접(경력관리&협업) > React' 카테고리의 다른 글

Error & Exception  (0) 2024.01.03
개발 환경 세팅  (0) 2022.11.06

+ Recent posts