[인공지능] Basic

    1. Machine Learning vs Deep Learning 

     머신 러닝은 기계가 feature extraction을 통해서 경향성을 파악하여 학습하는 방법으로, 이 중에서 신경망(Neural Network)을 이용하는 방법을 딥러닝이라 한다. Machine Learning의 경우 Feature Extraction을 사람이 하지만, Deep Learning에서는 이 부분 또한 인공지능이 학습 한다.

     

    2. Unsupervised Learning vs Supervised Learning vs Reinforcement Learning

     Unsupervised Learning(비지도학습)이란 아무런 답지를 주지 않고, 단순히 Dataset만을 이용해 스스로 경향성을 찾도록 학습하는 방법이다. ex) Clustering, Dimensionality Reduction

     반대로, Supervised Learning(지도학습)이란 라벨링된 데이터셋을 주어, 어떤 것이 정답인지를 알려줘 학습시키는 방법이다. ex) Regression, Classification

     Reinforcement Learning(강화학습)은 인공지능의 행동에 따라 상/벌을 주어, 상(reward)을 많이 받는 행동으로 유도하는 방식이다.

     

    3. Model Parameters vs Hyper Parameters

     Model Parameter란 인공지능이 학습 과정에서 얻는 Parameter를 말하고, Hyper Parameter는 사람이 임의로 설정해줘야 하는 parameter다.

     

    4. Data split 

     Dataset은 Train, Validation, Test로 적절하게 분배해야 한다. 오직 Train만 있으면 Cheating이나 다름없기 때문(Overfitting)으로, Test를 넣어줘야하는데 이 때 Train과 Test의 간극을 좁히기 위해 Validation을 이용하여 먼저 학습한다. 즉, Validation은 test accuracy 가늠과 overfitting 방지 등 모델의 성능을 평가할 목적으로 사용한다. 

     

    Train(교과서) / Validation(모의고사) / Test(수능)

     

    5. Bias

      input과 무관하며, 더 다양한 상황에서 잘 학습시키기 위해서 넣어준다.

     

    6. Loss Function & Optimization

     추정치 yhat과 ground truth y와의 차이를 확인하기 위함 함수 이며, loss function을 개선하여 yhat과 y의 차이를 줄이는 것을 Optimization이라 한다.

     

    7. Nearest Neighbor

     Classifier 중 하나로, labeling된 data와 new data 비교해서 가장 거리가 가까운(Nearest) 이웃(Neighbor)로 분류한다 (거리의 기준은 Pixel Level 등으로 한다). Train 시엔 O(1)이지만, labeling data와 비교하여 min distance를 구해야 하므로 시간복잡도가 O(N)으로 Prediction(test)이 느리다. 따라서 몇 개의 특징적인 neighbor와 비교하여 가장 많이 나온 class로 분류하는 방법을 K-Nearest Neighbor라 한다.

     

    * Classification은 배경 겹침(Background clutter), 시점 다양성(Viewpoint variation), Semantic Gap, 조명(Illuminiaton), 사물 겹침(Occlusion), 같은 클래스 내 다양성(Intra-class variation: 같은 고양이지만 품종이 다른), 다른 클래스와의 차이(Inter-class variation: 고양이와 호랑이) 등의 Challenge가 존재한다.

     

    8. Dimensionality Reduction

    1) PCA: 데이터를 가장 잘 구분하는 방향으로 세로축 옮김

    2) LDA: class 잘 구분하는 형태로 축 옮김

    3) t-sne: Visualization 용도

     

    * 차원이 늘어날때 Data도 비례해서 늘어나야 구분이 쉽다. data의 갯수가 비례하지 않는데 dimension만 커진다면 일정 수준 후에 성능이 떨어진다(Curse of dimentsionality). 

     

    4) Dimensionality Expansion: 축을 늘려서 이전의 차원에서 구분할 수 없던 것을 구분하도록 하기 위해 사용한다.

     

    9. Activation Function(Sigmoid, tanh)을 이용하여 단순 선형 모델로 표현이 불가능한 경우를 더 다양하고 유연하게 학습하기 위하여 사용한다.

     

    10. Softmax vs SVM

     SVM은 Hinge Loss라고도 하며, 정답 score와 각 class 점수의 차이가 0이상이 되면(Hinge) Losses 값에 사용한다.

     Softmax는 classifier score를 확률처럼 보는 방법이다. exp를 사용하여 모든 score의 합이 1이 되도록한다. 이렇게 되면 확률이 100%인 경우만 Losses = 0이 된다.

    'CS지식' 카테고리의 다른 글

    운영체제(OS, Operating System)  (0) 2022.08.08
    컴퓨터 네트워크  (0) 2022.08.05
    C, C++, C#  (0) 2022.08.03
    컴퓨터 그래픽스  (0) 2022.08.02
    자료구조와 STL  (0) 2022.06.23

    댓글