관리 메뉴

너와 나의 스토리

[Data Mining] AI / Machine Learning / Deep Learning 본문

Data Analysis/Data Mining

[Data Mining] AI / Machine Learning / Deep Learning

노는게제일좋아! 2020. 4. 21. 16:19
반응형

AI(Aritificial Intelligence)란?

  • Strong AI: 인간과 똑같이 생각하는 기계
    • 아직까지는 불가능
    • 자유 의지가 있어야 함
  • Weak AI
    • 컴퓨터 기반의 인공지능은 인간의 지능을 부분적으로 흉내 내고 있을 뿐

 

인간 생각의 요소들

  • 기억, 계산, 추론, Knowlege Representation(Expert system), 인지(Pattern recognition), 상식, 계획
  • 기억, 계산, 추론, 계획은 컴퓨터가 잘함
  • 인지, 상식은 컴퓨터가 잘 못 함 -> 점점 잘해지고 있음
  • 인지 -> 개인가 고양이인가 => Deep learning으로 구별

 

 

CLASSICAL AI

  • Decision Tree - 고전적인 AI
  • Basic algorithm (그리디 알고리즘)
    • top-down recursive divide-and-conquer manner
    • 모든 트레이닝 데이터는 루트에서 시작
    • attribute들은 categorical (연속적인 값이면 이산화)
    • attribute 선택을 기반으로 재귀적으로 파티션
    • heuristic 또는 통계적 특정을 기반으로 attibute 선택
  • 파티션 종료 조건
    • 주어진 노드의 모든 샘플이 같은 클래스에 속할 때
    • 더 이상 파티션할 attribute가 남지 않을 때 - 다수결 투표로 leaf classifying
    • 더 이상 샘플이 없을 때
  • 이전 게시물들 참고 

 

 

CLASSICAL AI (RULE-BASED) VS CONNECTIONISM (ANN)

Decision tree나 Bayesian과 같은 classical AI 기법들을 rule-based system이라 한다. 이러한 rule-based system의 한계를 극복하기 위한 일환으로 Aritificial Neural Networks라고 하는 connectionism이 출현하였다.

 

 

Rule-based system

  • 하향식 접근 방식
  • 논리적인 규칙에 기반하여 AI의 요소들을 구현
  • 구현된 rule들을 visible하며 일부 자동으로 변경 가능하지만 주로 외부 입력에 의해서 생성, 변경된다.
  • rule의 생성은 주어진 샘플의 통계 법칙을 따른다
  • ex) Decision tree / Bayesian network / Association rule / Expert system

 

Connectionism

  • 상향식 접근방법
  • 인간의 뇌 구조 중 대뇌 피질의 뉴런들의 계층구조를 모방한 시스템으로 외부의 경험적 Big Data(vision, sound, internet contents ...)로부터 학습을 통해 rule을 만들며 그 rule들은 invisible이고, 자동으로 수정 가능한 자율학습 시스템이다.
  • Aritificial Neural Networks (ANN)

 

 

Machine Learning이란?

기존의 명시적인 프로그래밍으로 해결할 수 없는 문제들을 해결하기 위해 machine learning, 즉 기계가 스스로 어떤 패턴을 학습하도록 하는 접근법이 등장. 요컨대 머신러닝이란, 프로그래머가 직접 수많은 규칙을 미리 정해주는 대신 프로그램 자체가 데이터를 통해 스스로 학습하도록 하는 방법. 

 

 

Supervised Learning

  • 특정 input에 대해 정답(label)이 있는 데이터 셋이 주어지는 경우
  • Regression
    • Regression의 output은 연속 값을 갖는다. 즉 주어진 input 변수를 output 변수에 대응시키는 어떤 연속함수를 찾는 과정

 

Unsepervised Learning

  • 정답(label)이 없는 데이터 셋으로 학습
  • 예측 결과에 대한 피드백이 없음. 잘못된 예측을 교정해줄 선생님이 없는 것
  • Clustering
    • 비슷한 것끼리 묶음

 

 

 

Deep Learning이란?

  • Neural Network의 여러 학습 알고리즘들을 일컫는 말
    • 많은 layer로 학습 가능 => deep learning
    • 기존에는
      • Backpropagation은 2 layer인 경우에만 작동 
      • layer이 3 이상이 되면 backpropagation이 잘 안되고 어차피 성능도 2 layer랑 비슷
      • 그래서 2 layer로만 learning 했었음
      • Backpropagation 설명 
  • 최근 AI 혁명의 긴 역사 끝에 나온 주요 기술
  • 특히 직관적인 문제들에 대해 매우 효과적
    • 사람들이 쉽게 수행하지만 어떻게 수행하는지 설명 못하는 일들
    • 단어나 이미지 인식

 

 

Deep learning 특징

  • layer가 많고, 연결성이 많다
    • 그렇기 때문에 input은 big data이어야 한다. 
  • 간단한 머신러닝 알고리즘들의 경우
    • 주어진 데이터의 representation에 의존
    • 원시 데이터(raw data) 그 자체로는 잘 안 씀
      • 데이터들을 features라는 잘 정리된 형태로 줌
      • 즉, 얼굴 인식 시킬 때, 눈/코/입/귀 이렇게 다 지정해줘서 줌 (딥러닝은 그냥 줘도 알아서 판단)
  • Deep learning의 경우
    • Representation으로 부터 예측 같은 output뿐 아니라 representation 자체도 학습
      • Representation: 데이터에서 feature 추출하는 것
      • 예:

 

 

 

Neural Network의 구조

  • Feedforward neural networks (a.k.a. multilayer perceptron)
    • 네트워크에 루프가 없음
    • 정보가 항상 앞으로만 정달됨
  • Recurrent neural network (RNN)
    • Feedback loops 가능

 

 

Feedforward neural network로 XOR 문제 해결하기

  • 두 개의 units을 포함하는 1 hidden layer를 가진 Feedforward NN

 

 

 

Activation function

  • 노드로부터 리턴되는 값을 정의
  • Perceptron은 실제로 binary step function을 사용
    • binary step function은 많은 경우에서 best가 아님
    • 가중치나 편향이 조금만 변해도 결과적으로 완전히 반대가 되는 결과를 낼 수 있음

 

Sigmoid unit

  • binary step과 비슷
  • binary step보다 flexible해서 binary classification 문제에서 적합함
  • 가중치나 편향의 작은 변화는 결과에서 조금의 변화밖에 주지 않음
  • 때로는 gradient descent algorithm에서 그다지 효과가 없기도 하다. 
    • 미분 가능해서 gradient descent algorithm에서 사용 가능

 

 

Learning with training data in neural network

  • NN에서 'learning'의 의미?
    • 트레이닝 데이터가 주어지고, cost function을 최소화하는 최적의 가중치와 편향을 찾는 것
  • Cost function
    • 예측 값과 원하는 결과가 얼마나 다른가 보여줌
    • e.g. 간단한 quadratic function
      • x: input
      • y(x): x에 대한 원하는 결과

 

 

Gradient Descent Algorithm

 

 

Stochastic Gradient Destcent

 

 

Gradient Descent Algorithm의 문제점

  • Vanishing gradient problem
    • 어떤 layer에서 gradient가 0의 가까운 값을 가지면 업데이트가 거의 일어나지 않게 된다.
    • -> 훈련이 안됨 (cost가 0에 수렴되지 않음)
  • Local minima
    • 학습이 cost function의 부분적인 최소값에 갇혀서 더 이상 진행하지 못하는 현상
    • 그래프가 울퉁불퉁하게 생겼을 때, global minimum을 찾지 못하고 local minimum에 갇히는 현상
  • OSscillation
    • cost function의 최소점에서 좌우로 진동하면서 최소점에 도달하지 못하는 현상
  • Plateau(평원)
    • 최소점이 아니면서 0에 가까운 gradient가 계속 이어지면서 고착되는 현상
    • 그래프에 평평한 부분이 길게 있을 때, 진행을 못 함 

 

-> deep network로 위 문제들을 해결할 수 있게 됨

 

 

반응형
Comments