tensorflow dropout 예제

drop_out이 layer_1과 반대로 최종 줄에서 사용되는 위치입니다. 그렇지 않으면 드롭아웃 선을 무시합니다. 신경망의 숨겨진 계층에 드롭아웃을 소개합니다. 주의사항: 중퇴는 평가가 아닌 교육 중에만 도입되어야 하며, 그렇지 않으면 평가 결과도 검색됩니다. TensorFlow는 nn.dropout()을 제공하지만 교육 중에만 삽입되었는지 확인해야 합니다. 네트워크의 정확도를 높이기 위해 Tensorflow의 DropOut을 적용하려면 어떻게 해야 합니까? 감사합니다! tf.nn.dropout은 함수 모델()에서 호출되지만, 드롭아웃 기술을 신경망에 적용한 후 정확도는 변경된 것처럼 보였으며, 여기에 결과: 너무 많이 떨어뜨리지 마십시오. 적어도 예제). 이 문서에서 읽을 수 있듯이 드롭아웃은 반복 연결이 아닌 TensorFlow의 RNN 계층 간에 구현됩니다. 드롭아웃은 정규화 기술입니다. 그리고 udacity 딥 러닝 과정 할당을 완료하기 위해 오버 피팅을 줄이기 위해 notMNIST 데이터에 적용하려고합니다.tf.nn.dropout을 호출하는 방법에 대한 텐서 플로우의 문서를 읽었습니다. 그리고 여기에 내 코드는 기본적으로 각 요소가 독립적으로 유지또는 삭제됩니다. noise_shape를 지정하면 x 모양으로 브로드캐스트할 수 있어야 하며 noise_shape[i] == 모양(x)[i]이 있는 치수만 독립적으로 결정을 내릴 수 있습니다.

예를 들어 shape(x) = [k, l, m, n] 및 noise_shape = [k, 1, 1, n]의 경우 각 배치 및 채널 구성 요소는 독립적으로 유지되고 각 행과 열은 함께 유지되거나 유지되지 않습니다. 이전 부분에서는 다층 LSTM RNN을 구축했습니다. 이 게시물에서 우리는 덜 중퇴라는 것을 추가하여 (정규화라고 함) 과적합하는 경향이 있습니다. 그것은 무작위로 훈련 하는 동안 뉴런의 활성화를 해제 하는 이상한 트릭, 그리고 다른 사람의 사이에서 제프리 힌튼에 의해 개척 되었다, 여기 그들의 초기 기사를 읽을 수 있습니다. 다층 모델을 사용하여 최상의 성능을 얻으려고 노력하십시오! 심층 네트워크를 사용하여 가장 잘 보고된 테스트 정확도는 97.1%입니다. 탐색할 수 있는 한 가지 방법은 여러 레이어를 추가하는 것입니다. 이 과제의 목표는 정규화 기법을 탐색하는 것입니다. 다행히이것은 TensorFlow에서 할 수있는 매우 간단합니다, 줄 41-42 사이에 당신은 단순히 드롭 아웃하지 않을 확률로 드롭 아웃 래퍼를 추가, 라는 output_keep_prob. 아래 코드에 줄 41-42를 변경. 과적합의 극단적 인 경우를 보여 드리겠습니다. 교육 데이터를 몇 개의 일괄 처리로 만 제한합니다.

어떻게 됩니까? 로지스틱 및 신경망 모델 모두에 대해 L2 정규화를 도입하고 조정합니다. L2 손실에 무게의 규범에 페널티를 추가 하는 금액 기억. 텐서플로우에서는 nn.l2_loss(t)를 사용하여 텐서 t에 대한 L2 손실을 계산할 수 있습니다. 적정한 정규화는 유효성 검사/테스트 정확도를 향상시켜야 합니다. 보시다시피 교육 정확도는 높지만 검증 정확도는 낮습니다. 여기에 오버 피팅이 있다. L2 손실 함수를 가진 다항 로지스틱 회귀 x의 각 요소에 대해 확률 속도, 출력 0, 그렇지 않으면 입력을 1 / (1 속도)으로 확장합니다. 크기 조정은 예상 합계가 변경되지 않는 것입니다. 먼저 notmist.ipynb에서 생성 한 데이터를 다시로드합니다. 위의 L2 정규화를 사용하여 신경망에서 계속 다음 부분에서는 일괄 처리 정규화라는 것을 사용하여 다시 정규화할 것입니다.