머신러닝 Feature 뜻 | [인공지능,머신러닝,딥러닝] (기초) Feature의 이해 답을 믿으세요

당신은 주제를 찾고 있습니까 “머신러닝 feature 뜻 – [인공지능,머신러닝,딥러닝] (기초) Feature의 이해“? 다음 카테고리의 웹사이트 Chewathai27.com/you 에서 귀하의 모든 질문에 답변해 드립니다: https://chewathai27.com/you/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 컴달인 – 컴퓨터 달인 이(가) 작성한 기사에는 조회수 309회 및 좋아요 12개 개의 좋아요가 있습니다.

머신러닝 feature 뜻 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [인공지능,머신러닝,딥러닝] (기초) Feature의 이해 – 머신러닝 feature 뜻 주제에 대한 세부정보를 참조하세요

– Feature (자질) 이란 무엇인가?
– 왜 Feature가 필요한가?
– 머신러닝, 딥러닝 모델에서 Feature 가 가지는 중요성은?
– 딥러닝 모델은 자동으로 feature를 찾아내주는 것인가?

머신러닝 feature 뜻 주제에 대한 자세한 내용은 여기를 참조하세요.

[머신러닝] 머신러닝, 딥러닝 Feature/Attribute , Class 뜻. (feat …

학습 및 예측을 할 데이터의 특징, 항목 들을 의미한다. (머신러닝에서, Feature와 Attribute는 같은 용어로 이용된다.) 예를들어서 사람의 정보를 …

+ 여기에 자세히 보기

Source: enjoybioinfo.blogspot.com

Date Published: 10/6/2022

View: 2193

기계학습/feature engineering – 인코덤, 생물정보 전문위키

Feature Engineering은 머신러닝 알고리즘을 작동하기 위해 데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정이다.

+ 더 읽기

Source: www.incodom.kr

Date Published: 2/16/2021

View: 8946

머신러닝 용어(Machine Learning Glossary)

머신러닝 용어(Machine Learning Glossary) Start. BioinformaticsAndMe. 1. 특성(Feature)과 라벨(Label). ㄱ) 특성(Feature).

+ 여기에 자세히 보기

Source: bioinformaticsandme.tistory.com

Date Published: 9/13/2022

View: 4409

[머신러닝 :: 기본개념] Feature Engineering 이란? – 블로그

Feature Engineering은 머신 러닝 알고리즘이 작동할 수 있도록 하는 Feature들을 만드는 과정으로 그 과정에서 데이터에 대한 도메인 지식을 사용 …

+ 여기에 표시

Source: blog.naver.com

Date Published: 8/8/2022

View: 5917

Top 5 머신러닝 Feature 뜻 5281 Votes This Answer

ㄱ) 특성(Feature). … Most searched keywords: Whether you are looking for 머신러닝 용어(Machine Learning Glossary) :: BioinformaticsAndMe 머신 …

+ 자세한 내용은 여기를 클릭하십시오

Source: chewathai27.com

Date Published: 9/4/2022

View: 3594

머신러닝(Machine Learning)이란? – 코딩의 시작, TCP School

기계학습이라고도 불리는 머신러닝은 컴퓨터를 인간처럼 학습시킴으로써 인간의 도움 … 를 벡터로 변환하는 작업을 특징추출(feature extraction)이라고 합니다.

+ 여기에 자세히 보기

Source: www.tcpschool.com

Date Published: 5/1/2021

View: 2553

01_머신러닝의 주요 용어 – 코딩하는 토끼

과거의 담배 가격, 이메일 안의 텍스트 단어 등 현재 알고 있어 예측에 사용되는 정보는 모두 Feature가 될 수 있습니다. Examples. 예(Example)는 입력된 …

+ 여기에 더 보기

Source: codingrabbit.tistory.com

Date Published: 9/17/2022

View: 811

딥러닝, 머신러닝의 차이점은? – 브런치

개요 머신러닝(Machine learning)과 딥러닝(Deep learning)은 화두다! … 그래프의 각 점은 하나의 데이터(record)를 뜻합니다.

+ 여기에 자세히 보기

Source: brunch.co.kr

Date Published: 11/2/2022

View: 8523

1.3 머신러닝 시스템의 종류

이를 특성 추출feature extraction이라고 합니다. TIP (지도 학습 알고리즘 같은) 머신러닝 알고리즘에 데이터를 주입하기 전에 차원 축소 알고리즘을 사용하여 훈련 …

+ 여기를 클릭

Source: tensorflow.blog

Date Published: 5/24/2021

View: 580

[머신러닝] Feature Selection – 분석벌레의 공부방

Feature Selection은 기계학습에서 굉장히 중요한 작업입니다. ​. 데이터가 굉장히 많고, 다양하게 존재한다면, Feature selection을 솔직히 말해서 …

+ 여기에 더 보기

Source: analysisbugs.tistory.com

Date Published: 7/27/2022

View: 7418

주제와 관련된 이미지 머신러닝 feature 뜻

주제와 관련된 더 많은 사진을 참조하십시오 [인공지능,머신러닝,딥러닝] (기초) Feature의 이해. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[인공지능,머신러닝,딥러닝] (기초) Feature의 이해
[인공지능,머신러닝,딥러닝] (기초) Feature의 이해

주제에 대한 기사 평가 머신러닝 feature 뜻

  • Author: 컴달인 – 컴퓨터 달인
  • Views: 조회수 309회
  • Likes: 좋아요 12개
  • Date Published: 2021. 12. 15.
  • Video Url link: https://www.youtube.com/watch?v=ShsfZ_50t_w

기계학습/feature engineering

Structured data Category Biology

feature engineering #

Feature Engineering은 머신러닝 알고리즘을 작동하기 위해 데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정이다. 다른 정의를 살펴보면, 머신러닝 모델을 위한 데이터 테이블의 컬럼(특징)을 생성하거나 선택하는 작업을 의미한다. Feature Engineering은 모델 성능에 미치는 영향이 크기 때문에 머신러닝 응용에 있어서 굉장히 중요한 단계이며, 전문성과 시간과 비용이 많이 드는 작업이다.(출처 위키피디아-Feature Engineering)

Feature가 중요한 이유 #

머신러닝은 입력 데이터의 함수이며 선형 또는 비선형의 형태를 가질 수 있는데, 우리는 훈련 데이터를 사용해서 이 함수를 학습하지만, 매번 학습이 잘되어 결과가 나타나지 않는다. 내가 가지고 있는 데이터가 방대하다해도 그 데이터를 모두 결과를 도출하는데 쓰면 정확히 나타날 듯하지만 오히려 결과를 잘못되게 도출하는 경우가 많다. 이는 통계분석에서 선형 함수의 독립변수가 많다고 해서 종속변수의 기대값이 정확도가 무조건 올라가지 않는 이유라고도 할 수 있다.

즉, 머신 러닝의 성능은 어떤 데이터를 입력하는지가 굉장히 의존적이라는 것을 알 수 있다. 가장 이상적인 입력 데이터는 부족하지도 과하지도 않은 정확한 정보만 포함될 때이다. 그렇기에 가장 적절 한 방법은 먼저 충분한 데이터를 먼저 모으고 어떤 feature가 유용한지 아닌지 확인하는 과정을 거칩니다. feature가 유용한지 아닌지 확인하는 과정을 특징 선택(feature selection) 또는 특징 추출(feature extraction) 이라고 한다. 해당 과정은 기존 입력을 토대로 새로운 입력 데이터를 만들기 때문에 보통 learning 과정 전에 실행된다.

그림1 Feature Extraction and Feature Selection 출처: https://www.researchgate.net/profile/Suresh-Merugu-2/publication/264258848/figure/fig1/AS:392422879186949@1470572313284/Showing-various-feature-extraction-and-feature-selection-methods-for-dimensionality.png

차원 감소는 feature extraction 다시 말해 특징 추출이라는 말로도 불린다. 만약 하나의 종속변수를 설명하는 독립변수 3개를 가지고 있을 때 우리는 3개의 feature모두가 필요한 것은 아니다. 왜냐면 몇몇의 feature는 다른 특징들의 조합으로 표현가능할 수도있고 어떤 feature는 특정 feature의 완벽히 상반될 수 있기 때문이다. 이것을 다른 말로 관찰 대상들을 잘 설명할 수 있는 잠재 공간(latent space)은 실제 관찰 공간(observation space)보다 작을 수 있다고 하고 이렇게 관찰 공간 위의 샘플들에 기반으로 잠재 공간을 파악하는 것을 차원 축소(dimensionality reduction technique) 라고 한다. 이렇게 데이터의 차원을 줄이는 데에는 특징 선택(feature selection)과 특징 추출 (feature extraction) 두 가지 방법이 있다.

특징 랭킹(Feature Ranking) 또는 특징 중요도(Feature Importance)라고도 한다. 특징 선택의 목적은 모든 특징의 부분 집합을 선택하거나, 불필요한 특징을 제거하여 간결한 특징 집합을 만드는 것이다. 이런 특징선택은 분석자가 사전의 배경 지식 을 이용해서 진행 할 수도 있지만, 자동 특징 선택 (automatic feature selection methods)을 사용할 수도 있다. 해당 방법들은 특징 중 몇 개를 없애보고 개선된다면 성능을 확인해보는 방법이며 이것은 대부분의 특징 선택 알고리즘의 기본 동작방식이다.

분류 모델 중 Decision Tree 같은 경우는 트리의 상단에 있을 수록 중요도가 높으므로 이를 반영하여 특징 별로 중요도를 매길수 있다. 회귀 모델의 경우 forward selection과 backward elimination같은 알고리즘을 통해 특징을 선택 가능하다.

특징선택 기법들은 Lasso (Tibshirani, 1996), Information Gain (Cover and Thomas, 2012), Relief (Kira and Rendell, 1992a), MRMR (Peng et al., 2005), Fisher Score (Duda et al., 2012), Laplacian Score (He et al., 2005), and SPEC (Zhao and Liu, 2007)들이 있다.

특징 추출이 특징 선택과 다른 점은 원본 특징 들의 조합으로 새로운 특징을 생성하는 것이다.고차원의 원본 feature 공간을 저차원의 새로운 feature 공간으로 투영시킨다. 새롭게 구성된 feature 공간은 보통은 원본 feature 공간의 선형 또는 비선형 결합이다.

가장 대표적인 알고리즘에 PCA(Principle Component Analysis)가 있다. PCA를 간단히 설명하면 각 변수(Feature)를 하나의 축으로 투영시켰을 때 분산이 가장 큰 축을 첫번째 주성분으로 선택하고 그 다음 큰 축을 두번째 주성분으로 선택하고 데이터를 선형 변환하여 다차원을 축소하는 방법이다.

PCA 외에 다른 알려진 기법은 Linear Discriminant Analysis (LDA) (Scholkopft and Mullert, 1999), Canonical Correlation Analysis (CCA) (Hardoon et al., 2004), Singular Value Decomposition (Golub and Van Loan, 2012), ISOMAP (Tenenbaum et al., 2000) and Locally Linear Embedding (LLE) (Roweis and Saul, 2000)가 있다.

참고 문헌 #

[머신러닝 :: 기본개념] Feature Engineering 이란?

아웃라이어는 데이터의 일반적인 추세를 따르지 않는 데이터 포인트들이다. 많은 알고리즘들은 아웃라이어에 대해서 민감한 경향이 있다. 그래서 이때는 어떻게 해야 하는가?

-> 만약 아웃라이어의 수가 많지 않다면, 완전히 제거 해버리면 된다. Threshold 를 세팅해서 우선 아웃라이어들을 확인하고 제거하면 된다. 만약에 하나의 열에서 많은 아웃라이어들이 발견되면, 그 열은 완전히 삭제해버리는 것이 좋고, 행에 대해서도 마찬가지이다.

-> 모든 것들을 Log 형태로 전환 시킬 수 있다. 왜냐하면 로그는 모든 것들을 같은 거리로 옮겨 오기 때문이다. (오직 수치적인 데이터에만 적용되지만 말이다)

-> Scatterplot, 히스토그램, 그리고 박스, Whisker plot 을 사용하여 극단적인 값들을 시각화 해보아라. 이것들 이외에도 엄청 많은 수의 기법들이 아웃라이어를 다루고 있으니 이것들도 확인해보길.

2. 누락된 값들을 다루는 것

Top 5 머신러닝 Feature 뜻 5281 Votes This Answer

Machine learning 1 – 2. 머신러닝이란?

Machine learning 1 – 2. 머신러닝이란?

Bioinformatics: [머신러닝] 머신러닝, 딥러닝 Feature/Attribute , Class 뜻. (feat. Feature selection 이 필요한 이유)

Article author: enjoybioinfo.blogspot.com

Reviews from users: 32568 Ratings

Ratings Top rated: 3.5

Lowest rated: 1

Summary of article content: Articles about Bioinformatics: [머신러닝] 머신러닝, 딥러닝 Feature/Attribute , Class 뜻. (feat. Feature selection 이 필요한 이유) 학습 및 예측을 할 데이터의 특징, 항목 들을 의미한다. (머신러닝에서, Feature와 Attribute는 같은 용어로 이용된다.) 예를들어서 사람의 정보를 … …

Most searched keywords: Whether you are looking for Bioinformatics: [머신러닝] 머신러닝, 딥러닝 Feature/Attribute , Class 뜻. (feat. Feature selection 이 필요한 이유) 학습 및 예측을 할 데이터의 특징, 항목 들을 의미한다. (머신러닝에서, Feature와 Attribute는 같은 용어로 이용된다.) 예를들어서 사람의 정보를 …

Table of Contents:

Friday June 19 2020

Feature는 머신러닝에 있어서 얼마나 중요할까- Feature selection

Labels

Menu

Love statistics programming and biology

Total Pageviews

Feel free to send any questions )

Pages

About Me

Search This Blog

Bioinformatics: [머신러닝] 머신러닝, 딥러닝 Feature/Attribute , Class 뜻. (feat. Feature selection 이 필요한 이유)

Read More

기계학습/feature engineering – 인코덤, 생물정보 전문위키

Article author: www.incodom.kr

Reviews from users: 22006 Ratings

Ratings Top rated: 3.3

Lowest rated: 1

Summary of article content: Articles about 기계학습/feature engineering – 인코덤, 생물정보 전문위키 Feature Engineering은 머신러닝 알고리즘을 작동하기 위해 데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정이다. …

Most searched keywords: Whether you are looking for 기계학습/feature engineering – 인코덤, 생물정보 전문위키 Feature Engineering은 머신러닝 알고리즘을 작동하기 위해 데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정이다. # feature engineering

Table of Contents:

개념 #

Feature가 중요한 이유 #

Dimension Reduction(차원 감소) #

Feature Selection(특징 선택) #

feature extraction(특징 추출) #

기계학습/feature engineering – 인코덤, 생물정보 전문위키

Read More

머신러닝 용어(Machine Learning Glossary) :: BioinformaticsAndMe

Article author: bioinformaticsandme.tistory.com

Reviews from users: 14880 Ratings

Ratings Top rated: 3.9

Lowest rated: 1

Summary of article content: Articles about 머신러닝 용어(Machine Learning Glossary) :: BioinformaticsAndMe 머신러닝 용어(Machine Learning Glossary) Start. BioinformaticsAndMe. 1. 특성(Feature)과 라벨(Label). ㄱ) 특성(Feature). …

Most searched keywords: Whether you are looking for 머신러닝 용어(Machine Learning Glossary) :: BioinformaticsAndMe 머신러닝 용어(Machine Learning Glossary) Start. BioinformaticsAndMe. 1. 특성(Feature)과 라벨(Label). ㄱ) 특성(Feature). 머신러닝 용어(Machine Learning Glossary) Start BioinformaticsAndMe 1. 특성(Feature)과 라벨(Label) ㄱ) 특성(Feature) -특성은 입력 변수 (단순 선형 회귀의 x 변수) -간단한 머신러닝 모델은 하나의 특..Training is everything.

Table of Contents:

머신러닝 용어(Machine Learning Glossary)

티스토리툴바

머신러닝 용어(Machine Learning Glossary) :: BioinformaticsAndMe

Read More

01_머신러닝의 주요 용어 :: 코딩하는 토끼

Article author: codingrabbit.tistory.com

Reviews from users: 35843 Ratings

Ratings Top rated: 3.7

Lowest rated: 1

Summary of article content: Articles about 01_머신러닝의 주요 용어 :: 코딩하는 토끼 과거의 담배 가격, 이메일 안의 텍스트 단어 등 현재 알고 있어 예측에 사용되는 정보는 모두 Feature가 될 수 있습니다. Examples. 예(Example)는 입력된 … …

Most searched keywords: Whether you are looking for 01_머신러닝의 주요 용어 :: 코딩하는 토끼 과거의 담배 가격, 이메일 안의 텍스트 단어 등 현재 알고 있어 예측에 사용되는 정보는 모두 Feature가 될 수 있습니다. Examples. 예(Example)는 입력된 … 머신러닝(Machine Learning) 이란? 머신러닝 시스템은 입력된 다양한 정보를 조합하여 새로운 정보를 적절히 예측하는 방법을 학습하는 것을 말합니다. 머신러닝에서의 주요 용어 Labels 라벨(Label)은 예측을 하..

Table of Contents:

01_머신러닝의 주요 용어

티스토리툴바

01_머신러닝의 주요 용어 :: 코딩하는 토끼

Read More

딥러닝, 머신러닝의 차이점은?

Article author: brunch.co.kr

Reviews from users: 42692 Ratings

Ratings Top rated: 3.6

Lowest rated: 1

Summary of article content: Articles about 딥러닝, 머신러닝의 차이점은? 개요 머신러닝(Machine learning)과 딥러닝(Deep learning)은 화두다! … 그래프의 각 점은 하나의 데이터(record)를 뜻합니다. …

Most searched keywords: Whether you are looking for 딥러닝, 머신러닝의 차이점은? 개요 머신러닝(Machine learning)과 딥러닝(Deep learning)은 화두다! … 그래프의 각 점은 하나의 데이터(record)를 뜻합니다. 딥러닝과 머신러닝은 이런 점이 다르다. | 개요 머신러닝(Machine learning)과 딥러닝(Deep learning)은 화두다! 언제부터인지 주위에 이 단어들을 쓰는 사람들을 굉장히 많이 보았을 것이고 들어봤을 것입니다. (그들의 차이점을 알건 모르건을 떠나서 말이죠!) 얼마나 많은 사람들이 관심을 가지고 있는지 알기 위해서, 키워드로 검색한 구글 트렌드 결과입니다. 만약 머신러닝과 딥러닝의

Table of Contents:

개요

1 머신러닝(Machine Learning)과 딥러닝(Deep Learning)이 무엇일까요

2 머신러닝과 딥러닝의 비교

3 머신러닝과 딥러닝은 현재 어디서 쓰이고 있나

딥러닝, 머신러닝의 차이점은?

Read More

코딩의 시작, TCP School

Article author: www.tcpschool.com

Reviews from users: 44953 Ratings

Ratings Top rated: 3.2

Lowest rated: 1

Summary of article content: Articles about 코딩의 시작, TCP School 기계학습이라고도 불리는 머신러닝은 컴퓨터를 인간처럼 학습시킴으로써 인간의 도움 … 를 벡터로 변환하는 작업을 특징추출(feature extraction)이라고 합니다. …

Most searched keywords: Whether you are looking for 코딩의 시작, TCP School 기계학습이라고도 불리는 머신러닝은 컴퓨터를 인간처럼 학습시킴으로써 인간의 도움 … 를 벡터로 변환하는 작업을 특징추출(feature extraction)이라고 합니다. 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

Table of Contents:

4) 머신러닝이란

4) 머신러닝이란

접속자집계

코딩의 시작, TCP School

Read More

1.3 머신러닝 시스템의 종류 | 텐서 플로우 블로그 (Tensor ≈ Blog)

Article author: tensorflow.blog

Reviews from users: 48938 Ratings

Ratings Top rated: 4.4

Lowest rated: 1

Summary of article content: Articles about 1.3 머신러닝 시스템의 종류 | 텐서 플로우 블로그 (Tensor ≈ Blog) 이를 특성 추출feature extraction이라고 합니다. TIP (지도 학습 알고리즘 같은) 머신러닝 알고리즘에 데이터를 주입하기 전에 차원 축소 알고리즘을 사용하여 훈련 … …

Most searched keywords: Whether you are looking for 1.3 머신러닝 시스템의 종류 | 텐서 플로우 블로그 (Tensor ≈ Blog) 이를 특성 추출feature extraction이라고 합니다. TIP (지도 학습 알고리즘 같은) 머신러닝 알고리즘에 데이터를 주입하기 전에 차원 축소 알고리즘을 사용하여 훈련 … 1.2 왜 머신러닝을 사용하는가? | 목차 | 1.4 머신러닝의 주요 도전 과제 머신러닝 시스템의 종류는 굉장히 많으므로 다음을 기준으로 넓은 범주에서 분류하면 도움이 됩니다. 사람의 감독 하에 훈련하는 것인지 그렇지 않은 것인지(지도, 비지도, 준지도, 강화 학습) 실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습과 배치 학습) 단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지…

Table of Contents:

머신러닝(Machine Learning) 딥러닝(Deep Learning) 그리고 텐서(Tensor) 또 파이썬(Python)

131 지도 학습과 비지도 학습

132 배치 학습과 온라인 학습

133 사례 기반 학습과 모델 기반 학습

1.3 머신러닝 시스템의 종류 | 텐서 플로우 블로그 (Tensor ≈ Blog)

Read More

[머신러닝] Feature Selection

Article author: analysisbugs.tistory.com

Reviews from users: 46198 Ratings

Ratings Top rated: 4.7

Lowest rated: 1

Summary of article content: Articles about [머신러닝] Feature Selection Feature Selection은 기계학습에서 굉장히 중요한 작업입니다. ​. 데이터가 굉장히 많고, 다양하게 존재한다면, Feature selection을 솔직히 말해서 … …

Most searched keywords: Whether you are looking for [머신러닝] Feature Selection Feature Selection은 기계학습에서 굉장히 중요한 작업입니다. ​. 데이터가 굉장히 많고, 다양하게 존재한다면, Feature selection을 솔직히 말해서 … 안녕하세요, 이번 포스팅에서는 Feature Selection에 대해서 배워보도록 하겠습니다. Feature Selection은 기계학습에서 굉장히 중요한 작업입니다. ​ 데이터가 굉장히 많고, 다양하게 존재한다면, Feature selec..

Table of Contents:

태그

‘데이터 다루기머신러닝 이론’ Related Articles

[머신러닝] Feature Selection

Read More

See more articles in the same category here: Chewathai27.com/to/blog.

기계학습/feature engineering

Structured data Category Biology feature engineering # Feature Engineering은 머신러닝 알고리즘을 작동하기 위해 데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정이다. 다른 정의를 살펴보면, 머신러닝 모델을 위한 데이터 테이블의 컬럼(특징)을 생성하거나 선택하는 작업을 의미한다. Feature Engineering은 모델 성능에 미치는 영향이 크기 때문에 머신러닝 응용에 있어서 굉장히 중요한 단계이며, 전문성과 시간과 비용이 많이 드는 작업이다.(출처 위키피디아-Feature Engineering) Feature가 중요한 이유 # 머신러닝은 입력 데이터의 함수이며 선형 또는 비선형의 형태를 가질 수 있는데, 우리는 훈련 데이터를 사용해서 이 함수를 학습하지만, 매번 학습이 잘되어 결과가 나타나지 않는다. 내가 가지고 있는 데이터가 방대하다해도 그 데이터를 모두 결과를 도출하는데 쓰면 정확히 나타날 듯하지만 오히려 결과를 잘못되게 도출하는 경우가 많다. 이는 통계분석에서 선형 함수의 독립변수가 많다고 해서 종속변수의 기대값이 정확도가 무조건 올라가지 않는 이유라고도 할 수 있다. 즉, 머신 러닝의 성능은 어떤 데이터를 입력하는지가 굉장히 의존적이라는 것을 알 수 있다. 가장 이상적인 입력 데이터는 부족하지도 과하지도 않은 정확한 정보만 포함될 때이다. 그렇기에 가장 적절 한 방법은 먼저 충분한 데이터를 먼저 모으고 어떤 feature가 유용한지 아닌지 확인하는 과정을 거칩니다. feature가 유용한지 아닌지 확인하는 과정을 특징 선택(feature selection) 또는 특징 추출(feature extraction) 이라고 한다. 해당 과정은 기존 입력을 토대로 새로운 입력 데이터를 만들기 때문에 보통 learning 과정 전에 실행된다. 그림1 Feature Extraction and Feature Selection 출처: https://www.researchgate.net/profile/Suresh-Merugu-2/publication/264258848/figure/fig1/AS:392422879186949@1470572313284/Showing-various-feature-extraction-and-feature-selection-methods-for-dimensionality.png 차원 감소는 feature extraction 다시 말해 특징 추출이라는 말로도 불린다. 만약 하나의 종속변수를 설명하는 독립변수 3개를 가지고 있을 때 우리는 3개의 feature모두가 필요한 것은 아니다. 왜냐면 몇몇의 feature는 다른 특징들의 조합으로 표현가능할 수도있고 어떤 feature는 특정 feature의 완벽히 상반될 수 있기 때문이다. 이것을 다른 말로 관찰 대상들을 잘 설명할 수 있는 잠재 공간(latent space)은 실제 관찰 공간(observation space)보다 작을 수 있다고 하고 이렇게 관찰 공간 위의 샘플들에 기반으로 잠재 공간을 파악하는 것을 차원 축소(dimensionality reduction technique) 라고 한다. 이렇게 데이터의 차원을 줄이는 데에는 특징 선택(feature selection)과 특징 추출 (feature extraction) 두 가지 방법이 있다. 특징 랭킹(Feature Ranking) 또는 특징 중요도(Feature Importance)라고도 한다. 특징 선택의 목적은 모든 특징의 부분 집합을 선택하거나, 불필요한 특징을 제거하여 간결한 특징 집합을 만드는 것이다. 이런 특징선택은 분석자가 사전의 배경 지식 을 이용해서 진행 할 수도 있지만, 자동 특징 선택 (automatic feature selection methods)을 사용할 수도 있다. 해당 방법들은 특징 중 몇 개를 없애보고 개선된다면 성능을 확인해보는 방법이며 이것은 대부분의 특징 선택 알고리즘의 기본 동작방식이다. 분류 모델 중 Decision Tree 같은 경우는 트리의 상단에 있을 수록 중요도가 높으므로 이를 반영하여 특징 별로 중요도를 매길수 있다. 회귀 모델의 경우 forward selection과 backward elimination같은 알고리즘을 통해 특징을 선택 가능하다. 특징선택 기법들은 Lasso (Tibshirani, 1996), Information Gain (Cover and Thomas, 2012), Relief (Kira and Rendell, 1992a), MRMR (Peng et al., 2005), Fisher Score (Duda et al., 2012), Laplacian Score (He et al., 2005), and SPEC (Zhao and Liu, 2007)들이 있다. 특징 추출이 특징 선택과 다른 점은 원본 특징 들의 조합으로 새로운 특징을 생성하는 것이다.고차원의 원본 feature 공간을 저차원의 새로운 feature 공간으로 투영시킨다. 새롭게 구성된 feature 공간은 보통은 원본 feature 공간의 선형 또는 비선형 결합이다. 가장 대표적인 알고리즘에 PCA(Principle Component Analysis)가 있다. PCA를 간단히 설명하면 각 변수(Feature)를 하나의 축으로 투영시켰을 때 분산이 가장 큰 축을 첫번째 주성분으로 선택하고 그 다음 큰 축을 두번째 주성분으로 선택하고 데이터를 선형 변환하여 다차원을 축소하는 방법이다. PCA 외에 다른 알려진 기법은 Linear Discriminant Analysis (LDA) (Scholkopft and Mullert, 1999), Canonical Correlation Analysis (CCA) (Hardoon et al., 2004), Singular Value Decomposition (Golub and Van Loan, 2012), ISOMAP (Tenenbaum et al., 2000) and Locally Linear Embedding (LLE) (Roweis and Saul, 2000)가 있다. 참고 문헌 #

01_머신러닝의 주요 용어

머신러닝(Machine Learning) 이란? 머신러닝 시스템은 입력된 다양한 정보를 조합하여 새로운 정보를 적절히 예측하는 방법을 학습하는 것을 말합니다. 머신러닝에서의 주요 용어 Labels 라벨(Label)은 예측을 하고자 하는 대상 항목을 의미합니다. (단순 선형 회귀에서 y 변수) 담배의 향후 가격, 사진에 표시되는 사물의 종류 등 무엇이든지 Label이 될 수 있습니다. Features 특징(Feature)은 입력되는 정보를 의미합니다. (단순 선형 회귀에서 x 변수) 과거의 담배 가격, 이메일 안의 텍스트 단어 등 현재 알고 있어 예측에 사용되는 정보는 모두 Feature가 될 수 있습니다. Examples 예(Example)는 입력된 데이터들(x)의 특정 객체입니다. x는 벡터라는 것을 나타내기 위해 굵게 표시합니다. Example은 두 개의 카테고리로 구분됩니다. Label이 있는 예: Labeled Examples: {features, label}: (x, y) Model을 학습시키기 위해 Label이 있는 Examples를 사용합니다. Model을 학습시키기 위해 Label이 있는 Examples를 사용합니다. Label이 없는 예: Unlabeled Examples: {features, label}: (x, ?) Label이 있는 예를 통해 Label이 없는 예의 라벨을 예측합니다. 위의 표는 집의 평균 가격을 예측하기 위해 방의 개수와 침실의 개수 등의 정보가 주어진 Data Set 입니다. 주어진 Data Set에서는 medianHouseValue가 우리가 예측하고자 하는 Label입니다. 이미 입력 정보로 Label 주어져있는 medianHouseValue 행의 Features를 통해 주어지지 않은 medianHouseValue를 예측합니다. Model 모델(Model)은 Feature과 Label의 관계를 정의합니다. 예를 들어 위의 Data Set에서 방의 개수(totalRooms)와 집의 평균 가격(medianHouseValue)는 긴밀한 연관이 있다고 생각할 수 있습니다. Model’s Life에서 Training(학습)과 추론(Inference)라는 두 단계를 알아보도록 하겠습니다. Training(학습): 모델을 만들거나 배우는 것을 의미합니다. 즉, Label이 있는 예를 모델에게 보여 주고, 모델이 Feature과 Label의 관계를 점차적으로 학습하도록 합니다. Inference(추론): 학습된 모델을 Label이 없는 예에 적용하는 것을 의미합니다. 즉, 학습된 모델을 통해 적절한 예측(y’)를 해냅니다. 예를 들어, 추론하는 동안 라벨이 없는 새로운 예로 medianHouseValue를 예측 할 수 있습니다. Regression(회귀) vs. Classification(분류) Regression Model(회귀 모델): 연속적인 값을 예측하는데 사용됩니다. 예를 들어 다음과 같은 질문에 대한 답을 얻는데 회귀 모델이 사용될 수 있습니다. (=> 수치로 표현할 수 있는 것을 예측) – 서울의 아파트 가격이 얼마인가요? – 유저가 유투브 광고를 클릭할 확률이 얼마인가요? (=> 수치로 표현할 수 있는 것을 예측) – 서울의 아파트 가격이 얼마인가요? – 유저가 유투브 광고를 클릭할 확률이 얼마인가요? Classification Model(분류 모델): 불연속적인 값을 예측하는데 사용됩니다. 예를 들어 다음과 같은 질문에 대한 답을 분류 모델은 예측할 수 있습니다. (=> 수치로 표현할 수 없는 것을 예측) – 주어진 이메일이 스팸 메일입니까? – 이 사진이 강아지 사진이 맞습니까?

딥러닝, 머신러닝의 차이점은?

개요 머신러닝(Machine learning)과 딥러닝(Deep learning)은 화두다! 언제부터인지 주위에 이 단어들을 쓰는 사람들을 굉장히 많이 보았을 것이고 들어봤을 것입니다. (그들의 차이점을 알건 모르건을 떠나서 말이죠!) 얼마나 많은 사람들이 관심을 가지고 있는지 알기 위해서, 키워드로 검색한 구글 트렌드 결과입니다. 만약 머신러닝과 딥러닝의 차이점이 궁금하다면, 비전문가의 말로 풀어쓴 이 글이 도움이 될 것입니다. 전문 용어들을 설명하였고, 두 가지의 차이점과 어떻게 활용할 수 있을지 설명하였습니다. “머신러닝(Machine Learning)과 딥러닝(Deep Learning)이 무엇일까요?” “머신러닝(Machine Learning)이 무엇일까요?” “딥러닝(Deep Learning)이 무엇일까요?” 1. 머신러닝(Machine Learning)과 딥러닝(Deep Learning)이 무엇일까요? 기초부터 시작해보겠습니다. 만일 머신러닝과 딥러닝의 차이점을 이미 알고계신다면 section 2로 넘어가시면 됩니다. 1.1 머신러닝(Machine Learning)이 무엇일까요? Tom Mitchell의 정의가 가장 많이 인용되고 있는데 저 또한 동의합니다. A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E. 이해가 잘 안되시나요? 더 간단한 예제로 가보겠습니다. 예제 1 – Machine Learning – 키(height)를 기반으로 몸무게(weight) 예측하기 예를 들어서 당신이 어떤 사람의 키를 기반으로 몸무게를 예측하는 시스템을 만든다고 해봅시다. 가장 첫번째로 당신이 해야할 일은 데이터를 수집(collect)하는 것입니다. 데이터가 이런 형태를 보인다고 가정해봅시다. 그래프의 각 점은 하나의 데이터(record)를 뜻합니다. 시작하기에 앞써 우리는 키를 기반으로 하여 몸무게를 예측하기 위해 선 하나를 그어볼 수 있겠습니다. 선은 이런 수식으로 표현될 수 있을 것입니다. 몸무게 (kg) = 키 (cm) – 100 이 공식은 우리의 예측에 도움을 줄 것입니다. 지금 이 공식만으로도 만족스럽긴 하지만 우리는 ‘성능’을 이해하고 향상하기 위해 노력해야 할 것입니다. 이 경우, 우리는 성능 향상을 위해 실제값(y)과 예측값(y-hat)의 차이를 줄여야 할 것입니다. 이것이 성능을 측정하는 방법입니다. 더 나아가, 데이터가 많을수록(즉, 경험이 많을수록), 더 나은 성능의 모형이 만들어질 것입니다. 또한 추가 변수(variables)를 넣어보면서(ex. 성별 등) 선의 위치도 조금씩 변화시켜 볼 수 있을 것입니다. 예제 2 – 폭풍 예측 시스템(Storm prediction System) 조금 복잡한 예제를 보겠습니다. 당신이 폭풍 예측 시스템을 만들고 싶다고 가정해봅시다. 당신은 과거에 있었던 storm에 관한 정보들과 이와 더불어 그 storm이 발생하기 3개월전 날씨 상태를 데이터로 보유하고 있습니다. 만일 손과 눈으로만 이 폭풍 예측 시스템을 만들려고 한다면 우리는 어떻게 해야할까요? 가장 첫번째로 해야 할 일은 모든 데이터를 샅샅이 뒤져 패턴을 찾는 것입니다. 목표는 어떤 조건이 폭풍을 일으키냐 겠지요? 그 결과 조건은 이러할 수 있습니다. ‘기온이 40도 이상으로 올라갈 때, 습도는 80~100사이를 유지함’ 그리고 이 조건을 그대로 우리 시스템에 적용할 것입니다. 또 다른 경우는 폭풍이 발생할지 안할지에 대해서 과거 데이터를 모두 훑어보고 폭풍이 일어날 가능성이 가장 높은 사유들을 꼽아볼 것입니다. 이렇게 시스템이 셋팅이 된다면 우리의 사유가 얼마나 잘 예측했는지 폭풍 발생 여부에 따라 확인할 것입니다. 그리고 이 작업을 반복적으로 진행하여, 더 나은 예측 성능을 위해 수정할 부분은 수정할 것입니다. 다시 우리가 이해하였던 1.1에서의 머신러닝 정의를 빗대어 생각해봅시다. 우리의 목표 ‘T’는 어떤 환경적 조건이 폭풍을 일으키는지 찾는 것이었고, 성능 ‘P’는 그러한 조건 속에서 폭풍 발생 여부에 대한 예측을 몇 번이나 맞추었는지에 대한 결과입니다. 그리고 경험 ‘E’는 그 시스템을 몇 번 반복을 하냐 입니다. 1.2 딥러닝(Deep Learning)이 무엇일까요? 딥러닝의 개념은 아주 새로운 것은 아닙니다. 2년전부터 이 이야기가 돌긴 하였지만 요새의 트렌드때문에 딥러닝은 더욱 뜨거운 관심을 받고 있습니다. 1.1에서 머신러닝의 정의를 살펴본 것처럼 딥러닝의 formal definition부터 알아보고 예제를 보여드리겠습니다. Deep learning is a particular kind of machine learning that achieves great power and flexibility by learning to represent the world as nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations computed in terms of less abstract ones. 헷갈리실 것이에요. 간단한 예제를 살펴보겠습니다. 예제 1 – 도형 구분 개념적으로 어떻게 진행되는지 간단한 예를 살펴보겠습니다. 어떻게 인간이 정사각형과 다른 도형을 인지하는지 알아봅시다. 가장 먼저 우리의 눈은 도형에 4개의 선들이 있는지 없는지를 확인합니다. (이 단계가 simple concept입니다.) 우리가 4개의 선을 찾는다면, 그 다음 스텝으로는 이 선들이 연결되어있는지,닫혀있는지(closed), 직각인지, 선의 길이가 동일한지 찾아볼 것입니다. (이 단계가 nested hierarchy of concepts입니다.) 다시 정리해보면, 우리는 복잡한 task(즉 정사각형을 구분하는 일)를 좀 덜 추상적인 task로 구분하였습니다. 딥러닝이 바로 이러한 개념으로 실행된다고 보면 됩니다. 예제 2 – Cat vs. Dog 사진을 보고 개인지 고양이인지 구분하는 것을 예로 들어봅시다. 만일 이 문제를 머신러닝으로 풀으려 한다면, 우리는 변수들(features)를 이렇게 정의할 것입니다. *참고. 머신러닝, 딥러닝에서는 input 변수를 feature라고 부릅니다. 저는 variable이라는 표현이 더 익숙했었던건지 새롭게 와닿았습니다. 양쪽다 맞는 표현이지만 feature라는 표현이 좀 더 머신러닝/딥러닝의 개념과 유사하게 느껴집니다. 동물이 수염이 있는지 없는지,귀가 있는지 없는지, 만일 있다면 솟아있는지 등을 확인할 것입니다. 정리하자면 우리는 시스템으로 feature 중 무엇이 특정 동물(이번 예제의 경우 개인지 고양이인지)을 더 잘 묘사하는지를 구분할 것입니다. 딥러닝에서는 여기서 한 스텝 더 나아갑니다. 딥러닝은 분류에 있어 중요한 feature를 자동적으로 골라냅니다. 머신러닝은 수동적으로 중요한 feature를 제공하는 반면에요. 딥러닝은 이렇게 움직이는 것입니다. – 어떤 정보(edge)가 개와 고양이를 가장 잘 구분할지를 찾는 것입니다. 2. 머신러닝과 딥러닝의 비교 1장에서는 머신러닝과 딥러닝의 대략적인 개요를 살펴보았습니다. 이제 우리는 특히나 중요한 몇 가지 포인트들과 두 방법론의 테크닉 차이를 비교해보겠습니다. 2.1 데이터 의존도(Data dependencies) 딥러닝과 전통적이 머신러닝에 있어 가장 큰 차이점은 데이터 양에 따른 성능입니다. 데이터 양이 작다면 딥러닝 알고리즘의 성능은 잘 나오지 않습니다. 왜냐하면 딥러닝 알고리즘은 어떤 과제를 이해하기 위해서 매우 큰 데이터가 필요하기 때문입니다. 그와 반면에, 똑같은 시나리오에서는 수작업이 들어간 전통적인 머신러닝 알고리즘이 더 우세합니다. 2.2 하드웨어 의존도(Hardware dependencies) 딥러닝 알고리즘은 고사양 machine이 많은 부분을 좌지우지합니다. 그와 반대로 머신러닝은 저사양 machine에서도 실행이 가능합니다. 이 이유는 무엇일까요? 딥러닝 알고리즘의 요구사항(requirements)는 GPU가 포함되기 때문입니다. GPU는 작업에서 숫자 계산을 담당합니다. 딥러닝 알고리즘은 본질적으로 많은 양의 행렬 곱셈(matrix multiplication)을 수행합니다. 이 작업은 GPU의 구축 목적과 같기 때문에, GPU를 사용하면 보다 효율적으로 최적화 할 수 있습니다. 2.3 Feature engineering Feature engineering은 데이터 복잡성을 줄이고 학습 알고리즘에서 패턴을 보다 잘 보이게 하는 과정입니다. 이 과정은 시간과 전문가가 필요하다는 관점에서 어렵고 비쌉니다. 머신러닝의 경우, 대부분의 적용된 변수(feature)는 전문가가 식별한 다음 정보 영역 및 데이터 유형별로 손으로 코딩해야 합니다. *참고. 쉽게 설명드리자면, A은행에서 신용등급을 평가하는 모형을 만든다고 가정해봅시다. A은행에서 가지고 있는 데이터를 활용해 머신러닝 알고리즘에 대입해 보았더니 대략 50개 정도의 변수가 유의미하다고 내뱉어졌습니다. 하지만 우리는 50개 변수 모두 활용할 수 없습니다. 비즈니스적 요건이나 금융당국의 규제에 따라 제거되어야 하는 변수들이 있을 수 있겠지요. 예를 들자면, 학력 정보(중졸/고졸/대졸 등)나 성별 정보입니다. 이런 경우가 전문가가 직접 확인하고 걸러내는 작업입니다. 예를 들어, 변수가 픽셀값, 모양, 텍스쳐, 위치, 방향이라고 가정해봅시다. 대부분의 머신러닝 알고리즘 성능은 변수가 어느 정도로 정확히 식별되고 추출되는가에 달려 있습니다. 딥러닝 알고리즘은 high-level features를 학습합니다. (고차원적인 변수로 이해하시면 될 것 같습니다.) 이 부분이 딥러닝이 머신러닝보다 좀 더 앞서 있다라는 특징입니다. 따라서 딥러닝은 모든 과제에서 새로운 변수 추출이라는 작업을 줄여줍니다. Convolutional Neural Network의 경우, 초기 layer에서는 이미지의 edge나 line같은 low-level features를 학습하고 그 다음 이미지의 high-level 표현을 학습합니다. (그림과 함께 보시면 이해에 도움이 되실 것입니다.) 2.4 문제 해결 접근법(Problem Solving approach) 전통적인 머신러닝 알고리즘으로 문제를 해결할 때에는 주로 문제를 여러 개의 파트로 쪼갠 후, 각각에 대한 답을 구하고 그 결과를 합치는 방법을 추천합니다. 딥러닝은 그와 대비되게 end-to-end방식으로 문제를 해결합니다. (end-to-end가 명확하지 않으니 다음 예제를 참고하십시오.) 예제를 들어보겠습니다. 만약 당신이 사물 인지 작업을 진행해야 한다고 가정해봅시다. 그리고 사물이 무엇인지 그리고 사진 어디에 해당 사물이 위치하고 있는지를 구별해내는 것이 과제입니다. 대게의 머신러닝 접근 방법은 문제를 1.사물 탐지/2.사물 인지 두 개의 step으로 나눌 것입니다. 먼저, ‘grabcut’과 같은 경계 탐지 알고리즘(bound box detection algorithm)을 사용하여 이미지를 훑어보고 가능한 모든 객체를 찾습니다. 그리고 발견된 모든 개체들 중에서 HOG가있는 SVM(Support Vector Machine)과 같은 객체 인식 알고리즘을 사용하여 관련 객체를 인식합니다. 반면, 딥러닝 접근방법은 end-to-end입니다. 예를들어 YOLO net(딥러닝 알고리즘 중 하나)에서 이미지를 전달하면 객체의 이름과 함께 위치가 표시됩니다. 2.5 실행 시간(Execution time) 딥러닝 알고리즘은 훈련(train) 시간이 굉장히 오래 걸립니다. 딥러닝 알고리즘에서는 다른 알고리즘 대비 변수가 너무 많기 때문입니다. 최신 딥러닝 알고리즘인 ResNet의경우 training이 약 2주 정도 걸립니다. 하지만 머신러닝은 수 초에서 수 시간으로 비교적 적은 시간이 걸립니다. test에서의 시간은 반대로 딥러닝 알고리즘에서 훨씬 적은 시간이 소요됩니다. 반면, k-nearest neighbors (머신러닝 알고리즘의 일종)의 경우 데이터 크기가 커질수록 테스트 시간이 길어집니다. 이것은 일부 머신러닝 알고리즘은 너무 작은 테스트 시간을 갖고 있기 때문에 모든 머신러닝 알고리즘이 그렇다고 볼 수 는 없습니다. * 모델링에는 train set과 test set이 존재합니다. 단어에서 얼추 유추하셨을 수 있겠지만, 우리가 일반적으로 실제값에 가까운 모델을 만들기 위해 활용되는 데이터셋은 train set이고, 이 train set으로부터 적합된 결과가 타당하지 검사할 때 쓰는 데이터가 test set입니다. 정리하자면, linear model(y = ax +b)에서 train set으로 input 변수 x에 해당하는 적절한 a,b 값을 찾았다면, test set의 input 변수 x값으로 최종 성능이 train set의 성능과 유사하게 산출되는지 검증한다고 보시면 됩니다. 2.6 해석력(Interpretability) 마지막으로 머신러닝과 딥러닝을 비교할 수 있는 또 다른 요인으로는 ‘해석력’을 들 수 있습니다. 이 요인이 딥러닝이 실제 실무에 쓰려 마음 먹으면 그 전에 10번 정도는 고민하는 이유입니다. 예제를 들어볼게요. 에세이의 점수를 자동으로 매기기 위해 딥러닝 알고리즘을 활용했다고 해봅시다. 성능은 거의 사람이 한 것과 유사할 정도로 뛰어납니다. 하지만, 아주 치명적인 문제가 있긴 합니다. 왜 이 점수가 부여됐는지는 알 수 없기 때문입니다. 사실 수학적으로 딥러닝의 어느 노드가 활성화되었는지를 알 수 있긴 하지만, 우리는 거기에 어떤 뉴런이 만들어 졌는지, 그리고 이들 뉴런 레이어가 전제적으로는 무엇을 하고 있는지 알지 못합니다. 그래서 우리는 결과를 해석하지 못합니다. 하지만, 의사결정나무(decesion tree)와 같은 머신러닝 알고리즘은 왜 선택됐는지 명확한 rule이 제공되기 때문에 해석하기가 특히 쉽습니다. 따라서 ‘해석’이 필요한 산업에서는 의사결정나무나 선형회귀모형, 로지스틱회귀모형이 활용됩니다. 반면에 의사 결정 트리와 같은 기계 학습 알고리즘은 왜 선택한 알고리즘을 선택했는지에 대한 명확한 규칙을 제공하므로 배후의 추론을 해석하기가 특히 쉽습니다. 따라서 결정 트리 및 선형 / 로지스틱 회귀와 같은 알고리즘은 주로 업계에서 해석 가능성을 위해 사용됩니다. 3. 머신러닝과 딥러닝은 현재 어디서 쓰이고 있나? 컴퓨터 비전: 자동차 번호판 인식, 안면인식 등 위의 그림은 머신러닝이 활용되는 사업들을 정리해놓은 자료입니다. 기계 지능이라는 더 광범위한 주제 기반이긴 하지만요. 머신러닝/딥러닝 활용의 대표적인 회사가 구글입니다. 위의 그림을 보면 구글이 얼마나 다양한 상품에 머신러닝을 활용하는지 알 수 있을 것입니다. 이렇게 머신러닝과 딥러닝의 활용 영역은 무수히 많습니다. 당신이 할 일은 결국 적시의 기회를 찾는 것이죠! 본 글은 https://www.analyticsvidhya.com/blog/2017/04/comparison-between-deep-learning-machine-learning/를 번역+약간의 의역을 하였습니다. 중간중간 저의 개별적인 설명은 파란색 글씨로 써두었습니다.

So you have finished reading the 머신러닝 feature 뜻 topic article, if you find this article useful, please share it. Thank you very much. See more: 머신러닝 레이블이란, 머신러닝 feature extraction, 머신러닝 특징 추출, 머신러닝 변수 선택법, 머신러닝 inference, 딥러닝 레이블, 머신러닝 용어집, Feature extraction 종류

코딩교육 티씨피스쿨

머신러닝이란?

머신러닝(Machine Learning)이란?

과거에는 인공지능을 개발할 때 해당 분야의 전문가들이 만든 많은 양의 샘플들을 데이터베이스화하여 자료들을 일일이 수작업으로 컴퓨터에 직접 등록하는 방법을 사용했습니다.

하지만 이러한 방법은 대부분의 작업이 사람의 손을 거쳐야 하므로 필연적으로 많은 노력과 비용이 발생하게 됩니다.

또한, 시대가 발전함에 따라 사람조차 명확하게 구분할 수 없는 지식(no explicit knowledge)을 구현해야 하거나, 사람이 일일이 구현하기에는 너무 많은 양의 규칙들이 필요한 경우가 생겨나기 시작합니다.

이러한 경우에 사용할 수 있도록 고안된 방법이 바로 머신러닝(Machine Learning)입니다.

기계학습이라고도 불리는 머신러닝은 컴퓨터를 인간처럼 학습시킴으로써 인간의 도움 없이 컴퓨터가 스스로 새로운 규칙을 생성할 수 있지 않을까 하는 발상으로부터 시작되었습니다.

머신러닝의 동작 방식

머신러닝이란 컴퓨터가 스스로 학습할 수 있도록 도와주는 알고리즘이나 기술을 개발하는 분야를 가리킵니다.

이러한 머신러닝은 일반적으로 다음과 같은 순서대로 동작합니다.

1. 일정량 이상의 샘플 데이터를 입력한다.

2. 입력받은 데이터를 분석하여 일정한 패턴과 규칙을 찾아낸다.

3. 찾아낸 패턴과 규칙을 가지고 의사결정 및 예측 등을 수행한다.

따라서 머신러닝을 한마디로 정의하자면 수많은 데이터를 학습하여 일정한 패턴을 찾아내고 그것을 활용하는 행위라고 할 수 있습니다.

벡터(vector)와 특징량

위와 같은 그림을 보여주며 네모 칸에 들어갈 알맞은 모양을 말해보라고 하면 대부분의 사람들이 별모양이라고 답할 것입니다.

이는 사람이 가지고 있는 지각능력을 사용하여 각 모양이 뭉쳐 있는 위치관계를 무의식적으로 파악했기 때문입니다.

하지만 컴퓨터는 지각능력을 가지고 있지 않으므로, 이러한 위치관계를 그냥은 인식하지 못합니다.

이때 활용되는 것이 바로 벡터(vector)입니다.

벡터란 공간에서 크기와 방향을 가지는 것을 의미하며, 위의 그림에서는 별모양과 원모양의 점들이 바로 하나하나의 벡터가 되는 것입니다.

또한, 특정 벡터들이 모여 있는 것을 특징량이라고 부르며, 머신러닝에서는 바로 이 특징량을 바탕으로 벡터들을 서로 구분하게 됩니다.

앞선 그림에 특징량을 바탕으로 이처럼 구분선을 하나 그으면, 비로소 컴퓨터도 두 특징량을 쉽게 구분할 수 있게 됩니다.

머신러닝은 계산을 통해 이러한 구분선을 찾아내는 행위라고도 볼 수 있습니다.

특징추출(feature extraction)

머신러닝에서 컴퓨터가 스스로 학습하려면, 즉 컴퓨터가 입력받은 데이터를 분석하여 일정한 패턴이나 규칙을 찾아내려면 사람이 인지하는 데이터를 컴퓨터가 인지할 수 있는 데이터로 변환해 주어야 합니다. 이때 데이터별로 어떤 특징을 가지고 있는지를 찾아내고, 그것을 토대로 데이터를 벡터로 변환하는 작업을 특징추출(feature extraction)이라고 합니다.

일반적으로 사용되는 머신러닝을 위한 학습 기계는 범용적인 목적을 위해 제작된 것이므로, 여러분이 원하는 특징을 자동으로 추출해주는 기능은 가지고 있지 않습니다. 따라서 여러 특징 중에서 어떤 특징을 추출할지를 바로 개발자가 결정해야하며, 이것이 바로 머신러닝 개발의 핵심이라고 볼 수 있습니다.

왜냐하면 적절한 특징을 선택해야만 더욱 효과적인 머신러닝을 수행할 수 있기 때문입니다.

예를 들어, 학습 기계에 장미꽃을 학습시킨다고 하면, 우선 어떤 특징을 사용할 것인지를 결정해야 하며 그것을 벡터로 변환해야 합니다.

이때 특징으로 장미꽃의 색상, 꽃잎 수, 모양 등을 사용할 수 있을 것입니다.

회귀 분석(regression analysis)

앞서 특징량을 바탕으로 구분선을 찾아내는 것을 머신러닝이라고 정의하였는데, 이러한 구분선을 찾아내는 방법 중 가장 널리 사용되는 방식이 바로 회귀 분석(regression analysis)입니다.

통계학에서 주로 사용되는 회귀 분석(regression analysis)이란 여러 자료들 간의 관계성을 수학적으로 추정하고 분석하는 데이터 분석 방법 중 하나입니다. 이러한 회귀 분석은 주로 시간에 따라 변화하는 데이터나 가설, 인과 관계 등의 통계적 예측에 사용됩니다.

회귀 분석에서 종속변수란 우리가 알고 싶어 하는 결괏값을 가리키며, 독립변수란 이러한 결괏값에 영향을 주는 입력값을 가리킵니다.

그리고 하나의 종속변수와 하나의 독립변수 사이의 관계를 분석할 경우를 단순 회귀 분석(simple regression analysis)이라고 구분하여 부릅니다.

단순 회귀 분석에서 하나의 방정식은 독립변수와 종속변수의 상관관계를 보여주는 분포구성을 통해 중심을 지나가는 하나의 선으로 표시할 수 있으며, 바로 이것을 이용하여 머신러닝에서는 특징량에 따른 구분선을 찾아낼 수 있게 되는 것입니다.

연습문제

01_머신러닝의 주요 용어

머신러닝(Machine Learning) 이란?

머신러닝 시스템은 입력된 다양한 정보를 조합하여 새로운 정보를 적절히 예측하는 방법을 학습하는 것을 말합니다.

머신러닝에서의 주요 용어

Labels

라벨(Label)은 예측을 하고자 하는 대상 항목을 의미합니다. (단순 선형 회귀에서 y 변수)

담배의 향후 가격, 사진에 표시되는 사물의 종류 등 무엇이든지 Label이 될 수 있습니다.

Features

특징(Feature)은 입력되는 정보를 의미합니다. (단순 선형 회귀에서 x 변수)

과거의 담배 가격, 이메일 안의 텍스트 단어 등 현재 알고 있어 예측에 사용되는 정보는 모두 Feature가 될 수 있습니다.

Examples

예(Example)는 입력된 데이터들(x)의 특정 객체입니다. x는 벡터라는 것을 나타내기 위해 굵게 표시합니다. Example은 두 개의 카테고리로 구분됩니다.

Label이 있는 예: Labeled Examples: {features, label}: (x, y)

Model을 학습시키기 위해 Label이 있는 Examples를 사용합니다.

Model을 학습시키기 위해 Label이 있는 Examples를 사용합니다. Label이 없는 예: Unlabeled Examples: {features, label}: (x, ?)

Label이 있는 예를 통해 Label이 없는 예의 라벨을 예측합니다.

위의 표는 집의 평균 가격을 예측하기 위해 방의 개수와 침실의 개수 등의 정보가 주어진 Data Set 입니다. 주어진 Data Set에서는 medianHouseValue가 우리가 예측하고자 하는 Label입니다. 이미 입력 정보로 Label 주어져있는 medianHouseValue 행의 Features를 통해 주어지지 않은 medianHouseValue를 예측합니다.

Model

모델(Model)은 Feature과 Label의 관계를 정의합니다. 예를 들어 위의 Data Set에서 방의 개수(totalRooms)와 집의 평균 가격(medianHouseValue)는 긴밀한 연관이 있다고 생각할 수 있습니다.

Model’s Life에서 Training(학습)과 추론(Inference)라는 두 단계를 알아보도록 하겠습니다.

Training(학습): 모델을 만들거나 배우는 것을 의미합니다. 즉, Label이 있는 예를 모델에게 보여 주고, 모델이 Feature과 Label의 관계를 점차적으로 학습하도록 합니다.

Inference(추론): 학습된 모델을 Label이 없는 예에 적용하는 것을 의미합니다. 즉, 학습된 모델을 통해 적절한 예측(y’)를 해냅니다. 예를 들어, 추론하는 동안 라벨이 없는 새로운 예로 medianHouseValue를 예측 할 수 있습니다.

Regression(회귀) vs. Classification(분류)

Regression Model(회귀 모델): 연속적인 값을 예측하는데 사용됩니다. 예를 들어 다음과 같은 질문에 대한 답을 얻는데 회귀 모델이 사용될 수 있습니다.

(=> 수치로 표현할 수 있는 것을 예측)

– 서울의 아파트 가격이 얼마인가요?

– 유저가 유투브 광고를 클릭할 확률이 얼마인가요?

(=> 수치로 표현할 수 있는 것을 예측) – 서울의 아파트 가격이 얼마인가요? – 유저가 유투브 광고를 클릭할 확률이 얼마인가요? Classification Model(분류 모델): 불연속적인 값을 예측하는데 사용됩니다. 예를 들어 다음과 같은 질문에 대한 답을 분류 모델은 예측할 수 있습니다.

(=> 수치로 표현할 수 없는 것을 예측)

– 주어진 이메일이 스팸 메일입니까?

– 이 사진이 강아지 사진이 맞습니까?

딥러닝, 머신러닝의 차이점은?

개요

머신러닝(Machine learning)과 딥러닝(Deep learning)은 화두다! 언제부터인지 주위에 이 단어들을 쓰는 사람들을 굉장히 많이 보았을 것이고 들어봤을 것입니다. (그들의 차이점을 알건 모르건을 떠나서 말이죠!) 얼마나 많은 사람들이 관심을 가지고 있는지 알기 위해서, 키워드로 검색한 구글 트렌드 결과입니다.

만약 머신러닝과 딥러닝의 차이점이 궁금하다면, 비전문가의 말로 풀어쓴 이 글이 도움이 될 것입니다. 전문 용어들을 설명하였고, 두 가지의 차이점과 어떻게 활용할 수 있을지 설명하였습니다.

“머신러닝(Machine Learning)과 딥러닝(Deep Learning)이 무엇일까요?”

“머신러닝(Machine Learning)이 무엇일까요?”

“딥러닝(Deep Learning)이 무엇일까요?”

1. 머신러닝(Machine Learning)과 딥러닝(Deep Learning)이 무엇일까요?

기초부터 시작해보겠습니다. 만일 머신러닝과 딥러닝의 차이점을 이미 알고계신다면 section 2로 넘어가시면 됩니다.

1.1 머신러닝(Machine Learning)이 무엇일까요?

Tom Mitchell의 정의가 가장 많이 인용되고 있는데 저 또한 동의합니다.

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.

이해가 잘 안되시나요? 더 간단한 예제로 가보겠습니다.

예제 1 – Machine Learning – 키(height)를 기반으로 몸무게(weight) 예측하기

예를 들어서 당신이 어떤 사람의 키를 기반으로 몸무게를 예측하는 시스템을 만든다고 해봅시다. 가장 첫번째로 당신이 해야할 일은 데이터를 수집(collect)하는 것입니다. 데이터가 이런 형태를 보인다고 가정해봅시다.

그래프의 각 점은 하나의 데이터(record)를 뜻합니다. 시작하기에 앞써 우리는 키를 기반으로 하여 몸무게를 예측하기 위해 선 하나를 그어볼 수 있겠습니다. 선은 이런 수식으로 표현될 수 있을 것입니다.

몸무게 (kg) = 키 (cm) – 100

이 공식은 우리의 예측에 도움을 줄 것입니다. 지금 이 공식만으로도 만족스럽긴 하지만 우리는 ‘성능’을 이해하고 향상하기 위해 노력해야 할 것입니다. 이 경우, 우리는 성능 향상을 위해 실제값(y)과 예측값(y-hat)의 차이를 줄여야 할 것입니다. 이것이 성능을 측정하는 방법입니다.

더 나아가, 데이터가 많을수록(즉, 경험이 많을수록), 더 나은 성능의 모형이 만들어질 것입니다. 또한 추가 변수(variables)를 넣어보면서(ex. 성별 등) 선의 위치도 조금씩 변화시켜 볼 수 있을 것입니다.

예제 2 – 폭풍 예측 시스템(Storm prediction System)

조금 복잡한 예제를 보겠습니다. 당신이 폭풍 예측 시스템을 만들고 싶다고 가정해봅시다. 당신은 과거에 있었던 storm에 관한 정보들과 이와 더불어 그 storm이 발생하기 3개월전 날씨 상태를 데이터로 보유하고 있습니다.

만일 손과 눈으로만 이 폭풍 예측 시스템을 만들려고 한다면 우리는 어떻게 해야할까요?

가장 첫번째로 해야 할 일은 모든 데이터를 샅샅이 뒤져 패턴을 찾는 것입니다. 목표는 어떤 조건이 폭풍을 일으키냐 겠지요?

그 결과 조건은 이러할 수 있습니다. ‘기온이 40도 이상으로 올라갈 때, 습도는 80~100사이를 유지함’

그리고 이 조건을 그대로 우리 시스템에 적용할 것입니다.

또 다른 경우는 폭풍이 발생할지 안할지에 대해서 과거 데이터를 모두 훑어보고 폭풍이 일어날 가능성이 가장 높은 사유들을 꼽아볼 것입니다. 이렇게 시스템이 셋팅이 된다면 우리의 사유가 얼마나 잘 예측했는지 폭풍 발생 여부에 따라 확인할 것입니다. 그리고 이 작업을 반복적으로 진행하여, 더 나은 예측 성능을 위해 수정할 부분은 수정할 것입니다.

다시 우리가 이해하였던 1.1에서의 머신러닝 정의를 빗대어 생각해봅시다.

우리의 목표 ‘T’는 어떤 환경적 조건이 폭풍을 일으키는지 찾는 것이었고, 성능 ‘P’는 그러한 조건 속에서 폭풍 발생 여부에 대한 예측을 몇 번이나 맞추었는지에 대한 결과입니다. 그리고 경험 ‘E’는 그 시스템을 몇 번 반복을 하냐 입니다.

1.2 딥러닝(Deep Learning)이 무엇일까요?

딥러닝의 개념은 아주 새로운 것은 아닙니다. 2년전부터 이 이야기가 돌긴 하였지만 요새의 트렌드때문에 딥러닝은 더욱 뜨거운 관심을 받고 있습니다. 1.1에서 머신러닝의 정의를 살펴본 것처럼 딥러닝의 formal definition부터 알아보고 예제를 보여드리겠습니다.

Deep learning is a particular kind of machine learning that achieves great power and flexibility by learning to represent the world as nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations computed in terms of less abstract ones.

헷갈리실 것이에요. 간단한 예제를 살펴보겠습니다.

예제 1 – 도형 구분

개념적으로 어떻게 진행되는지 간단한 예를 살펴보겠습니다. 어떻게 인간이 정사각형과 다른 도형을 인지하는지 알아봅시다.

가장 먼저 우리의 눈은 도형에 4개의 선들이 있는지 없는지를 확인합니다. (이 단계가 simple concept입니다.) 우리가 4개의 선을 찾는다면, 그 다음 스텝으로는 이 선들이 연결되어있는지,닫혀있는지(closed), 직각인지, 선의 길이가 동일한지 찾아볼 것입니다. (이 단계가 nested hierarchy of concepts입니다.)

다시 정리해보면, 우리는 복잡한 task(즉 정사각형을 구분하는 일)를 좀 덜 추상적인 task로 구분하였습니다. 딥러닝이 바로 이러한 개념으로 실행된다고 보면 됩니다.

예제 2 – Cat vs. Dog

사진을 보고 개인지 고양이인지 구분하는 것을 예로 들어봅시다.

만일 이 문제를 머신러닝으로 풀으려 한다면, 우리는 변수들(features)를 이렇게 정의할 것입니다.

*참고. 머신러닝, 딥러닝에서는 input 변수를 feature라고 부릅니다. 저는 variable이라는 표현이 더 익숙했었던건지 새롭게 와닿았습니다. 양쪽다 맞는 표현이지만 feature라는 표현이 좀 더 머신러닝/딥러닝의 개념과 유사하게 느껴집니다.

동물이 수염이 있는지 없는지,귀가 있는지 없는지, 만일 있다면 솟아있는지 등을 확인할 것입니다. 정리하자면 우리는 시스템으로 feature 중 무엇이 특정 동물(이번 예제의 경우 개인지 고양이인지)을 더 잘 묘사하는지를 구분할 것입니다.

딥러닝에서는 여기서 한 스텝 더 나아갑니다. 딥러닝은 분류에 있어 중요한 feature를 자동적으로 골라냅니다. 머신러닝은 수동적으로 중요한 feature를 제공하는 반면에요.

딥러닝은 이렇게 움직이는 것입니다. – 어떤 정보(edge)가 개와 고양이를 가장 잘 구분할지를 찾는 것입니다.

2. 머신러닝과 딥러닝의 비교

1장에서는 머신러닝과 딥러닝의 대략적인 개요를 살펴보았습니다. 이제 우리는 특히나 중요한 몇 가지 포인트들과 두 방법론의 테크닉 차이를 비교해보겠습니다.

2.1 데이터 의존도(Data dependencies)

딥러닝과 전통적이 머신러닝에 있어 가장 큰 차이점은 데이터 양에 따른 성능입니다. 데이터 양이 작다면 딥러닝 알고리즘의 성능은 잘 나오지 않습니다. 왜냐하면 딥러닝 알고리즘은 어떤 과제를 이해하기 위해서 매우 큰 데이터가 필요하기 때문입니다. 그와 반면에, 똑같은 시나리오에서는 수작업이 들어간 전통적인 머신러닝 알고리즘이 더 우세합니다.

2.2 하드웨어 의존도(Hardware dependencies)

딥러닝 알고리즘은 고사양 machine이 많은 부분을 좌지우지합니다. 그와 반대로 머신러닝은 저사양 machine에서도 실행이 가능합니다. 이 이유는 무엇일까요? 딥러닝 알고리즘의 요구사항(requirements)는 GPU가 포함되기 때문입니다. GPU는 작업에서 숫자 계산을 담당합니다. 딥러닝 알고리즘은 본질적으로 많은 양의 행렬 곱셈(matrix multiplication)을 수행합니다. 이 작업은 GPU의 구축 목적과 같기 때문에, GPU를 사용하면 보다 효율적으로 최적화 할 수 있습니다.

2.3 Feature engineering

Feature engineering은 데이터 복잡성을 줄이고 학습 알고리즘에서 패턴을 보다 잘 보이게 하는 과정입니다. 이 과정은 시간과 전문가가 필요하다는 관점에서 어렵고 비쌉니다. 머신러닝의 경우, 대부분의 적용된 변수(feature)는 전문가가 식별한 다음 정보 영역 및 데이터 유형별로 손으로 코딩해야 합니다.

*참고. 쉽게 설명드리자면, A은행에서 신용등급을 평가하는 모형을 만든다고 가정해봅시다. A은행에서 가지고 있는 데이터를 활용해 머신러닝 알고리즘에 대입해 보았더니 대략 50개 정도의 변수가 유의미하다고 내뱉어졌습니다. 하지만 우리는 50개 변수 모두 활용할 수 없습니다. 비즈니스적 요건이나 금융당국의 규제에 따라 제거되어야 하는 변수들이 있을 수 있겠지요. 예를 들자면, 학력 정보(중졸/고졸/대졸 등)나 성별 정보입니다. 이런 경우가 전문가가 직접 확인하고 걸러내는 작업입니다.

예를 들어, 변수가 픽셀값, 모양, 텍스쳐, 위치, 방향이라고 가정해봅시다. 대부분의 머신러닝 알고리즘 성능은 변수가 어느 정도로 정확히 식별되고 추출되는가에 달려 있습니다.

딥러닝 알고리즘은 high-level features를 학습합니다. (고차원적인 변수로 이해하시면 될 것 같습니다.) 이 부분이 딥러닝이 머신러닝보다 좀 더 앞서 있다라는 특징입니다. 따라서 딥러닝은 모든 과제에서 새로운 변수 추출이라는 작업을 줄여줍니다. Convolutional Neural Network의 경우, 초기 layer에서는 이미지의 edge나 line같은 low-level features를 학습하고 그 다음 이미지의 high-level 표현을 학습합니다. (그림과 함께 보시면 이해에 도움이 되실 것입니다.)

2.4 문제 해결 접근법(Problem Solving approach)

전통적인 머신러닝 알고리즘으로 문제를 해결할 때에는 주로 문제를 여러 개의 파트로 쪼갠 후, 각각에 대한 답을 구하고 그 결과를 합치는 방법을 추천합니다. 딥러닝은 그와 대비되게 end-to-end방식으로 문제를 해결합니다. (end-to-end가 명확하지 않으니 다음 예제를 참고하십시오.)

예제를 들어보겠습니다.

만약 당신이 사물 인지 작업을 진행해야 한다고 가정해봅시다. 그리고 사물이 무엇인지 그리고 사진 어디에 해당 사물이 위치하고 있는지를 구별해내는 것이 과제입니다.

대게의 머신러닝 접근 방법은 문제를 1.사물 탐지/2.사물 인지 두 개의 step으로 나눌 것입니다. 먼저, ‘grabcut’과 같은 경계 탐지 알고리즘(bound box detection algorithm)을 사용하여 이미지를 훑어보고 가능한 모든 객체를 찾습니다. 그리고 발견된 모든 개체들 중에서 HOG가있는 SVM(Support Vector Machine)과 같은 객체 인식 알고리즘을 사용하여 관련 객체를 인식합니다.

반면, 딥러닝 접근방법은 end-to-end입니다. 예를들어 YOLO net(딥러닝 알고리즘 중 하나)에서 이미지를 전달하면 객체의 이름과 함께 위치가 표시됩니다.

2.5 실행 시간(Execution time)

딥러닝 알고리즘은 훈련(train) 시간이 굉장히 오래 걸립니다. 딥러닝 알고리즘에서는 다른 알고리즘 대비 변수가 너무 많기 때문입니다. 최신 딥러닝 알고리즘인 ResNet의경우 training이 약 2주 정도 걸립니다. 하지만 머신러닝은 수 초에서 수 시간으로 비교적 적은 시간이 걸립니다.

test에서의 시간은 반대로 딥러닝 알고리즘에서 훨씬 적은 시간이 소요됩니다.

반면, k-nearest neighbors (머신러닝 알고리즘의 일종)의 경우 데이터 크기가 커질수록 테스트 시간이 길어집니다. 이것은 일부 머신러닝 알고리즘은 너무 작은 테스트 시간을 갖고 있기 때문에 모든 머신러닝 알고리즘이 그렇다고 볼 수 는 없습니다.

* 모델링에는 train set과 test set이 존재합니다. 단어에서 얼추 유추하셨을 수 있겠지만, 우리가 일반적으로 실제값에 가까운 모델을 만들기 위해 활용되는 데이터셋은 train set이고, 이 train set으로부터 적합된 결과가 타당하지 검사할 때 쓰는 데이터가 test set입니다. 정리하자면, linear model(y = ax +b)에서 train set으로 input 변수 x에 해당하는 적절한 a,b 값을 찾았다면, test set의 input 변수 x값으로 최종 성능이 train set의 성능과 유사하게 산출되는지 검증한다고 보시면 됩니다.

2.6 해석력(Interpretability)

마지막으로 머신러닝과 딥러닝을 비교할 수 있는 또 다른 요인으로는 ‘해석력’을 들 수 있습니다. 이 요인이 딥러닝이 실제 실무에 쓰려 마음 먹으면 그 전에 10번 정도는 고민하는 이유입니다.

예제를 들어볼게요. 에세이의 점수를 자동으로 매기기 위해 딥러닝 알고리즘을 활용했다고 해봅시다. 성능은 거의 사람이 한 것과 유사할 정도로 뛰어납니다. 하지만, 아주 치명적인 문제가 있긴 합니다. 왜 이 점수가 부여됐는지는 알 수 없기 때문입니다. 사실 수학적으로 딥러닝의 어느 노드가 활성화되었는지를 알 수 있긴 하지만, 우리는 거기에 어떤 뉴런이 만들어 졌는지, 그리고 이들 뉴런 레이어가 전제적으로는 무엇을 하고 있는지 알지 못합니다. 그래서 우리는 결과를 해석하지 못합니다.

하지만, 의사결정나무(decesion tree)와 같은 머신러닝 알고리즘은 왜 선택됐는지 명확한 rule이 제공되기 때문에 해석하기가 특히 쉽습니다. 따라서 ‘해석’이 필요한 산업에서는 의사결정나무나 선형회귀모형, 로지스틱회귀모형이 활용됩니다.

반면에 의사 결정 트리와 같은 기계 학습 알고리즘은 왜 선택한 알고리즘을 선택했는지에 대한 명확한 규칙을 제공하므로 배후의 추론을 해석하기가 특히 쉽습니다. 따라서 결정 트리 및 선형 / 로지스틱 회귀와 같은 알고리즘은 주로 업계에서 해석 가능성을 위해 사용됩니다.

3. 머신러닝과 딥러닝은 현재 어디서 쓰이고 있나?

컴퓨터 비전: 자동차 번호판 인식, 안면인식 등

위의 그림은 머신러닝이 활용되는 사업들을 정리해놓은 자료입니다. 기계 지능이라는 더 광범위한 주제 기반이긴 하지만요.

머신러닝/딥러닝 활용의 대표적인 회사가 구글입니다.

위의 그림을 보면 구글이 얼마나 다양한 상품에 머신러닝을 활용하는지 알 수 있을 것입니다. 이렇게 머신러닝과 딥러닝의 활용 영역은 무수히 많습니다. 당신이 할 일은 결국 적시의 기회를 찾는 것이죠!

본 글은 https://www.analyticsvidhya.com/blog/2017/04/comparison-between-deep-learning-machine-learning/를 번역+약간의 의역을 하였습니다. 중간중간 저의 개별적인 설명은 파란색 글씨로 써두었습니다.

텐서 플로우 블로그 (Tensor ≈ Blog)

1.2 왜 머신러닝을 사용하는가? | 목차 | 1.4 머신러닝의 주요 도전 과제

머신러닝 시스템의 종류는 굉장히 많으므로 다음을 기준으로 넓은 범주에서 분류하면 도움이 됩니다.

사람의 감독 하에 훈련하는 것인지 그렇지 않은 것인지(지도, 비지도, 준지도, 강화 학습)

실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습과 배치 학습)

단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 아니면 훈련 데이터셋에서 과학자들처럼 패턴을 발견하여 예측 모델을 만드는지(사례 기반 학습과 모델 기반 학습)

이 범주들은 서로 배타적이지 않으며 원하는 대로 연결할 수 있습니다. 예를 들어 최첨단 스팸 필터가 심층 신경망 모델을 사용해 스팸과 스팸이 아닌 메일로부터 실시간으로 학습할 지도 모릅니다. 그렇다면 이 시스템은 온라인이고 모델 기반이며 지도 학습 시스템입니다.

이 범주들을 조금 더 자세히 들여다보겠습니다.

1.3.1 지도 학습과 비지도 학습

머신러닝 시스템을 ‘학습하는 동안의 감독 형태나 정보량’에 따라 분류할 수 있습니다. 지도 학습, 비지도 학습, 준지도 학습, 강화 학습 등 네 가지 주요 범주가 있습니다.

지도 학습

지도 학습supervised learning에는 알고리즘에 주입하는 훈련 데이터에 레이블label 3이라는 원하는 답이 포함됩니다(그림 1-5).

분류classification가 전형적인 지도 학습 작업이며, 스팸 필터가 좋은 예입니다. 스팸 필터는 많은 메일 샘플과 소속 정보(스팸인지 아닌지)로 훈련되어야 하며 어떻게 새 메일을 분류할지 학습해야 합니다.

또 다른 전형적인 작업은 예측 변수predictor variable라 부르는 특성feature (주행거리, 연식, 브랜드 등)을 사용해 중고차 가격 같은 타깃 수치를 예측하는 것입니다. 이런 종류의 작업을 회귀regression 4라고 부릅니다(그림 1-6). 시스템을 훈련시키려면 예측 변수와 레이블(중고차 가격)이 포함된 중고차 데이터가 많이 필요합니다.

NOTE_ 머신러닝에서 속성(attribute )은 데이터 타입(예를 들면 주행거리)을 말합니다. 특성은 문맥에 따라여러 의미를 갖지만 일반적으로 속성과 값이 합쳐진 것을 의미합니다(예를 들면 주행거리=15,000). 하지만 많은 사람이 속성과 특성을 구분하지 않고 사용합니다.5

일부 회귀 알고리즘은 분류에 사용할 수도 있고 또 반대의 경우도 있습니다. 예를 들어 분류에 널리 쓰이는 로지스틱 회귀는 클래스에 속할 확률을 출력합니다(예를 들면 스팸일 가능성 20 %).

다음은 가장 중요한 지도 학습 알고리즘들입니다(이 책에서 모두 다룹니다).

k-최근접 이웃 k-Nearest Neighbors

선형 회귀 Linear Regression

로지스틱 회귀 Logistic Regression

서포트 벡터 머신 Support Vector Machines (SVM)

(SVM) 결정 트리 Decision Tree 와 랜덤 포레스트 Random Forests

와 랜덤 포레스트 신경망Neural networks 6

비지도 학습

비지도 학습unsupervised learning에는 말 그대로 훈련 데이터에 레이블이 없습니다(그림 1-7). 시스템이 아무런 도움 없이 학습해야 합니다.

다음은 가장 중요한 비지도 학습 알고리즘7 입니다(8 장에서 차원 축소에 대해 다룹니다).

군집 clustering k-평균 k-Means 계층 군집 분석 Hierarchical Cluster Analysis (HCA) 기댓값 최대화 Expectation Maximization

시각화 visualization 와 차원 축소 dimensionality reduction 주성분 분석 Principal Component Analysis (PCA) 커널 kernel PCA 지역적 선형 임베딩 Locally-Linear Embedding (LLE) t-SNE t-distributed Stochastic Neighbor Embedding

와 차원 축소 연관 규칙 학습 Association rule learning 어프라이어리 Apriori 이클렛 Eclat

예를 들어 블로그 방문자에 대한 데이터가 많이 있다고 합시다. 비슷한 방문자들을 그룹으로 묶기 위해 군집 알고리즘을 적용하려 합니다(그림 1 -8 ). 하지만 방문자가 어떤 그룹에 속하는지 알고리즘에 알려줄 수 있는 데이터 포인트가 없습니다. 그래서 알고리즘이 스스로 방문자 사이의 연결고리를 찾습니다. 예를 들어 40 %의 방문자가 만화책을 좋아하며 저녁때 블로그 글을 읽는 남성이고, 20 %는 주말에 방문하는 공상 과학을 좋아하는 젊은 사람임을 알게 될지도 모릅니다. 계층 군집hierarchical clustering 알고리즘을 사용하면 각 그룹을 더 작은 그룹으로 세분화할수 있습니다.8 그러면 각 그룹에 맞춰 블로그에 글을 쓰는 데 도움이 될 것입니다.

시각화visualization 알고리즘도 비지도 학습 알고리즘의 좋은 예입니다. 레이블이 없는 대규모의 고차원 데이터를 넣으면 도식화가 가능한 2D나 3D 표현을 만들어줍니다(그림 1-9). 이런 알고리즘은 가능한 한 구조를 그대로 유지하려 하므로(예를 들어 입력 공간에서 떨어져 있던 클러스터cluster는 시각화된 그래프에서 겹쳐지지 않게 유지됩니다) 데이터가 어떻게 조직되어 있는지 이해할 수 있고 예상하지 못한 패턴을 발견할 수도 있습니다.

비슷한 작업으로는 너무 많은 정보를 잃지 않으면서 데이터를 간소화하려는 차원 축소dimensionality reduction가 있습니다. 이렇게 하는 한 가지 방법은 상관관계가 있는 여러 특성을 하나로 합치는 것입니다. 예를 들어 차의 주행거리는 연식과 매우 연관되어 있으므로 차원 축소 알고리즘으로 두 특성을 차의 마모 정도를 나타내는 하나의 특성으로 합칠 수 있습니다. 이를 특성 추출feature extraction이라고 합니다.

TIP (지도 학습 알고리즘 같은) 머신러닝 알고리즘에 데이터를 주입하기 전에 차원 축소 알고리즘을 사용하여 훈련 데이터의 차원을 줄이는 것이 유용할 때가 많습니다. 실행 속도가 훨씬 빨라지고 디스크와 메모리를 차지하는 공간도 줄고 경우에 따라 성능이 좋아지기도 합니다.

또 하나의 중요한 비지도 학습은 이상치 탐지anomaly detection 입니다. 예를 들어 부정 거래를 막기 위해 이상한 신용카드 거래를 감지하고, 제조 결함을 잡아내고, 학습 알고리즘에 주입하기 전에 데이터셋에서 이상한 값을 자동으로 제거하는 것 등입니다. 시스템은 정상 샘플로 훈련되고, 새로운 샘플이 정상 데이터인지 혹은 이상치인지 판단합니다(그림 1 -10 ).

널리 사용되는 또 다른 비지도 학습은 대량의 데이터에서 특성 간의 흥미로운 관계를 찾는 연관 규칙 학습association rule learning 입니다.10 예를 들어 여러분이 슈퍼마켓을 운영한다고 가정합시다. 판매 기록에 연관 규칙을 적용하면 바비큐 소스와 감자를 구매한 사람이 스테이크도 구매하는 경향이 있다는 것을 찾을지도 모릅니다.

준지도 학습

어떤 알고리즘은 레이블이 일부만 있는 데이터도 다룰 수 있습니다. 보통은 레이블이 없는 데이터가 많고 레이블이 있는 데이터는 아주 조금입니다. 이를 준지도 학습semisupervised learning이라고 합니다(그림 1-11).

구글 포토 호스팅 서비스가 좋은 예입니다. 이 서비스에 가족사진을 모두 올리면 사람 A는 사진 1, 5, 11에 있고, 사람 B는 사진 2, 5, 7에 있다고 자동으로 인식합니다. 이는 비지도 학습(군집)입니다. 이제 시스템에 필요한 것은 이 사람들이 누구인가 하는 정보입니다. 사람마다 레이블이 하나씩만 주어지면11 사진에 있는 모든 사람의 이름을 알 수 있고, 편리하게 사진을 찾을 수 있습니다.

대부분의 준지도 학습 알고리즘은 지도 학습과 비지도 학습의 조합으로 이루어져 있습니다. 예를 들어 심층 신뢰 신경망deep belief network (DBN)은 여러 겹으로 쌓은 제한된 볼츠만 머신restricted Boltzmann machine (RBM)이라 불리는 비지도 학습에 기초합니다. RBM이 비지도 학습 방식으로 순차적으로 훈련된 다음 전체 시스템이 지도 학습 방식으로 세밀하게 조정됩니다.

강화 학습

강화 학습Reinforcement Learning은 매우 다른 종류의 알고리즘입니다. 여기서는 학습하는 시스템을 에이전트라고 부르며 환경environment을 관찰해서 행동action을 실행하고 그 결과로 보상reward (또는 [그림 1-12]처럼 부정적인 보상에 해당하는 벌점penalty )을 받습니다. 시간이 지나면서 가장 큰 보상을 얻기 위해 정책policy이라고 부르는 최상의 전략을 스스로 학습합니다. 정책은 주어진 상황에서 에이전트가 어떤 행동을 선택해야 할지 정의합니다.

예를 들어 보행 로봇을 만들기 위해 강화학습 알고리즘을 많이 사용합니다. 딥마인드DeepMind 의 알파고AlphaGo 프로그램도 강화 학습의 좋은 예입니다. 2017년 5월 바둑 세계챔피언인 커제 선수를 이겨서 신문의 헤드라인을 장식했습니다. 알파고는 수백만 개의 게임을 분석해서 승리에 대한 전략을 학습했으며 자기 자신과 많은 게임을 했습니다. 알파고가 세계챔피언과 게임할 때는 학습 기능을 끄고 그동안 학습했던 전략을 적용한 것입니다. 12

1.3.2 배치 학습과 온라인 학습

머신러닝 시스템을 분류하는 데 사용하는 다른 기준은 입력 데이터의 스트림stream 으로부터 점진적으로 학습할 수 있는지 여부입니다.

배치 학습

배치 학습batch learning에서는 시스템이 점진적으로 학습할 수 없습니다. 가용한 데이터를 모두 사용해 훈련시켜야 합니다. 일반적으로 이 방식은 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행됩니다. 먼저 시스템을 훈련시키고 그런 다음 제품 시스템에 적용하면 더 이상의 학습없이 실행됩니다. 즉, 학습한 것을 단지 적용만 합니다. 이를 오프라인 학습offline learning이라고 합니다.

배치 학습 시스템이 (새로운 종류의 스팸 같은) 새로운 데이터에 대해 학습하려면 (새로운 데이터뿐만 아니라 이전 데이터도 포함한) 전체 데이터를 사용하여 시스템의 새로운 버전을 처음부터 다시 훈련해야 합니다. 그런 다음 이전 시스템을 중지시키고 새 시스템으로 교체합니다.

다행히 ([그림 1-3]에 보았듯이) 머신러닝 시스템을 훈련, 평가, 론칭하는 전체 과정이 쉽게 자동화될 수 있어서 배치 학습 시스템도 변화에 적응할 수 있습니다. 데이터를 업데이트하고 시스템의 새 버전을 필요한 만큼 자주 훈련시키면 됩니다.

이런 방식이 간단하고 잘 작동하지만 전체 데이터셋을 사용해 훈련하는 데 몇 시간이 소요될 수 있습니다. 보통 24시간마다 또는 매주 시스템을 훈련시킵니다. 시스템이 빠르게 변하는 데이터에 적응해야 한다면(예를 들면 주식가격) 더 능동적인 방법이 필요합니다.

또한 전체 데이터셋을 사용해 훈련한다면 많은 컴퓨팅 자원이 필요합니다(CPU , 메모리 공간, 디스크 공간, 디스크 IO , 네트워크 IO 등). 대량의 데이터를 가지고 있는데 매일 처음부터 새로 훈련시키도록 시스템을 자동화한다면 큰 비용이 발생할 것입니다. 데이터 양이 아주 많으면 배치 학습 알고리즘을 사용하는 게 불가능할 수도 있습니다.

마지막으로, 자원이 제한된 시스템(예를 들면 스마트폰 또는 화성 탐사 로버rover )이 스스로 학습해야 할 때 많은 양의 훈련 데이터를 나르고 학습을 위해 매일 몇 시간씩 많은 자원을 사용하면 심각한 문제를 일으킵니다.

이런 경우에는 점진적으로 학습할 수 있는 알고리즘을 사용하는 편이 낫습니다.

온라인 학습

온라인 학습online learning 에서는 데이터를 순차적으로 한 개씩 또는 미니배치mini-batch 라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킵니다. 매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습할 수 있습니다(그림 1 -13).

온라인 학습은 연속적으로 데이터를 받고(예를 들면 주식가격) 빠른 변화에 스스로 적응해야 하는 시스템에 적합합니다. 컴퓨팅 자원이 제한된 경우에도 좋은 선택입니다. 온라인 학습 시스템이 새로운 데이터 샘플을 학습하면 학습이 끝난 데이터는 더 이상 필요하지 않으므로 버리면 됩니다(이전 상태로 되돌릴 수 있도록 데이터를 재사용하기 위해 보관할 필요가 없다면). 이렇게 되면 많은 공간을 절약할 수 있습니다.

컴퓨터 한 대의 메인 메모리에 들어갈 수 없는 아주 큰 데이터셋을 학습하는 시스템에도 온라인 학습 알고리즘을 사용할 수 있습니다(이를 외부 메모리out-of-core 학습이라고 합니다). 알고리즘이 데이터 일부를 읽어 들이고 훈련 단계를 수행합니다. 전체 데이터가 모두 적용될 때까지 이 과정을 반복합니다(그림 1 -14 ).

CAUTION_ 이 경우 전체 프로세스는 보통 오프라인으로 실행됩니다(즉, 실시간 시스템에서 수행되는 것이 아닙니다). 그래서 온라인 학습이란 이름이 혼란을 줄 수 있습니다. 점진적 학습incremental learning이라고 생각하세요.

온라인 학습 시스템에서 중요한 파라미터 하나는 변화하는 데이터에 얼마나 빠르게 적응할 것인지 입니다. 이를 학습률learning rate 이라고 합니다.13 학습률을 높게 하면 시스템이 데이터에 빠르게 적응하지만 예전 데이터를 금방 잊어버릴 것입니다(최근에 나타난 스팸의 종류만 걸러낼 수 있는 스팸 필터를 원할 리는 없습니다). 반대로 학습률이 낮으면 시스템의 관성이 더 커져서 더 느리게 학습됩니다. 하지만 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인트에 덜 민감해집니다.

온라인 학습에서 가장 큰 문제점은 시스템에 나쁜 데이터가 주입되었을 때 시스템 성능이 점진적으로 감소한다는 점입니다. 운영 중인 시스템이라면 고객이 눈치챌지 모릅니다. 예를 들어 로봇의 오작동 센서로부터, 혹은 검색 엔진을 속여 검색 결과 상위에 노출시키려는 누군가로부터 나쁜 데이터가 올 수 있습니다. 이런 위험을 줄이려면 시스템을 면밀히 모니터링하고 성능 감소가 감지되면 즉각 학습을 중지시켜야 합니다(가능하면 이전 운영 상태로 되돌립니다). 입력 데이터를 모니터링해서 비정상 데이터를 잡아낼 수도 있습니다(예를 들면 이상치 탐지 알고리즘을 사용해서).

1.3.3 사례 기반 학습과 모델 기반 학습

머신러닝 시스템은 어떻게 일반화되는가에 따라 분류할 수도 있습니다. 대부분의 머신러닝 작업은 예측을 만드는 것입니다. 이 말은 주어진 훈련 데이터로 학습하지만 훈련 데이터에서는 본적 없는 새로운 데이터로 일반화되어야 한다는 뜻입니다. 훈련 데이터에서 높은 성능을 내는 것이 좋지만 그게 전부는 아닙니다. 진짜 목표는 새로운 샘플에 잘 작동하는 모델입니다.

일반화를 위한 두 가지 접근법은 사례 기반 학습과 모델 기반 학습입니다.

사례 기반 학습

아마도 가장 간단한 형태의 학습은 단순히 기억하는 것입니다. 스팸 필터를 이러한 방식으로 만들면 사용자가 스팸이라고 지정한 메일과 동일한 모든 메일을 스팸으로 분류합니다. 최악의 방법은 아니지만 최선도 아닙니다.

스팸 메일과 동일한 메일을 스팸이라고 지정하는 대신 스팸 메일과 매우 유사한 메일을 구분하도록 스팸 필터를 프로그램할 수 있습니다. 이렇게 하려면 두 메일 사이의 유사도similarity를 측정해야 합니다. 두 메일 사이의 매우 간단한 유사도 측정 방법은 공통으로 포함한 단어의 수를 세는 것입니다. 스팸 메일과 공통으로 가지고 있는 단어가 많으면 스팸으로 분류합니다.

이를 사례 기반 학습instance-based learning이라고 합니다. 시스템이 사례를 기억함으로써 학습합니다. 그리고 유사도 측정을 사용해 새로운 데이터에 일반화합니다(그림 1-15).

모델 기반 학습

샘플로부터 일반화시키는 다른 방법은 이 샘플들의 모델을 만들어 예측에 사용하는 것입니다. 이를 모델 기반 학습model-based learning이라고 합니다(그림 1-16).

예를 들어 돈이 사람을 행복하게 만드는지 알아본다고 가정합시다. OECD 웹사이트(https://goo.gl/0Eht9W)에서 더 나은 삶의 지표Better Life Index 데이터와 IMF 웹사이트(http://goo.gl/j1MSKe)에서 1 인당 GDP 통계를 내려받습니다. 두 데이터 테이블을 합치고 1 인당 GDP 로 정렬합니다. [표 1 -1]에 그 일부를 나타냈습니다.

일부 국가를 무작위로 골라서 그래프를 그려봅시다(그림 1 -17).

여기서 어떤 경향을 볼 수 있습니다! 데이터가 흩어져 있지만 (즉, 어느 정도 무작위성이 있지만) 삶의 만족도는 국가의 1 인당 GDP 가 증가할수록 거의 선형으로 같이 올라갑니다. 그러므로 1 인당 GDP 의 선형 함수로 삶의 만족도를 모델링해보겠습니다. 이 단계를 모델 선택model selection이라고 합니다. 1 인당 GDP 라는 특성 하나를 가진 삶의 만족도에 대한 선형 모델linear model 입니다(식 1 -1).

식 1-1 간단한 선형 모델

삶의_만족도 1인당_GDP

이 모델은 두 개의 모델 파라미터 과 을 가집니다.14 이 모델 파라미터를 조정하여 [그림 1 -18]처럼 어떤 선형 함수를 표현하는 모델을 얻을 수 있습니다.

모델을 사용하기 전에 과 을 정의해야 합니다. 모델이 최상의 성능을 내도록 하는 값을 어떻게 알 수 있을까요? 이 질문에 대답하려면 측정 지표를 정해야 합니다. 모델이 얼마나 좋은지 측정하는 효용 함수utility function (또는 적합도 함수fitness function)를 정의하거나 얼마나 나쁜지 측정하는 비용 함수cost function를 정의할 수 있습니다. 선형 회귀에서는 보통 선형 모델의 예측과 훈련 데이터 사이의 거리를 재는 비용 함수를 사용합니다. 이 거리를 최소화하는 것이 목표입니다.

여기에서 선형 회귀Linear Regression 알고리즘이 등장합니다. 알고리즘에 훈련 데이터를 공급하면 데이터에 가장 잘 맞는 선형 모델의 파라미터를 찾습니다. 이를 모델을 훈련training시킨다고 말합니다. 이 경우에는 알고리즘이 최적의 파라미터로 와 을 찾았습니다.

[그림 1 -19]에서 볼 수 있듯이 모델이 훈련 데이터에 (선형 모델로서) 가능한 한 가깝게 맞춰졌습니다.

이제 이 모델을 사용해 예측을 할 수 있습니다. 예를 들어 OECD 데이터에 없는 키프로스Cyprus 15 사람들이 얼마나 행복한지 알아보려면 이 모델을 사용해 예측할 수 있습니다. 키프로스의 1 인당 GDP 를 보면 22 ,587 달러이므로 이를 모델에 적용해 과 같이 삶의 만족도를 계산합니다.

[예제 1 -1]의 파이썬 코드16는 데이터를 로드하고 준비한 다음 산점도scatterplot를 그려 시각화하고 선형 모델을 훈련하여 예측하는 과정을 보여줍니다.17

예제 1-1 사이킷런을 이용한 선형 모델의 훈련과 실행

import matplotlib import matplotlib.pyplot as plt import numpy as np import pandas as pd import sklearn # 데이터 적재 oecd_bli = pd.read_csv(“oecd_bli_2015.csv”, thousands=’,’) gdp_per_capita = pd.read_csv(“gdp_per_capita.csv”,thousands=’,’,delimiter=’\t’, encoding=’latin1′, na_values=”n/a”) # 데이터 준비 country_stats = prepare_country_stats(oecd_bli, gdp_per_capita) X = np.c_[country_stats[“GDP per capita”]] y = np.c_[country_stats[“Life satisfaction”]] # 데이터 시각화 country_stats.plot(kind=’scatter’, x=”GDP per capita”, y=’Life satisfaction’) plt.show() # 선형 모델 선택 model = sklearn.linear_model.LinearRegression() # 모델 훈련 model.fit(X, y) # 키프로스에 대한 예측 X_new = [[22587]] # 키프로스 1인당 GDP print(model.predict(X_new)) # 결과 [[ 5.96242338]]

NOTE_ 사례 기반의 학습 알고리즘을 사용한다면 먼저 1인당 GDP가 키프로스와 가장 가까운 슬로베니아Slovenia (20,732달러)를 찾습니다. OECD 데이터에 있는 슬로베니아의 삶의 만족도가 5.7이므로 키프로스의 삶의 만족도를 5.7로 예측합니다. 조금 더 확대해서 그다음으로 가까운 두 나라를 더 고려하면 삶의 만족도가 5.1과 6.5인 포르투갈Portugal과 스페인Spain이 있습니다. 이 세 값을 평균하면 모델 기반의 예측과 매우 비슷한 5.77이 됩니다. 이 간단한 알고리즘을 k-최근접 이웃k-Nearest Neighbors 회귀라고 합니다(여기서는 k = 3입니다). 이전 코드에서 선형 회귀 모델을 k-최근접 이웃 회귀로 바꾸려면 아래 한 줄을 model = sklearn.linear_model.LinearRegression()

다음과 같이 바꾸면 됩니다. model = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3) 사례 기반의 학습 알고리즘을 사용한다면 먼저 1인당 GDP가 키프로스와 가장 가까운 슬로베니아(20,732달러)를 찾습니다. OECD 데이터에 있는 슬로베니아의 삶의 만족도가 5.7이므로 키프로스의 삶의 만족도를 5.7로 예측합니다. 조금 더 확대해서 그다음으로 가까운 두 나라를 더 고려하면 삶의 만족도가 5.1과 6.5인 포르투갈과 스페인이 있습니다. 이 세 값을 평균하면 모델 기반의 예측과 매우 비슷한 5.77이 됩니다. 이 간단한 알고리즘을회귀라고 합니다(여기서는

모든 게 다 잘되면 모델은 좋은 예측을 내놓을 것입니다. 아니면 더 많은 특성(고용률, 건강, 대기오염 등)을 사용하거나, 좋은 훈련 데이터를 더 많이 모으거나, 더 강력한 모델(예를 들면 다항 회귀 모델)을 선택해야 할지 모릅니다.

지금까지의 작업을 요약해보겠습니다.

데이터를 분석합니다.

모델을 선택합니다.

훈련 데이터로 모델을 훈련시킵니다(즉, 학습 알고리즘이 비용 함수를 최소화하는 모델 파라미터를 찾습니다).

마지막으로 새로운 데이터에 모델을 적용해 예측을 하고(이를 추론inference이라고 합니다), 이 모델이 잘 일반화되길 기대합니다.

이것이 전형적인 머신러닝 프로젝트의 형태입니다. 2장에서 완전한 프로젝트를 진행하면서 직접 경험해볼 것입니다.

지금까지 많은 부분을 다뤘습니다. 머신러닝이 무엇인지, 왜 유용한지, 머신러닝 시스템의 가장 일반적인 분류는 무엇인지, 그리고 전형적인 머신러닝 프로젝트의 작업 흐름이 어떤지 배웠습니다. 다음 절에서는 학습 과정에서 발생할 수 있는 문제와 정확한 예측을 방해하는 것들에 대해 알아보겠습니다.

3 옮긴이_ 머신러닝에서 레이블의 범주를 클래스(class )라고 부릅니다. 이 책에서는 프로그램 언어의 클래스와 같은 용어를 사용하므로 혼동하지 않도록 주의하세요.

4 재미있는 사실: 이 이상한 이름은 프란시스 골턴(Francis Galton)이 키가 큰 사람의 아이가 부모보다 작은 경향이 있다는 사실을 연구하면서 소개한 통계학 용어입니다. 부모보다 아이가 더 작기 때문에 이를 평균으로 회귀한다고 불렀습니다. 그 후 프란시스가 두 변수 사이의 상관관계를 분석하기 위해 사용한 방법에 이 이름을 붙였습니다.

5 옮긴이_ 이러한 이유로 원서에서는 데이터의 열(column)을 표현할 때 특성과 속성을 혼용하고 있습니다. 번역서에서는 데이터의 열 또는 변수를 의미할 때는 ‘특성’으로, 파이썬 클래스나 인스턴스의 변수를 의미하는 ‘property’와 ‘attribute’는 ‘속성’으로 번역했습니다.

6 오토인코더나 제한된 볼츠만 머신(restricted Boltzmann machine) 같이 일부 신경망 구조는 비지도 학습일 수 있습니다. 신경망은 또한 심층 신뢰 신경망(deep belief networks)이나 비지도 사전훈련(unsupervised pretraining )처럼 준지도 학습일 수도 있습니다. 옮긴이_ 비지도 사전훈련은 11장을, 제한된 볼츠만 머신과 심층 신뢰 신경망은 부록 E를 참조하세요. 오토인코더는 15장에서 자세히 설명합니다.

7 옮긴이_ k-평균, 계층 군집 등 여러 가지 비지도 학습 알고리즘은 『파이썬 라이브러리를 활용한 머신러닝』(한빛미디어, 2017)을 참고하세요.

8 옮긴이_ 여기에서 설명하는 계층 군집은 하향식(top-down)인 분할 군집(divisive clustering )을 말합니다. 사이킷런(Scikit-Learn)에서는 상향식(bottom-up) 계층 군집인 병합 군집(agglomerative clustering, https://goo.gl/9xKpxQ) 알고리즘을 제공하고 있습니다.

9 동물이 운송 수단과 잘 구분되어 있고 말이 사슴과 가깝지만 새와 떨어져 있는 것 등을 확인할 수 있습니다. 이 그림은 소셔(Socher), 간주(Ganjoo), 매닝(Manning), 앤드류 응(Andrew Ng)의 「T-SNE visualization of the semantic word space」(2013)입니다. 옮긴이_ 이 그림은 「Zero-Shot Learning Through Cross-Modal Transfer」(https://arxiv.org/abs/1301.3666)에서 발췌했습니다.

10 옮긴이_ 연관 규칙은 규칙 기반(rule-based) 학습의 한 종류로, 사이킷런에서는 제공하지 않습니다.

이는 시스템이 완벽했을 때입니다. 실제로는 사람마다 여러 개의 군집이 만들어지고 때로는 비슷한 외모의 두 사람이 섞이기도 합니다. 그래서 사람마다 레이블링을 여러 번 하고 어떤 군집은 수동으로 정리해야 합니다.

12 옮긴이_ 딥마인드는 2017년 10월에 기보 없이 스스로 학습하여 기존 알파고를 능가하는 알파고 제로(AlphaGo Zero)를 공개했습니다. https://goo.gl/MeFZmM

13 옮긴이_ 학습률은 대표적인 하이퍼파라미터입니다. 하이퍼파라미터에 대해서는 1.4.5절을 참조하세요.

14 관습적으로 그리스 문자 (세타)는 모델 파라미터를 표현할 때 자주 사용합니다. 옮긴이_ (오메가)와 (베타)도 자주 사용합니다.

15 옮긴이_ 키프로스는 터키 아래쪽에 위치한 아름다운 지중해 섬나라입니다. 1974년에 일어난 내전 이후 터키계인 북부와 그리스계인 남부로 분단되어 있습니다.

16 이 코드는 GDP와 삶의 만족도 데이터를 하나의 판다스 데이터프레임으로 합치는 prepare_country_stats( ) 함수가 미리 정의되어 있다고 가정합니다. 옮긴이_ 1장의 주피터 노트북 안에 이 함수가 정의되어 있습니다.

17 전체 코드를 이해하지 못해도 괜찮습니다. 다음 장에서 사이킷런에 대해 소개합니다.

1.2 왜 머신러닝을 사용하는가? | 목차 | 1.4 머신러닝의 주요 도전 과제

이 글은 한빛미디어에서 출간한 “핸즈온 머신러닝“의 1장과 2장입니다. 이 책의 저작권은 한빛미디어(주)에 있으므로 무단 복제 및 무단 전제를 금합니다.

[머신러닝] Feature Selection

728×90

반응형

안녕하세요, 이번 포스팅에서는 Feature Selection에 대해서 배워보도록 하겠습니다.

Feature Selection은 기계학습에서 굉장히 중요한 작업입니다.

데이터가 굉장히 많고, 다양하게 존재한다면, Feature selection을 솔직히 말해서 그다지 필요하지는 않습니다.

하지만, 현실 세계에서는 데이터가 이상적이지 않기 때문에, 필요성이 급증하였습니다.

output을 예측하는데에 상관이 없는 변수들이 존재하면, 우선 computational cost가 늘어나고, overfitting을 초래할 수 있습니다.

overfitting의 예를 들자면, 의료 진단 도메인에서, 질병의 유무에 대해서 예측을 할 때, 환자 ID가 결과에 큰 영향을 미친다는 결론이 나올 수 있습니다. 하지만 사실 상, 말이 안되는 결과지요. 즉, 필요 없는 변수로 인해 결과가 좌지우지 될 수 있다는 것입니다.

Feature Selection의 장점에 대해서 말하자면, 학습 시간을 줄일 수 있고, 모델의 분산을 줄임으로써, 보다 robust하게 학습됩니다. 그리고, 모델이 간소화가 되면 결과가 더 해석하기 쉽습니다.

Feature Selection의 주된 목적은 독립 변수중에서, 중복되거나 종속변수 (Y)와 관련이 없는 변수들을 제거하여, Y를 가장 잘 예측하는 변수들의 조합을 찾아내는 것이기 때문에, 최적화 문제로도 정의할 수 있습니다.

Feature Selection은 크게 3가지 방법으로 기계학습에 적용 될 수 있습니다.

1. Wrapper method

Wrapper method는 굉장히 단순한 방법입니다. 우선 Feature의 조합을 정하고, 기계 학습을 돌리고, 성능을 평가합니다.

이를 조합을 바꿔가면서, 계속 반복합니다. 그렇게 해서 가장 성능이 좋은 조합을 찾아내는 것입니다.

Wrapper method은 굉장히 많은 시간 비용이 필요하므로, 별로 추천하는 방법이 아닙니다. 그리고, 훈련 데이터셋에 너무 overfitting될 위험이 있습니다.

2. Filter Method

Filter Method는 전처리 과정에서 미리 Feature selection을 통계적 방법으로 실행하고, 모델을 적합하는 방법입니다.

가장 많이 사용되는 통계적 방법으로는 종속변수와 독립변수 간의 피어슨 상관계수를 이용하는 것입니다.

이 방법은, 앞선 Wrapper method에 비해서 엄청난 시간 단축을 얻을 수 있습니다.

3. Embedded method

Embedded method는 모델 자체에 Feature selection 기능이 추가되어 있는 경우입니다.

예를 들어서, Lasso Regression, Ridge Regression, Decision Tree 등의 알고리즘은 모델 알고리즘 자체에서 Feature Selection이 수행됩니다.

3가지 방법중에서 가장 많이 사용되는 방법은 Filter method입니다.

728×90

반응형

키워드에 대한 정보 머신러닝 feature 뜻

다음은 Bing에서 머신러닝 feature 뜻 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [인공지능,머신러닝,딥러닝] (기초) Feature의 이해

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기
[인공지능,머신러닝,딥러닝] #(기초) #Feature의 #이해


YouTube에서 머신러닝 feature 뜻 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [인공지능,머신러닝,딥러닝] (기초) Feature의 이해 | 머신러닝 feature 뜻, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment