본문 바로가기

Python/DeepLearning

Tensorflow 기반 딥러닝 핵심과 활용

  1. AI 개요
  2. 머신러닝의 동작 원리
  3. 머신 러닝의 구현 방법 및 활용
  4. 딥 러닝의 구현 방법 및 활용

1. AI 개요

1) AI 개념

인간의 지능을 컴퓨터나 시스템 등으로 만든 것 또는 만들 수 있는 방법론이나 실현 가능성 등을 연구하는 기술 또는 과학
인공지능은 다양한 컴퓨터 과학 기술의 조합을 통해 사물을 더욱 똑똑하게 만드는 과학 기술을 일컫는다

  • Symbolic AI

룰을 기반으로 작동되는 AI(1950s~1980s)
1980년대 expert system(전문가 시스템)

  • Machine Learning

1990s
Statistics vs. Machine Learning (이론적 vs. 실험적)

  • Deep Learning

Learning representations from data
딥러닝은 뉴럴네트워크를 이용하는 계층적 representation learning임

2) AI 접근 기법 (모델링 + 알고리즘)

  • 일반적인 기법(Real-world task)

Real-world task → Program

Input : list 1000 web pages Ouput : 10 most relevant web pages

  • 모델링(Modeling)

L = list of web pages
f(x) = 10 * QueryMatch(x) + 3*PageRank(x)
formal task : Input : list L = {x의 집합} and a function f:X→R, Output k highest-scoring elements

  • 알고리즘(Algorithms)

Formal task : Modeling과 동일
Example : (k=2) = L:A,B,C,D f:3,2,7,1
Two algorithms :

  1. Scan through to find the largest, scan through again to find the second largest, etc.

  2. Sort L based on f, return first k elements.

3) Features

Machine Learning에서 feature란 Data가 가지고 있는 요소를 의미한다.

  • Real world problem을 formal task로 모델링할 때 사람이 Feature와 Data를 제공하면 적정한 weight를 알고리즘이 찾아줌
  • Feature를 얼마나 사람이 잘 제공해주느냐가 정말 중요함
  • 딥러닝이 나오기전에는 사람이 Feature를 어떻게 제공하느냐에 따라 성능이 아주 많이 차이남 (물체 인식에서 물체의 구도가 바뀌면 성능이 달라짐)
  • 딥러닝에서는 feature를 스스로 학습하여 primitive feature만 제공하면 feature를 스스로 학습하여 feature selection 과정을 건너뜀.
  • Feature Extraction

Example task : predict y, whether a string x is an email address
Question : what properties of x might be relevant for predicting y?
Feature extractor : Given input x, output a set of (feature name, feature value)
input : 'abc@gmail.com' →feature extractor→ 'Lenght, facOfAlphabet, Contains_@, endsWith_.com, endsWith_.org'

  • Feature Vector Notation

Mathematically, feature vector doesn't need feature names
For an input x, its feature vector is: x = [x1, x2, x3]

4) Generalization

  • 기계학습의 진정한 목표는 무엇인가?

Minimize error on the training set
minimize training error with regularization
minimize error on unseen future examples
learn about machines

  • Machine Learning

Learning algorithm maximizes accuracy on training examples
But we only care about accuracy on future test examples
How to generalize from training to test?

  • Overfitting

  • Hyperparameters

Properties of the learning algorithm
How do we choose hyperparameters?

5) AI 모델링 종류와 방법

Reflex - States - Variables - Logic

→ 방향으로 갈 수록 High-level intelligence

  • Reflex-based Model

Sentiment Analysis
Reflex-based Models
Machine Learning Approach

  • States-based Model

Text Reconstruction
State-based Models(ex:Pac-Man)

  • Variable-based Model

constraint Satisfaction Problem
Event Scheduling

  • Logic-based Model

2. 머신러닝의 동작원리

1) 머신러닝개요와 프로젝트 프로세스

머신러닝이란 기존 데이터를 이용해 아직 일어나지 않은 미지의 일을 예측하기 위해 만들어진 기법

(1) 학습

  • 학습에 의해 지식이 축적되거나 새로운 기능을 습득하거나 혹은 경험이 풍부해지는 등 학습자의 내용 상태가 변화함
  • 이 변화는 학습자가 외부 환경에 따라 적합한 방향으로 발현함
  • 새로운 문제가 나타났을 때 더 현명하게 문제에 대응할 수 있게 됨
  • 컴퓨터 프로그램이 바깥 세상과 상호 작용하여 그 결과에 따라 내용 상태를 변경해 가는 과정

머신러닝은 데이터가 입력되고 패턴이 분석되는 학습 과정을 거쳐 미래를 예측하는 힘을 가지고 있다.

(2) 필요한 요소

  • 입력 데이터
  • 기대 출력
  • 알고리즘의 성능을 측정하는 방법

성능 측정 이후 작동 방식을 교정하기 위한 신호로 다시 피드백 됨

(3) 데이터에서 표현(representation)을 학습하기

  • 머신러닝모델은 입력 데이터를 의미있는 출력으로 변환함
  • 머신러닝과 딥러닝의 핵심은 의미있는 데이터로의 변환임
  • 머신 러닝 모델은 입력 데이터에서 적절한 표현을 찾는 것임

표현이란 무엇인가?

  • 데이터를 인코딩하거나 묘사하기 위해 데이터를 바라보는 다른 방법
  • 어떤 표현으로는 해결하기 힘든 문제가 어떤 표현으로는 쉽게 해결될 수 있음

머신러닝의 핵심은 표현(representation)과 일반화(generalization)가 있다. 표현은 데이터의 평가이며 일반화란 아직 알 수 없는 데이터에 대한 처리이다.

(4) 머신러닝의 분류

  • 지도학습 : 정답을 주고 컴퓨터가 이 정답을 맞출 수 있도록 학습
  • 비지도 학습 : 정답을 주지 않고 데이터에 숨겨진 특징이나 구조를 발견
  • 강화 학습 : 에이전트가 다양한 액션을 취하면서 최적의 액션 집합을 탐색

2) 학습모델과 회귀분석

  • 모델이란 현재 상태를 어떠한 시각으로 바라보고 어떠한 기대를 하고 있는 가 하는 것이다.
  • 모델은 데이터를 어떻게 바라볼 것인지에 대한 가정이다.
  • 머신러닝의 과정은 모델 정하기 - 모델 수식화하기 - 모델 학습하기 - 모델 평가하기의 반복이다.

(1) 모델의 종류

머신러닝/딥러닝의 뼈대는 선형 회귀와 로지스틱 회귀이다.

  • 선형 모델

선형 회귀 : 단순 선형회귀, 다중 선형회귀

  • 의사결정 트리
  • 랜덤 포레스트 모델

  • 순차 모델

CRD(Conditional Random Field)
RNN(Recurrent Neural Net)

  • 그래프 모델

마르코프 랜덤 필드

선을 그리고 나면 오차를 평가해야한다. 이 때에 사용하는 알고리즘이 평균 제곱근 오차 알고리즘이다. 이 오차율을 통해 회귀 모델의 정확도를 평가한다.

3) 가설함수 및 비용함수의 이해

(1) 가설함수(Hypothesis) : 입력데이터 x에 대해서 출력된 y를 보고 w를 찾아가는 방식으로 학습을 전개함

(2) 비용함수(Cost) : 머신러닝 알고리즘에서 차이 값을 비용이라고 함.

4) 오차수정과 경사 하강법

(1) 오차 수정하기

  • 선형 회귀식 y=ax+b에서 기울기 a를 너무 크게 잡거나 너무 작게 잡으면 오차카 커짐
  • 오차가 가장 작은 점을 구하기 위해서 미분을 사용함 (최소점 생각)
  • 경사 하강법(Gradient Decent)

5) 로지스틱 회귀와 활성화 함수

참과 거짓 중에 하나의 결과를 내놓는 과정이며 최적의 예측 값을 내놓는다.

3. 머신 러닝의 구현 방법 및 활용

직접 코드 구현

4. 딥 러닝의 구현 방법 및 활용

직접 코드 구현