분류 전체보기(289)
-
Await vs Return vs Return Await
칼럼 await vs return vs return await를 정리한 글임을 서두에 밝힙니다. 자바스크립트를 사용하면서 처음에 가장 이해하기 어려웠던 부분중의 하나가 비동기 액션을 Async / Await과 Promise 객체를 사용하여 처리하는 것이었습니다. 이번 포스팅에서는 Async 함수의 결과를 Await, Return, Return Await 하는 경우에 각각 어떤 일들이 일어나는지를 확인해보겠습니다. 먼저 다음 Async 함수를 보도록 하겠습니다. async function waitAndMaybeReject() { // Wait one second await new Promise(res => setTimeout(res, 1000)); // Toss a coin const isHeads = B..
2020.04.06 -
CORS 란
Cross Origin Resource Sharing CORS는 Cross-Origin Resource Sharing의 약자로 W3C에서 서로 다른 Origin에서 리소스(Resource)를 공유할 수 있도록 하기 위해 내놓은 정책입니다. 서로 다른 Origin 이라는 것은 도메인 혹은 포트가 다르다는 것을 의미하므로 서로 다른 도메인 주소 사이에서 데이터(예를 들면 API요청, 응답)를 주고받을 수 있도록 하기 위한 정책이라고 할 수 있습니다. CORS이 등장하게 된 이유는 Same-Origin Policy (동일 출처 정책) 때문입니다. Same-Origin Policy는 어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 보안 방식을 의미합니다. 간단히 ..
2020.04.04 -
Principal Component Analysis(PCA)
Overview 머신러닝 혹은 딥러닝으로 모델을 학습시키다 보면, 엄청난 양의 행렬 연산이 요구되는 경우가 다반사입니다. 컴퓨터는 이미지, 데이터 분포등의 정보를 벡터들로 구성하여 인식하는 경우가 많기 때문에 대부분의 전처리된 Input Data는 벡터의 모습을 띄게 됩니다. 하지만 때때로 이 전처리된 벡터의 크기는 굉장히 커서, 딥 러닝 모델에 과도한 부하를 주고 학습의 효율을 떨어뜨립니다. 벡터를 구성하는 모든 차원(크기가 n인 벡터라고 할 때 n차원)의 정보가 의미있는 것은 아니며, 의미있는 부분들만 추려내어 차원을 축소시킬 수 있다면, 이는 데이터의 형태(분포)를 유지하면서 데이터의 크기를 줄여 학습의 효율을 높일 수 있을 것입니다. 예를 들어 아래 그림에서 데이터는 3차원 분포를 나타내지만, 실..
2020.04.02 -
KNN Algorithm with Data-Driven k Value
KNN Algotirhm with Data-Driven k Value (2014) Debo Cheng, Shichao Zhang. et al 을 리뷰한 포스팅임을 서두에 밝힙니다. Abstract KNN 알고리즘이란, 머신러닝이나 딥러닝 분야에서 주어진 Sample을 분류(Classification)할 때 사용하는 방법입니다. 기존에 가지고 있던 테스트 샘플들과의 거리를 측정(L1 norm, L2 norm등 거리를 측정하는 다양한 방법이 있음)하여, 거리가 가장 가까운 K개의 샘플을 선택하고 그 K개의 샘플중에서 가장 많은 샘플이 속한 클래스의 레이블을 주어진 Sample의 레이블로 결정하는 방법입니다. ( 더 자세한 내용은 KNN에 대한 포스팅을 참고해주세요 ) 기존의 KNN알고리즘은 모든 테스트 케이..
2020.04.01 -
KNN (K-Nearest Neighbor)
본 포스팅은 cs231n의 강좌를 정리한 글임을 서두에 밝힙니다. 캡쳐된 일부 강의 자료들은 CS231n에서 제공하는 PPT 슬라이드를 참조하였습니다. Definition 이전 포스팅에서 컴퓨터 비전 분야의 주된 과제 중 하나가 Image Classification 이라고 설명하였습니다. Image Classification 모델은 컴퓨터에게 인풋 이미지를 제공하면 그 이미지가 가지고 있는 개체의 이름(Label)을 출력합니다. 이를 수행하기 위해 다량의 데이터를 이용하여 컴퓨터를 학습시키는 "Data-Driven Approach"가 주로 사용되는데, KNN은 그 방법 중의 하나입니다. KNN은 굉장히 간단한 알고리즘입니다. KNN이라는 이름의 뜻 자체가 (K - Nearest Neighbor)이라는 뜻..
2020.03.29 -
Image Classification Pipeline
본 포스팅은 cs231n의 강좌를 정리한 글임을 서두에 밝힙니다. 캡쳐된 일부 강의 자료들은 CS231n에서 제공하는 PPT 슬라이드를 참조하였습니다. Image Classification 딥 러닝에 대한 연구가 가장 활발히 이루어지고 있는 분야 중 하나가 바로 컴퓨터 비전 분야입니다. 컴퓨터 비전(Computer Vision)이란, 기계의 시각에 해당하는 부분을 연구하는 연구 분야로, 카메라 등의 센서들을 이용해 얻은 데이터들을 식별하는 데에 주 목적을 두고 있습니다. 인간의 시각이 담당하는 중요한 기능 중의 하나가 이미지를 보고 그 이미지를 식별하는 것이라 할 수 있습니다. 마찬가지로 컴퓨터 비전 분야의 핵심 과제 중의 하나도 이와 같다고 말할 수 있는데, 이를 Image Classification이..
2020.03.28