0. 인공지능(artificial intelligence)
: 인간의 지능적인 활동을 할 수 있도록 컴퓨터를 구현하는 것
- 튜링 테스트: AI의 성능을 시험하는 방법으로 이미테이션 게임이라고도 한다.
일반인이 컴퓨터와 대화해서 사람으로 판정하는 비율이 30%이상 되면 인간처럼 사고할 수 있는 시스템이라고 간주하는 것이다.
1. 머신러닝
인공지능의 한 분야로 컴퓨터가 학습할 수 있는 알고리즘과 기술을 개발하는 분야이다.
1-1. 지도 학습
입력(x)에 대해 레이블(y)를 달아놓은 데이터를 컴퓨터에게 학습시키는 것
1) 분류
레이블 y가 이산적인 경우(범주형 변수인 경우) 분류 혹은 인식 문제라고 부른다.
- 종류 : 로지스틱 회귀법, KNN, 서포트 벡터 머신 (SVM), 의사 결정 트리
2) 회귀
레이블 y가 실수(숫자)인 경우 회귀 문제라고 부른다.결과가 연속성을 지니며 실수형 변수를 통해 예측하여 결과 값이 연속성을 띄는 경우 회귀문제라고 할 수 있다.
- 종류: 선형 회귀 기법
1-2. 비지도 학습
사람 없이 컴퓨터가 스스로 레이블되어 있지 않은 데이터에 대해 학습하는 것
y없이 x만 이용해서 학습하는 것
1) 군집화
데이터가 뿌려져 있을 떄 데이터간의 거리에 따라 군집으로 나눔
2) 분포 추정
데이터가 어떤 확률 분포에서 나온 샘플들인지 추정하는 문제
3) 변환과 연관
1-3. 반지도 학습
레이블이 있는 데이터와 없는 데이터 모두를 활용해서 학습하는 것.
1-4. 강화 학습
지도의 문제와는 좀 달리 강화학습은 현재의 상태에서 어떤 행동을 취하는 것이 최적인지를 학습하는 것.
2. 지도 학습 알고리즘
1) KNN(K-Nearest Neighbors)
최근접 이웃법은 새로운 데이터를 입력받았을 때 가장 가까이있는 데이터들을 기준으로 새로운 데이터의 종류를 정해주는 알고리즘이다. 주변에 있는 것들의 개수를 보고 가장 많은 것을 판단해 고르는 방식을 사용한다. K(거리)의 값은 보통 총 데이터의 제곱근을 사용한다.
2) Linear Regression
선형회귀는 가장 적합한 회귀선을 사용하여 종속변수 Y(target)와 하나 이상의 독립 변수 x 간의 관계를 모델링한다. 기존 데이터들과 오차가 가장 적은 y = Wx + b를 구해 x를 입력받을 때 y를 구할 수 있다.
3) Logistic Regression
로지스틱 회귀는 일반적인 회기분석과 똑같이 종속변수와 독립변수간의 관계를 함수로 나타낸다. 선형회기와 다르게 종속변수가 범주형 데이터를 대상으로 하여 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류기법으로 생각할 수 있다.
4) Decision Tree
데이터를 분석해서 데이터 사이에 존재하는 패턴을 예측 가능한 규칙의 조합으로 나타낸 것. Classification과 Regression이 모두 가능하다.
Ensemble(앙상블) 알고리즘은 bagging(Random Forest)과 boosting(Gradient Boosting)으로 나뉜다.
5) Random Forest
결정트리가 모인 숲으로 결정트리 자체로는 Feature가 너무 많기 때문에(분류 가지가 너무 많아짐) 데이터 셋에 대한 Overfitting이 될 수 있다. 각 트리마다 Feature를 설정하고 결과 값이 가장 많이 나온 값을 최종 예측값으로 선정한다.
6) GBM : Gradient Boosting Machine
회귀 분석 또는 분류 분석을 수행할 수 있는 예측모형. 결정트리를 기반으로하는 Ensemble/Boosting 알고리즘이다. Random Forest와 달리 무작위성 없이 사전에 강력한 가지치기를 통해 이진트리의 오차를 보완하고 만들어진 분류기를 모두 결합해서 최종 모델을 만든다.
7) SVM(Support Vector Machine)
주어진 데이터가 어느 카테고리에 속할지 판단하는 이진 선형 분류 모델
8) Naive Bayes
베이즈 정리 P(A|B) = P(B|A)*P(A)/p(B)를 이용. 베이즈 정리를 이용할 경우 관찰 결과를 토대로 사후확률(믿음의 정도)를 지속적으로 업데이트해나갈 수 있다.
model = GaussianNB()
Feature들이 서로 독립이라 가정하고 조건부 확률 계산해서 데이터 분석
참조)
https://velog.io/@anjoy/ML-%EA%B8%B0%EC%B4%88-%EC%8C%93%EA%B8%B0-3-%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5
'tmp' 카테고리의 다른 글
DDE(Dynamic Data Exchange)와 CSV Injection (0) | 2023.02.07 |
---|---|
[AI] 기초 개념 학습 #2(강화 학습) (0) | 2023.01.31 |
YAML (0) | 2023.01.28 |
직렬화(Serialization)와 역직렬화(Deserialization) (0) | 2023.01.20 |
Type confusion vulnerabilities (0) | 2023.01.18 |