개요

  • handpose, face, pose - detection의 model type은 모두 CNN
  • = 즉 모델의 전반적인 구조, 학습하여 결과를 도출하는 방식이 모두 CNN을 근본으로 하고, 모델 아키텍처도 advanced CNN 의 양상을 띄고 있음
  • 따라서 이번 글에서는 CNN이 포함된 큰 카테고리인 DNN을 설명하기 위해 NN (Neural Network)을 먼저 설명하고, 다음 글에서 DNN에 대해 설명할 것임
  • 구체적인 CNN에 대해서는 face-detection 시리즈에서 설명할 예정임.

 


 

1. 의미

  • 인공 신경망 모형 (Artificial Neural Network): 일반적으로 artificial은 떼고 말함
  • 뇌 구조 (신경망)을 모방하여 만든 수학적 모형
    = 즉 인간의 뇌가 문제를 해결하는 방식과 유사하게 구현
  • 머신러닝의 한 분야

 


 

2. 함수 구조

수식

그림

 

용어 설명
  • 활성 함수 (activation function) 
    • 인공 신경망에서 입력 신호의 가중치 합을 출력 신호로 변환하는 함수 
    • 특징: 비선형성 (non-linearity) -> 입력에 대한 비선형 변환을 통해 신경망이 다양한 종류의 복잡한 함수를 학습
    • 활성 함수의 형태

  • 은닉층 (hidden layer)
    : 입력층 (input layer)과 출력층 (output layer) 사이에 위치하는 모든 층
  • 완전 연결 계층 (fully connected layer)
    : 한 층(layer)의 모든 뉴런이 그 다음 층(layer)의 모든 뉴런과 연결된 상태

 


 

3. 이론적 성질

논문 원문
  • Universal approximator (Cybenko, 1989 and Homik et al, 1989)
  • Theorem 2 of Cybenko (1989)

 

해석

N을 충분히 키울 수 있으면 (여기서는 무한대로 표현됨), 모든 계층의 모든 x에 대하여 f(x)는 실제 함수의 합인 G(x)와 정밀도 ϵ (0보다 큰 아주 작은 값)만큼 가깝게 표현 가능
<-> N을 충분히 키울 수 있으면, Neural network를 표현한 f(x)는 다양한 함수 형태로 표현될 수 있음 
<-> t가 +-무한대로 가면, 활성함수 (여기서는 sigmoid)가 +-1로 감 

개요

  • 회사에서 Tensorflow.js 의 모델 중 hand-pose-detection, face-landmarks-detection, pose-detection을 이용하여 자사 제품에 구현하는 프로젝트 진행
  • 각 모델의 model card를 보니 model type이 모두 CNN 이었음
  • CNN은 딥러닝에 포함되는 개념이므로, 딥러닝 및 이를 포함하는 머신러닝 의미까지 정리할 필요가 있다고 생각함
  • 참고로 머신러닝, 딥러닝은 모두 인공지능에 포함하는 개념
  • 이하 내용의 출처: 학부 시절 강의 자료를 각색하고, 구글링한 것을 바탕으로 하고, 특별하게 참고한 내용이 있을 경우 링크 걸었음

 


 

1. 머신러닝 (Machine-learning)

의미
  • “기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야” (미국 컴퓨터과학자 아서 사무엘, 1959)
    = 즉 머신러닝은 1. 학습하여 2. 예측 (=기계가 일일이 코드로 명시하지 않은 동작을 실행) 하는 것 까지임
  • 종류는 1. 지도 학습 2. 비지도 학습 3. 강화 학습이 있음.

 

종류
  1. 지도 학습 (Supervised learning)
    • 사람이 각각의 input(x)에 대해 label(y)을 달아 놓은 (=지도) 데이터를 컴퓨터가 학습 (하여 예측)
    • label(y)이 이산적: 분류(classification) 문제, label(y)이 연속적: 회귀(regression) 문제
  2. 비지도 학습 (Unsupervised learning)
    • 사람없이 컴퓨터가 스스로 label(y)이 없는 데이터에 대해 학습
    • 즉 y값 없이 x값 만을 이용하여 학습
  3. 강화 학습 (Reinforcement learning)
    • 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습
      = 행동을 취할 때마다 외부 환경에서 보상이 주어지는데, 이러한 보상을 최대화 하는 방향 (=강화)으로 학습
    • 예시: 알파고
  4. 내가 지금까지 구현한 모델과 경험해본 프로젝트는 (e.g. 이미지 분류, 자연어 처리, object-detection) 지도 학습에 속함

 

구성 요소
  1. 데이터
    • 내가 알고 있는 입력값 x와 출력값 y가 있는 그 데이터
      = 즉 함수에 넣을 수 있는 입력값과 그 결과

  2. 모형 (Model)
    • 입력값(x)과 목표값(y) 사이의 관계를 나타내는 식
    • 모형의 몇 개의 모수(parameter)로 대표될 수 있음 → 예시: 선형함수의 경우 기울기, y절편
    • 예시: 통계학 모형에서 사용되는 모형들이 모두 예시가 될 수 있음
    • 로지스틱 회귀모형 (Logistic regression model)
      : 이하 예시는 활성 함수 중 하나인 sigmoid function
      • 그래프 (로지스틱 회귀 함수 그림)
      • 추정된 모형 예시
       
  3. 목적 함수 (Objective function or Loss function)
    • 모수 성능 평가 척도
    • 목적 함수가 작을수록 모형이 데이터를 잘 설명
    • 종류: 오차 제곱 함수(MSE), 교차 엔트로피(Cross Entrophy), 로지스틱 손실 함수(Logistic Loss)등
    • 예시
      : 어떤 봉지에 물건을 담을 때 크기와 무게를 고려하여 담은 물건의 총액이 가장 크도록 담고 싶음
      → 목적 함수: 담는 물건의 총액
    • 오차 제곱 함수(Mean Squared Error)
      • 예측값과 실제값 사이 거리를 제곱하여 계산
      • 산식 : MSE = E의 값이 작을수록 알고리즘 성능이 좋음
      • 한계: 학습 속도가 느림
        • ∵ sigmoid의 도함수의 가로축에 해당하는 wx+b가 커질수록 기울기가 작아짐
        • 따라서 오류(error)가 더 큰 쪽의 gredient가 작아짐
          → 직접 산식으로 확인 https://brave-greenfrog.tistory.com/101
    • 교차 엔트로피(Cross Entrophy)
      • 예측값과 실제값 사이의 거리를 제곱하여 계산
      • 산식 (이진 분류의 경우)
        • 이때 p = sigmoid(wx+b)
        • 교차 엔트로피 l를 가중치 w로 미분하면 x(p-y)가 도출되고, bias로 미분하면 p-y가 도출됨
      • 오류(error)가 커질수록 → gradient가 더 크게 계산됨
      • 따라서 오류가 보다 큰 부분의 가중치를 많이 수정하게 되어, 더 빠른 속도로 학습이 이루어짐. 즉 MSE의 한계 보완
       
    • 로지스틱 손실 함수 (Logistic Loss function)
      : 분류 문제를 해결하기 위한 목적 함수  

    • 산식 (이진 분류의 경우) 주의할 점
      • 목적 함수 = 손실 함수 or 손실 함수 외의 함수
        -> 인공지능이 분류 문제를 푸는 경우가 많아 just 손실 함수라고 표현됨. 그러나 손실 함수는 목적 함수의 일부임을 명심!
  4. 최적화 알고리즘 (Optimization algorithm)
    • 목적 함수를 최소화 (= 최적화) 하는 모수를 찾기 위한 알고리즘
    • 예시: Gradient Descent algorithm (GD), Newton Raphson method, EM algorithm 등
    • 다양한 알고리즘 예시가 있지만 딥러닝에서는 주로 GD 기반의 최적화 알고리즘을 사용함

 

결론
  • 딥러닝 ⊂ 기계 학습
  • 양자 차이점: 사용 모형
    → 기계 학습: 인공 신경망, 딥러닝: 심층 인공 신경망 사용
    • 인공신경망(artificial neural network)
      • 머신러닝에서 연구되고 있는 학습 모델 중 하나.
      • 주로 패턴 인식에 쓰이는 기술, 인간의 뇌의 뉴런과 시냅스의 연결을 프로그램으로 재현하는 것
      • 딥러닝(Deep Learning)은 심층 인공 신경망 (Deep neural networks)을 기초로 해서 발전
      • 딥러닝의 등장으로 인공지능 분야가 크게 발전

 


 

2. 딥러닝 (Deep-learning)

의미
  • Deep Neural Network(DNN, 심층인공신경망)을 모형으로 사용하는 머신 러닝
    = 즉 DNN을 모형으로 기계가 학습하여 예측하는 것
    = DNN을 모형으로 기계가 일일히 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야
  • DNN
    : 2개 이상의 중간층을 가지고 있는 신경망 모형

 

응용 분야
  • 이미지 분석: 이미지 인식, 압축, 복원, 생성 등
    → 내가 수행한 handpose, face, pose - detection 프로젝트도 여기에 속함
  • 언어 분석: 구글 번역기, 챗봇
  • 음성 분석 : 인공지능 스피커, STT(Speech to Text)
  • 강화 학습 분야: 알파고, 무인자동차

 

기타
  • 딥러닝 모형을 구현할 수 있는 컴퓨팅 환경
    • Hardware: GPU or TPU
    • Python 프로그램: Tensorflow, Keras, Pytorch 등의 모듈
    • 개별 PC에서는 복잡
  • 딥러닝 개발 환경 : 구글 Colaboratory (Colab)!

 


3. 통계학과 인공지능 (머신러닝, 딥러닝) 의 관계

  • 인공지능, 머신러닝에서 가장 먼저 드는 사례가 선형 회귀 분석임. 또한 머신러닝 개념 및 구성 요소를 설명할 때 모수, 최적화 등 통계학의 개념이 자주 등장함. 따라서 양자의 관계에 대해 궁금해짐
  • 현재의 인공지능 방법론은 통계, 예측, 데이터 분석, 딥러닝, 머신러닝, 자연어 처리 등 여러 방법론을 복합적으로 활용함
  • “1987년부터 인공지능이 통계 등 과학적인 방법론을 채택했다”
    (인공지능, 현대적 접근 (Artificial Intelligence A Modern Approach, 3rd edition 25p)
구분 머신러닝 통계학
모델명 지도 학습 (예측 모델) 선형회귀분석
x, y 입력 x, 레이블 y 독립변수 x, 종속변수 y
파라미터 구하는 방법 학습 회귀식 추정
특징 정확한 ‘예측’에 집중 (ex. 영화 평가 예측의 정확도 구하기) 사람들의 ‘선택 이유’에 집중 (ex. 사람들이 그 영화를 영화관에서 보는 이유 분석)

 

+ Recent posts