인공지능(Artificial Intelligence)
기계학습을 뛰어 넘는 분석기법으로 시스템에 추론능력을 제공
인지(Perception)
- Sensing: image, sound, touch, ...
- Understanding: vision, language
추론(Reasoning)
- Given facts → new facts
- Problem-solving based on knowledge
학습(Learning)
- Improving performance as it repeats
- Predicting the future based on past experience (data)
Adaptiveness, Creativity, etc.
학습
- 인간이 연속된 경험을 통해 배워가는 일련의 과정
- 기억(Memorization)하고 적응(Adaptation)하고, 이를 일반화(Generalization) 하는 것
Machine Learning
데이터 마이닝(Data Mining)이나 기타 학습 알고리즘을 사용하여 지식을 추출하고 이를 경험기반으로 삼아 비슷한 상황의 미래 사건의 결과를 예측(현재 데이터를 가지고 학습 한 뒤, 미래를 예측하는 것에 중점)
- 컴퓨터에 명시적인 프로그래밍을 하지 않고도 학습 능력을 갖추는 것
- 작업(T)의 성능(P)을 측정했을 때 경험(E)으로 성능(P)이 향상됐다면, 이 컴퓨터 프로그램은 경험(E)로부터 학습했다고 볼 수 있다.
- E: Data
- T: Problem
- P: Measurement
Supervised Learning
정답이 주어진 상태에서 학습하는 알고리즘
분류, 회귀
- 목표값이 제시된 데이터가 학습 데이터로 주어진다
- 문제와 정답을 모두 알려주고 공부시키는 방법
- Given: <data, label> examples (labeled)
- Learning: <model> - rules, trees, neural nets to give the right answer
Classification(분류)
- 데이터를 Label에 따라 나누는 방법
- 입력에 따라 Class를 출력 (정답이 Class)
- Binary Classification (예/아니오)
- Multi Label Classification (개/고양이/소)
KNN
[Supervised Learning] KNN(K-Nearest Neighbor)
- 새로운 데이터가 어떤 그룹에 속하는지 분류하기 위해 그 데이터가 가장 가까이 있는 학습 데이터의 그룹을 알아보는 모델
SVM
[Supervised Learning] SVM(Support Vector Machine)
- 두 데이터를 분리해 가장 멀리 분리된 경우가 높은 신뢰도를 준다는 모델
Desicion Tree
[Supervised Learning] Decision Tree
- 질문과 답을 반복적으로 이등분하는 방식으로 찾는 모델
- 신뢰도를 높이기 위해서 엔트로피를 통해 정보의 가치가 높은 것을 식별
ANN (인공 신경망, Artificial Neural Network)
사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘
인간의 뇌에서 뉴런들이 어떤 신호, 자극 등을 받고, 그 자극이 어떠한 임계값(threshold)을 넘어서면 결과 신호를 전달하는 과정에서 착안
들어온 자극, 신호는 인공신경망에서 input data이며, 임계값은 가중치(weight), 자극에 의해 어떤 행동을 하는 것은 output 데이터
Regression
[Supervised Learning][Regression] Linear Regression
[Supervised Learning][Regression] Regression Tree(회귀 트리)
- Feature을 토대로 값을 측정, 결과는 연속된 그래프
- 입력에 따라 실수를 출력(정답이 실수)
- 데이터를 가장 잘 표현할 수 있는 선을 찾는 것
- 입력 데이터의 상관관계를 잘 파악하여 출력을 예측
- Linear Regression, Polynomial Regression, GAM, GLM, Robust Regression, CNN, RNN, 인공신경망
Unsupervised Learning
정답이 주어지지 않은 상태에서 학습하는 알고리즘
시각화/차원축소
연관 규칙 학습
- 목표값이 제시되지 않은 데이터가 학습 데이터로 주어짐
- 데이터의 숨겨진 특징(Hidden Feature)이나 구조를 발견하는 데에 사용
- Given: <data> examples (unlabeled)
- Learning: <groups> of data
Clustering(군집화)
[Unsupervised Learning] Clustering
- Label이 주어지지 않은 데이터를, 일정한 개수의 cluster(군집)으로 모으는 방법
- 데이터들을 그룹으로 나눔
- 데이터간 서로 가깝거나 비슷한 것끼리 그룹화
- K-means, Gaussian Mixture Model, EM, 인공신경망
Anomaly Detection(이상 탐지)
Semi-Supervised Learning
Autoencoder
- 데이터를 내부 표현으로 바꾸는 Encoder, 내부 표현을 데이터로 바꾸는 Decoder로 구성된 모델
Reinforcement Learning
현 상태에서 어떤 행동을 취하는 것이 최적인지 학습하는 방식
- Unsupervised Learning의 일부
- 어떤 state에서 action을 취하고 reward를 받아 점차 효율적인 방식으로 행동을 강화
- Q-Learning
- DQN(Deep-Q-Network): 딥러닝과 결합된 Q-Learning
- Given: <action, reward> experiences
- Learning: <rules> for right action
Machine Learning Algorithm
[Machine Learning] Machine Learning Algorithms
신경망
- 인간의 뇌 신경을 흉내내어 만든 알고리즘
- 현재 가장 고도화되어 딥러닝이라는 분야로 많은 성과를 이룸
유전자 알고리즘
- 정보를 유전자로 인코딩하고 교배와 선택을 반복하면서 진화하는 알고리즘
Decision Tree
- 세상은 if-then의 반복이라는 컨셉에서 따온 알고리즘
Deep Learning
Perceptron
XOR(Exclusive OR) problem
단층 퍼셉트론이 XOR 문제를 해결하지 못해 긴 기간동안 암흑기를 가졌다
1969년 Marvin Minsky가 발견
XOR: 둘 중 하나만 1이면 1
각가 두 개씩 다른 점이 있다고 할 때
하나의 선을 그어 색깔별로 분류하는 방법
어떤한 한 개의 직선으로보 분류할 수 없다
Multi Layer Perceptron
XOR 문제 해결
- 1990년 다층 퍼셉트론으로 해결
- 2차원 평면 공간을 3차원으로 확장해서 분류
- 차원 확장과 좌표 평면 변환 이용
XOR 문제를 해결하기 위해서 2개의 퍼셉트론을 한번에 계산
은닉층(hidden layer)을 가진 다층 퍼셉트론을 구현
- Layer가 복잡해 질수록 연산이 복잡
- Parameter 값을 구하는 것이 힘들어짐
- 복잡한 모델을 연산할 컴퓨터 파워가 부족
Multi Layer Perceptron(Backpropagation)
[Machine Learning] Neural Network의 한계
Overfitting
- 학습 데이터 성능은 좋으나 실제 환경에서 테스트하면 성능이 나오지 않는 상태
기울기 소실(Vanising Gradient)
- Backpropagation 학습 기법에서 기울기를 구해서 모델을 학습하는데 이 기울기가 사라지는 현상으로 학습이 안됨
- 출력값을 결정하는 활성화함수의 사용은 기울기 값에 의해 weight가 결정되었는데 이런 gradient값이 뒤로 갈수록 점점 작아져 0에 수렴하는 오류를 낳기도 하고 부분적인 에러를 최저 에러로 인식하여 더이상 학습을 하지 않는 경우도 있다
너무 많은 연산으로 인한 속도 느림
- 많은 perceptron으로 구조화되는데 그 만큼 계산할게 너무 많아져 느림
- 은닉층이 많으면 학습하는데에 정확도가 올라가지만 그만큼 연산량이 기하 급수적으로 늘어나게 된다
Deep Neural Network (DNN)
ANN 문제 해결되면 은닉층을 많이 늘려 학습 결과를 향상시키는 방법 등장
은닉층을 2개 이상 지닌 학습 방법
ANN(Artificial Neural Network)
- 사람의 신경망 원리와 구조를 모방하여 만든 machine learning algorithm
[Machine Learning] CNN(Convolutional Neural Network)
[Machine Learning] RNN(Recurrent Neural Network)
[Machine Learning] LSTM (Long Short Term Memory)
Machine Learning Procedure
Data Preprocessing
Data Cleaning (데이터 정제)
- Fill in missing values
- Handle the noise data, identify or remove outliers
Data Integration (데이터 통합)
- Integration of multiple databases, data cubes, or files
Data Transformation (데이터 변형)
- Normalization, Standardization
- Discretization, Generalization
Feature Selection
Data Reduction (데이터 축소)
- Obtains reduced representation
- Sampling, Dimensinality reduction
Dataset Split
- Training / Testing
- Training / Validation / Testing
Learning
- Machine Learning Algorithm
Evaluation(Testing) -> Employment
- 목적: 처음보는 데이터도 잘 예측할 수 있게 한다(일반화 generalization 능력)
- Train Phase: train data, 훈련에 사용되는 데이터로 훈련
- Validation Phase: 일반화 능력을 평가, 특정 지표로 최적의 모델을 선택
- Test Phase: 훈련/평가에 없는 실제 데이터로 테스트 후 상용화
평가 단계의 의미
- 일반화 generalization 능력 측정
- 이해했다 = 새로운 문제도 풀 수 있다 = 일반화 능력
Type of Dataset
Structured Data
- Numerical, Categorical, etc
Unstructured Data
- Images, Text, Audio, Vidoe, etc
Tensor
- 선형대수학/물리학에서 선형 관계를 나타내는 미분기하학의 대상
- 기본적인 예는 스칼라곱과 선형 변환이 있으며 스칼라와 벡터 또한 해당
- 텐서는 기저를 선택하여 다차원 배열로 나타낼 수 있으며 기저를 바꾸는 변환 법칙이 존재
Tensor in Deep Learning
- 다차원의 데이터 구조를 표현한 것, 숫자를 담는 컨테이너
- 다차원 배열
Dimension
- 수학에서 점 등의 위치를 나타내개 위해 필요한 축의 개수
- 데이터를 표현하는데 필요한 정보
Reference
'Machine Learning > Machine Learning' 카테고리의 다른 글
[Machine Learning] ML Hyperparameter (0) | 2021.03.05 |
---|---|
[Machine Learning] Regularization (0) | 2021.03.04 |
[Machine Learning] Data Pre-Processing (0) | 2021.03.03 |
[Machine Learning] One-Hot Encoding (0) | 2021.03.03 |
Machine Learning (0) | 2021.02.27 |