Artificial Intelligence(47)
-
[MNIST] Random Forest를 이용한 간단한 모델 만들기
MNIST는 기계학습계의 "Hello world"라고 불릴 만큼 유명한 데이터셋입니다. MNIST데이터셋에는 여러 가지 종류가 있지만 이번 포스팅에서는 가장 기초적인 머신 러닝 모델 학습을 위해 숫자 데이터셋을 이용하도록 하겠습니다. 모델은 28*28 크기의 손글씨 숫자 데이터를 입력받아 해당 손글씨가 나타내는 숫자를 출력하는 간단한 모델입니다. 코드는 Jupyter notebook을 이용하여 Python3 환경에서 작성 및 실행되었으며, 제 Github Repository 에 전체 코드가 작성되어 있습니다. 머신러닝 모델을 만들기 전에 해야 할 가장 중요한 일 중의 하나는 모델에 학습시킬 데이터의 형태, 구조등을 분석하는 것입니다. 크기는 어느 정도인지, 몇 가지의 Feature가 있는지, 그리고 그 ..
2020.04.12 -
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 -
Markov Decision Process (MDP)
Definition 마르코프 의사결정과정(Markov Decision Process. 이하 MDP)는 꽤 오랜 역사를 가지고 있지만, 실제적으로 인공지능 연구에 활용되기 시작한 것은 1990년대가 조금 지나서라고 합니다. 특히 의사결정과 그 보상에 대한 모델을 제시해 준다는 점에서 강화학습 (Reinforcement Learning)에 활용되고 있습니다. 강화학습은 컴퓨터가 환경과 상호작용하면서 받는 보상을 통해 더 나은 결정을 내릴 수 있도록 도와주는 모델입니다. 어떤 문제를 컴퓨터가 해결하기 위해서는 그 문제가 수학적으로 정의되어 있어야 하는데 MDP가 이 의사 결정 모델의 틀을 제공하여 수학적으로, 다시 말해서 코드화 할 수 있도록 도와줍니다. 보상은 컴퓨터(Agent)가 환경과 상호작용 하는 과정..
2020.03.28