전체 글 168

[Python] Deque method정리

이런거 정리 잘 못하는 편이라 까먹었다면 아래 블로그 다시 보고오자. 간단 암기사항 from collections import deque append, appendleft, pop, popleft collections 모듈 - deque collections.deque 1. deque란 Deque(데크)는 double-ended queue 의 줄임말로, 앞과 뒤에서 즉, 양방향에서 데이터를 처리할 수 있는 queue형 자료구조를 의미한다. 아래의 [그림1]은 deque 의 구조를 나타낸 그.. excelsior-cjh.tistory.com

[Q2] 왜 코테에서 deque(덱)을 쓰고있는거야 ?

[백준 1697번] 숨바꼭질 (BFS) 아아.. 맨처음에 dp인줄알고 dfs와 dp를 섞어서 풀다가 시간초과나고 아니 dp인것 같은데 아니라고 ? ( 실은 모든경우 탐색하는것 같은 느낌이라 우려가 되긴 했다) 그래서 dijkstra처럼 풀어서 표가 i-never-stop-study.tistory.com 숨바꼭질 문제를 풀고 파이썬으로 구현해보려고 하는데(파이썬이 아직 익숙치 않아서) 파이썬 정답 코드들을 보니 덱을 쓰고 있었다. 내가 짠 C++은 그냥 queue를 썼는데, 파이썬은 왜 queue를 쓰지않고 deque를 쓰고있는지 의아했다. 아무래도 덱이 앞뒤로 넣고 빼는게 가능하니 FIFO만을 지원하는 queue보다 느리지 않을까 싶었으나 [Python] 파이썬 Queue와 deque 속도 / 새벽 3시..

[백준 1697번] 숨바꼭질 (BFS / C++ / Python)

아아.. 맨처음에 dp인줄알고 dfs와 dp를 섞어서 풀다가 시간초과나고 아니 dp인것 같은데 아니라고 ? ( 실은 모든경우 탐색하는것 같은 느낌이라 우려가 되긴 했다) 그래서 dijkstra처럼 풀어서 표가 다 구해지면 동생의 위치를 출력하게 했는데 안되더랑.. 그런데 생각해보니 queue에 time을 추가해서 넣어주면 0,1,1,1,2,2,2,3,3,3 이런식으로 들어와서 동생 위치에 도달하는 순간이 최소시간이라는걸 뒤늦게 깨닫고 단순 bfs+ pair을 써서 풀었다. 요새 여러 종류의 문제를 풀다보니 머릿속이 뒤죽박죽인듯하다. C++ 풀이 #include using namespace std; queue q; //bfs탐색용 bool visited[200001]; // 방문여부 int N, K ; v..

[PART2] CH04. SARSA TD 기법을 활용한 최적정책 찾기

TD 복습 TD(n) : n-step까지의 Return + 이후의 가치 추산치 활용 SARSA : TD(0)를 활용한 행동 가치 함수 Q파이 추산 SARSA 의사 코드 임의의 policy에 대해서 가치를 추산하는 코드... sampling된 에피소드에 대해서 terminal state가 될때까지 반복한다. SARSA control : SARSA policy evaluation + e-탐욕적 정책 개선 GLIE조건을 만족시키면서 학습시키는건 어렵다. 현실적으로 좋은 성능을 보이지도 않음. n-step TD복습 n-step SARSA SARSA(람다) 람다는 파라미터고 람다가 1에 가까워질수록 분산이 커지고 편향이 낮아지고 람다가 0에 가까워질수록 분산이 작아지고 편향이 커진다.

[PART2] CH04. Monte Carlo 기법을 활용한 최적 정책 찾기

Generalized Policy Iteration(복습) 우리가 모델을 알고있다면 action을 당연히 고를 수 있겠지만 모델을 모르는 상황이라면 행동을 결정하기 힘들다. Exploitation : Greedy 한 선택 Exploration : 더 좋은 보상을 알아보기 위해서 비효율적일 수 있는 선택을 하는 탐험. e-Greedy policy 아래 그림 보는게 더 이해 잘된다. e-Greedy로 만들어지는 정책이 개선되는게 맞는가 ? 위 식은 증명 되어 있는건데, 그럼 아래에서 파란색을 임의의 Wi라고 했을 때 위 조건을 만속하면 부등호가 성립할 것. 자연스러우니 넘어가자. e-탐욕적 정책 개선을 하면 최적 정책으로 수렴할까 ? 아니다. e의 확률로 원하지 않는 행동을 해야하기 떄문. 1/k(에피소드 ..

[PART2] CH03. Temporal Difference (TD) 정책추정.

모델이 없는 상황에서 정책 추정하는 방법 2가지 몬테 카를로 : 어떤 함수의 평균값을 샘플을 통해서 추산할 수 있다. -> 가치함수 추정하는데 사용했음(샘플을 통해서 추정했음) DP와 MC 기법의 장단점 Temporal -difference는 둘을 섞은 알고리즘 Q-learning의 기초가 되는 알고리즘. Gt를 직접적으로 샘플을 통해서 얻어진 보상들을 감가하고 합하여 리턴의 추산치로 사용했음 TD에서는 return을 추산할 때 현재상태의 보상인 Rt+1과 감마만큼 감소한 다음상태의 가치함수를 사용하게 된다. MDP를 십분 활용한 것. MC기법 현재의 보상 ~ terminal MDP라고 가정하면 현재 이후는 V(St+1)로 대체 된다. V(s) 를 조정해서 TD target과 가까워 지게 만드는게 목적...

[파이썬 머신러닝 완벽가이드] 협업필터링

사용자 기반 ( 행 : 사용자 / 열 : 아이템 ) 아이템 기반 (행 : 아이템 / 열 : 사용자) 둘이 유사함. 일반적으로 사용자 기반 보다는 아이템 기반 방식이 더 선호된다. 단순히 비슷한 상품을 샀다고 해서 유사한 사람이라고 판단하기 어렵기 때문. 유사도를 구했으면, 이전 영화 평점처럼 가중치를 부여할 수 있다. (각각의 아이템간 유사도 * 평점) / 정규화값

[파이썬 머신러닝 완벽가이드] 추천시스템 - 콘텐츠기반

코드올리는거 여전히 이상하네 왜이렇지 ㅠㅠ 코사인 유사도 ?? 유튜브에서 찾아보자. 1.코사인 유사도별로 정렬을 하니 vote_average가 낮은것들도 유사도가 높다고 나온다. vote_average도 포함시켜서 추출해보자 2.아까보다야 좋아졌지만 한표받고 평균 10점받은 영화는 거르고 싶다. 3.유사도도 높고 투표도 잘 받은(평점 좋은) 영화를 추출해보자. 아래와 같은 가중 평점을 이용하여 새로운 칼럼을 만들어 추출할 수 있다. 위 식에서 m 값보다 v가 낮으면 개별 평점이 좋더라도 수가 굉장히 작아지고 (ex v = 10, m = 300 ) m값보다 v가 높아야만 봐줄만한 값이 된다 (ex v = 1000, m = 300 ) 두번째 항에서 평균평점이 높은 사이트가 있을거고 짜게주는 사이트도 있을 것..

[임베디드 실험 프로젝트] Serving Robot (ARM32보드 기반)

Serving Robot 식당들의 테이블은 고정되어 있으니, 고정된 테이블까지 음식을 배달 후 출발지점까지 복귀하는 것을 목표로 했다. 사용된 센서 및 용도는 다음과 같다. 적외선 센서 5개 (라인 트레이싱용 전면 2개, 후면 2개, 컵 감지용 1개) 초음파 센서 2개 ( 장애물 감지용 전면, 후면 각 1개) 블루투스 센서 1개 ( 목적지 설정용 ) 아래 동영상은 구현 완료된 동영상이다. 설계 단계 임베디드 제품들은 State Machine에 따라 움직인다. 그러므로 Serving Robot의 State를 구상하고 각 State에서 무엇을 할지 정해 둔 뒤에 기능들을 하나하나 붙여나갔다. 그래서 RobotState는 6가지 state를 가지고있다. 1. Stop : 목적지를 입력받고, 배달할 물품이 센싱..

Project 2020.12.21