https://youtu.be/O0DpGt2KbCI

위 영상을 참고하여 작성

 

퍼셉트론

: 다수의 입력을 받으면 하나의 결과를 내보내는 알고리즘으로 구성 (0 or 1로 출력)

 

딥러닝의 기본 아이디어 - 퍼셉트론

- x : 입력 값

- w : 가중치 ; 해당 입력값의 중요도

- b : 편향 ; 결과값을 얼마나 쉽게 활성화 할 지, 얼마나 쉽게 1을 출력할 것인지를 돕기 위한 값

 

활성화 함수 (계단 함수)

if wx+b > 0:
  return 1
else:
  return 0

 

AND, OR, NOT 논리게이트로 만든 덧셈 계산기

 

퍼셉트론 구현하기 by 퍼셉트론

w1=1
w2=1
b=1

def perceptron(x1, x2):
    y=w1*x1+w2*x2+b
    if y>0:
        return 1
    else:
        return 0

for x1, x2 in [(0,0), (0,1), (1,0), (1,1)]:
    print("입력 : ", x1,",", x2, ' 출력 : ', perceptron(x1, x2))

 

가중치 바꿔서 AND, OR 게이트 구현하기

- AND 게이트

 

- OR 게이트

 

 

단일 퍼셉트론의 XOR 문제

XOR : 같으면 0, 다르면 1 출력

-> 직선으로 이을 수 없음 => 다층 퍼셉트론 으로 해결

 

다층 퍼셉트론 (MLP)

2층, 3개로 구현한 XOR 게이트

def p1(x1, x2):
    w1=1
    w2=1
    b=0
    y=w1*x1+w2*x2+b
    if y>0:
        return 1
    else:
        return 0

def p2(x1, x2):
    w1=1
    w2=1
    b=-1
    y=w1*x1+w2*x2+b
    if y>0:
        return 1
    else:
        return 0

def p3(x1, x2):
    w1=1
    w2=-2
    b=0
    y=w1*x1+w2*x2+b
    if y>0:
        return 1
    else:
        return 0

for x1, x2 in [(0,0), (0,1), (1,0), (1,1)]:
    print("입력 : ", x1,",", x2, ' 출력 : ', p3(p1(x1, x2), p2(x1, x2)))

 

퍼셉트론의 한계

- 가중치를 자동화하여 업데이트 할 수 있는 방법이 없다.

 

https://youtu.be/GZJornwzM_k

위 영상을 참고하여 작성

 

데이터 마이닝

: 데이터에서 패턴 등을 도출해내는 것

- 연관

  • Association Analysis
  • Basket Analysis (장바구니 분석 - 월마트의 기저귀&맥주)

- 회귀 : x값이 얼마나 증가하면 y값이 얼마나 증가 혹은 감소하는가

 

- 분류

ex) 와인 등급 분류

> 독립 변수 : 포도 품종, 생산 년도, 알콜 도수 등

> 종속 변수 : 와인의 등급

  • Decision Tree
  • SVM
  • Naive Bayes
  • Classifier

 

머신러닝

- supervised learning : 답을 알고 있는 경우

ex) 이베이 아이템 판매 가능성 예측

> 독립 변수 : 카테고리, 판매 기간, 가격 등

> 종속 변수 : 판매 여부

  • Regression
  • Decision Tree
  • Image Classification

- unsupervised learning : 답을 모르는 경우 (탐색의 목적)

ex) 강아지와 고양이 사진 분류

  • Clustering
  • PCA

- reinforcement learning ( ex | 알파고 ) : 계속 발전시키는 학습법

-> 보상과 처벌 중 보상 이 더 큰쪽으로 머신러닝이 움직일 수 있게끔 훈련시키는 것

   > 보상 : 알파고가 한수 한수를 두었을 때 마다 어떻게 해야 승률이 올라가는 지

   > 처벌 : 자율주행의 경우 사고가 날 때

  • Deep Q Network

데이터 마이닝과 머신러닝의 차이

데이터 마이닝 : 통계학적 관점에서 바라보는 분석론 , 리서치에 적합, 추론 포커싱

- 예측의 정확도도 중요하지만, 그 데이터 안에서 우리가 찾아낼 수 있는 어떤 패턴, 인사이트 같은 것들에 좀 더 포커스를 맞춤

- if 당뇨 관련 메디컬 데이터 in 병원 -> 그 사람이 당뇨에 걸리는 여부 보다는 당뇨에 걸리는 주된 원인을 파악하는 것이 중요

 

머신러닝 : CS 관점에서 바라보는 분석론, 비즈니스에 적합, 예측 포커싱

- 예측이 왜 이렇게 되는 지 이유를 아는 것도 중요하지만, 얼마나 더 정확한 예측을 할 수 있는가에 좀 더 포커스를 맞춤

- if 당뇨 관련 메디컬 데이터 in 보험회사 -> 그 사람이 당뇨에 걸리는 여부를 파악해 보험료 책정에 반영 (예측 정확도가 매우 중요), 이유는 관심 밖 영역

 

- regression 같은 경우 우리가 예측했을 때 그 이유가 뭔지, 어떤 변수가 얼마나 중요한 지 확인 할 수 있는 반면, 딥러닝은 예측이 아무리 좋다 해도 그 이유를 파악하는 것이 불가능하다.

- 데이터마이닝 관점에서 봤을 때, 딥러닝 같은 경우는 그렇게 사실 좋은 방법이 아님 ; 분석을 통해서 어떤 패턴이나 인사이트를 찾아 내는 것 보다는 예측이 너무 잘되기 때문

 

 

+ Recent posts