개요
- 회사에서 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. 강화 학습이 있음.
종류
- 지도 학습 (Supervised learning)
- 사람이 각각의 input(x)에 대해 label(y)을 달아 놓은 (=지도) 데이터를 컴퓨터가 학습 (하여 예측)
- label(y)이 이산적: 분류(classification) 문제, label(y)이 연속적: 회귀(regression) 문제
- 비지도 학습 (Unsupervised learning)
- 사람없이 컴퓨터가 스스로 label(y)이 없는 데이터에 대해 학습
- 즉 y값 없이 x값 만을 이용하여 학습
- 강화 학습 (Reinforcement learning)
- 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습
= 행동을 취할 때마다 외부 환경에서 보상이 주어지는데, 이러한 보상을 최대화 하는 방향 (=강화)으로 학습 - 예시: 알파고
- 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습
- 내가 지금까지 구현한 모델과 경험해본 프로젝트는 (e.g. 이미지 분류, 자연어 처리, object-detection) 지도 학습에 속함
구성 요소
- 데이터
- 내가 알고 있는 입력값 x와 출력값 y가 있는 그 데이터
= 즉 함수에 넣을 수 있는 입력값과 그 결과
- 내가 알고 있는 입력값 x와 출력값 y가 있는 그 데이터
- 모형 (Model)
- 입력값(x)과 목표값(y) 사이의 관계를 나타내는 식
- 모형의 몇 개의 모수(parameter)로 대표될 수 있음 → 예시: 선형함수의 경우 기울기, y절편
- 예시: 통계학 모형에서 사용되는 모형들이 모두 예시가 될 수 있음
- 선형 회귀모형 (Linear regression model)
- 그래프
- 추정된 모형 예시
- 출처: https://modern-manual.tistory.com/entry/선형-회귀-분석-예시로-쉽게-이해하기
- 그래프
- 선형 회귀모형 (Linear regression model)
- 로지스틱 회귀모형 (Logistic regression model)
: 이하 예시는 활성 함수 중 하나인 sigmoid function- 그래프 (로지스틱 회귀 함수 그림)
- 추정된 모형 예시
- 그래프 (로지스틱 회귀 함수 그림)
- 목적 함수 (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 손실 함수라고 표현됨. 그러나 손실 함수는 목적 함수의 일부임을 명심!
- 목적 함수 = 손실 함수 or 손실 함수 외의 함수
- 최적화 알고리즘 (Optimization algorithm)
- 목적 함수를 최소화 (= 최적화) 하는 모수를 찾기 위한 알고리즘
- 예시: Gradient Descent algorithm (GD), Newton Raphson method, EM algorithm 등
- 다양한 알고리즘 예시가 있지만 딥러닝에서는 주로 GD 기반의 최적화 알고리즘을 사용함
결론
- 딥러닝 ⊂ 기계 학습
- 양자 차이점: 사용 모형
→ 기계 학습: 인공 신경망, 딥러닝: 심층 인공 신경망 사용
- 인공신경망(artificial neural network)
- 머신러닝에서 연구되고 있는 학습 모델 중 하나.
- 주로 패턴 인식에 쓰이는 기술, 인간의 뇌의 뉴런과 시냅스의 연결을 프로그램으로 재현하는 것
- 딥러닝(Deep Learning)은 심층 인공 신경망 (Deep neural networks)을 기초로 해서 발전
- 딥러닝의 등장으로 인공지능 분야가 크게 발전
- 인공신경망(artificial neural network)
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. 사람들이 그 영화를 영화관에서 보는 이유 분석) |
- 참고 자료
- 인공지능, 머신러닝, 딥러닝 입문, 김의중 지음, 위키북스 (77p, 100p)
- Coursera Data Science 강의; https://www.coursera.org/learn/data-science-course/
- https://brunch.co.kr/@gdhan/2
'AI > Image' 카테고리의 다른 글
[Tensorflow-models] face-landmarks-detection - 1. Model card (0) | 2023.12.22 |
---|---|
[Tensorflow-models] hand-pose-detection - 1. Model card (1) | 2023.12.20 |
[Tensorflow-models] HTML - clearRect() 함수 (0) | 2023.11.30 |
[Tensorflow-models] estimateHands(video) vs estimateHands(image) (0) | 2023.11.30 |
[Tensorflow-models] model loading - 2. npm install 해야 할 최소한의 모듈 (0) | 2023.11.30 |