ETC/머신러닝, 딥러닝 실습

1-2. 머신러닝의 개념과 용어

개발자킹콩 2020. 10. 10. 19:38

목차

1. 머신러닝이란?

2. learning이란?

  • supervised (지도학습)
  • unsupervised (비지도학습)

3. regression(회귀)? classification(분류)?

 

 

해당 게시글은 다음의 영상을 참고했습니다.

제가 이해한 부분에 배경지식을 담았습니다.

[출처] : www.youtube.com/watch?v=qPMeuL2LIqY

[출처] : opentutorials.org/course/4548


1. 머신러닝이란?

 

결정 = 비교 + 선택
수의 발견 이후에는 발전하여 인류에서 일어나는 것들을 수로 표현하였고,
통계와 컴퓨터의 발달로 수많은 결정을 할 수 있게 되었고, 이제 결정을 컴퓨터에게 맡기려한다.
기계가 스스로 판단하여 비교하고 결정하도록 가르치는 것이 기계학습(Machine learning) 이다.

 

내가 어플리케이션을 이용하게 된다면 어떤 입력을 하게 되면 그것을 기반으로 적절한 출력이 나올 것이다. 이를 explicit programming라고 한다.

그런데 어떤 부분에서는 explicit하게 정확하게 프로그래밍하기 어려운 것이 있다.

ex) 스팸메일, 자율주행 --> 이는 너무 많은 규칙이 있다. 많은 input에 대한 설정이 사실상 불가능할 정도이다.

 

머신러닝은 "이것을 전부 프로그래밍하지말고 어떤 자료나 현상에서 자동적으로 배우면(학습하면) 어떨까?" 에서 시작된 기계를 학습시키는 방법, 소프트웨어를 말하는 것이다.

그렇다면 그 학습법에는 다양한 종류가 존재할 것이다. 그 종류는 아래와 같다.

 

 

 

 

 

 

 

 


 

2. learning이란?

이 머신러닝을 할 때 학습을 시키려면 어떤 데이터를 있어야겠지.

그런데 이 데이터들도 학습을 하는 방법에 따라 다르다.

여기서는 지도학습을 주로 다룰 것이다.

 

(1) Supervised learning (지도학습) : 고양이 사진 찾기

 

어떤 하나의 정해져있는 데이터(label이 정해진, training set)로 학습하는 것이다.

이게 무슨말이냐!!

 

기계를 가르친다, 지도한다는 의미이다. 문제집을 푸는 것과 같다.
문제와 정답을 비교하고 맞추다 보면, 점점 문제풀이가 익숙해진다. 
비슷한 문제를 만난다면 점점 오답확률이 낮아진다.
문제지로 학생을 지도하듯, 

데이터로 컴퓨터를 학습시켜서 모델을 만들도록 하는 것이다.!!!!!!

 

어떤 이미지가 고양이, 개일까를 알아내는 프로그래밍의 경우

cat이라는 label(정답)이 달려있는 상태의 사진을 데이터로 주는 것이다. 

 

training set

 

 

이미지의 라벨을 붙이는 것

이메일 스팸필터 : 스팸문자와 햄문자를 보여주고 학습을 하면 된다.

시험점수예상하기 : "이전에 사람들이 몇시간공부해서 몇점나왔다"로 학습한다.

결국 과거를 통해 배우고 미래를 예측하는 것이다.

역사를 잊은자에게 미래는 없다.

 

 

 

여기서 supervised learning(지도학습)을 통한 머신러닝은 다음과 같이 생각할 수 있다.

 

  • ML의 모델(판단력을 가진 기계)이 있고
  • Label이 정해져있고 그 값(정답)이 있다면 답이 정해져있는 데이터가 있고, 이러한 데이터를 Training data set이라한다.
  • 이것을 갖고 학습을 하게 되면 model이 생겨나고
  • 학습이 잘 되면 좋은 모델이며 좋은 추측을 할 것이다.
  • 추측은 "내가 어떤 X = [9,3,6]이면 Y는 무엇인가?" 와 같은 추측일 것이다.

 

 

알파고도 여러가지가 존재하지만 기존의 바둑기보를 보고

학습하여 확률이 높은 위치를 두는 방식이다.

그렇기에 알파고 또한 supervised learning (지도학습)라고 할 수 있다.

 

 

 

 

 

 

 

 

(2) Unsupervised learning (비지도학습)

Unsupervised learning: un-labeled data

지도학습에 포함되지 않는 것들이다. 
기계에게 데이터에 대한 통찰력을 부여하는 것이다. 
통찰의 사전적의미는 예리한 관찰력으로 사물을 꾀뚤어봄 
누가 정답을 알려주지 않더라도 무언가에 대한 관찰을 통해 새로운 의미나 관계를 밝혀내는 것 
데이터의 성격을 파악하거나 데이터를 잘 정리정돈 하는 것에 사용된다.

 

유사한 뉴스나 단어를 묶어주거나 하는 경우에 해당한다.( 정답이라는게 없기에 그러하다.)

 

 

 


 

3. regression(회귀)? classification(분류)?

 

이 superviesd learning도 결과에 따라서 다르게 나눌 수 있다.

 

 

 

  • 사용한 시간대비 시험성적으로 데이터를 학습하고 시험점수를 예측하는 경우 범위가 0~100까지 범위가 넓기때문에 이런 예측을 regression(회귀)하고 한다.
  • 점수가 아닌 "성공했느냐 실패했느냐"와 같이 두가지로 나누어 지는 경우 => 이러한 예측을 binary classification (이분 분류) 라고 한다.
  • Grade(학점)을 줄려고 하는데 시간에 따라 어떤 성적을 받는가를 예측하려 하는데 ABCDF 중에서 하나를 고르는 것이기 때문에 label이 많다. 이를 multi-label classification이라고 한다.

 

 

이러한 3가지의 지도학습은 다른 결과를 초래하며, 학습데이터(training data)가 다르게 필요하다. 

 

  • regression 모델을 생성하고 이제 해당 데이터를 학습데이터를 학습시키고 X=7일때 Y=?를 예측할 수 있게 된것이다. 75점!
  • Pass, Fail에 맞게 label이 이분법으로 나누어져 있는 학습데이터
  • 여러 종류의 label로 이루어진 학습데이터

 

regression(회귀)의 결과를 얻기위해

supervised learning(지도학습) 할 training data set(학습데이터)

 

 

 

binary classification(이분 분류)의 결과를 얻기위해

supervised learning(지도학습) 할 training data set(학습데이터)

 

 

 

multi-label classification(멀티라벨 분류)의 결과를 얻기위해

supervised learning(지도학습) 할 training data set(학습데이터)

 

 

 

 

 

다음시간에는 Linear regression이라는 것을

어떻게 모델을 만들고 학습을 시키는지 알아보자!!

 

 

이상!! 오늘도 감코!!

 

'ETC > 머신러닝, 딥러닝 실습' 카테고리의 다른 글

2-3. Linear Regression 개념  (0) 2020.10.28
2-2. Hello TensorFlow (basic tensorflow)  (2) 2020.10.28
2-1. Anaconda, Jupyter Notebook, tensorflow??  (0) 2020.10.27
1-1. 개요  (0) 2020.10.10
0주차. 시작하는 글  (0) 2020.10.10