Machine Learning 기본

2021. 8. 25. 22:58ai/Machine Learning

728x90

 

 

AI(인공지능) : 사람의 사고능력을 구현한 시스템 OR 프로그램
- strong AI : 사람과 구분할 수 없을정도로 강력한 AI(영화에나 잇을법한..)
              AI연산속도 = 사람의 연산속도 100만배 / 때문에 반대도 한다..
- weak AI ; 특정한 영역에서 작업을 수행하는 ai (자율주행, 챗봇 등..)
- marchine learning은 ai를 만드는 방법중 하나


기존 programming  :  explicit programming(명시적 프로그래밍) , Rule based programming

marchine learning :  - 사진안에 동물이 고양이 인가요?

 

Rule based programming은 
data를 만들어진 함수에 넣으면 처리해서 해답을 얻는다
명령 하지 않으면 1번만 수행한다

Machine Learning은 
data와 해답을 밀어넣어 패턴을 파악해 규칙성을 찾아낸다 이를 model이라한다 ㅡ>
새로운 data와 해답을 넣을때마다 기존 model과 비교해서 갱신한다 이를 학습(learning)이라한다
[learning은 사용한 data로부터 중요한 특징을 끄집어내고 일반화 한것이 model 이걸 다시 learning]  ㅡ>
model에 알고싶은 사진을 넣으면 prediction(예측)한 값을 반환

 

많은양의 data와, 양질의 data가 없으면 machine learning이 무의미

 

AI : 가장 포괄적인 개념, 인간의 학습능력 추종능력을 컴퓨터로 구현한 것

 

Machine Learning : AI를 구현하기 위한 하나의 방법론
                  - Data를 pattern과 특징을 학습(learning)해서
                  - 미지의 데이터에 대한 추정치를 추론,계산(수치적으로)
                     program을 만드는 (model)프로그램 기법

 

아래는 Machine Learning을 하는 기법들중 일부
Regression                                            [회기분석]
SVM(support vector Machine)                   
Decision Tree

Random Forest
Naive Bayes
KNN(k-Nearest Neighbors)
k - Means, DBSCAN(clustering)                      [비지도학습에 사용]
Reingorcement Learning                              [강화학습에 사용]

Nevral Network                                        [신경망]     은 방대하다

-다양한 구조와 알고리즘이 존재하는데 이를 Deep Learning

-Deep Learning은 너무복잡해서 런닝머신보다 조금더 나은 결과를 낳을수 있지만

 시간도 오래걸리고 cpu 퍼포먼스와 메모리를 너무 많이 먹는다. 그래서 머신런닝을 선호

 (Machine learning 은 5분걸릴거 Deep Learning은 10시간이 걸린다 )

 

 


정형적인 DATA : DB, CSV, EXCEL                                -Machine Learning에 적합
비정형 DATA : 이미지, 소리, 대용량 text                      -Deep Learning에 적합


왜 machine learning이 필요한가요 ?
-Rule based programming으로 해결 할수 없는 문제를 해결하기 위해 등장

(1960년대 등장해서 2번정도 크게 각광받고 쫄딱 망했다 / deep learning은 최근)
-> Rule based programming은 규칙이 너무 많아서 프로그래밍이 안되요

    (대표적으로 바둑인데 이를 machine learning으로 해결)

Machine Learning을 학습방법[data의 규칙성을 뽑아내는 방법] 에 따라 4가지로 분류
★ 지도학습     (Supervised Learngin)         [Supervised : 관리자]
- 비지도 학습  (Un Supervised Learngin)
- 준지도 학습  (semi supervised Learning)   [지도 + 비지도 학습]
- 강화학습     (Reinforcement Learning)     [응용이 많지 않으나 최근 금융쪽에서 각광]

 

 

과정 : 입력data에 입력 ㅡ>    프로그램 돌려!!       ㅡ>       모델     ㅡ>     예측하고픈 data밀어넣어!!   ㅡ>

        prediction (예측)   


지도학습(Supervised Learngin)

 


 입력 DATA ( 전체를 trainning DATA set )

X - 입력값                            강아지사진
(feature -  / 피쳐 /   독립변수 예측하기 위해 사용되는 입력)

T - 사실값,  label (레이블,라벨)               사진에 대한 설명
(target - 목표변수종속변수 / 예측목표가 되는 변수)

 

 

- model의 본질은 수식 [ ex) T= 3X - 7 ]

 

위 내용과 비교하면서 보기

 

으로도 가능

 

 

지도학습(supervised learning)은 모델 완성 후 어떤 종류의 예측하느냐에 따라

 


Regression(회기) [돌아간다,회기한다]
- 종속변수(target : 예측값)이 continous(연속적인 숫자 : 시간, 주가, 시험성적등.. ) 한 value일때 
 = 얼마나 라는 값을 예측

classification(분류) 
- 종속변수(target :예측값)이 discrete [(같은 종류의 다른 것들과) 별개의 (=separate)] 한 value일때

- 이상값 : true 냐 false냐 ,       0이냐 1이냐,     합격이냐 불합격이냐

'어떤것'을 예측 
                       여기서 또 나뉜다     
- 둘 중 하나를 선택 하는 이항분류(binary classification)
- 여러개중 하나를 선택하는 다항분류(multinominal classification)


비지도 학습(unsupervised learning)  
-학습을 위한 입력data에 'label'이 존재하지 않아요 [그림만 들어간다]
-그림들을 입력값에 넣으면 cluster(군집 = 무리를이루다) 한다     [위 사진 참고]

- 그림을 던져주면 어느 cluster인지가 비지도 학습

-clustering(군집화)는 classification(분류)랑 다르니 유의

 

 

공모전 나갔다고 했을때 Machine Learning 순서

 

Machine Learning Process
1 . 문제파악(Domain분석)
- 1. 해당분야의 domain((지식·활동의) 영역)습득 
- 2. 데이터 분석의 방법, 일정 수립
- 3. 정확도를 측정하는 방법이해

2 . 데이터분석
- 1. 내부data만 이용할것인지, 외부data도 사용할 것인지
- 2. EDA 통계적 데이터 분석(상관분석)

3 . 데이터 전처리(Data prerpocessing)
- 모델 학습이 가능한 형태로 data를 정리(pandas)             -          이게 안되면 의미가 없다
- data분리,병합
- 결측치와 이상치 처리
- binning 처리
- 자료형 변환
- 새로운 feature을 추가 or 삭제

4 . 모델학습
-반복해서 더 똑똑하게 학습

5 .prediction : test data set을 이용해 예측값 도출