Deep Learning(9)
-
ImageNet Classification with Deep Convolutional Neural Networks (AlexNet) - 2012
Abstract AlexNet은 ImageNet LSVRC-2010 Contest (ILSVRC)에서 120만개의 고화질 이미지를 1000개로 분류했고, top1, top5 error rates에서의 상당한 개선을 이루어냈다. AlexNet은 6천만개의 파라미터, 65만개의 뉴런으로 구성되어 있으며 5개의 Conv Layer (그중 몇개의 레이어는 max-pooling Layer를 포함한다), 3개의 FC레이어, 그리고 1000-way Softmax를 통해 분류를 수행하도록 구성되어 있다. (위의 이미지 참고) FC레이어에서의 Overfitting에 따른 에러를 최소화하기 위해 "Dropout"을 사용하였으며 트레이닝 시간을 단축시키기 위해 "non-saturating neuron"(activation ..
2021.10.04 -
[RNN] Vanila RNN을 이용한 SPAM Filter구현
지난 [SPAM FILTER] 간단한 스팸 분류기 포스팅에서는 Scikit-learn 라이브러리와 RandomForest Classifier를 사용해서 간단한 스팸 필터(스팸 분류기)를 만들어보았습니다. 이 스팸 필터의 경우 98%에 가까운 정확도를 보여주었지만, 이는 과대적합의 가능성도 있을 뿐더러(포스팅 당시에는 과대적합여부를 따로 판단하지는 않았습니다.) 단어 사이의 문맥이나 연관 관계를 고려하지 않고, 스팸 메일에 속할만한 단어가 많으면 스팸 메일로 판단할 가능성이 높아지는 방식을 택한다는 한계점이 있었습니다. 따라서 RNN(Recurrent Neural Network)을 이용한 이번 포스팅과 LSTM(Long-Short-Term-Memory)를 이용한 다음 포스팅을 통해서 이를 점진적으로 개선해..
2020.04.19 -
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 -
Markov Decision Process (MDP)
Definition 마르코프 의사결정과정(Markov Decision Process. 이하 MDP)는 꽤 오랜 역사를 가지고 있지만, 실제적으로 인공지능 연구에 활용되기 시작한 것은 1990년대가 조금 지나서라고 합니다. 특히 의사결정과 그 보상에 대한 모델을 제시해 준다는 점에서 강화학습 (Reinforcement Learning)에 활용되고 있습니다. 강화학습은 컴퓨터가 환경과 상호작용하면서 받는 보상을 통해 더 나은 결정을 내릴 수 있도록 도와주는 모델입니다. 어떤 문제를 컴퓨터가 해결하기 위해서는 그 문제가 수학적으로 정의되어 있어야 하는데 MDP가 이 의사 결정 모델의 틀을 제공하여 수학적으로, 다시 말해서 코드화 할 수 있도록 도와줍니다. 보상은 컴퓨터(Agent)가 환경과 상호작용 하는 과정..
2020.03.28