전체 글
-
힙(heap) 알고리즘코테 공부 2022. 9. 28. 16:00
힙(heap) 완전 이진 트리 데이터 내에서 최솟값 및 최댓값을 찾아내는 연산을 빠르게 하기 위해 고안된 알고리즘 우선순위 큐를 위하여 만들어진 자료구조 (우선순위 큐?) 중복 허용 반정렬 상태 (느슨한 정렬 상태)를 유지함 (부모노드의 값이 자식노드의 값보다 항상 크다/작다) 힙의 종류 가장 높은(혹은 가장 낮은) 우선순위를 가지는 노드가 항상 뿌리(root)노드에 오게 된다. 이를 응용하여 우선순위 큐와 같은 추상적 자료형을 구현 복잡도 시간복잡도 = O(log2 n) 삽입, 삭제의 시간복잡도는 O(1)이나, heapify 하는 과정이 O(log2 n) heapify 과정에서 최대로 많은 연산 횟수를 한다면, 트리의 높이(레벨) 만큼 연산하기 때문에 O(log2 n) References https:/..
-
python - heapq 사용법PYTHON/실습 2022. 9. 28. 15:49
heapq 모듈은 heap 이라는 데이터 타입이 있는 것이 아니고, List 를 heap처럼 사용하는 것 기본적으로 최소 힙 heapq의 functions 재구조화 - heapq.heapify(x) list x를 heap으로 변환 import heapq x = [22, 10, 9, 1, 4] heapq.heapify(x) x# [1, 4, 9, 10, 22] 삽입 - heapq.heappush(h, value) h은 heapify 되어있는 list value : 삽입할 값 heapq.heappush(x, 20) x# [1, 4, 9, 10, 22, 20] 삭제 - heapq.heappop(h) h은 heapify 되어있는 list pop_value = heapq.heappop(x) print(x)# [4..
-
2022.09.23 학습기록 (부캠5일차)네이버 Boostcamp AI tech 4기 2022. 9. 25. 15:36
새로 알게된 것 유사역행렬(pseudo-inverse) / 무어펜로즈(Moore-Penrose) 경사하강법으로 선형회귀 구하기 신경망에서 층이 깊을수록 목적함수에 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빠르게 줄어든다 회고 유사역행렬을 듣고 나름 수학전공인데 아직도 처음 들어보는 게 있나 싶었다. 찾아보니 유사역행렬이 특잇값 분해에 기초한다고 한다. 선형대수에서 아직도 ★특잇값분해★를 정복하지 못했다.. 이번 부캠이 끝나기 전에 꼭 정복해야지 (내가 잊지 않기 위해 강조해둔 것!!) 월요일에 수술하고 화요일에 회복하고 입원해있느라고 강의를 많이 밀렸다 (사실 수요일도 회복을 위해 약 2만보를 걷기위해 많이 집중하지 못했다.) 그래서 이번주 내로 강의를 다 듣기위해 대충대충 넘어간 부분도 많았는데 그..
-
2022.09.22 학습기록 (부캠4일차)네이버 Boostcamp AI tech 4기 2022. 9. 23. 03:40
새로 알게 된 내용 try~except 문에 Exception case를 설정할 수 있다는 것 try~except~else문 try~except~finally문 강제로 Exception 발생시키는 raise 구문 조건에 따라 Exception 발생시키는 assert 구문 pathlib 모듈 : path를 다룰 수 있음 pickle 모듈 : 파이썬의 모든 객체를 저장할 수 있다 Logging 모듈 전체 configparser, argparser np.array().nbytes numpy의 concatenate는 속도 부분에서 이점이 없다 np.any, np.all np.where str.translate, str.maketrans 고민했던 것 ImportError 해결하기.. 왜 기본모듈이 없다는 걸까....
-
2022.09.21 학습기록 (부캠3일차)네이버 Boostcamp AI tech 4기 2022. 9. 21. 22:59
새로 알게 된 내용 python에서 함수에 parameter를 전달하는 방식은 value(값)를 전달하는 것도 아니고, reference(참조, 주소)를 전달하는 것도 아닌 객체의 주소가 전달된다. (함수 내부에서 parameter에 대한 변형이 일어나면, 외부에서도 적용되지만, 재할당하는 경우는 상관없다.) 함수 내에서 전역변수를 사용하고 싶다면 "global "으로 선언 필요 전역변수와 지역변수의 변수명이 같아도 서로 영향이 없다. 함수 docstring 코딩 컨벤션 PEP8 flake8, black 모듈 collections 의 namedtuple functools 의 reduce zip(*LIST) : zip과 asterisk를 활용한 행열전환 회고 python을 잘 알고 써왔다고 생각했는데 모르..
-
Markov Decision Process (MDP)AI Study/강화학습 2022. 4. 26. 13:53
Markov Chain (정의) 메모리를 갖지 않는 이산 시간 확률 과정 Markov Process 의 두가지 조건 1) Markov Property 2) 이산 확률 과정 확률 과정 : 시간이 진행함에 따라 상태가 확률적으로 변하는 과정 Markov Property 현재의 state가 직전 state에만 영향을 받는다. (memoryless property) $$ Pr(S_{t+1}=s' | S_0, S_1, ... , S_{t-1}, S_t) = Pr(S_{t+1}=s'|S_t) $$ 메모리를 갖지 않는다는 것은 Markov Property를 뜻합니다. 이전에 어떤 state들을 거쳐왔든 현재의 state만이 다음 state에 영향을 미친다는 것입니다. 또한, 이산 확률 과정이라 함은 시간 간격이 연속..
-
강화학습 1강. Q-LearningAI Study/강화학습 2022. 4. 21. 23:25
https://youtu.be/3Ch14GDY5Y8 * "혁펜하임"님의 유튜브 강의를 보고 주로 공부하고 이해한 게시물입니다. 추가적으로 참고한 곳은 링크를 걸어두었습니다. 좋은 정보 제공 감사합니다! Q-Learning이란? 강화학습의 Model-Free 알고리즘 중 하나 (강화학습 알고리즘에는 Model-Free, Model-Based 알고리즘이 있다. 자세한 내용은 https://spinningup.openai.com/en/latest/spinningup/rl_intro2.html) Q-Learning 은 아래와 같은 격자에서 맵을 모른채로 목적지(Ending Point)를 찾아가는 것과 같습니다. 어떻게 이동할까? Greedy Action 으로 이동할 것입니다. Greedy 로 이동한다는 것은 매..
-
AutoEncoderAI Study 2022. 3. 24. 18:12
AutoEncoder란? 입력을 받아서 압축한 것을 압축 해제하여 복원하는 것을 학습하는 모델로, 비지도 학습을 지도학습 문제로 바꾸어 해결한 예이다. 정답 데이터가 따로 필요하지 않기때문에 Unsupervised Learning encoder로 입력 데이터의 정보를 최대한 보존하도록 압축을 실행하고, decoder로 중간결과물 z의 정보를 입력데이터 x 와 같아지도록 복원을 실행하는 encoder와 decoder 가 합쳐진 모델 학습하면서, AE(AutoEncoder)는 입력 x의 특징(feature)를 잘 추출하도록 자동으로 학습된다. 중간 결과물 z는 Bottleneck Hiddenlayer 라고도 하며, Latent Variable, Feature, Hidden representation, lat..