![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dQH9K6/btqyV5IMOqw/kqlrIiStqdn962UIVxW0nK/img.png)
논문 https://arxiv.org/abs/1905.02244 Abstract 우리는 새로운 아키텍처 디자인 뿐만 아니라 상호 보완적인 검색 기술들의 결합을 기반으로 한 MobileNets의 다음 세대를 제시함. MobileNetV3는 NetAdapt 알고리즘으로 보완된 하드웨어-인식 (Hardware-aware) 네트워크 아키텍처 탐색 (Network Architecture Search, NAS) 의 결합을 통해 모바일 폰의 CPUs에 맞춰 튜닝되며, 그런 다음 새로운 아키텍처의 개발을 통해 상당히 개선됐음. 이 논문은 자동화된 탐색 알고리즘과 네트워크 설계가 기술의 전반적인 상태를 개선시키는 보완적 방법을 활용하여 어떻게 상호작용하는지에 대한 탐색을 시작함. 이 과정을 통해, 우리는 배포를 위한 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/SDW1y/btqyWnugU3o/LwKTQrNGbPRd98yeRp3Qb1/img.png)
논문 https://arxiv.org/abs/1801.07698 Abstract 대규모 얼굴 인식 (Face Recognition) 에서 깊은 CNN (DCNNs, Deep Convolutional Neural Networks) 을 사용하는 Feature 학습의 중요한 과제 중 하나는 분별력 (Discriminative Power) 을 향상시키는 적절한 손실 함수 설계임. Centre Loss 는 클래스 내 빽빽함 (Compactness) 을 달성하기 위해 유클리드 공간에서 Deep Features과 이 Features에 해당하는 클래스 Centres 사이의 거리에 패널티를 부과함. SphereFace 는 마지막 완전 연결층 (Fully Connected Layer) 에서 선형 변환 행렬이 각도 공간 (..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/t86V6/btqyRMPLQ16/2a7HtjFFl0ZANfYPsShoo1/img.png)
그래프 탐색 (Graph Search) ? 하나의 정점 (Vertex) 에서 시작하여 간선 (Edge) 을 따라 차례대로 모든 정점들을 한 번씩 방문하는 것. 그래프를 탐색하는 두 가지 방법 DFS (Depth-First Search) BFS (Breadth-First Search) DFS (Depth-First Search) 깊이 우선 탐색이라고 하며, 해당 노드의 자식들을 모두 탐색한 후 다른 형제 노드를 탐색한다. 즉, 넓게 (Wide) 탐색하는 것이 아닌 깊게 (Deep) 탐색하는 것이다. 보통, 모든 노드를 방문하고자 할 때 사용한다. 자기 자신을 호출하는 순환 알고리즘 형태를 가지므로, 스택 (Stack) 혹은 재귀함수 (Recursive Function) 로 구현한다. DFS 특징 전위 (P..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bPCDni/btqyLfJLmdM/vvIJN9uvypTGvSwnLxQ5hK/img.png)
원문 https://machinelearningmastery.com/start-with-gradient-boosting/ 어떤 머신러닝 알고리즘을 사용해야 하는가 ? 머신 러닝을 적용하는 데 있어서 중심 질문임. Randal Olson 등의 최근 논문에서, 그들은 더 넓은 알고리즘 집합을 확인하기 전에, 당신의 문제를 먼저 시도할 알고리즘과 파라미터에 대해 가이드를 제공하고 그 문제에 답을 하기 위해 시도함. 이 포스트에서, 당신은 많은 수의 머신러닝 Dataset에 따라 여러 머신러닝 알고리즘을 평가하여 얻은 연구와 이 연구에서 제시된 권장 사항을 발견하게 될 것임. 이 포스트를 읽은 후에, 당신은 알게 될 것임 : 앙상블 트리 알고리즘들이 넓은 범위의 Dataset에서 좋은 수행을 낸다는 것. Sil..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/JQ9DZ/btqyoNOwMLV/mwzETJDlHf8CPTknVSn9Ek/img.png)
논문 https://arxiv.org/pdf/1706.09516.pdf Reference https://gentlej90.tistory.com/100 Abstract 이 논문은 새로운 그라디언트 부스팅 (Gradient Boosting) Toolkit인 CatBoost의 핵심 알고리즘 기술들을 설명함. 이 기술들의 조합으로 인해 CatBoost는 다양한 Dataset의 품질 면에서 공개적으로 사용 가능한 다른 구현들 보다 좋은 성능을 냄. CatBoost에서 소개되는 두 가지 중요한 알고리즘적 진보는 고전 (Classic) 알고리즘에 대한 순열 기반 대안 인 순서형 부스팅 (Ordered Boosting) 및 범주형 (Categorical) Feature를 처리하는 혁신적인 알고리즘임. 두 기술 모두 현..
valueOf (Object obj) Returns the string representation of the Object argument. (Java docs) if the argument is null, then a string equal to "null"; otherwise, the value of obj.toString() is returned. (Java docs) 파라미터에 들어가는 Object (int, boolean, double, float ...) 등을 String 문자열 표현으로 바꿔 반환해준다. 파라미터가 null 이라면, String 문자열로 "null"로 반환되며, null이 아니라면 toString() 함수값을 반환한다. Object.toString() In general, t..
String.split(String regex) / StringTokenizer split 메소드는 String 클래스의 메소드로서 regex를 기준으로 나눈 문자열 배열을 반환한다. StringTokenizer는 메소드가 아닌 클래스이며, 문자열을 구분자로 분리한 후 문자열 토큰을 만든다. StringTokenizer는 Enumeration 인터페이스를 구현하였기 때문에 next~() 메소드를 사용하여 토큰을 하나씩 꺼낼 수 있다. hasMoreElements() / hasMoreTokens() 두 메소드의 성능적인 차이점은 없으며, Java api doc의 설명은 다음과 같다. hasMoreElements() Returns the same value as the hasMoreTokens method...
String String은 immutable (불변) 한 특징을 가진다. 따라서, String은 생성자 (new String) 를 통해 생성되면 해당 instance의 공간은 절대 변하지 않는다. 그래서 +, concat 등 문자열에 변화를 준다고 하더라도 메모리 공간이 변하는 것이 아닌 새로운 메모리 공간에 새로운 String 객체를 만들고 그 객체를 참조하도록 한다. 이렇게 새로운 문자열이 생성되면 기존의 문자열이 Heap 메모리 공간 (가비지 컬렉터가 동작하는 영역) 을 차지하고 있기 때문에 가비지 컬렉터에 의해 제거되야 하는 단점이 있다. 또한, 이러한 문자열 연산이 많아질수록 계속적으로 문자열을 만드는 Overhead가 발생하므로 성능이 떨어질 수 밖에 없다. 대신에 immutable 이라는 특..