[딥러닝 기초개념] Dropout
Dropout
네트워크의 유닛의 일부만 동작하도록하고, 일부는 동작하지 않도록 하는 방법이다.
dropout은 1. 오버피팅을 방지하기 위한 방법 중 하나이며, hidden layer의 일부 유닛을 동작하지 않게 하는 것이다.
hidden layer에 드롭아웃을 확률 p로 적용할 때, hidden 유닛들은 p확률로 제거되는 것이다.
z는 0혹은 1을 가질수 있는 베르누이 분포 랜덤변수 벡터로, 확률적으로 h와 곱해지면서 hidden layer안에 있는 몇개의 노드를 날려버릴 수 있다. 이때 확률은 일반적으로 0.5이지만 하이퍼파라미터로 지정할 수 있다.
dropout = torch.nn.Dropout(p=drop_prob)
model = torch.nn.Sequential(linear1, relu, dropout,
linear2, relu, dropout,
linear3, relu, dropout).to(device)
위 코드처럼 여러 레이어를 쌓으며 그 사이에 dropout을 취해주면서 여러형태의 네트워크를 구성할 수 있고 2. 앙상블 효과도 낼 수 있게 된다.
또 위 그림처럼 뉴런이 어떤 하나의 입력에만 의존할 수 없어지기 때문에, 입력노드들의 3. 가중치를 분산하는 효과를 낼 수 있다.
Author And Source
이 문제에 관하여([딥러닝 기초개념] Dropout), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nayeon_p00/딥러닝-기초개념-Dropout-kxz53fo0저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)