본문 바로가기

드롭아웃

Drop-out 【1】Deep Learning 시작하기_규제하라는 게 있다 Drop-out 드롭 아웃은 노드를 임의로 끄면서 학습하는 기법이다. 은닉층에 배치된 노드 중 일부를 임의로 끄면서 학습을 한다. 꺼진 노드는 신호를 전달하지 않으므로 지나친 학습을 방지하는 효과를 주는 것이다. 왼쪽의 그림은 일반적인 신경망이고 오른쪽의 그림은 드롭 아웃을 적용한 신경망의 모습이다. 일부 노드들이 꺼지고 남은 노드들로 신호가 연결되는 신경망의 형태를 볼 수 있다. 어떤 노드를 끌 지는 학습할 때마다 무작위로 선정이 되며, 시험 데이터로 평가할 때는 노드들을 전부 사용해 출력하되 노드 삭제비율(드롭아웃 비율이라고 한다)을 곱해 성능을 평가한다. 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail... 더보기
L1 Norm, L2 Norm 【1】Deep Learning 시작하기_규제화라는 게 있다 L1 Norm, L2 Norm 정확하게 말하면 규제화(regularization)는 일부 미지수의 값을 아주 작게 만들어 그 영향을 줄임으로써 마치 미지수의 개수가 적어진 효과를 가져온다. 가중치 값이 커지는 것을 막는다는 제한, 규제의 의미가 있데 이런 규제화의 종류에는 L1 norm(노름)과 L2 norm이 존재한다. 각 각의 설명을 위해 두 종류를 비교해 보도록 하겠다. 다음의 표에 기재된 수식을 한번 보자. 먼저 λ (람다)는 규제화의 세기를 조절하는 변수이며 의 값을 크게 주면 강한 규제를, 값을 작게 주면 약한 규제를 줄 수 있다. 수식을 보면 입력 feature가 d개가 있을 때 바이어스(b)를 w0으로 표현해 총 d+1개의 w가 있.. 더보기
[머신러닝] CNN 층에 dropout(드롭아웃) 추가하기 (텐서플로) Dropout(드롭아웃)은 랜덤으로 선택한 node만 학습시키고, 일부 node는 버리는 것을 말하는데요, 한 번의 학습 후 다음 학습 때 이 과정을 반복합니다. Dropout을 사용하면 은닉층이 많은 neural network에서 오버피팅 문제를 방지할 수 있다는 장점을 가지는데요, 텐서플로를 이용하여 만든 CNN 층에 드롭아웃 층을 추가하는 코드에 대해서 살펴보겠습니다. model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), act.. 더보기