일반적으로 네트워크가 이미 훈련 된 후에는 네트워크 아키텍처를 변경 (새 레이어 추가, 기존 레이어에 더 많은 뉴런 추가)하는 것이 일반적이며 Deep Learning 도메인에서는 일반적인 작업입니다. 하나의 예는 드롭 아웃입니다 - 훈련 중 절반은 무작위로 완전히 무력화되고 나머지 절반은 특정 반복 (각 반복 또는 '신기원'은 흔히 이름이 지어지기 때문에 뉴런의 다른 무작위 목록이 있음) 동안 훈련에 참여합니다. 또 다른 예는 전송 학습입니다. 한 세트의 입력 데이터에서 네트워크를 학습하고, 앞으로 나올 레이어의 일부를 잘라내어 새 레이어로 대체하고 다른 데이터 세트에서 모델을 다시 배울 수 있습니다.
이유를 더 잘 설명하려면 잠시 후퇴하십시오. 깊은 네트워크에서 숨겨진 레이어가 많은 곳에서 각 레이어는 들어오는 데이터에서 추상화를 학습합니다. 각각의 추가 레이어는 이전 레이어에서 학습 한 추상 표현을 사용하고 그 위에 추상화를 결합하여 더 높은 수준의 데이터 표현을 만듭니다. 예를 들어 DNN으로 이미지를 분류하려고 할 수 있습니다. 첫 번째 레이어는 이미지의 가장자리 또는 점과 같은 간단한 개념을 배우게됩니다. 다음 레이어는이 간단한 개념을 결합하여 삼각형 또는 사각형의 원과 같은 프리미티브를 배울 수 있습니다. 다음 레이어는 그것을 더욱 발전시키고이 기본 요소들을 결합하여 '차'또는 '집'과 같은 이미지에서 찾을 수있는 객체를 표현할 수 있으며 softmax를 사용하면 찾고있는 답변의 확률을 계산할 수 있습니다 (실제로 출력 할 내용). 나는이 사실들과 배운 표현들이 실제로 확인 될 수 있음을 언급 할 필요가있다. 숨겨진 레이어의 활성화를 시각화하여 배운 내용을 볼 수 있습니다. 예를 들어 Google의 '초기 개념화'프로젝트에서이를 수행했습니다. 이를 염두에두고 앞서 언급 한 내용으로 돌아가 보겠습니다.
드롭 아웃은 네트워크의 일반화를 개선하는 데 사용됩니다. 각 뉴런이 이전 레이어의 정보 일부를 사용할 수 있도록 '확실치 않다'고 강요하고 이전 레이어의 덜 유익하고 유익한 추상화에 의존하는 표현을 배우려고합니다. 이전 계층의 모든 표현을 고려하여 모든 요소를 '가장 좋아하는'두 개의 뉴런에 넣는 대신 결정을 내 리도록합니다.이렇게함으로써 네트워크는 일반적으로 입력이 교육 세트와 다른 새로운 데이터를 준비하는 것이 더 좋습니다.
Q : "저장된 지식의 품질은 무엇이든간에 (그물에 대한 교육이 무엇이든간에) 드롭 아웃 이후에도 계속 사용할 수 있습니까? 아마도 무작위 반을 무작위로 10 번으로 대체 할 수 있습니다. 전환 기간 동안 지식 손실이 줄어들 수 있습니다. "
A : 유감스럽게도 정확히 절반의 뉴런이 꺼져 있고 10 % (또는 다른 숫자)가 아닌 이유에 대해 올바르게 대답 할 수 없습니다. 아마 설명이 있지만 나는 그것을 보지 못했을 것이다. 일반적으로 작동하며 그게 전부입니다. 또한 중퇴의 임무는 각 신경 세포가 이전 층의 뉴런 중 몇 개만 고려하지 않고 올바른 결정을 내릴 때 일반적으로 도움이되는 뉴런이 이용 가능하지 않더라도 일부 결정을 내릴 준비가되었음을 밝히는 것입니다. . 이것은 일반화에만 사용되며 네트워크가 이전에 보지 못한 데이터에 더 잘 대처할 수 있도록 도와줍니다.
이제 이전 학습을 다시 생각해 봅시다. 네 개의 레이어가있는 네트워크가 있다고 가정합니다. 사진 (고양이, 개, 테이블, 자동차 등)의 특정 물체를 인식하도록 훈련시킵니다. 마지막 레이어를 잘라내어 세 개의 추가 레이어로 바꾸고 이제는 결과로 얻은 6 계층 네트워크를 데이터 세트로 교육합니다. 예를 들어이 이미지에 표시되는 내용에 대한 짧은 문장을 볼 수 있습니다 ('고양이는 자동차에 있습니다' , '창문이있는 집, 인근 나무'등). 우리가 그런 수술을 한 것은 무엇입니까? 원래의 4 계층 네트워크는 특정 개체가 이미지와 함께 제공되는지 여부를 이해할 수있었습니다. 처음 3 개의 레이어는 이미지의 좋은 표현을 배웠습니다. 첫 번째 레이어는 가능한 가장자리 또는 점 또는 이미지에서 매우 원시적 인 기하학적 모양에 대해 알게되었습니다. 두 번째 레이어는 '원'또는 '정사각형'과 같이 좀 더 정교한 기하학적 인물을 배웠습니다. 마지막 레이어는 이들을 결합하여 좀 더 높은 수준의 객체 인 'car', 'cat', 'house'를 형성하는 방법을 알고 있습니다. 이제 우리는 다른 영역에서 배운이 좋은 표현을 재사용 할 수 있으며 더 많은 레이어를 추가 할 수 있습니다. 각각은 원래 네트워크의 마지막 (3) 레이어의 추상화를 사용하여 이미지를 의미있는 설명으로 만드는 방법을 배웁니다. 이미지를 입력하고 문장을 출력으로 사용하는 새로운 데이터 세트에 대해 학습을 수행하는 동안 원본 네트워크에서 가져온 첫 번째 3 개의 레이어를 조정하지만 이러한 조정은 거의 미미하며 3 개의 새 레이어는 크게 학습하여 조정됩니다. 전달 학습으로 얻은 것은 다음과 같습니다.
1) 우리는 훨씬 더 나은 데이터 표현을 배울 수 있습니다. 우리는 특정 작업을 매우 잘 수행하고 그 네트워크를 기반으로 다른 것을 수행하는 네트워크를 만들 수 있습니다.
2) 우리는 교육 시간을 절약 할 수 있습니다. 네트워크의 첫 번째 레이어는 이미 출력에 가까운 레이어가 이미 우수한 데이터 표현을 얻을 수 있도록 이미 충분히 훈련 된 것입니다. 따라서 훈련은 사전 훈련 된 첫 번째 레이어를 사용하여 훨씬 빨리 완료되어야합니다.
결론적으로 일부 네트워크를 사전 교육하고 다른 네트워크의 일부 또는 전체 네트워크를 재사용하는 것이 이상적이며 일반적인 것은 아닙니다.
조금만 추가하면 훈련 중에 네트워크 크기를 변경하는 것이 일반적이지 않습니다. 사실, dropout의 도입은 techiconally 2 조각 무작위로 네트워크를 자르고 원본 네트워크의 절반 만이 특정 순간 (이 기술에 대한 특정 정보를 확인하기 위해 Google 드롭 아웃)에 참여합니다. –
네트워크 아키텍처에서 작동하는 또 다른 인스턴스는 어디입니까? 전송 학습. 네 개의 레이어가있는 네트워크가 있다고 가정 해보십시오. 사진에서 특정 물체를 인식하도록 훈련시킵니다. 마지막 레이어를 잘라내어 세 개의 추가 레이어로 바꾸면 결과적으로이 레이어에 표시되는 6 개 레이어 네트워크를 데이터 집합에 맞춰 교육합니다. 예를 들어이 이미지에 표시되는 내용에 대한 짧은 문장을 볼 수 있습니다.이 경우 트레이닝 자체는 2 부분으로 구성되어 있지만 트레이닝 중에 네트워크 크기를 다시 변경합니다. –
@ MaximHaytovich 드롭 아웃 후에도 사용할 수있는 저장된 지식 (트레이닝이 그물에했는지 여부)을 아는 한, ? 어쩌면 무작위 반을 무작위로 10 번째로 떨어 뜨려 10 번째 단락으로 대체 할 수 있습니다. 그러면 전환 기간 동안 지식 손실이 줄어들 수 있습니다. 다시 : 전송 학습 (두 번째 설명), 마지막 레이어가 삭제되거나 새로운 3 레이어가 방금 추가되면 사용 가능한 인터넷은 얼마나 유용합니까? 이미 훈련 된 레이어의 존재가 무작위 결과보다 더 잘 생성됩니까? 또는 전체 시스템을 재교육해야합니까? – csjohn