Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- kotlin
- pytest
- Spring Batch
- 코루틴 컨텍스트
- tolerated
- vfr video
- preemption #
- JanusWebRTCServer
- 겨울 부산
- addhooks
- Value too long for column
- 티스토리챌린지
- 코루틴 빌더
- 오블완
- 자원부족
- taint
- JanusGateway
- 깡돼후
- JanusWebRTCGateway
- 달인막창
- JanusWebRTC
- PersistenceContext
- table not found
- mp4fpsmod
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- 개성국밥
- python
- terminal
- VARCHAR (1)
- PytestPluginManager
Archives
너와 나의 스토리
NN(Neural Network) - backpropagation 본문
반응형
* '핸즈온 머신러닝' 책의 내용을 기반으로 작성
● 퍼셉트론(Perceptron)
- 가장 간단한 인공 신경망 구조 중 하나
- TLU(threshold logic unit)라는 조금 다른 형태의 인공 뉴런을 기반으로 한다.
- 입력과 출력이 어떤 숫자고 각각의 입력 연결은 가중치와 연관되어 있다.
- 층이 하나뿐인 TLU로 구성된다.
- ● TLU
- 간단한 선형 이진 분류 문제에 사용할 수 있다.
- 입력의 선형 조합을 계산해서 그 결과가 임곗값을 넘어서면 양성 클래스를 출력하고 그렇지 않으면 음성 클래스를 출력한다. 여기에 편향 특성이 더해진다.
● 다층 퍼셉트론(Multi-Layer Perceptron) - MLP
- 여러 퍼셉트론을 쌓아올려 일부 제약을 줄일 수 있는데, 이런 신경망을 MLP라고 한다.
- [입력층 하나 + 은닉층 하나 이상 + 출력층]으로 구성됨
- * 은닉층: TLU층
- 출력층을 제외하고 모든 층은 편향 뉴런을 포함하며 다음 층과 완전히 연결되어 있다.
- 인공 신경망의 은닉층이 2개 이상일 때, 이를 심층 신경망(deep neural network; DNN)이라고 한다.
● 역전파(backpropagation)
- 각 훈련 샘플을 네트워크에 주입하고 연속되는 각 층의 뉴런마다 출력을 계산한다
- -> 예측할 때와 같은 정방향
- 그 후, 네트워크의 출력 오차(출력된 값과 실제 값의 차)를 계산한다.
- 출력 뉴런의 오차에 마지막 은닉층의 뉴런이 얼마나 기여했는지 측정한다.
- 그런 다음 이전 은닉층의 뉴런이 여기에 또 얼마나 기여했는지 측정한다
- -> 입력층 도달할 때까지 계속 측정
- 이는 오차 gradient를 후방으로 전파함으로써 네트워크의 모든 연결 가중치에 대한 오차 그래디언트를 효율적으로 계산한다.
- 역전파 알고리즘의 마지막 단계는 앞서 계산한 오차 그래디언트를 네트워크의 모든 연결 가중치에 반영하는 경사 하강법 스텝이다.
정리
1. 예측 (정방향 계산)
2. 오차 측정
3. 각 층을 거치면서 각 연결이 오차에 기여한 정도 측정 (역방향 계산)
4. 이 오차가 감소하도록 가중치 조금씩 조절
- 역전판 알고리즘이 쓸 수 있는 활성화 함수(activation function)
- tanh(z), ReLu
- tanh(z): 연속적이고 미분 가능, 출력 범위는 -1부터 1 사이 (로지스틱 함수는 0에서 1사이)
- ReLu(z):
- max(0,z)
- 연속적이지만 z=0에서 미분 불가
- 실제로 잘 작동하고 계산 속도가 빠름
- 출력에 최대값이 없다. -> 경사 하강법의 일부 문제 완화
- 경사 하강법의 문제:
- sigmoid 함수는 입력 x가 어느 정도 커지면 항상 1에 가까운 값을 출력하기 때문에, 입력의 변화가 출력에 반영되기 어렵다. 그 결과, 오차 함수의 가중치 매개 변수에 대한 편미분이 0에 가까운 값이되어, 경사 하강법의 학습이 늦어지는 문제가 있다. (vanishing gradient problem)
- layer가 많을 때, 미분 결과를 최초 layer까지 전달하는 것이 힘들다.
반응형
'Data Analysis > Machine learning' 카테고리의 다른 글
Approximate entropy(ApEn) (0) | 2019.07.31 |
---|---|
Keras 함수 / Numpy 함수 정리 (0) | 2019.07.29 |
tensorflow 기초 및 함수 정리 (0) | 2019.07.26 |
Computer Network Traffic - kaggle 실습 / RNN (0) | 2019.07.25 |
RNN & LSTM & GRU 완벽 정리 (0) | 2019.07.25 |
Comments