관리 메뉴

ComputerVision Jack

머신러닝 가이드 - Chapter 1 Intro 본문

DeepLearning/머신러닝 - Algorithm

머신러닝 가이드 - Chapter 1 Intro

JackYoon 2020. 2. 25. 23:09
반응형

예측(Prediction)

데이터가 주어진 상태에서 비슷한 추론을 바탕으로 다음을 예측하는 것.

가지고 있는 데이터의 예제와 그에 대한 정답을 사용하여 학습자(Model)에 예제와 정답을 제공하는 것을

지도학습(supervised)라고 한다.

1.데이터에 관하여

데이터에서 유용한 정보를 추출하기 힘든 이유는 데이터가 크고 복잡하기 떄문이다.

데이터가 저장되는 방법 자체 또한 데이터의 유용성을 저해한다.

데이터의 차원의 크기가 커지면 차원을 줄이거나 컴퓨터를 사용하여 고차원 데이터를 처리한다.

 

글리프(Glyph)

3차원 보다 차원의 수가 너무 크게 넘어서지 않으면 크기나 색을 사용하여 다른 차원의 정보를 표현하는 방법

2.학습

학습(learning)

학습에 대한 중요한 개념은 테라바이트 이상의 데이터를 가지고 기계를 통해 학습한다는 것이다.

 

인간과 동물은 경험을 통한 학습으로 지능을 축적한다.

  • 기억(meorization)
  • 적응(adaptation)
  • 일반화(generalization)

3가지의 과정을 통하여 지능을 사용하고, 새로운 상황에 대해 일반화를 적용해 나아간다.

이러한 지능에 대해 추론(reasoning)논리적인 연역(logical deduction)과 같은 다른 부분도 존재한다.

 

컴퓨터 처리는 2가지로 존재한다.

  • 기호 처리(symbolic processing - 초기 인공지능(추론 영역)에 대한 처리
  • 비기호 처리(subsymbolic processing) - 현재의 머신러닝

머신러닝

컴퓨터의 행동(예측이나 행위)을 변경하고 적응해서 컴퓨터가 취한 행동들이 알맞은 행동(정답)에 가깝게 만드는 것

과거의 뉴럴 네트워크(neural network)가 다시 재해석되어 딥러닝이 등장하게 되고 딥러닝에선 데이터가 중요한데,

대량의 데이터에서 유용한 정보를 추출하는 데이터 마이닝(data mining)이 한 주축을 이루었다.

 

머신러닝 계산 복잡도(computational complexity)

머신러닝을 통해 도출되는 것 또한 알고리즘이기 때문에 복잡도가 존재한다.

  • 트레이닝(training) 할 때의 복잡도
  • 테스트 적용할 때의 복잡도

학습 보단 테스트 결과를 새로운 데이터에 적용하는 복잡도를 낮춰, 낮은 계산 비용으로 많은 테스트 데이터를 

처리하는 것이 중요하다.

3.머신러닝 종류

머신러닝의 주요 문제는 변수(feature)에 대한 문제이다. feature는 내가 원하는(사용하려하는) 변수이다.

  • feature 추출
  • feature 처리

위 두 과정을 바탕으로 feature를 처리하여 좋은 결과를 도출해야 한다.

하지만 좋은 결과라는 지표를 컴퓨터가 도출하기엔 쉽지 않다. 따라서 좋은 결과를 도출하기 위해 

다양한 학습 체계가 존재한다.

 

지도 학습(Supervised learning)

트레이닝 세트(training set)와 각각에 대한 목표 값(target value)이 제공 되고, 데이터 세트를 통하여 입력값에 대해

정답을 유출하도록 일반화 시킨다.

 

비지도 학습(UnSuperviesed learning)

정답이 제공되지 않는 경우, 입력 예제 간에 유사점을 찾고, 이를 통해서 분류 체계를 확립한다.

통계학적인 비지도 학습은 밀도 추정(density estimation)이라고 한다.

 

강화 학습(Reinforcement learning)

알고리즘이 출력하는 결과 값에 대해 답이 틀린지 알려주지만 어떻게 고쳐야 하는지는 알려주지 않는다.

따라서 컴퓨터는 다양한 가능성으로 정답을 얻기 까지 스스로 학습한다.

학습에 관한 원동력이 보상과 관련이 많다.

 

진화 학습(Evolutionary learning)

진화 학습 모델들이 컴퓨터에 적용되는지는 적합도(fitness)를 통해서 확인할 수 있다.

4.지도 학습

회귀(Regression)

입력 data(x)와 그에 상응하는 라벨(y)가 주어지면 데이터 간의 값들을 바탕으로 수학적 함수를 찾는 문제이다.

찾은 함수를 토대로 함수 사이의 다른 값에 대해 예측값을 출력으로 제시한다.

  • 함수 근사법(function approximation)
  • 보간법(interpolation) 

함수에 대해 더 좋은 함수를 판별하는 지표는 일반화 이다.

따라서 머신 러닝 알고리즘이 수행할 수 있는 한가지는 데이터 포인트들 사이를 보간하는 방법인 회귀이다.

 

분류(classification)

분류는 입력 벡터들이 N가지 가능한 그룹 중에 어느 곳에 속할지 결정하는 문제이다.

하지만 우리가 모델을 학습시킬 때, 사용하지 않은 예제에 대해선 잘 동작하지 않는다. (잘못된 분류를 생성

따라서 이상치 탐지(novelty detection)을 추구해야 한다.

 

또한 분류를 사용할 때, 어떤 feature를 골라 사용할 지 결정하는 것이 중요하다. 그리고 많은 feature를 사용할 경우

분류기의 훈련 시간이 길어지므로 성능이 좋지 않는다.

차원의 저주(curse of dimensionality)가 대표적이다. 적절한 데이터 feature를 사용해야한다.

 

분류를 수행하는 함수는 결정 경계를 찾는다는 점에서 목표가 같다.

  • 직선 결정 경계
  • 곡선 결정 경계

곡선 결정 경계가 직선 결정 경계보다 분류에 있어 우위가 존재한다.

5.머신러닝 과정

1.데이터 모으기와 준비 과정

데이터 수집시 데이터의 많은 부분이 많은 측정이 필요하거나 다양한 곳에 다른 형태로 분산되어 수집이 

힘들다는 것이다. 또한 데이터 양과 계산 비용의 적절한 수준을 찾는 것이 중요하다.

 

2.피처 선택(Feature Selection)

데이터에서 유용한 피처들을 찾아내야 한다. (p_value, 피처 상관관계)

 

3.알고리즘 고르기(Algorithm Choice)

데이터가 선택되면 알고리즘을 선택해야 한다. 알고리즘 선택에 때라 각각 알고리즘의 원칙이나

사용가능한 방법이 다르다.

 

4.파라미터와 모델 선택(Parameter and Model Selection)

많은 알고리즘은 각 알고리즘이 내포하는 적당한 파라미터의 값을 선택해야한다.

 

5.트레이닝(Training, 학습)

트레이닝은 주어진 데이터를 이용해서 모델을 만들기 위해 이루어지며, 모델은 새로운 데이터에 대해서

결과 값을 예측할 수 있다.

 

6.평가(Evaludation)

시스템이 실제로 사용되기 전에 트레이닝 데이터가 아닌 새로운 데이터를 통해 검증하고 

평가하는 일이다.

6.프로그래밍 노트

대부분 알고리즘은 확률적(stochastic)이라서 같은 결과가 반복되지 않으므로 어려움이 있다.

일시적으로 난수 시드(random number seed)를 정해서 사용하면 같은 번호 패턴이 생성되므로

파이선 실행코드의 문제점을 피할 수 있다.

반응형
Comments