2021. 4. 12. 15:53ㆍAI
"인공지능 시스템"이라는 학부 수업의 내용을 정리하여 글을 써보았다.
[1] AI, Machine Learning, Deep learning
(1) AI와 인간의 차이는 무엇인가?
이는 경험적인 내용을 바탕으로 판단할 수 있는지의 여부로 나뉠 수 있다고 생각한다
결과적으로는 기계를 인간처럼 판단할 수 있게 만드는 것이 AI라고 정의할 수 있다
General A.I : 울트론 같이 모든 것을 할 수 있는 기계
narrow A.I : 한 개 내지 두 개를 할 줄 아는 기계
(예시: 넷플릭스 영상 추천 시스템, 유튜브 추천 알고리즘 등)
(2) Machine Learning
판단할 수 있게 경험적인 내용을 학습시켜주는 것으로 생각하면 된다
Unsupervised Learning(비지도학습) - 모든 데이터를 주고 A.I (기계)가 직접 알아서 경향성을 판단하여 학습하도록 하는 것
Supervised Learning(지도 학습) - 인간이 직접 어떤 정보를 줄 때 이것이 무엇 인지를 지정해주는 학습 방법
Reinforcement Learning(강화 학습) - 사람은 어떤 것을 할 떄 보상받길 원하는 보상 심리를 가지고 있다. 이를 착안하여 컴퓨터도 보상을 더 많이 받는 쪽으로 학습을 하도록 하는 방법
(3) Deep learning:
이 학습을 달성하는 방법론적인 부분들을 Deep Learning이라고 할 수 있다
(ML vs DL : Feature extraction과 Classification이 동시에 수행되는 지에 따라 나눌 수 있다
인공지능에서 학습이란?
(1) 가중치인 Weight을 얻어내는 것에 있다
(2) Loss 값을 가능한 0에 가깝도록 최대한 낮추는 매개변수를 찾는 것에 있다
Optimization (linear classifier)
first, Feed-forward : input data를 모델에 통과시키고(예시: CNN,DNN 등)
second, Loss function을 구해서 학습이 잘 되었는지 비교해보고
(softmax or SVM 정확히 cross-entropy loss, hinge loss
third, back propagation을 통해 model parameter를 update 시켜준다
(SGD, Adam 등)
[1] Parameter
Model parameter(Weight) : 컴퓨터가 학습하면서 자동으로 설정하는 매개변수
=> linear classification으로 Model parameter가 몇 개인지 설명
Q. 만약 pixel 4개의 image가 3개의 class가 되도록 하려면 몇 개의 model parameter가 필요할까?
1*4 행렬과 bias 3개가 필요하므로 총 7개의 parameter가 필요하게 된다
Hyper parameter: 사람이 직접 조절하는 매개변수
이는, 정답이 있는 문제가 아니며 이를 잘하게 되면 모델 성능에 큰 영향을 미치게 된다 보통,
(1) Learning Rate
(2) Cost function
(3) Regularization parameter
(4) Mini-batch 크기
(5) Training 반복횟수
(6) Hidden Unit의 개수
(7) 가중치 초기화(Weight initialization)
이러한 하이퍼 파라미터 변수들을 튜닝하여 성능을 개선시키곤 한다.
Q. 왜 정확성이란 지표를 놔두고, 굳이 Loss를 설정하는가?
이는 Gradient Descent를 배우게 되면 해답을 얻을 수 있으며, 학습의 목적은 최적의 매개변수를 찾는 것에 있으며,
Loss를 비교해 back propagation을 통하여 매개변수를 update하는데, 이 때 Loss의 미분값을 단서로 갱신하는 과정을 반복해주기 때문이다.
만약 정확성을 지표로 한다면 미분값이 0이 되는 지점이 많아서 매개변수 update가 중단된다 -> (예시) 만약 100장의 train data에서 50장을 인식한다라고 한다면, 정확도는 50%이고 여기서 가중치를 변경해도 48~53%정로 일정하게 되지만, Loss는 log로 소숫점 같은 수치로 나타나기 떄문이다.
Data driven ML에 대해서 :: 강아지를 구분하는 알고리즘을 가정해본다면,
Case1: 먼저 Data를 많이 모아두고
이미지에서 Feature들을 컴퓨터 비전 기술인 HOG,SIFT 등과 같은 것들을 적용해 뽑고 그 패턴을 기계에게 학습시키는 것
Case2: 동일하게 Data를 많이 모아두고
이미지의 Feature에 대한 패턴을 기계 스스로 학습하는 것 -> Deep Learning 이는 즉 사람이 개입하지 않는 end-to-end Machine Learning
[2] Dataset
ML의 핵심은 Data set에 있다. Data set은 Train,Valid,Test data set으로 나뉘며,
Train, Test로만 구분할 경우, Model이 Test data에 over fitting될 소지가 있어, Validation data set을 이용해 hyper parameter를 검증하고 마지막에 test data set으로 평가한다.
[3] Linear Regression and Classification (Supervised Learning)
(1) Linear Regression(Loss Function) : loss를 이해하기 쉬운 가장 기본적인 모델
(2) Image Classfiication (Nearest Neighbors): 여러가지 시각적 조건에 의해 구별하기 힘든데, 이를 어떻게 구별할 것인가에 대한 것
Intra class variation (class의 면적) vs Inter class variation (class 간의 거리)
K- Nearest Neighbor : 가장 근접한 것들을 voting해서 뽑는 것
Distance Metric : L1(절댓값) L2 (제곱해서 더하고 스케일링):
(3) Linear Classifier
[0]의 학습 과정으로, Linear Classifier를 설명할 수 있어 [1]의 그림에서 Target score에 가까워지도록 weight를 조정하면서 학습하는 것
but, linear한 선만으로 구분짓기가 어렵기 때문에, non-linearity를 넣어주어야 하며 이러한 non-linearity가 Activation function이다
[4] SVM classifier(Hingi Loss) vs Softmax Classifier (Cross entropy)
(1) SVM classifier : 자기 자신을 제외한 나머지 부분의 S=wx를 sum 한 후, margin(hyper parameter)만큼 더해준 값을 Loss로 취하는 Loss function
(2) Softmax classifier : (SVM loss에서 score를 probability로 나타내준 것)
Softmax classifier : 합이 1이 되는 probability로 logits을 나타내기
Cross entropy loss로 -log() 를 취해 나타내기
즉, SVM Loss(Score화) => Softmax Classification(Probability화 즉 합이 1이 되도록) =>
Cross entropy Loss(최종)
이 때 Score는 가중치에 input data를 곱한 것과 bias를 더한 것이다
'AI' 카테고리의 다른 글
AI 기초(2) (Neural Network) (0) | 2021.04.14 |
---|