티스토리 뷰
▶딥러닝(ANN, DNN, CNN, RNN, SLP, MLP) 비교
1. Machine Learning vs Deep Learning
딥러닝과 머신러닝의 차이점
실질적으로는 인공지능 > 머신러닝 > 딥러닝 이렇게 포함관계가 됩니다.
하지만 머신러닝과 딥러닝의 차이는 '사람의 개입 여부'가 되겠습니다.
머신러닝과 딥러닝 모두 데이터를 분류하는데 사용하는 기술이지만, 두 기술의 가장 큰 차이점은 사람의 개입 여부입니다.
머신러닝은 주어진 데이터를 인간이 먼저 처리합니다.
사람이 먼저 컴퓨터에 특정 패턴을 추출하는 방법을 지시하고, 그 이후 컴퓨터가 스스로 데이터의 특징을 분석하고 축적합니다.
이렇게 축적된 데이터를 바탕으로 문제를 해결하도록 하는건데요.
예를 들어 개와 고양이의 사진을 보고 개와 고양이의 특징을 추출한 후 많은 예시를 통해 컴퓨터를 학습시키고 식별하게 만듭니다.
반면에 딥러닝은 머신러닝에서 사람이 하던 패턴 추출 작업이 생략됩니다.
컴퓨터가 스스로 데이터를 기반으로 학습할 수 있도록 정해진 신경망을 컴퓨터에게 주고, 어린아이가 학습하는 것처럼 경험 중심으로 학습을 수행합니다.
즉, 인간이 개, 고양이의 특성을 추려 사전에 정의된 알고리즘과 규칙을 적용하는 머신러닝과 달리, 딥러닝에서는 심층 신경망을 통해 스스로 개, 고양이의 특성을 훈련하여 개와 고양이를 분류할 수 있습니다.
머신러닝 과정에서 어떻게 패턴을 추출할 것인지를 정하는 것은 '모델'을 정했다고 표현합니다.
어떤 모델을 활용할지에 따라서 계산하는 방법도 다양해집니다.
딥러닝에서 또한 특정 신경망 구조를 역시 '모델'이라고 표현합니다.
최적의 딥러닝 구조(architecture) Neural Architecture Search(NAS)를 찾아주는 방법도 있습니다.
초기에 어떻게 신경망을 시작할지, 간단한 정보를 주면 최적의 신경망을 탐색하는 알고리즘입니다.
그러나 이 과정에서 엄청난 연산량이 필요하여 일반적인 기관에서 사용하는 데에는 한계가 있습니다.
딥러닝에서 신경망의 구조를 고르듯이, 머신러닝에서도 다양한 알고리즘(SVM, Random Forest 등)을 골라주어야 합니다.
2. ANN(Artificial Neural Network) - 인공신경망
- 모든 비선형 함수를 학습
- 모든 입력을 출력에 매핑하는 가중치를 학습할 수 있는 능력
- 활성화 함수는 네트워크의 비선형 속성 도입으로 입력과 출력 사이 복잡한 학습을 하는데 도움
▲ ANN의 문제점
- 학습과정에서 파라미터의 최적값을 찾기 어렵다.
- 출력값을 결정하는 활성화함수의 사용은 기울기 값에 의해 weight가 결정되었는데 이런 gradient 값이 뒤로 갈수록 점점 작아져 0에 수렴하는 오류를 낳기도 하고 부분적인 에러를 최저 에러로 인식하여 더이상 학습하지 않는 경우도 있습니다.
- Overfitting에 따른 문제
- 학습시간이 너무 느리다.
- 은닉층이 많으면 학습하는데에 정확도가 올라가지만, 그만큼 연산량이 기하 급수적으로 늘어나게 됩니다.
3. DNN(Deep Neural Network) - 심층신경망
- ANN 문제 해결을 위해 은닉층 확대
- 2개 이상의 은닉층으로 학습(보통 Deep Learning은 3개 이상)
4. CNN(Convolution Neural Network) - 컨볼루셔널신경망, 합성곱신경망
- 정보추출, 문장분류, 얼굴인식 등 널리 사용, 특히 이미지 및 비디오 처리에 활용
- 핵심 요소는 커널(컨볼루션 연산을 사용하여 입력에서 관련 기능 추출)이라는 필터
- 암시적으로 필터를 자동으로 학습(입력 데이터에서 올바른 관련 기능 추출에 도움)
- 입력 데이터의 특징을 추출하여 특징들의 패턴 파악하는 구조
- Convolution과정과 Pooling 과정으로 진행
5. RNN(Recurrent Neural Network) - 순환신경망
- RNN은 입력 데이터에 있는 순차 정보 캡처
- O1, O2, O3, O4,는 현재 단어만 아니라 이전 단어에도 의존(과거 학습을 Weight를 통해 현재학습에 반영)
- 여러 단계에서 매개 변수 공유 → 훈련 매개 변수 감소 및 계산 비용 감소
- 반복적이고 순차적인 데이터에 효과
RNN 알고리즘으 반복적이고 순차적인 데이터(Sequential data)학습에 특화된 인공신경망의 한 종류입니다.
내부의 순환구조가 들어있다는 특징을 가지고 있습니다.
순환구조를 이용하여 과거의 학습을 Weight를 통해 현재 학습에 반영합니다.
기존의 지속적이고 반복적이며 순차적인 데이터 학습의 한계를 해결한 알고리즘 입니다.
현재의 학습과 과거의 학습의 연결을 가능하게 하고 시간에 종속된다는 특징도 가지고 있습니다.
음성 웨이브폼을 파악하거나, 텍스트의 앞 뒤 성분을 파악할 때 주로 사용됩니다.
6. SLP(Single Layer Perceptron) - 단층 퍼셉트론
- 퍼셉트론: 학습 능력을 갖는 패턴분류장치
- 단일 퍼셉트론으로 구성
7. MLP(Multi Layer Perceptron) - 다층 퍼셉트론
- 여러 층의 퍼셉트론으로 적어도 1개 이상의 은닉층(hidden layer) 보유
- 일반적으로 지도학습
- 역전파 알고리즘(Backpropagation)으로 학습 - 다층 퍼셉트론의 문제 해결을 위한 알고리즘
- 경사하강법으로 에러를 최소화
- Overfitting: training set에 너무 최적화되어 실제 데이터에서 정확도 하락
- Vanishing Gradient: 역전파로 에러를 뒤로 전파하면서 w를 업데이트 하는데 여러 레이어를 거치면서 경사하강법으로 미분이 계속되어 에러값이 현저히 작아서 학습이 되지 않는 현상
'빅데이터 인공지능 > 딥러닝' 카테고리의 다른 글
[딥러닝] MLP(Multi-Layer Perceptron) A to Z (0) | 2022.11.25 |
---|---|
[딥러닝] CNN(Convolutional Neural Network)과 MLP(Multi Layer Perceptron) 의 차이 (0) | 2022.11.19 |
[딥러닝] CNN(Convolutional Neural Network) 모델 구현 (0) | 2022.09.18 |
[딥러닝] CNN(Convolutional Neural Network) 알아보기 (0) | 2022.09.18 |
[딥러닝] Oxford Pets Dataset 실습🎯 (0) | 2022.09.18 |
- Total
- Today
- Yesterday
- TypeScript
- styled-components
- 프론트엔드
- react-query
- 타입스크립트
- 딥러닝
- JSP
- rtl
- frontend
- 인프런
- 머신러닝
- react
- testing
- Python
- 스타일 컴포넌트 styled-components
- jest
- 자바스크립트 기초
- CSS
- 리액트
- 프론트엔드 기초
- next.js
- 프로젝트 회고
- 리액트 훅
- 자바
- HTML
- 디프만
- 파이썬
- 데이터분석
- 자바스크립트
- 프론트엔드 공부
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |