TensorBoard 사용하기 강좌를 정리한다
TensorBoard 사용하기
5개의 step 을 거친다.
1) 어떤것을 로깅할 것인지 정한다
2) all summary
3) summary 기록할 파일 위치 지정
4) session.run 실행
5) 별도 터미널에서 tensorboard --logdir=<지정폴더> 수행
Scalar (스케일러)
Histogram
다차원 텐서의 경우 사용함.
Graph
흐름도를 보고 싶을 경우 사용함.
- name_scope 사용하여 Layer를 구분하여 보기 좋게 한다. (접혔다 폈다 할 수 있음)
remote에 있는 tensorboard 보기
Multi run 하기
부모 폴더만을 지정하면 child folder를 자동으로 보여줌
9 Layer Tensorboard 구성시 문제점
Deep Network을 다음과 같이 구성하고 Learning을 시킨 것이 Deep Learning이다.
name_scope로 구분하여 Tensorboard에 표현 (강좌)
deep network를 구성할 때 코드로만 보면 어려울 수 있다. 이것을 시각화하여 다음과 같이 표현한다.
결과 : 서로의 연결과 가중치(Weight)를 쉽게 볼 수 있다.
9 layer를 거친다고 해서 정확도가 높아지는 것은 아니다. 2,3 layer는 잘 학습이 되지만 3 layer넘어가면 학습도가 떨어진다.
이유: 결과의 1보다 작은 소숫점의 값을 multiply할 수록 더 작은 소숫점 값이 되어 버려서 gradient값이 살라진게 된다.
Network으로 표현하면 좌측으로 갈 수록 점점 정확도가 떨어짐. 2006년까지 겨울이 찾아옮.
- 힌튼교수가 해결: Sigmoid를 잘 못 쓴것 같다.
- ReLU를 적용해 보자.
ReLU (Rectified Linear Unit, 렐루)
힌트 교수의 잘 못한 부분중 4번째
ReLU 사용
- z값이 커질수로 1보다 작다라는 sigmoid를 0보다 커질 수록 갈 때까지 커진다.
- 대신 0보다 작으면 무조건 0이 된다.
Sigmoid 대신 relu를 사용한다. 수식으로 표현하면 하고 앞으로 neural network에서는 최종 Layer를 빼고 hidden부분은 sigmoid를 사용하지 않고 relu를 사용해야 한다.
9 layer의 relu와 sigmoid 사용 예
Activation Function
sigmoid와 relu등을 activation function이라고 하는데 다른 것들도 있다.
- sigmoid
- ReLU
- Leaky ReLU: 0이하일 때 약간 값을 살려줌
- ELU: 0이하일 때 원하는 값으로 살려줌
- Maxout
비교하면 LeRU 계열의 정확도가 높다.
참조
'Deep Learning > NN by Sung Kim' 카테고리의 다른 글
[Deep Learning] Dropout 과 앙상블 (0) | 2018.07.09 |
---|---|
[Deep Learning] Weight 초기화 잘하기 (0) | 2018.07.09 |
[Deirvative] 미분 정리 (0) | 2018.07.06 |
[Deep Learning] XOR 문제 풀기 과정 및 수식 (0) | 2018.07.06 |
[Tensorflow] Manipulation - matmul, reshape, zip, etc (0) | 2018.07.06 |