본문 바로가기

전체 글45

[C++] STL 자료구조: Set, Map set, map은 자가 균형 이진 탐색 트리(BBST, self-balancing binary search tree)로 구현되어있는 자료구조이다. BBST의 일종인 레드-블랙 트리(Red-black tree)로 구현되어 있다. 이는 원소들이 정렬되어 있다는 이진 탐색 트리의 성질과 트리의 높이를 최대한 작게 유지한다는 균형 이진 트리의 성질을 모두 지닌다. (만약 set, map을 직접 구현해야 한다면 보통 red-black tree 대신 treap, skip-list, splay tree 등을 이용한다.) 대소관계가 정의된 자료형의 삽입, 삭제, 검색을 O(logn)에 처리할 수 있다. 단, S[i]나 S.begin() + i와 같은 연산을 지원하지 않아서 i번째 원소에 빠르게 접근할 수 없다.​set.. 2024. 5. 7.
[C++] STL 자료구조: List list는 양방향 연결 리스트(doubly-linked list)로 구현되어있는 자료구조로 임의 위치의 삽입과 삭제를 O(1)에 지원한다.- 이전 노드와 다음 노드에 대한 링크를 각 노드마다 저장하고 있다. list의 각 노드들은 메모리 상에서 떨어진 위치에 존재하며 한 노드를 삽입하거나 삭제해도 다른 노드들의 위치에는 영향이 없다. 삽입, 삭제 시 변화하는 값은 오직 이전 노드와 다음 노드를 가리키는 링크들로, 한 노드를 삽입 또는 삭제하는 경우 자신과 그 주변 노드들의 링크만 수정하면 된다. 이를 이용해 list는 원소의 삽입, 삭제가 이루어진다.노드들이 메모리 상에 인접해있지 않다는 성질때문에 list는 i번째 원소에 바로 접근하는 연산을 지원하지 않는다.  원소의 삽입, 삭제는 해당 원소의 위치를.. 2024. 5. 2.
L2. Face Detection 딥러닝을 사용한 최신 얼굴 인식에 대해 알아보자1. 얼굴 찾기HOG(Histogram of Oriented Gradients) 방식을 사용한다.먼저 이미지를 흑백을 바꾼다. 이미지의 해당 픽셀이 이를 둘러싸고 있는 픽셀들과 비교해서 얼마나 어두운지 알아낸다.이미지가 어두워지는 방향을 나타내는 화살표를 그린다. 이 화살표를 gradient라고 부르며 이를 통해 이미지에서 밝은 부분-> 어두운 부분으로의 흐름을 알 수 있다.이미지를 16x16 픽셀의 작은 정사각형들로 분해하여 각 정사각형에서 얼마나 많은 gradient가 주요방향(위쪽, 우상쪽, 오른쪽)을 가리키는지 세어본다. 그러고 이 사각형을 가장 강한 화살표 방향을 바꾼다. 2. 얼굴의 위치교정과 투영얼굴이 다른 방향을 보고 있으면 다르게 인식되기 때.. 2024. 5. 2.
L1. Image Classification 1. MNIST 손글씨 분류출처: https://github.com/kec0130/AIFFEL-project/blob/main/exploration/E1_classification_mnist.ipynb2. 가위바위보 분류기출처: https://github.com/kec0130/AIFFEL-project/blob/main/exploration/E1_rock_scissor_paper.ipynb  코드를 보면 model을 생성하는 과정에서 Conv2D-> MaxPool -> Conv2D -> MaxPooling2D -> Flatten -> Dense 과정을 거친다CNN은 Convolution과 Pooling, Dense(또는 Fully Connected)라는 세가지 종류의 계층을 통해 만들어지며 크게 Feat.. 2024. 5. 2.