TIL/머신러닝

11.21 오전 인공지능,머신러닝, 딥러닝 /머신러닝 프로세스 개요

monawa 2022. 11. 21.
728x90

1. 인공지능과 머신러닝 개요

2.머신러닝 학습개념

3. 머신러닝 프로세스 및 활용 

 

1.인공지능과 머신러닝 개요

1-1 인공지능과 머신러닝개요 ,인공지능 머신러닝 딥러닝비교

 

머신러닝: 인공지능을 구현하는 1가지 방법이다 

=> 결국에 머신러닝이라고 하는 건 유용한 함수를 학습하는것. 

[데이터  => 머신러닝(컴터)=> 함수 => 해결(컴터) => 결과물도출]

 

전통적 ai 

 일련의 로직들, 일련의 절차들을 직접 디자인을 해서 모두 다 사람의 지식을 그대로 모사하게끔 만들었고,그 다음에 컴퓨터에게 입력을 시켜서 최종적인 output을 내게끔 그렇게 디자인이 되어 있다. 

 

최근 ai

function의 기본적인 형태를 컴퓨터에게 알려주면 트레이닝 과정을 통해서 최종적인 optimal function, 굉장히 좋은 유용한 함수를 컴퓨터 스스로 학습을 한다

 

인공지능 > 머신러닝> 딥러닝

왜 머신러닝인가

  • 우리는 빅데이터 시대에 살고있고 어마어마한 데이터가 축적되고있다
  • 이러한 것은 범지구적으로 광범위하게 이루어지고있다 
  • 하드웨어적 발전(분산화된 컴퓨터) -gpu
    CPU = computation적인 측면에서도 CPU Computing은 하나의 일, 하나의 계산을 하나씩 처리
    GPU = GPU 같은 경우에는 많은  코어를 갖고 있고 그를통해 많은양의 병렬연산이 가능하다

머신러닝의 구성요소 

  1. 환경과 상호작용을 하면서 얻어지는 경험
  2. DATA
  3. 함수
  4. 퍼포먼스 (함수평가)

 

머신러닝의 기본 개념

오차를 정의하고 오차를 계산해서 더 작은 오차를 내는 모형을 찾아서  모형을 평가하고 최종적인 모형을 결정하는 것 

 


1-2 머신러닝개념 ,LinearRegression

 

LinearRegression

출처 https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:LinearRegression.svg

기본적인 머신러닝의 방법론

기본전제 : input하고 output 간의 관계가 선형적이다

 

1.β. 회귀계수
데이터들이 하나의 변수로 표현이 되는 것이고 그리고 그 변수가 입력변수가 되고 이 변수들이 입력이 됐을 때 최종적으로 출력되는 것이 y , 내가 추정하는 함수로부터 출력된 값이라는 표시를 하기 위해서 y^이라는 표현할떄
실제 y냐 아니면 함수가 추정한 y냐? 

 

2. 손실함수를 정의 
모형값과 실제 값의 차이를 구해보는것  - 차이를 구해서 제곱 (대표적으로 MSE)

3.최적화 단계
오차를 가장 줄여주는 베타를 찾기 

 

 

  1. 궁극적인 함수는 unknown 상태다.
    알려지지 않은 상태고, 우리가 할 수 있는 최선은 이와 같이 데이터를 추출하는 것이다.
  2. input과 output에 대한 데이터.극히 일부분의 단서들을 가지고서 우리가 궁극적인 함수 관계를 추정한다
    우리는 대략적인 함수의 형태를 지정해주고 그리고 로스함수를 정의한 다음에 최적화를 통해서 learningn을 시켜준다
  3. 컴퓨터에게. 이 데이터의 패턴을 학습을 시켜준다. 
  4. 최종적으로 학습된 모형을 가지고 와서 사용을 하면 된다는 것이죠.

 


1-3 머신러닝프로세스 ,머신러닝활용

학습

머신러닝
Supervised Learning
지도학습
Unsupervised Learning
비지도학습
강화학습. 
어떤 입력이 들어갔을 때 어떤 output이 나와야 된다를 지도  컴퓨터 스스로 데이터에 있는 속성들, 특징들을 추출해내는 그런 작업  
Classification
범주형에 사용
clustering
이상치 찾기
anomaly detection
가지고있는 데이터와 많이 다른애 찾기
markov decision
process
DQN
A3C
Regression
수치형에 사용
이둘은 추후에 공부

 Regression

 Regression에 대해서는 제가 모델을 퍼포먼스를 비교하고 로스함수를 정의하는 것들에 대해서 말씀을 드렸어요.
그래서 그 기준에 의해서 우리가 손실함수를 정의하고 그 손실함수를 최소화하게끔 만들어주면 모형이 학습된다는 걸 알았는데요.

 

Classification에서는 

최종적으로 이 Classification task에서의 로스 정의와 그리고 로스를 최소화하는 방법으로까지 자연스럽게 이어져가겠죠.
y랑 y^이 틀리면 1, 맞으면 0. 에러를 정의해야 되니까 틀리면 1, 맞으면 0로 정의하여 정답율 분석

 

하이퍼파라미터는 모형의 복잡도나 기본 형태를 결정 짓는 파라미터이다.

 

오류

Training error  Validation error
내가 학습시키는 그 데이터 내에서 발생하는 오차.(loss)  Validation data에 예측에러 (일반화 오류)

전체적으로 보면 모형이 복잡해지면 이 학습 오차는 쭉 줄어들고
학습 오차는 줄어들고, 이 validation 오차, 일반화 예측 오차는 좀 줄어들다가 다시 커지는것이 전통적인 머신러닝 방법론들에서 나타나는 그런 Training과 Validation error의 패턴입니다.

 

데이터를 이용한 모델검증 방법

1. 훈련 데이터로만 검증 ( 별로 안좋은 방법 - 일반화가 안됨 우리데이터에만 적합)

dataset

2. train, test데이터 (데이터를 train과 test로 나눠서 학습 -  hyperparameter 튜닝이 된후 가능

train test

3.Training, Validation, Testing data로 쪼개서 (권장

train Validation test

Training, Validation, Testing data로 쪼갠 다음에 train, validation, test data로 데이터가 분할이 돼 있으면 train 데이터로 데이터를 학습시키고 그 다음에 학습된 결과를 validation 데이터에 적용해보는 거예요.

적용해보면서 hyperparameter들을 쭉 바꿔가면서 여러 가지 hyperparameter들을 적용해보면서 validation을 해보고
가장 좋은 hyperparameter를 구한 다음에 그걸 가지고 다시 학습한 모형을 갖고 최종적으로 테스트를 해보는, hyperparameter 조정에 validation 데이터도 이용이 되기 때문에 정말 순수하게 검증을 해보기 위해서 이와 같이 test 데이터를 따로 빼놓는 겁니다.

4.  Cross-Validation


2-1. 머신러닝 프로세스 개요

  • 데이터셋
    정의된 구조로 모아져 있는 데아터 집합
  • data point( 관측치)
    데이터 세트에 속해있는 하나의 관측치
  • feature (VARIABLE, attribute)
    데이터를 구성하는 하나의 특성  - 숫자형 범주형 시간 텍스트 이진형
  • label(target, response)
    입력변수들에 의해 예측, 분류되는 출력 변수 
Classification
(분류)

Regression
(회귀)
범주형에 사용하는모델
범주형 분류예측
수치형에 사용
숫자예측
고객의 구매여부 ,광고클릭여부, 당뇨병여부 ,코로나 양성 음성, 스펨메일여부 기간별 매출액, 재고량,판매량,강수량,기운,경제지표

 

data준비과정

  • dataset exploration
    데이터 모델링을 하기전에 데이터 변수별 기본적인 특성들을 탐색하고 데이터의 분포적인 특징 이해
  • missing value
    데이터를 수집하다보면 ㅇ리부 데이터가 수집되지않고 격측치로 남아있는 경우
  • data type and conversion
    데이터셋안에 여러종류의 데이터타입이 있을수 있고
    이를 분석이 가능한 형태로 변환해서 사용해야함
  • normalization
    데이터 변수들의 단위가 크게 다른경우들이 있고 이러한것들이 모델 학습에 영향을 주는 경우가 있어서 정규화한다
  • outliers
    관측치 중에서 다른 관측치와 크게 차이가 나는 관측지들이 있고 이러한 관측치들은 모델링 전처리가 필요하다 

 

모델링

model
모델은 입력변수와 출력변수간의 관계를 정의해줄수 있는 추상적인 함수구조 

 

모델링 검증 

  • underfit
    너무 간단하게 모영을 학습한 경우
  • overfit
    반대로 너무 과적합한 너무 이제 과도하게 적합시킨 경우

출처 https://blog.funhnc.com/entry/Overfitting-vs-Underfitting-%EA%B0%9C%EB%85%90%EC%A0%81-%EC%84%A4%EB%AA%85

 

 


 

 

 

 

 

참고자료

https://blog.funhnc.com/entry/Overfitting-vs-Underfitting-%EA%B0%9C%EB%85%90%EC%A0%81-%EC%84%A4%EB%AA%85

https://scikit-learn.org/stable/modules/cross_validation.html

http://www.kmooc.kr/courses/course-v1:SSUk+SSMOOC20K+2022_T1/about

728x90

댓글