일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- PersistenceContext
- vfr video
- pytest
- JanusWebRTCServer
- Value too long for column
- table not found
- 코루틴 컨텍스트
- python
- addhooks
- taint
- terminal
- JanusWebRTC
- 티스토리챌린지
- JanusWebRTCGateway
- PytestPluginManager
- preemption #
- Spring Batch
- kotlin
- tolerated
- mp4fpsmod
- 겨울 부산
- 코루틴 빌더
- VARCHAR (1)
- 오블완
- 자원부족
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- JanusGateway
- 달인막창
- 깡돼후
- 개성국밥
너와 나의 스토리
Deep learning - ANN / CNN 본문
Deep learning은 ANN(Artificial Neural Network)를 기초로 하고 있다.
퍼셉트론에서 특정 임계치를 넘어야 신경이 전달되는 것을 Sigmoid function을 이용하여, weight을 업데이트 시켜 각 노드의 최적의 weight을 찾는 방식으로 작동 된다.
ANN(Artificial Neural Network)
ANN 문제점
- 학습과정에서 최적의 파라미터를 찾기 어렵다
sigmoid 함수의 문제점 때문 (local minima를 global minimum으로 인식)
- Overfitting 문제
- 학습 시간이 너무 느리다
은닉층 증가될 수록 연산량 급격히 증가
ANN 문제 개선
- overfitting -> initialize point algorithm (pre-training을 통해)
- local minima -> ReLU, Drop-out 기법
- 느린 학습 시간 -> 그래픽 카드의 발전 (GPU, CUDA)
DNN(Deep Neural Network)
- 인공 신경망(ANN)의 은닉층이 2개 이상
- 컴퓨터가 스스로 분류레이블을 만들어 내고, 공간 왜곡, 데이터를 구분짓는 과정을 반복하여 최적의 구분선을 도출
- 많은 데이터와 박복학습 필요
- Pre-training 기법과 Back-propagation을 통해 현재 최적의 학습방법으로 사용
- DNN 응용 알고리즘 - CNN / RNN / LSTM / GRU
CNN(Convolutional Neural Network)
- 사람의 시신경 구조 모방한 구조
- 시각 분야에 국한되지 않고 음성 인식, 자연어 처리 같은 다른 작업에도 많이 사용됨
- 데이터를 feature로 추출하여 이 feature들의 패턴을 파악하는 구조
- CNN algorithm- Convolution 과정과 Pooling 과정을 통해 진행된다.
(Covolution Layer와 Pooling Layer를 복합적으로 구성하여 알고리즘 만듦)
Covolution 과정
- 데이터 특징 추출하는 과정
- 데이터에 각 성분의 인접 성분들을 조사해 특징을 파악
- 여기서 도출된 장을 Convolution layer이라고 부른다.
- 즉, 이미지의 특정 부분을 추상화하여 특정 층으로 표현한다. (압축과정)
- 파라미터의 개수를 효과적으로 줄여준다
- Filter와 Activation Function으로 이루어져 있다
ㄴ Filter: feature이 데이터에 있는지 없는지 검출하는 함수이다. (데이터가 있으면 1, 없으면 0)
ㄴ Activation Function: feature의 유무를 수치화 하기 위해 비선형 값으로 바꿔주는 함수
ㄴ Filter의 과정을 통해 1과 0으로 분류된 데이터가 수치화 된다.
Pooling 과정
- Convolution 과정을 거친 layer의 사이즈를 줄여주는 과정
- 데이터 사이즈 줄이고, 노이즈 상쇄시키고, 미세한 부분에서 일관적인 feature 제공
- 이 과정을 Sub-sampling이라고 부르며 Max-pooling / Average-pooling / L2-norm pooling 방법이 있다
- 보통 Convolution 과정에서 만들어진 feature들의 가장 큰 값만 가져와 사이즈를 줄인다
출처: Hands-On Machine Learning with Scikit-Learn & Tensorflow
'Data Analysis > Machine learning' 카테고리의 다른 글
모두를 위한 딥러닝 - RNN 실습 (5) (0) | 2019.08.12 |
---|---|
"Efficient Online Learning Algorithms Based on LSTM Neural Networks" 논문 소개 & 개념 정리 - LSTM 기반의 online learning (0) | 2019.08.10 |
모두를 위한 딥러닝 - RNN 실습(4) (0) | 2019.08.07 |
모두를 위한 딥러닝 - RNN 실습(3) (0) | 2019.08.07 |
모두를 위한 딥러닝 - RNN 실습(2) (0) | 2019.08.07 |