드롭아웃 신경 네트워크 계층에서 Keras 설명했

기계 학습은 궁극적으로 사용한 예측 결과의 특징이다. 따라서 모델의 성능을 일반화하기 위해 우리가 할 수있는 일은 순 이득으로 간주됩니다. 드롭아웃은 모델이 과적합을 방지하는 데 사용되는 기술입니다. 드롭 아웃은 훈련 단계의 각 업데이트시 숨겨진 단위(숨겨진 레이어를 구성하는 뉴런)의 나가는 가장자리를 무작위로 0 으로 설정하여 작동합니다. 드롭아웃 레이어에 대한 케라스 문서를 살펴보면,제프리 힌튼과 친구들이 쓴 백서에 대한 링크를 볼 수 있습니다.이 예제에서는 케라스를 사용하여 손으로 쓴 숫자를 인식하는 것을 목표로 신경망을 구축할 것입니다.우리는 우리의 프로그램에 데이터를 가져올 수 있습니다. 데이터는 이미 교육 및 테스트 세트로 분할되어 있습니다.우리가 작업하고있는 것을 살펴 보겠습니다.2018 년 11 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 12 월 1 일-2018 년 우리는 모델을 훈련을 완료 한 후,그것은 다섯으로 앞의 이미지를 인식 할 수 있어야한다.우리가 미리 수행해야하는 약간의 전처리가 있습니다. 우리는 픽셀(기능)이 0 에서 1 사이가되도록 표준화합니다. 이를 통해 모델은 훨씬 더 빠른 솔루션으로 수렴 할 수 있습니다. 다음으로 주어진 샘플에 대한 각 대상 레이블을 숫자 1 의 인덱스가 이미지가 나타내는 숫자를 나타내는 1 과 0 의 배열로 변환합니다. 그렇지 않으면 우리의 모델은 숫자 9 를 숫자 3 보다 높은 우선 순위를 갖는 것으로 해석하기 때문에 이렇게 합니다.2 차원 행렬을 신경망에 공급하기 전에 각 후속 행을 앞에 추가하여이를 1 차원 배열로 변환하는 평탄화 레이어를 사용합니다. 우리는 각각 128 개의 뉴런으로 구성된 두 개의 숨겨진 레이어와 10 개의 뉴런으로 구성된 출력 레이어를 사용할 것입니다. 소프트맥스 활성화 함수는 샘플이 주어진 숫자를 나타낼 확률을 반환합니다.2018 년 10 월 15 일(토)~2018 년 11 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 우리는 클래스를 예측하려고 노력하고 있으며 범주 형 교차 로피를 손실 함수로 사용합니다. 우리는 정확도를 사용하여 모델의 성능을 측정 할 것입니다.유효성 검사를 위해 데이터의 10%를 따로 설정했습니다. 우리는 이것을 사용하여 드롭 아웃이 있거나없는 모델의 과잉 적합 경향을 비교할 것입니다. 32 의 배치 크기는 신경망을 통해 32 샘플을 통과 한 후 그라디언트를 계산하고 학습 속도와 동일한 크기로 그라디언트 방향으로 한 걸음 내딛을 것임을 의미합니다. 우리는 에포크 수에 의해 지정된 총 10 번이 작업을 수행합니다.2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 우리는 적합 함수에 의해 반환 된 이력 변수를 사용하여 각 신기원의 훈련 및 검증 정확도를 그릴 수 있습니다.보시다시피,드롭 아웃이 없으면 유효성 검사 손실은 세 번째 시대 이후에 감소하는 것을 멈 춥니 다.

As you can see, without dropout, the validation accuracy tends to plateau around the third epoch.

Using this simple model, we still managed to obtain an accuracy of over 97%.

test_loss, test_acc = model.evaluate(X_test, y_test)
test_acc

드롭아웃

가 토론하는지 여부를 드롭아웃 배치되어야 전 또는 후에 활성화 기능입니다. 일반적으로 렐루 이외의 모든 활성화 기능에 대해 활성화 기능 뒤에 드롭아웃을 배치합니다. 0.5 를 통과 할 때 모든 숨겨진 단위(뉴런)는 0.5 의 확률로 0 으로 설정됩니다. 즉,주어진 뉴런의 출력이 0 으로 강제되는 50%의 변화가 있습니다.이 경우,우리는 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 그(것)들에게 클래스,우리는 우리의 손실 함수로 범주 교차 로피를 사용합니다.유효성 검사 분할 매개 변수를 제공하여 모델은 학습 데이터의 일부를 따로 설정하고 각 시대의 끝에이 데이터에 대한 손실 및 모델 메트릭을 평가합니다. 드롭 아웃 뒤에 전제가 보유하고있는 경우,우리는 이전 모델에 비해 검증 정확도에 주목할만한 차이를 볼 수 있습니다. 셔플 매개 변수는 각 시대 전에 훈련 데이터를 셔플합니다.2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 당신이 볼 수 있듯이,검증 손실은 일반 모델을 사용하여 얻은 것보다 훨씬 낮다.2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 훨씬 더 빠르게 수렴하고 유효성 검사 집합에서 98%에 가까운 정확도를 얻은 반면 이전 모델은 세 번째 신기원 주위에 고원을 배치했습니다.2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 드롭아웃이 없는 모델에서 얻은 것과 크게 다르지 않습니다. 이 때문에 샘플의 제한된 수의 십중팔구입니다.2018 년 10 월 15 일(토)~2018 년 11 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 12 월 15 일(일)~2018 년 드롭 아웃은 주어진 뉴런에 대한 출력을 무작위로 0 으로 설정하여 모델을 일반화하는 데 도움이 될 수 있습니다. 출력을 0 으로 설정할 때 비용 함수는 역전파 과정에서 가중치가 업데이트되는 방식을 변경하는 인접 뉴런에 더 민감 해집니다.

답글 남기기

이메일 주소는 공개되지 않습니다.