분류 전체보기27 About Cost Function of FaceNet FaceNet Cost Function Using Triplet Loss With Curriculum Learning 2015년 구글에서 발표한 논문 FaceNet을 보면 얼굴 이미지를 학습시키기 위한 방법으로 Triplet Loss를 사용하고 여기에 Curriculum Learning을 도입하였습니다. 한 모델을 살펴봄에 있어 그 모델이 Cost Function을 어떤 식으로 정의하였는지는 그 모델의 성능이 왜 좋은가에 대한 질문에 직결되는 문제이기 때문에 이 글에서 좀 더 자세히 다뤄보도록 하겠습니다. 먼저 Triplet Loss란 무엇일까요 Triplet Loss(삼중항 손실) Triplet Loss란 한 번의 학습 때 Anchor, Positive, Negative 세 가지의 데이터를 통해 학습하.. 2019. 2. 21. FaceNet 번역(translated fleely) FaceNet: A Unified Embedding for Face Recognitioni and Clustering Abstract 얼굴 인식 분야는 최근 많은 발전이 있었음에도 불구하고 현재의 접근방식으로는 아직 어려움이 있습니다.이 논문에서 소개할 FaceNet이라는 시스템은 얼굴 이미지로부터 유클리드 공간(거리가 얼굴 유사도를 나타냄)의 관계를 직접적으로 학습합니다. 이 방법은 기존 접근 방법의 중간 Bottleneck Layer를 사용하는 대신에 이것을 임베딩하는데 최적화되어있는 Deep Conv Network를 사용하는 방법이며 여러 데이터셋에서 훌륭한 정확도를 보였습니다. 1. Introdution 이 논문에서 우리는 Face-Verification(동일인물인지), Recognition(누구.. 2019. 2. 21. BOJ 백준 6236 용돈관리 풀이(C++) 문제 링크 이 문제는 흔히 최적화 문제라고 부르는 문제로서 특정 상황이 주어졌을 때 그 상황을 만족하는 최솟값, 최댓값 등의 특정 값을 찾는 문제이다.처음에 이 문제의 분류는 분할정복 문제로 되어있는데 도대체 어떤 기준으로 문제를 작게 쪼개어야할지 감이 오지 않아 머리만 싸매고 있던 도중파라메트릭 서치(Parametric Search)라는 접근법이 있다는 것을 알게 되었다. 파라메트릭 서치에 대한 설명은 이 글을 읽으면 어느 정도 감이 올 것이다.이 알고리즘을 사용하면 위의 문제에서 통장에서 인출해야할 최소 금액을 구하는 문제에서 특정 금액을 인출했을 경우 예산대로 돈을 사용할 수 있는가에 대한 문제로 변환하여 풀 수 있다. 예를 들어 위의 예시에서 탐색 범위를 하루 최소 사용 금액인 100원에서 한 번.. 2019. 2. 11. 이진탐색(Binary Search)와 파라메트릭서치(Parametric Search) 오늘 처음으로 소개할 알고리즘은 이진 탐색과 파라메트릭 서치입니다. 많은 분들이 이진 탐색에 대해선 많이 들어보셨을거라 생각하지만 파라메트릭 서치라는 알고리즘은 아마 생소하신 분들도 많을 것이라고 생각됩니다. 하지만 이 둘은 매우 유사하며 동일한 원리를 가지는 알고리즘이지만 그 활용에 있어서 차이를 보입니다.이번 기회에 이진 탐색과 파라메트릭 서치에 관한 기본 개념부터 공통점, 차이점, 그리고 구현까지 알아보도로 하겠습니다. 1 | 이진 탐색(Binary Search) 이진 탐색은 정렬된 일련의 값들이 주어졌을 때 그 값들 중에서 원하는 값을 찾는 알고리즘이라고 할 수 있습니다. 이진 탐색은 처음에 중간값을 선택하여 그 값과 찾으려는 값을 비교하여 클 경우 선택했던 중간값을 최솟값으로, 작을 경우 중간값.. 2019. 2. 11. BOJ백준 9019 DSLR 풀이(C++) 문제 링크 이번 문제는 BFS 문제이다.BFS문제는 현재 상태와 다음 상태에 대한 관계를 정의하는 것이 첫 번째라고 볼 수 있다.이번 문제에서는 현재 상태와 다음 상태는 D S L R로 이루어지는 문자열의 길이로 판가름난다.예를 들어 현재 상태가 L 이라면 다음으로 갈 수 있는 상태는 LD, LS, LL, LR 이렇게 네 가지이다.즉 현재가 500이라면 다음 상태는 1000, 499, 5000, (00)50이 되는 것이다. 좀 더 프로그래밍적으로 접근해보자.예를 들어 초기값이 1234이고 3412를 만든다고 해보자.먼저 초기값 1234와 빈 문자열을 c++에서 지원하는 자료형인 pair로 묶어 큐에 넣어준다.그 후 큐(queue)가 빌 때까지 아래와 같이 반복문을 돈다.1. 의 첫번째 데이터를 가져오고 .. 2019. 2. 8. BOJ백준 2293 동전1 풀이(Python) 문제 링크 n가지 종류의 동전을 이용하여 k원을 만드는 경우의 수를 구하는 문제이다.이 문제역시 Dynamic Programming을 이용하여 간단히 해결할 수 있다.개인적으로 DP문제의 핵심은 문제를 어떻게 작은 문제로 나누거나 일반화시킬 것인가이기 때문에이와 같은 관점에서 생각해본문제 풀이의 핵심 전략은 다음과 같다. A-k1원, A-k2원, A-k3원...까지 주어진 동전들로 만드는 경우를 구했다고 했을 때 A원을 만드는 경우는 다음의 경우들을 더해주면 된다. 더 자세히 서술하면 1. n가지 종류의 동전을 반복문으로 순회하면서 내부에서 반복문을 한 차례 더 돌린다.2. 이 때 내부 반복문은 동전의 가치부터 k까지 순회한다.3. 내부 반복문이 j번째를 순회한다고 했을 때 dp[j]에 dp[j-(순회중.. 2019. 2. 8. 이전 1 2 3 4 5 다음